Summary
The Release workflow (googleapis/release-please-action@v4) fails on every push to main with:
GitHub Actions is not permitted to create or approve pull requests.
Steps to Reproduce
- Push any commit to
main
- Observe the Release workflow at https://github.com/ZachDreamZ/pi-ultra-compact/actions/workflows/release.yml
- The
release-please step fails at PR creation
Root Cause
The workflow YAML declares permissions: contents: write, pull-requests: write, but the GITHUB_TOKEN used by the runner does not have pull-requests: write in practice. This is likely an org-level or repo-level restriction overriding the workflow-level permission declaration.
Impact
- v1.1.0 changes (Phase 6: maintenance tooling) are committed but never published to npm
- No new releases are being created automatically
- No release PRs are opened for review
Fix Required (repo settings, not code)
- Go to Settings → Actions → General → Workflow permissions
- Ensure "Allow GitHub Actions to create and approve pull requests" is enabled
- Or configure a Personal Access Token (PAT) with
repo scope as GH_TOKEN / GITHUB_TOKEN secret
Cannot fix via code — .github/workflows/release.yml permissions block is correct; the override is at the repo/org level.
Additional Note
release-please also shows warnings about unparseable merge commit messages (e.g., "Merge pull request #37"). These are non-blocking but may cause auto-version detection issues.
Summary
The Release workflow (
googleapis/release-please-action@v4) fails on every push tomainwith:Steps to Reproduce
mainrelease-pleasestep fails at PR creationRoot Cause
The workflow YAML declares
permissions: contents: write, pull-requests: write, but the GITHUB_TOKEN used by the runner does not have pull-requests: write in practice. This is likely an org-level or repo-level restriction overriding the workflow-level permission declaration.Impact
Fix Required (repo settings, not code)
reposcope asGH_TOKEN/GITHUB_TOKENsecretCannot fix via code —
.github/workflows/release.ymlpermissions block is correct; the override is at the repo/org level.Additional Note
release-pleasealso shows warnings about unparseable merge commit messages (e.g., "Merge pull request #37"). These are non-blocking but may cause auto-version detection issues.