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

通过GitHub Actions上传前扫描制品,检测或混淆泄露的GitHub密钥

解决GitHub Actions测试报告泄露密钥的问题

方案一:检测密钥并阻止发布

在生成测试报告后、发布前添加步骤,通过正则匹配常见GitHub密钥格式,一旦检测到就终止流程并发出警告:

- name: 扫描测试报告中的敏感密钥
  run: |
    # 匹配GitHub官方密钥格式(ghp_/gho_/github_pat_开头的字符串)
    if grep -qE "ghp_|gho_|github_pat_[a-zA-Z0-9]+" test-report.html; then
      echo "❌ 测试报告中发现明文GitHub密钥,终止发布流程"
      exit 1
    else
      echo "✅ 测试报告未检测到敏感密钥"
    fi

如果工作流用到自定义密钥,可加入固定字符串匹配:

- name: 扫描自定义密钥
  run: |
    if grep -qF "${{ secrets.MY_PRIVATE_KEY }}" test-report.html; then
      echo "❌ 测试报告中发现自定义明文密钥,终止发布流程"
      exit 1
    fi

方案二:自动混淆报告中的密钥

若不想终止流程,可直接用sed命令掩盖敏感内容:

- name: 混淆测试报告中的GitHub密钥
  run: |
    # 保留密钥前缀,替换后续敏感字符为星号
    sed -i 's/\(ghp_\|gho_\|github_pat_\)[a-zA-Z0-9]\{10,\}/\1****************/g' test-report.html

针对自定义密钥的混淆:

- name: 混淆自定义密钥
  run: |
    sed -i "s/${{ secrets.MY_PRIVATE_KEY }}/****************/g" test-report.html

关键注意事项

  • 务必将上述步骤放在测试报告生成完成后,推送制品/发布GitHub Pages之前,确保拦截或处理生效。
  • 若密钥格式特殊,可自行调整正则表达式或匹配字符串,覆盖所有可能泄露的敏感内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 13:17:17