ci(infra): require issue link for external PRs (#35690)
Enforce that all external PRs reference an approved issue via GitHub auto-close keywords (`Fixes #NNN`, `Closes #NNN`, `Resolves #NNN`). This replaces the previous AI-disclaimer policy in the PR template with a stricter requirement: external contributors must link to a maintainer-approved issue before their PR can merge. ## Changes - Add `require_issue_link.yml` workflow that chains off the `external` label applied by `tag-external-contributions.yml` — listens for `labeled`, `edited`, and `reopened` events to avoid duplicating the org membership API call - Scan PR body with a case-insensitive regex matching all conjugations of `close/fix/resolve` + `#NNN`; fail the check and post a deduplicated comment (via `<!-- require-issue-link -->` HTML marker) when no link is found - Apply a `missing-issue-link` label on failure, remove it on pass — enables bulk cleanup via label filter - Add `workflow_dispatch` backfill job to `pr_size_labeler.yml` for retroactively applying size labels to open PRs - Quote `author` in GitHub search queries in `tag-external-contributions.yml` to prevent mismatches on usernames with special characters - Update `PULL_REQUEST_TEMPLATE.md` to replace the AI-disclaimer guideline with the new issue-link requirement > [!NOTE] > `require_issue_link.yml` depends on `tag-external-contributions.yml` running first to apply the `external` label. Deploy as a non-required check initially, then promote to required after validation.
M
Mason Daugherty committed
225bb5b253142c08edabf029e4c6f2e7be7fd34a
Parent: 360e016
Committed by GitHub <[email protected]>
on 3/9/2026, 3:12:33 PM