Skip to content

CI 分界改成「會不會影響 correctness」:Gitleaks 掛回 PR - #39

Merged
hoshimoe merged 1 commit into
mainfrom
claude/sr-hoshi-data-ci-fix-ts11rn
Aug 17, 2026
Merged

CI 分界改成「會不會影響 correctness」:Gitleaks 掛回 PR#39
hoshimoe merged 1 commit into
mainfrom
claude/sr-hoshi-data-ci-fix-ts11rn

Conversation

@hoshimoe

@hoshimoe hoshimoe commented Aug 17, 2026

Copy link
Copy Markdown
Member

裁示(2026-08-16)。組織的十五個倉庫同名分支各一條。

改了什麼

Gitleaks 掛回 PR,其餘掃描(CodeQL/Trivy)留在 main 與手動。

判準是「漏到 main 之後要付什麼」:

補救
CodeQL/Trivy 找到的 修程式,修好就結束
一個憑證 刪掉不夠——它已經在 git 歷史裡,而歷史是共用的、被 clone 過的、可能被 fork 過的。唯一有效的補救是輪替那把憑證

前者在 PR 攔下與在 main 攔下代價一樣,所以放 main 是純賺的
(省下每個 PR 數分鐘);Gitleaks 是唯一兩者代價不同的,
而差的那一段是找人去輪替憑證——那不是 CI 省得下來的東西。

作法:閘門下移,不動檢查名稱

  • ci.ymlsecurity job 拿掉 if:(留在那裡會把 Gitleaks 一起關掉)
  • security.ymlcodeqltrivy 各自帶
    if: github.event_name != 'pull_request'
  • Gitleaks 那個 job 刻意沒有那一行

刻意不把 Gitleaks 搬成獨立的 gitleaks.yml 第一版就是那樣寫的,
寫完才讀到 security.ymlon: 註解——它早就記著搬出去的代價:
檢查名稱會從 安全掃描 / Gitleaks 變成 Gitleaks / Gitleaks,而
分支保護是按名字釘的。舊名字再也不會出現,required check 要嘛把 PR
卡死,要嘛安靜地不再有人看。閘門下移拿到完全相同的行為,
而且一個字都沒改到名稱

能這樣做的前提:被 ci.yml 呼叫時,security.yml 讀到的 github.event_name
呼叫端的事件

驗證

  • 39 支 workflow YAML 全部 parse 通過
  • 逐倉庫斷言「ci.ymlsecurityif:security.yml 的掃描有閘門、
    gitleaks 沒有」
  • 本次不動任何站臺程式碼,只動 workflow

一件要知道的

「required」設不了:required status checks 是分支保護/ruleset 的設定,
不在倉庫檔案裡。本輪改的是「會不會跑」。

裁示 2026-08-16。兩組驗證回答的是不同的問題——integration/e2e 問「這個 PR
合進去會不會真的壞」,掃描問「現在這份 main 有沒有已知安全問題」。第二種
問的是現況,所以不必卡在每個 PR 上。

但 Gitleaks 不屬於第二種。判準是漏到 main 之後要付什麼:CodeQL/govulncheck/
Trivy 找到的東西修程式就結束了;一個憑證進了 main 就進了 git 歷史,刪掉不會
讓它失效,必須輪替。那一段不是 CI 省得下來的東西。

作法是把閘門下移:ci.yml 的 security job 不再帶 if(帶在那裡會把 Gitleaks
一起關掉),改由 security.yml 的 codeql/govulncheck/trivy 各自帶
if: github.event_name != pull_request。Gitleaks 那個 job 刻意沒有。

刻意不把 Gitleaks 搬成獨立 workflow:那會把檢查名稱從「安全掃描 / Gitleaks」
變成「Gitleaks / Gitleaks」,而分支保護是按名字釘的。security.yml 的 on:
註解早就記著這個代價。閘門下移拿到相同行為且一個字都沒改到名稱。

順帶:「重型」這個詞退休,改叫環境相依的完整驗證。它是照「要起幾個真東西」
取的名字,而那從來不是判準——實測 1.5~6.5 分鐘,比安全掃描便宜。
@hoshimoe
hoshimoe merged commit 532e812 into main Aug 17, 2026
4 checks passed
@hoshimoe
hoshimoe deleted the claude/sr-hoshi-data-ci-fix-ts11rn branch August 17, 2026 06:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant