GitHub Actions와 다른 CI/CD 시스템에서 Cursor CLI를 사용해서 개발 작업을 자동화해보자.

GitHub Actions 통합

기본 설정:
- name: Install Cursor CLI
  run: |
    curl https://cursor.com/install -fsS | bash
    echo "$HOME/.cursor/bin" >> $GITHUB_PATH

- name: Run Cursor Agent
  env:
    CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
  run: |
    cursor-agent -p "여기에 프롬프트 입력" --model gpt-5

쿡북 예시

실무 워크플로우에 바로 쓸 수 있는 쿡북 예시를 확인해봐: 문서 자동 업데이트 그리고 CI 문제 자동 수정.

기타 CI 시스템

다음 요구사항을 갖춘 모든 CI/CD 시스템에서 Cursor CLI를 사용할 수 있어:
  • 셸 스크립트 실행 (bash, zsh 등)
  • API 키 설정을 위한 환경 변수
  • Cursor API 접근을 위한 인터넷 연결

자율성 수준

에이전트의 자율성 수준을 선택해:

완전 자율 방식

에이전트에게 git 작업, API 호출, 외부 상호작용에 대한 완전한 제어를 맡겨. 설정은 더 간단하지만 더 많은 신뢰가 필요해. 예시: 우리 Auto Update Documentation 쿠크북에서 첫 번째 워크플로우는 에이전트가 다음을 할 수 있어:
  • PR 변경사항 분석
  • git 브랜치 생성 및 관리
  • 변경사항 커밋 및 푸시
  • Pull Request에 댓글 게시
  • 모든 오류 시나리오 처리
- name: Update docs (full autonomy)
  run: |
    cursor-agent -p "You have full access to git, GitHub CLI, and PR operations. 
    Handle the entire docs update workflow including commits, pushes, and PR comments."

제한적 자율 방식

프로덕션 CI 워크플로우에서는 권한 기반 제한과 함께 이 방식을 쓰길 권장해. 이렇게 하면 두 가지 장점을 모두 얻을 수 있어: 에이전트가 복잡한 분석과 파일 수정을 지능적으로 처리하는 동시에, 중요한 작업은 결정론적이고 감사 가능하게 유지돼.
중요 단계는 별도의 워크플로우 스텝에서 처리하면서 에이전트의 동작을 제한해. 더 나은 통제력과 예측 가능성을 갖게 돼. 예시: 같은 쿠크북의 두 번째 워크플로우는 에이전트가 파일 수정만 하도록 제한해:
- name: Generate docs updates (restricted)
  run: |
    cursor-agent -p "IMPORTANT: Do NOT create branches, commit, push, or post PR comments. 
    Only modify files in the working directory. A later workflow step handles publishing."

- name: Publish docs branch (deterministic)
  run: |
    # CI가 결정론적으로 처리하는 git 작업
    git checkout -B "docs/${{ github.head_ref }}"
    git add -A
    git commit -m "docs: update for PR"
    git push origin "docs/${{ github.head_ref }}"

- name: Post PR comment (deterministic)  
  run: |
    # CI가 결정론적으로 처리하는 PR 댓글
    gh pr comment ${{ github.event.pull_request.number }} --body "Docs updated"

권한 기반 제한

permission configurations를 사용해 CLI 수준에서 제한을 강제해:
{
  "permissions": {
    "allow": [
      "Read(**/*.md)",
      "Write(docs/**/*)",
      "Shell(grep)",
      "Shell(find)"
    ],
    "deny": [
      "Shell(git)",
      "Shell(gh)", 
      "Write(.env*)",
      "Write(package.json)"
    ]
  }
}

인증

CURSOR_API_KEY 환경 변수를 설정해:
env:
  CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
API 키는 Cursor 설정에서 받을 수 있어.