You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为GitHub Actions工作流生成的提交进行签名?

为GitHub Actions工作流的提交添加GPG签名

方案一:用GPG密钥签名提交(符合你想要的普通用户签名方式,完全可行)

按以下步骤配置即可:

  • 生成并导出GPG密钥
    给ur-access-bot@example.com生成GPG密钥,然后导出ASCII格式的私钥:
    gpg --armor --export-secret-keys ur-access-bot@example.com > gpg-private-key.asc
    
  • 把私钥存到GitHub Secrets里
    去仓库或组织的Secrets页面,新增GPG_PRIVATE_KEY,值填导出的私钥内容;如果密钥设了密码,再新增GPG_PASSPHRASE存密码。另外,用gpg --list-secret-keys --keyid-format LONG查看密钥ID,把这个ID也存成GPG_PRIVATE_KEY_ID的Secret。
  • 修改Actions工作流,配置GPG和签名
    把原来的Git配置步骤改成下面这样:
    - name: 配置Git与GPG签名
      run: |
        git config user.name "ur-access-bot"
        git config user.email "ur-access-bot@example.com"
        # 导入GPG私钥
        echo "${{ secrets.GPG_PRIVATE_KEY }}" | gpg --batch --import
        # 标记密钥为信任状态
        echo "${{ secrets.GPG_PRIVATE_KEY_ID }}:6:" | gpg --batch --import-ownertrust
        # 开启Git自动签名所有提交
        git config commit.gpgsign true
        git config user.signingkey ${{ secrets.GPG_PRIVATE_KEY_ID }}
        # 如果有密码,用GPG代理缓存避免重复输入
        echo "test" | gpg --batch --passphrase "${{ secrets.GPG_PASSPHRASE }}" --sign
    
  • 把公钥添加到ur-access-bot的GitHub账户
    导出公钥:
    gpg --armor --export ur-access-bot@example.com
    
    登录ur-access-bot的GitHub账号,在「Settings -> SSH and GPG keys」里把公钥加进去。

方案二:改用GitHub App

要是觉得GPG配置太麻烦,GitHub App生成的提交会被GitHub自动标记为“已验证”,不用手动签名就能过组织的要求。大致操作是:

  • 创建一个GitHub App,给它开仓库的contents和pull_requests权限。
  • 在工作流里用App的私钥生成访问令牌,用这个令牌执行Git操作就行。

内容的提问来源于stack exchange,提问作者vbnm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 09:22:33