跳转到主要内容
Qoder Action 是标准的 GitHub Actions 组件,将 Qoder CLI 的强大能力带入 GitHub 工作流,让智能代码协作直接在 PR 和 Issue 中进行。通过简单的配置,即可在 GitHub Actions Runner 上运行 Qoder CLI,为团队提供两种开箱即用的核心能力:自动 PR 审查@qoder 交互式协作 访问 Qoder Action 仓库 →

主要特性

  • 智能 PR 自动审查:每个 Pull Request 自动获得全面的代码审查,检测代码缺陷、安全漏洞、测试覆盖率等问题,在合并前提升代码质量
  • @qoder 随时响应:在任何评论中 @qoder,即可获得代码解释、实现建议或直接修复
  • 深度理解项目:尊重项目的代码规范、架构模式和业务逻辑
  • 快速配置:几分钟即可完成配置,立即提升团队效率
  • 安全可靠:代码在 GitHub Runner 上运行,保障数据安全

快速开始

方式一:快速配置(推荐)

在 qodercli 中执行 /setup-github 命令,按照引导完成配置。

方式二:手动配置

1. 安装 GitHub App 并获取访问令牌

  1. 访问 Qoder Integrations
  2. 将 Qoder 账户与 GitHub 账户进行关联,并安装 qoderai GitHub App 到目标仓库
  3. 生成 Qoder 访问令牌(Qoder Personal Access Token)
注意:如果之前已安装过 qoderai,请访问 GitHub APP 安装列表 检查 qoderai 是否有权限升级请求,如有请授予必要的权限。

2. 添加 Qoder 访问令牌到仓库 Secrets

在仓库的 Settings > Secrets and variables > Actions 中添加 QODER_PERSONAL_ACCESS_TOKEN,保存 Qoder 个人访问令牌。

3. 选择并安装工作流

访问 Qoder Action examples,选择适合需求的工作流,然后复制到仓库的 .github/workflows/ 目录中。
  • Code Review:自动分析 Pull Request 的代码质量、测试覆盖和安全问题
  • Assistant:在 Issue 和 PR 中启用交互式对话(@qoder),解释代码或修复问题

4. 开始使用

  • Code Review:创建一个新的 Pull Request,等待 Qoder 的反馈
  • Assistant:在任意 Issue 或 PR 中评论 @qoder 解释这段代码@qoder 修复这个问题

最佳实践

自定义输出语言

prompt 中指定输出语言:
- name: Run Qoder Code Review
  uses: QoderAI/qoder-action@v0
  with:
    qoder_personal_access_token: ${{ secrets.QODER_PERSONAL_ACCESS_TOKEN }}
    prompt: |
      /review-pr
      REPO:${{ github.repository }} PR_NUMBER:${{ github.event.pull_request.number }}
      OUTPUT_LANGUAGE: Chinese

使用 Agents.md 定义审查规则

在仓库根目录创建 Agents.md 文件,Qoder CLI 会自动加载其中的内容作为上下文:
# 项目代码审查规范

## 审查重点
- 所有数据库查询必须使用参数化查询,禁止字符串拼接
- API 接口必须进行权限验证
- 敏感信息(密码、token)不得硬编码或记录到日志
- 所有外部输入必须进行验证和清理

## 可以忽略的检查
- 测试文件(`*.test.js`、`*.spec.ts`)的代码重复检查
- 自动生成的文件(`generated/`、`dist/`)的代码风格问题
- Mock 数据文件的复杂度警告

## 团队约定
- 使用 async/await 而非 Promise.then()
- 组件命名使用 PascalCase
- 工具函数使用 camelCase
- 常量使用 UPPER_SNAKE_CASE

根据 PR 大小跳过审查

对于大型 PR,可以添加跳过条件来避免过高的 credits 消耗:
steps:
  - name: Check PR Size
    id: check_size
    run: |
      # 获取 PR 新增的代码行数
      LINES_CHANGED=$(jq .pull_request.additions < $GITHUB_EVENT_PATH)
      echo "代码变更行数: $LINES_CHANGED"
      
      # 如果超过 500 行,则跳过审查以控制成本
      if [ "$LINES_CHANGED" -gt 500 ]; then
        echo "skip=true" >> $GITHUB_OUTPUT
      else
        echo "skip=false" >> $GITHUB_OUTPUT
      fi

  - uses: QoderAI/qoder-action@v0
    if: steps.check_size.outputs.skip == 'false'  # 仅当 PR 大小未超过阈值时执行
    # ... 其他配置

更多配置示例:访问 Recipes 文档 查看完整的配置示例和最佳实践。

技术支持