跳转到主要内容
在 GitHub Actions 和其他 CI/CD 系统中使用 Cursor CLI,自动化开发任务。

集成 GitHub Actions

基础配置:
- name: 安装 Cursor CLI
  run: |
    curl https://cursor.com/install -fsS | bash
    echo "$HOME/.cursor/bin" >> $GITHUB_PATH

- name: 运行 Cursor Agent
  env:
    CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
  run: |
    cursor-agent -p "你的提示词" --model gpt-5

实用示例

查看我们的实用示例,了解具体工作流:更新文档修复 CI 问题

其他 CI 系统

只要满足以下条件,就能在任何 CI/CD 系统中使用 Cursor CLI:
  • 支持Shell 脚本执行(bash、zsh 等)
  • 通过环境变量配置 API key
  • 具备互联网连接以访问 Cursor 的 API

自主性级别

选择 agent 的自主性级别:

完全自主方案

让 agent 全权控制 git 操作、API 调用和外部交互。设置更简单,但需要更多信任。 示例: 在我们的 Update Documentation cookbook 中,第一个工作流让 agent 可以:
  • 分析 PR 变更
  • 创建并管理 git 分支
  • 提交并推送更改
  • 在 pull request 下发布评论
  • 处理所有错误情形
- name: 更新文档(完全自治)
  run: |
    cursor-agent -p "你拥有对 git、GitHub CLI 以及 PR 操作的完全访问权限。
    负责处理整个文档更新流程,包括提交、推送和 PR 评论。"

受限自治方案

我们建议在生产 CI 工作流中,将此方案与基于权限的约束一起使用。这样你能两全其美:agent 可智能处理复杂分析与文件修改,而关键操作仍保持确定且可审计。
将关键步骤放到独立的工作流步骤中处理,同时限制 agent 的操作。更可控、更可预测。 示例: 同一份 cookbook 中的第二个工作流将 agent 限制为仅进行文件修改:
- name: 生成文档更新(受限)
  run: |
    cursor-agent -p "重要:不要创建分支、提交、推送,或在 PR 中发表评论。
    只修改工作目录中的文件。发布由后续的工作流步骤处理。"

- name: 发布文档分支(确定性)
  run: |
    # 由 CI 处理的确定性 git 操作
    git checkout -B "docs/${{ github.head_ref }}"
    git add -A
    git commit -m "docs: 更新此 PR"
    git push origin "docs/${{ github.head_ref }}"

- name: 发布 PR 评论(确定性)  
  run: |
    # 由 CI 处理的确定性 PR 评论
    gh pr comment ${{ github.event.pull_request.number }} --body "文档已更新"

基于权限的限制

使用权限配置在 CLI 层面强制执行限制:
{
  "permissions": {
    "allow": [
      "读取(**/*.md)",
      "写入(docs/**/*)",
      "Shell(grep)",
      "Shell(find)"
    ],
    "deny": [
      "Shell(git)",
      "Shell(gh)", 
      "写入(.env*)",
      "写入(package.json)"
    ]
  }
}

身份验证

生成你的 API 密钥

先在 Cursor 控制台生成一个 API 密钥

配置仓库机密

把你的 Cursor API 密钥安全地存到仓库里:
  1. 打开你的 GitHub 仓库
  2. 点击 SettingsSecrets and variablesActions
  3. 点击 New repository secret
  4. 将名称设为 CURSOR_API_KEY
  5. 将你的 API 密钥粘贴到值中
  6. 点击 Add secret

在工作流中使用

设置你的 CURSOR_API_KEY 环境变量:
env:
  CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
I