Skip to content

ci: 釘住 action 的 commit SHA,並讓 dependabot 分組、不提 major - #5

Merged
hoshimoe merged 1 commit into
mainfrom
claude/hoshi-security-hardening-uxn40w
Aug 11, 2026
Merged

ci: 釘住 action 的 commit SHA,並讓 dependabot 分組、不提 major#5
hoshimoe merged 1 commit into
mainfrom
claude/hoshi-security-hardening-uxn40w

Conversation

@hoshimoe

Copy link
Copy Markdown
Member

續作說明(§4.3):原分支已隨 #2 合併,本次收尾在同名分支自新的 main 重開。

掃描上線後各倉庫湧出大量 Dependabot PR。這顆修的是成因,不是症狀。

1. 釘錯了對象:tag 物件 vs. commit

github/codeql-actionaquasecurity/trivy-action 用的是 annotated tag
git ls-remote --tags --refs 拿到的是標籤物件的 SHA——--refs 正好把
^{} 那幾行濾掉了。

Actions 執行時兩者都解得開(所以 workflow 一直是綠的),但 Dependabot 比對的是
commit
,於是每顆這種 pin 都被判定成「落後」,每週各開一個 PR。

actions/* 用 lightweight tag,標籤與 commit 同一顆,所以那幾處本來就是對的
——這個錯只出現在一部分 pin 上,看起來更像上游真的有新版,而不是我們釘錯。

改成 refs/tags/<ver>^{} 解出來的 commit,十處 pin 全部對著遠端逐一核對過。

2. dependabot 分組、不自動提 major

補上 groups 之後每個生態系每週最多一個 PR,而不是一個相依一個。
major 改由人讀 changelog、一次做完;有漏洞的相依走 security updates,
是另一條路,不受這個 ignore 影響。

驗證

  • 三十六支 workflow 都仍解析得過;十五份 dependabot.yml 都有 groups
  • 十處 pin 逐一對遠端核對
  • 只動 .github/;本倉庫只有 Markdown,沒有建置步驟,規範內容零變更

事項:workspace todo/安全加固與掃描自動化.md


Generated by Claude Code

兩件事一起修,因為它們造成的是同一個症狀:**掃描上線後各倉庫湧出大量
更新 PR,其中一部分永遠不會變綠**。

## 釘錯了對象:tag 物件 vs. commit

`github/codeql-action` 與 `aquasecurity/trivy-action` 用的是 **annotated tag**。
`git ls-remote --tags --refs` 拿到的是**標籤物件**的 SHA,不是它指向的 commit
——`--refs` 正好把 `^{}` 那幾行濾掉了。Actions 執行時兩者都解得開(所以
workflow 一直是綠的),但 Dependabot 比對的是 commit,於是每個倉庫的每一顆
這種 pin 都被判定成「落後」,每週各開一個 PR。

`actions/*` 用的是 lightweight tag,標籤與 commit 同一顆,所以那五處本來就
是對的——也就是說這個錯**只出現在一部分 pin 上**,看起來更像上游真的有新版,
而不是我們釘錯了東西。

改成 `refs/tags/<ver>^{}` 解出來的 commit,十處 pin 全部對著遠端逐一核對過。

## 沒有分組:一個相依一個 PR

`github/codeql-action` 的四個子 action(init/autobuild/analyze/upload-sarif)
各算一個相依,加上 trivy 是五個,乘以十二個倉庫。補上 `groups` 之後,
每個生態系每週最多一個 PR。

## major 不自動開

實測 dependabot 替四個倉庫提了 `typescript` 5.9 → 7.0,而 `@astrojs/check`
的 peer 範圍是 `^5 || ^6`——`npm ci` 直接 ERESOLVE,那些 PR 沒有任何一顆
有機會變綠。一個沒有人處理得了的紅燈,最後會連同它旁邊真的紅燈一起被忽略。

major 改由人讀 changelog、一次做完;有漏洞的相依走 Dependabot security
updates,是另一條路,不受這個 ignore 影響。

理由與判準見 workspace `decisions/process/掃描的紅燈要有人處理得了.md`。
@hoshimoe
hoshimoe merged commit 97eb9a0 into main Aug 11, 2026
4 checks passed
@hoshimoe
hoshimoe deleted the claude/hoshi-security-hardening-uxn40w branch August 11, 2026 08:12
@hoshimoe
hoshimoe restored the claude/hoshi-security-hardening-uxn40w branch August 11, 2026 08:13
@hoshimoe
hoshimoe deleted the claude/hoshi-security-hardening-uxn40w branch August 11, 2026 08:13
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.

2 participants