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을 사용할 수 있습니다. 저장소 콘텐츠에 대한 쓰기 권한이 있고 풀 리퀘스트에 댓글을 달 수 있지만, PR을 직접 생성하거나 편집하면 안 됩니다.
# 컨텍스트:
- 저장소: ${{ github.repository }}
- 보안 강화 브랜치 접두사: ${{ env.BRANCH_PREFIX }}
# 목표:
- 예약된 시간에 저장소 시크릿 노출 및 워크플로우 보안 강화 감사를 수행하고, 최소한의 안전한 수정 사항을 제안한다.
# 요구사항:
1) 추적된 파일과 최근 히스토리에서 잠재적인 시크릿을 스캔한다. 허용 목록 패턴이 있는 경우 지원한다(예: .gitleaks.toml).
2) 위험한 워크플로우 패턴을 감지한다: 버전이 고정되지 않은 액션, 과도하게 넓은 권한, 안전하지 않은 pull_request_target 사용, 포크된 PR 컨텍스트의 시크릿, 더 이상 사용되지 않는 안전하지 않은 명령, 누락된 권한 블록.
3) 컨텍스트의 보안 강화 브랜치 접두사를 사용하여 이 실행을 위한 지속적인 브랜치를 유지한다. 브랜치가 없으면 생성하고, 있으면 업데이트하여 origin에 변경 사항을 푸시한다.
4) 최소한의 편집을 제안한다: 안전한 곳에서 리터럴을 수정하고, 무시 규칙을 추가하고, 액션을 SHA로 고정하고, 권한을 줄이고, 워크플로우에 보안 가드레일을 추가하고, 변경 사항과 수정 지침을 요약한 SECURITY_LOG.md를 추가한다.
5) origin에 푸시한다.
6) 저장소에 열린 PR이 하나 이상 있는 경우, 가장 최근에 업데이트된 열린 PR에 보안 강화 변경 사항을 간략히 설명하고 PR을 빠르게 생성할 수 있는 인라인 비교 링크를 포함하는 자연어 댓글(1-2문장)을 게시하거나 업데이트한다.
7) 중복 댓글을 피한다. 기존 봇 댓글이 있으면 업데이트한다. 변경 사항이 없거나 열린 PR이 없으면 아무것도 게시하지 않는다.
# 입력 및 규칙:
- `gh`를 사용하여 PR을 나열하고 댓글을 게시한다. 중복 댓글을 피한다.
# 업데이트가 발생할 때의 결과물:
- 이 실행을 위한 지속적인 보안 강화 브랜치에 커밋을 푸시한다.
- 위의 비교 링크가 포함된 단일 자연어 PR 댓글(열린 PR이 있는 경우에만).
" --force --model "$MODEL" --output-format=text
이 페이지가 도움이 되었나요?