
welltravel/pronto-actionGitHub Pronto Action 是专为 GitHub Actions 设计的 Docker 镜像,旨在将 Pronto 轻量级代码审查工具无缝集成到 CI/CD 工作流程中。Pronto 聚焦于分析 Git 仓库中的变更文件(而非全量代码),结合 RuboCop、ESLint、flake8 等主流静态分析工具,可在代码提交或 PR 创建阶段快速定位潜在问题,帮助团队提升代码质量与开发效率。
仅针对 Git 仓库中未提交的变更或指定分支间的差异文件进行扫描,避免全量代码分析,大幅减少资源消耗和审查时间。
通过 Pronto 插件系统兼容多种语言的静态分析工具,包括但不限于:
push、pull_request),可按需触发审查流程。支持通过环境变量或配置文件自定义分析规则、工具组合、忽略文件/目录等,适配不同项目的个性化需求。
push 事件触发时自动分析变更文件,防止问题代码进入仓库。pull_request 事件中作为合并前置检查,确保代码符合团队规范。本地测试或非 GitHub Actions 环境使用时,通过 docker run 命令运行:
bashdocker run --rm \ -v $(pwd):/app \ # 挂载本地代码目录至容器内 /app -e GITHUB_TOKEN="your_github_token" \ # 可选,用于 PR 评论 -e PRONTO_RUNNERS="eslint,rubocop" \ # 逗号分隔的静态分析工具列表 -e BASE_BRANCH="main" \ # 基准分支,默认 main -e IGNORE_PATHS="node_modules/**,vendor/**" \ # 可选,忽略目录 github-pronto-action:latest
在仓库 .github/workflows/ 目录下创建工作流文件(如 pronto-review.yml):
yamlname: Pronto Code Review on: push: branches: [ "main", "develop" ] pull_request: branches: [ "main", "develop" ] jobs: pronto-review: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 # 获取完整历史以比较分支差异 - name: Install dependencies run: | # 按需安装静态分析工具依赖(示例为 Node.js 项目) npm install - name: Run Pronto review uses: docker://github-pronto-action:latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # 用于 PR 评论 PRONTO_RUNNERS: "eslint" # 指定分析工具 BASE_BRANCH: "main" # 基准分支 IGNORE_PATHS: "node_modules/**" # 忽略目录
| 环境变量名 | 描述 | 默认值 | 是否必填 |
|---|---|---|---|
GITHUB_TOKEN | GitHub 令牌,用于向 PR 提交评论(需 repo 权限) | - | 否 |
PRONTO_RUNNERS | 逗号分隔的静态分析工具列表(如 rubocop,eslint) | 空 | 是 |
BASE_BRANCH | 基准分支,用于计算变更文件(如 main、develop) | main | 否 |
IGNORE_PATHS | 忽略分析的文件/目录,支持通配符(如 vendor/**,*.md) | - | 否 |
PRONTO_CONFIG | 自定义 Pronto 配置文件路径(相对于容器内 /app 目录) | .pronto.yml | 否 |
DEBUG | 启用调试模式,输出详细日志(true/false) | false | 否 |
npm install 安装 ESLint),建议通过前置步骤完成依赖安装。actions/checkout 自动挂载,本地运行需手动挂载 -v $(pwd):/app。GITHUB_TOKEN 需具备 pull_requests: write 权限,GitHub Actions 默认令牌已包含此权限。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务