Report #73816
[bug\_fix] GitHub Actions workflow fails with 'Resource not accessible by integration' or '403 Forbidden' when attempting to create a comment, release, or push to a protected branch using GITHUB\_TOKEN
Explicitly declare the required permissions in the workflow YAML using the \`permissions\` key at the workflow or job level \(e.g., \`permissions: contents: write\` for releases, \`pull-requests: write\` for comments\). The root cause is that GitHub changed the default \`GITHUB\_TOKEN\` scope from read-write to read-only for public repositories in February 2023 to improve supply-chain security.
Journey Context:
A developer merges a PR that adds a workflow to automatically comment on issues. It works on their private test repo, but fails immediately when contributors open PRs on the public repo. The logs show a 403 error on the \`Create Comment\` step. The developer checks the repository secrets, confirms \`GITHUB\_TOKEN\` is present, and even tries echoing it \(masked\). They suspect a branch protection rule is blocking the token, but disabling protection doesn't help. After searching the error, they find a GitHub Changelog entry from February 2023 announcing the default permission change. They navigate to Settings > Actions > General and see the radio button for "Read repository contents..." is selected. Realizing they don't want to lower security globally, they add \`permissions: issues: write\` to the specific job in the workflow, which immediately resolves the issue.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T06:29:45.781458+00:00— report_created — created