anggaprytn/review-gate

GitHub: anggaprytn/review-gate

ReviewGate 是一个本地优先的 GitLab AI 合并请求审查工具,用于安全、运维和研究场景。

Stars: 1 | Forks: 0

![Review Gate Cover](https://testing-1355450658.cos.ap-jakarta.myqcloud.com/review-gate.webp) # ReviewGate ReviewGate 是一个 alpha 版本、本地优先的 GitLab AI 合并请求审查 CLI。它为在 GitLab.com、GitLab 自托管或仅通过 VPN 或私有网络可访问的 GitLab 实例上审查代码的团队而构建。 ReviewGate 在您的代码所在的位置运行:在开发机器上、在 GitLab CI 中或您的私有网络内部。它首先针对 GitLab,没有 SaaS 后端,不需要公共 webhook,并且在 v0.1 版本中不包含仪表板。 ## 安装 ``` curl -fsSL https://raw.githubusercontent.com/anggaprytn/review-gate/main/scripts/install.sh | sh reviewgate doctor ``` 默认安装程序解析最新的 GitHub 发布版本并下载匹配的预构建二进制文件。您不需要为正常安装路径设置 `REVIEWGATE_VERSION`。 当前版本:`v0.1.0-alpha.2`。ReviewGate 是 alpha 软件版本:请期待粗糙的边缘,保持审查输出为人工审查,并在发布合并请求之前使用 `--dry-run` 或 `--preview`。 ## 它能做什么 - 从 GitLab 获取合并请求元数据和差异。 - 纠正明显的机密信息并构建一个有界的审查提示。 - 在 CLI 中本地生成审查预览。 - 使用 `--publish` 发布一个顶级摘要注释。 - 可选地使用 `--publish --publish-inline` 发布内联 GitLab 注释。 - 验证之前的 ReviewGate 发现是否已修复。 - 在 SQLite 中存储本地审查和验证历史。 简单的 `reviewgate review --publish` 仅包含摘要。内联注释需要显式第二个标志 `--publish-inline`。 ## 提供者 ReviewGate 支持以下提供者模式。提供者选择控制模型推理发生的位置: - `gemini_cli`:默认提供者。使用本地 Gemini CLI 客户端和本地 CLI 认证,但仍然将清理后的审查有效负载发送到外部模型服务。 - `codex_cli`:使用本地 Codex CLI 客户端和本地 CLI 认证,但仍然将清理后的审查有效负载发送到外部模型服务。 - `ollama`:当 Ollama 和所选模型在您的环境中运行时,这是真正的本地优先模型模式。 ReviewGate 在 v0.1 版本中不包括直接 OpenAI 或 Gemini API 提供者。 ## 快速入门 安装 ReviewGate,然后安装并认证一个提供者。对于默认的 Gemini CLI 模式,在运行 ReviewGate 之前认证 `gemini` CLI。 ``` export GITLAB_TOKEN="your-token" export REVIEWGATE_LLM_PROVIDER=gemini_cli reviewgate review "$MR_URL" --dry-run reviewgate review "$MR_URL" --preview reviewgate review "$MR_URL" --publish reviewgate review "$MR_URL" --publish --publish-inline reviewgate verify "$MR_URL" --preview reviewgate verify "$MR_URL" --publish ``` 对于从源代码进行本地开发: ``` cargo run -- review "$MR_URL" --preview cargo run -- doctor ``` 更多详情:[docs/quickstart.md](docs/quickstart.md). ## GitLab 支持 ReviewGate 在 v0.1 版本中是 GitLab 优先的。它与 GitLab.com、GitLab 自托管和仅通过 VPN 或私有网络可访问的 GitLab 实例一起工作。为 API 访问设置 `GITLAB_TOKEN` 或 `REVIEWGATE_GITLAB_TOKEN`。 在 GitLab CI 中: ``` reviewgate: stage: review before_script: - curl -fsSL https://raw.githubusercontent.com/anggaprytn/review-gate/main/scripts/install.sh | sh script: - reviewgate review --ci --publish rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' ``` `CI_JOB_TOKEN` 仅在 `REVIEWGATE_ALLOW_CI_JOB_TOKEN=true` 时可选。建议的令牌来源是 `GITLAB_TOKEN` 或 `REVIEWGATE_GITLAB_TOKEN`。 更多详情:[docs/gitlab-ci.md](docs/gitlab-ci.md). ## 验证 `reviewgate verify` 检查之前的 ReviewGate 发现是否在当前的合并请求状态中已修复。它使用早期 ReviewGate 运行的本地 SQLite 历史,因此当 `.reviewgate/reviewgate.sqlite` 在本地运行之间保持或在不同 CI 作业之间恢复时,它工作得最好。 ``` reviewgate verify "$MR_URL" --preview reviewgate verify "$MR_URL" --publish ``` ## 发布和归属 每个生成的 GitLab 注释都包含可见的归属: ``` [AI generated by ReviewGate] ``` ReviewGate 还保留隐藏的标记以进行去重和更新: - `reviewgate:summary` - `reviewgate:inline` - `reviewgate:verification` 这些标记允许 ReviewGate 更新现有注释并避免重复的内联注释。 ## 本地历史 ReviewGate 默认在 `.reviewgate/reviewgate.sqlite` 中存储 SQLite 历史。此历史记录为验证和本地去重元数据提供动力。 默认情况下,ReviewGate 不存储原始差异、原始提示或原始模型有效负载。令牌从配置或环境加载,并且不持久化。ReviewGate 不将代码发送到 ReviewGate 后端,因为在 v0.1 版本中没有 ReviewGate SaaS 后端;模型流量仅流向您配置的提供者模式。 ## Doctor 在不联系 GitLab 或模型服务的情况下运行本地环境检查: ``` reviewgate doctor ``` 运行可选的网络检查: ``` reviewgate doctor --network ``` ## Alpha 注意事项 ReviewGate v0.1 故意以 CLI 优先和 alpha 质量为主: - GitLab 优先;没有 GitHub 提供者支持。 - 没有仪表板。 - 没有SaaS 后端。 - 不需要公共 webhook。 - Docker 镜像旨在用于 GitLab CI、私有运行器和内部网络。 - 没有Semgrep 集成。 - 内联 GitLab 注释是可选的,并受 `--publish-inline` 限制。 - 远程 CLI 提供者可以在 ReviewGate 控制之外更改行为。 - 机密信息删除是尽力而为的,不应取代正常的机密信息处理。 ## 文档 - [快速入门](docs/quickstart.md) - [GitLab CI](docs/gitlab-ci.md) - [Docker](docs/docker.md) - [提供者](docs/providers.md) - [配置](docs/configuration.md) - [隐私](docs/privacy.md) - [发布](docs/release.md) - [产品概述](docs/product-overview.md) ## 贡献 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md), [SECURITY.md](SECURITY.md), 和 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md). ## 许可证 MIT。请参阅 [LICENSE](LICENSE).
标签:AI 工具, CLI 工具, GitLab, ProjectDiscovery, TLS抓取, 二进制发布, 代码合并, 代码安全, 代码审查, 可视化界面, 安全可观测性, 安全合规, 安全审查, 安全测试, 安全漏洞检测, 安全防护, 开源工具, 开源框架, 持续部署, 持续集成, 攻击性安全, 敏捷开发, 数据保护, 日志审计, 本地化应用, 漏洞枚举, 版本控制, 私有化部署, 网络代理, 网络安全, 自动化审查, 软件安全, 通知系统, 防御规避, 隐私保护