在 GitHub Actions 中使用 Cursor CLI 自动审计仓库密钥
name: Auto Secrets Audit
on:
schedule:
- cron: "0 4 * * *"
workflow_dispatch:
permissions:
contents: write
pull-requests: write
actions: read
jobs:
secrets-audit:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Cursor CLI
run: |
curl https://cursor.com/install -fsS | bash
echo "$HOME/.cursor/bin" >> $GITHUB_PATH
- name: Configure git identity
run: |
git config user.name "Cursor Agent"
git config user.email "cursoragent@cursor.com"
- name: Scan and propose hardening
env:
CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
MODEL: gpt-5
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH_PREFIX: audit
run: |
cursor-agent -p "你正在 GitHub Actions 运行器中操作。
GitHub CLI 可通过 `gh` 使用,并通过 `GH_TOKEN` 进行身份验证。Git 可用。你对仓库内容有写入权限,可以对 pull request 进行评论,但不能直接创建或编辑 PR。
# 上下文:
- 仓库:${{ github.repository }}
- 加固分支前缀:${{ env.BRANCH_PREFIX }}
# 目标:
- 按计划对仓库进行密钥泄露和工作流加固审计,并提出最小化的安全修复建议。
# 要求:
1) 扫描跟踪文件和最近历史记录中的潜在密钥;如果存在白名单模式(例如 .gitleaks.toml),则支持该模式。
2) 检测有风险的工作流模式:未固定的 action、过于宽泛的权限、不安全的 pull_request_target 使用、分叉 PR 上下文中的密钥、已弃用的不安全命令、缺少权限块。
3) 使用上下文中的加固分支前缀为此次运行维护一个持久分支。如果不存在则创建,否则更新,并将更改推送到远程。
4) 提出最小化编辑:在安全的地方编辑字面量,添加忽略规则,将 action 固定到 SHA,减少权限,为工作流添加防护措施,并添加 SECURITY_LOG.md 总结更改和修复指导。
5) 推送到远程。
6) 如果仓库中至少有一个开放的 PR,在最近更新的开放 PR 上发布或更新一条自然语言评论(1-2 句话),简要解释加固更改并包含内联比较链接以快速创建 PR。
7) 避免重复评论;如果存在现有的机器人评论,则更新它。如果没有更改或没有开放的 PR,则不发布任何内容。
# 输入和约定:
- 使用 `gh` 列出 PR 并发布评论。避免重复评论。
# 发生更新时的交付物:
- 推送到此次运行的持久加固分支的提交。
- 带有上述比较链接的单个自然语言 PR 评论(仅当存在开放 PR 时)。
" --force --model "$MODEL" --output-format=text
此页面对您有帮助吗?