Skip to content

Commit 6cc52c6

Browse files
committed
ci: improve scoped permissions
Signed-off-by: Emilien Escalle <emilien.escalle@escemi.com>
1 parent 7549ef0 commit 6cc52c6

9 files changed

Lines changed: 115 additions & 54 deletions

.github/workflows/__main-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ jobs:
2323
permissions:
2424
actions: read
2525
contents: read
26+
id-token: write
2627
issues: read
2728
packages: write
2829
pull-requests: read
2930
security-events: write
3031
statuses: write
31-
id-token: write
3232
secrets: inherit
3333

3434
clean:

.github/workflows/__pull-request-ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ jobs:
1717
uses: ./.github/workflows/__shared-ci.yml
1818
permissions:
1919
actions: read
20-
contents: write
20+
contents: read
21+
id-token: write
2122
issues: read
2223
packages: write
23-
pull-requests: write
24+
pull-requests: read
2425
security-events: write
2526
statuses: write
26-
id-token: write
2727
secrets: inherit

.github/workflows/__shared-ci.yml

Lines changed: 54 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,69 +4,114 @@ name: Internal - Common Continuous Integration tasks
44
on: # yamllint disable-line rule:truthy
55
workflow_call:
66

7-
permissions:
8-
actions: read
9-
contents: read
10-
issues: read
11-
packages: write
12-
pull-requests: read
13-
security-events: write
14-
statuses: write
15-
id-token: write
7+
permissions: {}
168

179
jobs:
1810
linter:
1911
uses: hoverkraft-tech/ci-github-common/.github/workflows/linter.yml@4c9d51717dc04d823dac2dc9ac2857e7b3069454 # 0.35.0
12+
permissions:
13+
actions: read
14+
contents: read
15+
security-events: write
16+
statuses: write
2017

2118
test-action-docker-build-image:
2219
needs: linter
2320
uses: ./.github/workflows/__test-action-docker-build-image.yml
21+
permissions:
22+
contents: read
23+
packages: write
2424

2525
test-action-docker-prune-pull-requests-package-version:
2626
needs: linter
2727
# yamllint disable-line rule:line-length
2828
uses: ./.github/workflows/__test-action-docker-prune-pull-requests-image-tags.yml
29+
permissions:
30+
contents: read
31+
id-token: write
32+
issues: read
33+
packages: write
34+
pull-requests: read
2935

3036
test-action-get-image-metadata:
3137
needs: linter
3238
uses: ./.github/workflows/__test-action-get-image-metadata.yml
39+
permissions:
40+
contents: read
3341

3442
test-action-action-get-image-name:
3543
needs: linter
3644
uses: ./.github/workflows/__test-action-get-image-name.yml
45+
permissions:
46+
contents: read
3747

3848
test-action-helm-parse-chart-uri:
3949
needs: linter
4050
uses: ./.github/workflows/__test-action-helm-parse-chart-uri.yml
51+
permissions:
52+
contents: read
4153

4254
test-action-helm-release-chart:
4355
needs: linter
4456
uses: ./.github/workflows/__test-action-helm-release-chart.yml
57+
permissions:
58+
contents: read
59+
packages: write
4560

4661
test-action-helm-test-chart:
4762
needs: linter
4863
uses: ./.github/workflows/__test-action-helm-test-chart.yml
64+
permissions:
65+
contents: read
66+
id-token: write
67+
issues: read
68+
packages: write
69+
pull-requests: read
4970

5071
test-workflow-docker-build-images-building:
5172
name: Test docker build images - Building
5273
needs: linter
5374
uses: ./.github/workflows/__test-workflow-docker-build-images-building.yml
75+
permissions:
76+
contents: read
77+
id-token: write
78+
issues: read
79+
packages: write
80+
pull-requests: read
5481
secrets: inherit
5582

5683
test-workflow-docker-build-images-caching:
5784
name: Test docker build images - Caching
5885
needs: linter
5986
uses: ./.github/workflows/__test-workflow-docker-build-images-caching.yml
87+
permissions:
88+
contents: read
89+
id-token: write
90+
issues: read
91+
packages: write
92+
pull-requests: read
6093
secrets: inherit
6194

6295
test-workflow-docker-build-images-multi-registry:
6396
name: Test docker build images - Multi registry inputs
6497
needs: linter
6598
uses: ./.github/workflows/__test-workflow-docker-build-images-multi-registry.yml
99+
permissions:
100+
contents: read
101+
id-token: write
102+
issues: read
103+
packages: write
104+
pull-requests: read
66105
secrets: inherit
67106

68107
test-workflow-docker-build-images-platforms-and-signing:
69108
name: Test docker build images - Platforms and Signing
70109
needs: linter
71110
uses: ./.github/workflows/__test-workflow-docker-build-images-platforms-and-signing.yml
111+
permissions:
112+
contents: read
113+
id-token: write
114+
issues: read
115+
packages: write
116+
pull-requests: read
72117
secrets: inherit

.github/workflows/__test-action-docker-prune-pull-requests-image-tags.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,7 @@ run-name: Test for "docker/prune-pull-requests-image-tags" action
55
on: # yamllint disable-line rule:truthy
66
workflow_call:
77

8-
permissions:
9-
contents: read
10-
issues: read
11-
packages: write
12-
pull-requests: read
13-
id-token: write
8+
permissions: {}
149

1510
env:
1611
IMAGE_NAME: "test-prune-${{ github.run_number }}"
@@ -73,6 +68,12 @@ jobs:
7368
name: Arrange - Build images
7469
needs: arrange-prepare-variables
7570
uses: ./.github/workflows/docker-build-images.yml
71+
permissions:
72+
contents: read
73+
id-token: write
74+
issues: read
75+
packages: write
76+
pull-requests: read
7677
secrets:
7778
oci-registry-password: ${{ secrets.GITHUB_TOKEN }}
7879
with:

.github/workflows/__test-action-helm-test-chart.yml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,17 @@ run-name: Test for "helm/test-chart" action
55
on: # yamllint disable-line rule:truthy
66
workflow_call:
77

8-
permissions:
9-
contents: read
10-
issues: read
11-
packages: write
12-
pull-requests: read
13-
id-token: write
8+
permissions: {}
149

1510
jobs:
1611
build-test-images:
1712
uses: ./.github/workflows/docker-build-images.yml
13+
permissions:
14+
contents: read
15+
id-token: write
16+
issues: read
17+
packages: write
18+
pull-requests: read
1819
secrets:
1920
oci-registry-password: ${{ secrets.GITHUB_TOKEN }}
2021
with:
@@ -34,6 +35,8 @@ jobs:
3435
name: Test for "helm/test-chart" action
3536
needs: build-test-images
3637
runs-on: ubuntu-latest
38+
permissions:
39+
contents: read
3740
steps:
3841
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3942
with:

.github/workflows/__test-workflow-docker-build-images-building.yml

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,19 @@ run-name: Test for "docker-build-images" workflow - Building
55
on: # yamllint disable-line rule:truthy
66
workflow_call:
77

8-
permissions:
9-
contents: read
10-
issues: read
11-
packages: write
12-
pull-requests: read
13-
id-token: write
8+
permissions: {}
149

1510
# jscpd:ignore-start
1611
jobs:
1712
act-build-images-args-secrets:
1813
name: Arrange - Build with args, secrets
1914
uses: ./.github/workflows/docker-build-images.yml
15+
permissions:
16+
contents: read
17+
id-token: write
18+
issues: read
19+
packages: write
20+
pull-requests: read
2021
secrets:
2122
oci-registry-password: ${{ secrets.GITHUB_TOKEN }}
2223
build-secrets: |
@@ -82,9 +83,5 @@ jobs:
8283
for (const image of expectedCreatedImages) {
8384
assert(builtImages[image], `"built-images" output does not contain "${image}" image`);
8485
}
85-
- uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
86-
with:
87-
registry: ghcr.io
88-
username: ${{ github.repository_owner }}
89-
password: ${{ github.token }}
86+
9087
# jscpd:ignore-end

.github/workflows/__test-workflow-docker-build-images-caching.yml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,7 @@ run-name: Test for "docker-build-images" workflow - Caching
55
on: # yamllint disable-line rule:truthy
66
workflow_call:
77

8-
permissions:
9-
contents: read
10-
issues: read
11-
packages: write
12-
pull-requests: read
13-
id-token: write
8+
permissions: {}
149

1510
# jscpd:ignore-start
1611
jobs:
@@ -65,6 +60,12 @@ jobs:
6560
name: Act - Build images - registry cache
6661
needs: arrange
6762
uses: ./.github/workflows/docker-build-images.yml
63+
permissions:
64+
contents: read
65+
id-token: write
66+
issues: read
67+
packages: write
68+
pull-requests: read
6869
secrets:
6970
oci-registry-password: ${{ secrets.GITHUB_TOKEN }}
7071
build-secret-github-app-key: ${{ secrets.CI_BOT_APP_PRIVATE_KEY }}
@@ -95,6 +96,12 @@ jobs:
9596
name: Act - Build images - gha cache
9697
needs: arrange
9798
uses: ./.github/workflows/docker-build-images.yml
99+
permissions:
100+
contents: read
101+
id-token: write
102+
issues: read
103+
packages: write
104+
pull-requests: read
98105
secrets:
99106
oci-registry-password: ${{ secrets.GITHUB_TOKEN }}
100107
build-secret-github-app-key: ${{ secrets.CI_BOT_APP_PRIVATE_KEY }}
@@ -128,6 +135,8 @@ jobs:
128135
strategy:
129136
fail-fast: false
130137
matrix: ${{ fromJson(needs.arrange.outputs.matrix) }}
138+
permissions:
139+
packages: read
131140
steps:
132141
- name: Login to GitHub Container Registry
133142
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0

.github/workflows/__test-workflow-docker-build-images-multi-registry.yml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,18 @@ run-name: Test for "docker-build-images" workflow - Multi registry inputs
55
on: # yamllint disable-line rule:truthy
66
workflow_call:
77

8-
permissions:
9-
contents: read
10-
issues: read
11-
packages: write
12-
pull-requests: read
13-
id-token: write
8+
permissions: {}
149

1510
jobs:
1611
act-build-images-multi-registry:
1712
name: Act - Build images with structured registry inputs
1813
uses: ./.github/workflows/docker-build-images.yml
14+
permissions:
15+
contents: read
16+
id-token: write
17+
issues: read
18+
packages: write
19+
pull-requests: read
1920
secrets:
2021
oci-registry-password: |
2122
{"push":"${{ secrets.GITHUB_TOKEN }}","pull:private":"${{ secrets.GITHUB_TOKEN }}"}
@@ -43,6 +44,8 @@ jobs:
4344
name: Assert - Build images with structured registry inputs
4445
needs: act-build-images-multi-registry
4546
runs-on: ubuntu-latest
47+
permissions:
48+
packages: read
4649
steps:
4750
- name: Login to GitHub Container Registry
4851
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0

.github/workflows/__test-workflow-docker-build-images-platforms-and-signing.yml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,7 @@ run-name: Test for "docker-build-images" workflow - Platforms and Signing
55
on: # yamllint disable-line rule:truthy
66
workflow_call:
77

8-
permissions:
9-
contents: read
10-
issues: read
11-
packages: write
12-
pull-requests: read
13-
id-token: write
8+
permissions: {}
149

1510
# jscpd:ignore-start
1611
jobs:
@@ -91,6 +86,12 @@ jobs:
9186
fail-fast: false
9287
matrix: ${{ fromJson(needs.arrange.outputs.matrix) }}
9388
uses: ./.github/workflows/docker-build-images.yml
89+
permissions:
90+
contents: read
91+
id-token: write
92+
issues: read
93+
packages: write
94+
pull-requests: read
9495
secrets:
9596
oci-registry-password: ${{ secrets.GITHUB_TOKEN }}
9697
build-secret-github-app-key: ${{ secrets.CI_BOT_APP_PRIVATE_KEY }}
@@ -116,6 +117,8 @@ jobs:
116117
strategy:
117118
fail-fast: false
118119
matrix: ${{ fromJson(needs.arrange.outputs.matrix) }}
120+
permissions:
121+
packages: read
119122
steps:
120123
- name: Login to GitHub Container Registry
121124
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0

0 commit comments

Comments
 (0)