Backport/2026.1 pr comment permission fix 20260609#805
Conversation
🔍 Board Pre-Validation Report❌ 32 board(s) failed pre-validationPlease fix the errors listed below before requesting a review. 1.4 — ✅ PassedPassed checks:
Warnings:
1.0 — ✅ PassedPassed checks:
1.1 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
1.1 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
2.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.2 — ✅ PassedPassed checks:
1.3 — ✅ PassedPassed checks:
1.4 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.2 — ✅ PassedPassed checks:
1.3 — ✅ PassedPassed checks:
1.4 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.6 — ✅ PassedPassed checks:
1.7 — ✅ PassedPassed checks:
1.6 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.7 — ✅ PassedPassed checks:
1.4 — ✅ PassedPassed checks:
Warnings:
1.5 — ✅ PassedPassed checks:
Warnings:
1.2 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.0 — ❌ FailedPassed checks:
Warnings:
Errors — must be fixed before merge:
1.0 — ✅ PassedPassed checks:
1.1 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.0 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.1 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
2.0 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.0 — ✅ PassedPassed checks:
1.1 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.2 — ❌ FailedPassed checks:
Warnings:
Errors — must be fixed before merge:
1.3 — ❌ FailedPassed checks:
Warnings:
Errors — must be fixed before merge:
2.0 — ❌ FailedPassed checks:
Warnings:
Errors — must be fixed before merge:
1.2 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.3 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.4 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
2.0 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.0 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.0 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
Warnings:
1.1 — ✅ PassedPassed checks:
Warnings:
1.0 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.4 — ✅ PassedPassed checks:
1.5 — ✅ PassedPassed checks:
1.8 — ✅ PassedPassed checks:
2.2 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
3.0 — ✅ PassedPassed checks:
3.1 — ✅ PassedPassed checks:
3.2 — ✅ PassedPassed checks:
3.3 — ✅ PassedPassed checks:
3.4 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.0 — ✅ PassedPassed checks:
1.1 — ✅ PassedPassed checks:
1.2 — ✅ PassedPassed checks:
1.3 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.6 — ✅ PassedPassed checks:
1.7 — ✅ PassedPassed checks:
1.4 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
2.3 — ✅ PassedPassed checks:
2.4 — ✅ PassedPassed checks:
3.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.3 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
1.1 — ✅ PassedPassed checks:
1.2 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
1.1 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
1.1 — ✅ PassedPassed checks:
1.2 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
2.0 — ✅ PassedPassed checks:
2.2 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
3.0 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
3.1 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
3.2 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
3.3 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.0 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.1 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.0 — ✅ PassedPassed checks:
1.1 — ✅ PassedPassed checks:
1.2 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
1.1 — ✅ PassedPassed checks:
1.2 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
1.1 — ✅ PassedPassed checks:
1.2 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
1.0 — ❌ FailedPassed checks:
Errors — must be fixed before merge:
1.4 — ✅ PassedPassed checks:
1.4 — ✅ PassedPassed checks:
Warnings:
1.5 — ✅ PassedPassed checks:
Warnings:
3.3 — ✅ PassedPassed checks:
3.4 — ✅ PassedPassed checks:
1.1 — ✅ PassedPassed checks:
2.4 — ✅ PassedPassed checks:
Warnings:
2.5 — ✅ PassedPassed checks:
Warnings:
2.6 — ✅ PassedPassed checks:
Warnings:
1.2 — ✅ PassedPassed checks:
1.3 — ✅ PassedPassed checks:
1.4 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
1.0 — ❌ FailedPassed checks:
Warnings:
Errors — must be fixed before merge:
2.0 — ❌ FailedPassed checks:
Warnings:
Errors — must be fixed before merge:
1.0 — ❌ FailedPassed checks:
Warnings:
Errors — must be fixed before merge:
2.0 — ❌ FailedPassed checks:
Warnings:
Errors — must be fixed before merge:
2.0 — ✅ PassedPassed checks:
3.0 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
3.0 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
3.0 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
3.0 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
3.0 — ✅ PassedPassed checks:
1.0 — ✅ PassedPassed checks:
2.0 — ✅ PassedPassed checks:
Generated by |
This PR fixes a CI failure in Validate Board Files caused by restricted token permissions on forked PRs:
Unhandled error: HttpError: Resource not accessible by integration
Root Cause
On pull_request events from forks, GITHUB_TOKEN can be permission-restricted for issue/PR write operations. The workflow attempted GitHub API operations for PR comment management and label handling in ways that could fail under those restrictions.
Changes
Updated .github/workflows/board_pr_validation.yml to harden behavior on fork PRs:
Reads bypass label from event payload (context.payload.pull_request.labels) instead of an extra API read.
Posts/updates PR comment only for non-fork PRs.
Adds explicit step-summary note when comment posting is skipped for fork PRs.
Keeps validation reporting in step summary/logs even when PR comment write is unavailable.
Retains defensive error handling around PR comment API calls.
Behavior After Fix
Validation still runs for all PRs.
Validation result still gates merge when errors are found (unless bypass label is set by maintainers).
Fork PRs no longer fail the job due to PR comment permission errors.
Non-fork PRs continue to receive/update the validation PR comment.
Scope
CI workflow-only change.
No board files, schemas, or validator logic were modified.
Validation
Reviewed workflow logic for both:
fork PR path (github.event.pull_request.head.repo.fork == true)
non-fork PR path (... == false)
Confirmed fallback reporting through $GITHUB_STEP_SUMMARY remains intact.
Why Backport
This issue affects contributor PRs targeting release branches as well as master. Backporting ensures consistent CI behavior across active branches.