@@ -54,11 +54,12 @@ permissions:
5454jobs :
5555 run-tests :
5656 name : Run tests
57+ # Requires write permissions to publish test results
5758 permissions :
58- checks : write
59+ checks : write # Required to create check runs for test results
60+ pull-requests : write # Required to comment on PRs with test results
5961 contents : read
6062 packages : read
61- pull-requests : write
6263 uses : ./.github/workflows/test.yml
6364 with :
6465 build-coverage-report : false
@@ -67,11 +68,12 @@ jobs:
6768 name : Build artifacts
6869 runs-on : windows-2022
6970 needs : run-tests
71+ # Requires write permissions to generate artifact attestations
7072 permissions :
71- id-token : write
73+ id-token : write # Required for OIDC token generation
74+ attestations : write # Required to attest build provenance
7275 contents : read
7376 packages : read
74- attestations : write
7577 outputs :
7678 docs-log-id : ${{ steps.docs-log-upload.outputs.artifact-id }}
7779 docs-id : ${{ steps.docs-upload.outputs.artifact-id }}
@@ -180,8 +182,9 @@ jobs:
180182 upload-docs :
181183 name : Upload docs
182184 if : ${{ github.event.inputs.push-to-docs == 'true' }}
185+ # Requires write permission for OIDC authentication to GCP
183186 permissions :
184- id-token : write
187+ id-token : write # Required for OIDC token generation
185188 contents : read
186189 uses : ./.github/workflows/upload-docs.yml
187190 needs : build-artifacts
@@ -191,9 +194,10 @@ jobs:
191194 runs-on : windows-2022
192195 needs : build-artifacts
193196 if : ${{ github.event.inputs.push-to-dev == 'true' }}
197+ # Requires write permission to publish NuGet packages
194198 permissions :
199+ packages : write # Required to publish to GitHub Packages
195200 contents : read
196- packages : write
197201 steps :
198202 - name : Harden the runner (Audit all outbound calls)
199203 uses : step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
0 commit comments