Open Code Review 项目解析知识图谱 / 分组目录 / 集成生态 / 其他 CI 集成

其他 CI 集成

集成生态高级工具G-E · 集成生态

What · 是什么

GitLab CI / Gerrit Jenkinsfile / GitFlic CI / Bitbucket Pipelines / 阿里云 Codeup CI + post_review.py 评论回贴
examples/ 目录提供 6 套非 GitHub CI 集成模板:gitlab_ci、gerrit_ci、gitflic_ci、bitbucket_pipelines、codeup_ci
gitlab_ci:.gitlab-ci.yml + post_review.py,环境变量 OCR_LLM_URL/OCR_LLM_TOKEN/OCR_LLM_MODEL + 重试系列 OCR_RETRY_BASE_DELAY/OCR_MAX_RETRIES + OCR_STICKY_SUMMARY/OCR_INCREMENTAL/OCR_ROUTE_*/OCR_FAIL_ON_SEVERITY
gitlab_ci 产物:.ocr/ocr-stats.env + result.json + stderr.log,支持 fork MR
gerrit_ci:Jenkinsfile + post_review.py
gitflic_ci:gitflic-ci.yaml + post_review.py
bitbucket_pipelines:bitbucket-pipelines.yml;codeup_ci:阿里云 Codeup codeup-flow.yml + post_review.py

Why · 为什么

原理 · Principle

覆盖国内常用平台:阿里云 Codeup、GitLab、Bitbucket 等,多平台审查体验一致

环境变量式配置天然适配各 CI 平台的 secrets/变量注入机制

gitlab_ci 支持 fork MR,保证开源协作场景可用

How · 怎么做

GitLab:参考 examples/gitlab_ci/.gitlab-ci.yml 配置 job,变量经 GitLab CI/CD Variables 注入
重试控制:OCR_RETRY_BASE_DELAY 与 OCR_MAX_RETRIES 配合调 API 重试策略
增量/粘性对齐:OCR_INCREMENTAL / OCR_STICKY_SUMMARY 行为与 GHA 版一致
路由:OCR_ROUTE_* 系列按严重级/类别分流 finding
失败策略:OCR_FAIL_ON_SEVERITY 设定达到某严重度即令 CI 失败
阿里云用户:直接套用 examples/codeup_ci/codeup-flow.yml
结果消费:解析 .ocr/ocr-stats.env 与 result.json 供下游步骤使用

案例 · Cases

代表性案例
GitLab 私有仓库 MR 审查:gitlab_ci 模板 + CI/CD Variables 注入三件套
阿里云 Codeup 用户:codeup-flow.yml 开箱即用
Gerrit 评审流:Jenkinsfile + post_review.py 集成
fork MR 场景:gitlab_ci 支持 fork MR 解析

反模式 · Anti-patterns

正反实例论证 · Evidence

正例 · Pro
GitLab CI 变量注入 + 重试配置
variables: OCR_LLM_URL: "$LLM_URL" OCR_LLM_TOKEN: "$LLM_TOKEN" OCR_LLM_MODEL: "deepseek-chat" OCR_RETRY_BASE_DELAY: "1" OCR_MAX_RETRIES: "3"
gitlab_ci 模板用 OCR_LLM_URL/OCR_LLM_TOKEN/OCR_LLM_MODEL 三件套注入连接,OCR_RETRY_BASE_DELAY 与 OCR_MAX_RETRIES 配合应对网络抖动。
反例 · Con
忘记三件套任务启动即失败
variables: OCR_LLM_MODEL: "deepseek-chat"
缺 OCR_LLM_URL 与 OCR_LLM_TOKEN 时任务启动即鉴权失败,且错误只出现在运行时而非配置期。
正例 · Pro
失败策略 + 产物留档
variables: OCR_FAIL_ON_SEVERITY: "high" OCR_STICKY_SUMMARY: "true" OCR_INCREMENTAL: "true"after_script: - cat .ocr/ocr-stats.env
OCR_FAIL_ON_SEVERITY 达 high 才阻断 CI;产物 .ocr/ocr-stats.env + result.json + stderr.log 供事后排查,增量/粘性行为与 GHA 版对齐。
反例 · Con
乱设 OCR_FAIL_ON_SEVERITY 阻塞流水线
variables: OCR_FAIL_ON_SEVERITY: "info"
严重度门槛设得过低,低危 finding 也会令 CI 失败,频繁阻塞流水线与发布。
正例 · Pro
fork MR 与多平台覆盖
# examples/gitlab_ci:.gitlab-ci.yml + post_review.py,支持 fork MR# examples/gerrit_ci:Jenkinsfile + post_review.py# examples/codeup_ci:阿里云 Codeup codeup-flow.yml + post_review.py
examples/ 提供 6 套模板(gitlab_ci/gerrit_ci/gitflic_ci/bitbucket_pipelines/codeup_ci),gitlab_ci 支持 fork MR,行为与 GHA 版对齐(OCR_INCREMENTAL/OCR_STICKY_SUMMARY/OCR_ROUTE_*)。
反例 · Con
照抄 GHA 输入名到其他 CI
variables: llm_url: "https://..." llm_model: "deepseek-chat"
非 GitHub 集成使用 OCR_* 环境变量体系(OCR_LLM_URL/TOKEN/MODEL 等),照抄 GHA 的 llm_url/llm_model 输入名不会被识别,配置静默不生效。

实践资产 · Assets

CI 集成
GitLab CI 审查作业示例(含 OCR_* 环境变量族)
examples/gitlab_ci/.gitlab-ci.yml · 9775 B
CI 集成
Gerrit 评审流 Jenkinsfile 示例
examples/gerrit_ci/Jenkinsfile · 5261 B
CI 集成
阿里云 Codeup CI 示例
examples/codeup_ci/codeup-flow.yml · 1894 B
CI 集成
GitFlic CI 示例
examples/gitflic_ci/gitflic-ci.yaml · 3407 B
CI 集成
Bitbucket Pipelines 示例
examples/bitbucket_pipelines/bitbucket-pipelines.yml · 10666 B

相关边