如何将GitHub Action固定到特定SHA?及SHA查询方法咨询
如何查找GitHub Action对应的提交SHA并固定使用
为什么要固定到SHA
将Action固定到完整长度提交SHA
将Action固定到完整长度提交SHA是目前实现Action不可变发布的唯一方式。固定到特定SHA有助于降低恶意攻击者在Action仓库中植入后门的风险,因为攻击者需要为有效的Git对象负载生成SHA-1碰撞。选择SHA时,应验证其来自Action的官方仓库而非分支。
查找Action SHA的两种方法
方法一:通过GitHub网页端查找
拿你提到的github/codeql-action/upload-sarif@v3举例:
- 打开该Action的官方仓库页面(比如
github/codeql-action的GitHub仓库) - 在页面顶部的分支/标签下拉菜单中,选中你正在使用的版本标签(比如
v3) - 点击页面上的「Commits」进入提交记录页,找到该标签对应的最新提交
- 点击提交记录右侧的复制按钮,即可获取完整的40位SHA值
方法二:用Git命令行获取
如果本地克隆了该Action的仓库:
- 克隆仓库:
git clone https://github.com/github/codeql-action.git - 切换到目标标签:
git checkout v3 - 执行命令获取完整SHA:
git rev-parse HEAD- 输出的40位字符串就是你需要的SHA
替换成固定SHA的用法
找到SHA后,把Workflow文件里的Action引用从标签格式改成SHA格式即可,示例如下:
- uses: github/codeql-action/upload-sarif@abc123def456ghi789jkl012mno345pqr678stu901vwx
(注:上述SHA为示例,实际需替换为你找到的完整40位SHA值)
内容的提问来源于stack exchange,提问作者benhorgen
相关产品推荐
相关产品推荐

