Skip to content

ci: enforce immutable GitHub Action references#4

Merged
lzm0x219 merged 4 commits into
mainfrom
agent/enforce-immutable-action-refs
Jul 11, 2026
Merged

ci: enforce immutable GitHub Action references#4
lzm0x219 merged 4 commits into
mainfrom
agent/enforce-immutable-action-refs

Conversation

@lzm0x219

Copy link
Copy Markdown
Member

变更摘要

将 GitHub Actions 的完整 Commit SHA 固定从人工约定升级为可执行的 CI 规则,并同步修复 GitHub App 标签同步文档。

主要修改

  • actions/create-github-app-token@v3 固定为 bcd2ba49218906704ab6c1aa796996da409d3eb1(v3.2.0);
  • 为 GitHub App Token 步骤增加明确名称,并显式指定 owner
  • 新增 .github/scripts/validate-action-pins.rb
    • 扫描 .github/workflows/*.{yml,yaml}
    • 扫描 .github/actions/**/action.{yml,yaml}
    • 允许本地 ./ 引用和 docker:// 引用;
    • 强制所有外部 Action 与可复用工作流使用完整 40 位 Commit SHA;
  • 将固定引用检查接入现有 Validate repository references and governance scripts Job;
  • 更新 README:
    • 移除已经废弃的 LABEL_SYNC_WRITE_TOKEN 说明;
    • 记录 APP_CLIENT_IDAPP_PRIVATE_KEY 的 Environment 配置;
    • 说明 GitHub App 最小权限、安装范围和私钥轮换;
    • 明确外部 Action 固定 SHA 与 Dependabot 更新规则。

根因

PR #3 已将现有第三方 Action 固定到完整 SHA,但随后切换 GitHub App Token 时重新引入了 actions/create-github-app-token@v3。这说明固定 SHA 仍只是人工约定,缺少自动化约束;同时 README 仍引用已经不再使用的静态写令牌,形成文档漂移。

安全影响

  • 高权限 Apply 工作流不再执行可移动版本标签指向的代码;
  • 后续提交若引入 @v3@main、语义版本或其他非完整 SHA 引用,CI 将直接失败;
  • GitHub App 凭证配置说明与当前实现恢复一致;
  • Dependabot 仍可通过 PR 更新固定 SHA,并保留人工审查入口。

验证

  • 已确认当前 v3 标签解析到 bcd2ba49218906704ab6c1aa796996da409d3eb1(v3.2.0);
  • 新校验脚本已通过正向测试:完整 SHA 引用成功;
  • 已通过负向测试:owner/action@v3 被准确拒绝并输出 GitHub Annotation;
  • 修改后的 YAML 已完成解析检查;
  • 分支基于最新 main 提交 20c8ea9,无落后提交。

审查重点

  • GitHub App 的实际权限是否已限制为标签管理所需最小范围;
  • README 中 APP_CLIENT_IDAPP_PRIVATE_KEY 的 Environment 层级是否与当前仓库设置一致;
  • 是否接受校验范围同时覆盖工作流和 Composite Action 元数据。

@lzm0x219
lzm0x219 marked this pull request as ready for review July 11, 2026 00:43
@lzm0x219 lzm0x219 added the type: maintenance 构建、工具、CI、仓库配置或日常维护工作 label Jul 11, 2026
@lzm0x219
lzm0x219 merged commit 014a321 into main Jul 11, 2026
5 checks passed
@lzm0x219
lzm0x219 deleted the agent/enforce-immutable-action-refs branch July 11, 2026 00:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: maintenance 构建、工具、CI、仓库配置或日常维护工作

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant