Skip to content

[CI][BUG] required-contexts.txt 与 GitHub 分支保护之间无漂移判据 —— 清单漏一项则该检查永久不再必需且仓内全绿 #890

Description

@jinjunnn

这是什么

#717(PR #885)建立了 .github/required-contexts.txt + local-gate-parity.test.ts:
每个 context 必须等于某个 alpha-ci job 的 name,每个 job 要么在记录里、要么在
NOT_REQUIRED_JOBS 里写明理由。仓内这半场是真的,且对新 job 默认拒。

缺口在仓外:把一个新 job 写进 required-contexts.txt 只会让测试变绿,
不会改动 GitHub 的分支保护设置。也就是说,仓里那份清单与真正决定「PR 能不能合」
的那份配置,今天靠人手同步。

#885 的实现方按文件抬头那条 gh api 对过一次真源,四条逐字相同 ——
所以今天不是坏的,是没有机制保证它明天还一样。

为什么这不是洁癖

这道门的失效形态是安静的:清单漏一项 ⇒ 那道检查永久不再必需 ⇒ 它红了也能合,
而仓内测试照样全绿。属于本仓已登记的假门形态第⑦条(可静默删除/未登记)。

边界

.github/required-contexts.txt 与 GitHub 分支保护实际 required status checks 之间的
一致性判据。

Out of scope

  • 仓内那半场(#717 已交付,不重做)。
  • 分支保护的其它设置项(review 数、linear history 等)。

退出条件

  • 先勘破:实跑 gh api 读出今天真正生效的 required status checks 全集,
    与 required-contexts.txt 逐条对照,把差异(如果有)写下来。散文断言不算勘破。
  • 给出一条能自动发现漂移的判据。注意判据本身要能被验证:
    写完自己制造一次漂移(往清单里加一个真源没有的 context),确认它真的红。
  • 若结论是「在当前权限/账号计划下拿不到真源」,那也是合法结论 —— 如实写下并留痕
    「已知不修 + 理由」,而不是留一个测不出漂移却看起来在测的绿灯。

复杂度:S

Activity

  1. added
    type:bugSomething is incorrect or regressed
    prio:P2Planned normal-priority work
    area:governanceStandards or lifecycle governance
    on Aug 10, 2026
  2. self-assigned this
    on Aug 11, 2026
  3. added a commit that references this issue on Aug 11, 2026
  4. added 3 commits that reference this issue on Aug 11, 2026
    7681d9c
    3175bd4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:governanceStandards or lifecycle governanceprio:P2Planned normal-priority worktype:bugSomething is incorrect or regressed

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions