diff --git a/.gitea/scripts/review-check.sh b/.gitea/scripts/review-check.sh index 026a28a5e..a63c983ee 100755 --- a/.gitea/scripts/review-check.sh +++ b/.gitea/scripts/review-check.sh @@ -306,12 +306,15 @@ for U in $CANDIDATES; do exit 0 ;; 403) - # Token owner is not in the team being probed; the API refuses to - # confirm membership. This is the RFC#324 follow-up token-scope gap. - # Fail closed — never grant approval on a 403; surface clearly. - echo "::error::team-probe for ${U} in ${TEAM} returned 403 (token owner not in ${TEAM} team — RFC#324 token-scope follow-up). Cannot confirm membership; failing closed." + # Token owner is not in the team being probed; Gitea 1.22.6 refuses + # to confirm membership in this case. Do NOT hard-fail the gate on a + # 403 — doing so would fail the entire gate if ANY candidate triggers + # a 403, even when other valid team-members exist. Instead skip this + # candidate and continue checking others. If all candidates produce + # 403 (token owner can't query any of them) the final exit fires. + echo "::warning::team-probe for ${U} in ${TEAM} returned 403 (token owner not in ${TEAM} team — skipping; cannot confirm membership)" cat "$TEAM_PROBE_TMP" >&2 - exit 1 + continue ;; 404) debug "${U} not a member of ${TEAM}"