From e385d37e5b1f3dd1ac216b4f87524b5913ab2d44 Mon Sep 17 00:00:00 2001 From: Tunglies <77394545+Tunglies@users.noreply.github.com> Date: Wed, 16 Sep 2026 11:07:45 +0800 Subject: [PATCH] ci(gate): align linked-issue-check with the slop review trust tier linked-issue-check only exempted drafts and the no-issue-needed label, so member and collaborator PRs failed the linkage gate while the slop review itself skipped them via skip-roles (#7944). Skip OWNER, MEMBER, COLLABORATOR, and bot authors as well, reading the association from the event payload so the permission-free gate design holds. External contributors still need an issue reference. --- .github/workflows/ai-slop-gate.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ai-slop-gate.yml b/.github/workflows/ai-slop-gate.yml index 234379357..937567b7d 100644 --- a/.github/workflows/ai-slop-gate.yml +++ b/.github/workflows/ai-slop-gate.yml @@ -30,11 +30,19 @@ jobs: PR_BODY: ${{ github.event.pull_request.body }} LABELS: ${{ join(github.event.pull_request.labels.*.name, ',') }} DRAFT: ${{ github.event.pull_request.draft }} + ASSOCIATION: ${{ github.event.pull_request.author_association }} + AUTHOR_TYPE: ${{ github.event.pull_request.user.type }} run: | if [ "$DRAFT" = "true" ] || printf '%s' "$LABELS" | grep -q 'no-issue-needed'; then echo "Draft or no-issue-needed; linkage check skipped." exit 0 fi + # OWNER/MEMBER/COLLABORATOR and bots mirror the slop review's + # skip-roles/skip-bots trust tier. + if [ "$AUTHOR_TYPE" = "Bot" ] || [ "$ASSOCIATION" = "OWNER" ] || [ "$ASSOCIATION" = "MEMBER" ] || [ "$ASSOCIATION" = "COLLABORATOR" ]; then + echo "Bot or trusted author ($ASSOCIATION); linkage check skipped." + exit 0 + fi if printf '%s\n%s\n' "$PR_TITLE" "$PR_BODY" | grep -Eq '#[0-9]+|issues/[0-9]+'; then echo "Issue reference found." else