fix(ci): replace placeholder qa/security teams with real ones in sop-tier-check (#2139) #2232
Reference in New Issue
Block a user
Delete Branch "fix/2139-sop-tier-check-real-qa-security-teams"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The
qa(id 20) andsecurity(id 21) Gitea teams have existed since the 2026-05-12 orchestrator preflight, butsop-tier-check.shstill treated them as pending placeholders (qa???,security???). This meanttier:mediumPRs could never satisfy the qa/security clause — the script skipped unresolved???-suffixed teams and the clause always failed.Changes
TIER_EXPR[tier:medium]:qa???,security???→qa,securitytest_sop_tier_check_clause_split.shfixture to match real team names.Test
SOP Checklist
Closes #2139
The qa (id 20) and security (id 21) Gitea teams have existed since the 2026-05-12 orchestrator preflight (verified via /orgs/{org}/teams), but sop-tier-check.sh still treated them as pending placeholders (qa???, security???). This meant tier:medium PRs could never satisfy the qa/security clause — the script skipped unresolved ???-suffixed teams and the clause always failed. Changes: - TIER_EXPR[tier:medium]: qa???,security??? → qa,security - Update comment block to list the five live teams (ceo, engineers, managers, qa, security) and remove the internal#189 pending-team note. - Update test_sop_tier_check_clause_split.sh fixture to match the real team names. The ???-suffix fallback logic is preserved in the resolver so genuinely missing future teams still fail closed with a clear error. Closes #2139 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>1546372cdetoc536a1ee975-axis review: APPROVED.
Correctness: Replaces the intentionally unachievable tier:medium placeholder team clause (
qa???,security???) with the realqa,securityOR clause while preserving the AND composition of managers AND engineers AND one qa/security approver. The clause-splitting test is updated to pin the new expression.Robustness: The change is narrowly scoped to the tier map and its parser test, and the SOP tier check itself is green on this PR. Security: this tightens the review gate from placeholder/unachievable teams to the actual qa/security teams; no secrets or auth runtime paths are touched. Performance: no runtime impact beyond the same shell expression parsing. Readability: the comments now match the actual Gitea team state and expected approval semantics.
Required-context review: head
c536a1ee97is mergeable; CI/all-required, E2E API Smoke, Handlers PG, and sop-tier-check are green.merge-queue: updated this branch with
mainate441def8b3a8. Waiting for CI on the refreshed head.New commits pushed, approval review dismissed automatically according to repository settings
merge-queue: updated this branch with
mainat31283a292a34. Waiting for CI on the refreshed head.merge-queue: updated this branch with
mainatd768d8667b0f. Waiting for CI on the refreshed head.APPROVED. Churn re-review on current head
b4a35535. Merge-base diff is scoped to sop-tier-check.sh and its clause-split test. The tier:medium expression now uses real qa/security teams instead of placeholder qa???/security??? markers, keeping low/high behavior unchanged and updating the regression test expectation. No collateral.Re-reviewed current head
b4a35535. Researcher 9237 is on this head. Merge-base diff is scoped to sop-tier-check team expression and its clause-split test: placeholder qa/security teams are replaced with real qa/security OR clause while keeping managers AND engineers AND qa/security semantics. CI / all-required is green; no SOP_FAIL_OPEN reintroduction or stale-base collateral found.