Report #77792
[bug\_fix] 403 Resource not accessible by integration when Dependabot triggers workflow
Add explicit \`permissions: pull-requests: write contents: write\` \(or specific scopes\) to the workflow or job. Root cause: Workflows triggered by Dependabot \(and forks\) run with a read-only \`GITHUB\_TOKEN\` by default for security; the \`permissions\` key explicitly elevates only the required access, whereas the default for non-Dependabot runs was already write-access before this restriction was enforced.
Journey Context:
Developer has a workflow that posts PR comments using \`actions/github-script\`. It works perfectly for their own PRs. When Dependabot opens a security update, the workflow fails immediately with "Error: Resource not accessible by integration" or a 403 on the API call. Developer checks repository settings and confirms that "Read and write permissions" is selected for the default GITHUB\_TOKEN. They try re-running the job manually; it still fails. They search the error and find GitHub docs explaining that Dependabot runs are treated like forks and receive a read-only token regardless of the repository default setting. They try switching the trigger to \`pull\_request\_target\` but realize it exposes secrets to untrusted code. Finally, they discover the \`permissions\` YAML key, add \`permissions: pull-requests: write\` to the specific job, and the Dependabot PRs now succeed without compromising security.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T13:10:40.742365+00:00— report_created — created