在 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) 偵測有風險的工作流程模式:未固定的 actions、過於寬泛的權限、不安全的 pull_request_target 使用、在分叉 PR 環境中的機密資訊、已棄用的不安全指令、缺少權限區塊。
3) 使用背景資訊中的強化分支前綴維護此次執行的持久分支。如果不存在則建立,否則更新,並將變更推送到 origin。
4) 提出最小化編輯:在安全的情況下隱藏字面值、新增忽略規則、將 actions 固定到 SHA、減少權限、為工作流程新增防護措施,並新增 SECURITY_LOG.md 總結變更和修復指導。
5) 推送到 origin。
6) 如果儲存庫中至少有一個開放的 PR,在最近更新的開放 PR 上發布或更新一個自然語言評論(1-2 句話),簡要說明強化變更並包含內聯比較連結以快速建立 PR。
7) 避免重複評論;如果存在現有的機器人評論則更新。如果沒有變更或沒有開放的 PR,則不發布任何內容。
# 輸入和慣例:
- 使用 `gh` 列出 PR 和發布評論。避免重複評論。
# 發生更新時的交付項目:
- 推送提交到此次執行的持久強化分支。
- 包含上述比較連結的單一自然語言 PR 評論(僅在存在開放 PR 時)。
" --force --model "$MODEL" --output-format=text
這個頁面有幫助嗎?