Skip to content

Commit 2d97a9f

Browse files
committed
fix: move write permissions from workflow-level to job-level
OpenSSF Scorecard Token-Permissions check flags top-level write permissions as overly broad. Move write grants to the specific jobs that need them, keeping workflow-level at contents: read. Fixes Scorecard alerts #2, #3, #4, #5, #12. Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
1 parent 713e121 commit 2d97a9f

4 files changed

Lines changed: 20 additions & 10 deletions

File tree

.github/workflows/backport.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ on:
55
types: [closed]
66

77
permissions:
8-
contents: write
9-
pull-requests: write
8+
contents: read
109

1110
jobs:
1211
backport:
1312
name: Backport
13+
permissions:
14+
contents: write
15+
pull-requests: write
1416
runs-on: ${{ vars.RUNNER || 'ubuntu-latest' }}
1517
timeout-minutes: 10
1618
if: >

.github/workflows/dependabot-auto-merge.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ on:
44
pull_request_target:
55

66
permissions:
7-
contents: write
8-
pull-requests: write
7+
contents: read
98

109
concurrency:
1110
group: dependabot-auto-merge-${{ github.event.pull_request.number }}
@@ -14,6 +13,9 @@ concurrency:
1413
jobs:
1514
auto-merge:
1615
name: Auto-merge Dependabot PRs
16+
permissions:
17+
contents: write
18+
pull-requests: write
1719
runs-on: ubuntu-latest
1820
timeout-minutes: 5
1921
if: github.actor == 'dependabot[bot]'

.github/workflows/release.yaml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ concurrency:
1010
cancel-in-progress: false
1111

1212
permissions:
13-
actions: read # For SLSA provenance
14-
contents: write
15-
packages: write
16-
id-token: write # For cosign keyless signing
13+
contents: read
1714

1815
env:
1916
GO_VERSION: "1.26"
@@ -26,6 +23,10 @@ jobs:
2623
if: startsWith(github.ref, 'refs/tags/')
2724
runs-on: ubuntu-latest
2825
timeout-minutes: 30
26+
permissions:
27+
contents: write
28+
packages: write
29+
id-token: write
2930
outputs:
3031
hashes: ${{ steps.hash.outputs.hashes }}
3132
digest: ${{ steps.build.outputs.digest }}
@@ -131,6 +132,10 @@ jobs:
131132
runs-on: ubuntu-latest
132133
timeout-minutes: 10
133134
needs: [release]
135+
permissions:
136+
contents: read
137+
packages: write
138+
id-token: write
134139
steps:
135140
- uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
136141
with:

.github/workflows/security.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ on:
1111

1212
permissions:
1313
contents: read
14-
pull-requests: read
15-
security-events: write
1614

1715
concurrency:
1816
group: security-${{ github.ref }}
@@ -21,6 +19,9 @@ concurrency:
2119
jobs:
2220
codeql:
2321
name: CodeQL
22+
permissions:
23+
contents: read
24+
security-events: write
2425
runs-on: ${{ vars.RUNNER || 'ubuntu-latest' }}
2526
timeout-minutes: 15
2627
steps:

0 commit comments

Comments
 (0)