gerrit 代码审查:从环境搭建到审查实践

这门课针对企业开发中代码审查流程的痛点,聚焦于 Gerrit 作为集中式审查工具的实战应用。主要解决学习者从理解概念到独立配置、使用和管理的进阶问题。课程通过 Docker 和 OpenLDAP 的快速部署,引导学员掌握从零到一搭建审查环境的过程,弥补实际项目中环境配置与使用操作的知识断层。适合已掌握 Git 基础,但需要将代码审查纳入日常工作流程的开发者、测试工程师或项目负责人。学习门槛在于学员需具备 Linux 基础命令操作能力,以及理解 Git 分支、提交等基本概念。建议先学习 1-1 到 1-3 节,建立对代码审查必要性和 Gerrit 工作原理的整体认知,再进入 2-1 到 3-4 节的环境搭建和快速入门阶段。

核心能力与学习顺序

这门课的核心是解决“如何搭建并有效利用 Gerrit 实现代码审查”的问题。具体能力缺口包括:对集中式代码审查的价值认知不足、缺乏配置和管理经验、不熟悉 Web UI 和 SSH 方式的操作差异。课程通过学习顺序:先理解代码审查的好处与角色(1-1 到 1-2),再快速掌握 Docker 环境下的安装与配置(2-1 到 2-4),接着通过创建项目和克隆操作(3-1 到 3-2)熟悉基本交互,最后通过 Nginx 代理(3-3)和综合示例(3-4)深化实战能力。看完应能回答:Gerrit 如何通过插件增强代码质量、如何设计权限矩阵避免审查冲突、如何利用 Web UI 和命令行高效管理 Change。配套练习围绕环境搭建展开,如使用 Docker 快速部署包含 OpenLDAP 的完整实例,通过 `gerrit.conf` 调整 Web 代理和认证策略,以及配置项目权限和触发审查的钩子。

独立操作与资料配合

学完能独立完成从环境初始化到项目审查的全流程操作。具体可独立完成:基于 Docker Compose 搭建多服务(Gerrit+OpenLDAP+Nginx)环境,手动或通过模板生成 `gerrit.conf` 实现自定义代理设置,创建项目并配置访问控制,执行 `git push` 提交 Change 并通过 Web UI 或命令行进行审查、评论和拒绝操作。针对环境搭建,需重点关注 2-1 节的 Docker 安装细节和 2-4 节的 `gerrit.conf` 配置要点,理解如何通过 `authProvider` 和 `httpProxy` 参数整合 OpenLDAP。结合 3-1 和 3-2 节,对比分析 HTTP 方式和 SSH 方式的访问日志差异,并尝试修改 `gerrit/src/main/webapp/WEB-INF/gerrit.properties` 调整默认行为。重点需跟进 OpenLDAP 的 LDIF 文件导入过程,确保认证链完整。通过 Nginx 配置验证跨域访问问题,并初步接触 gerrit 的 REST API 调用方式,为后续自动化集成打下基础。

课程目录

1-1 [gerrit 介绍] 代码审查的好处 (15:17)
1-2 [gerrit 介绍] 代码评审的角色 (13:14)
1-3 [gerrit 介绍] gerrit 的概述 (15:17)
2-1 [gerrit 安装] docker 的安装 (08:06)
2-2 [gerrit 安装] openldap 安装 (09:28)
2-3 [gerrit 安装] gerrit 安装 (20:24)
2-4 [gerrit 安装] gerrit.conf 配置 (12:46)
3-1 [gerrit 快速入门] 创建一个项目 (15:10)
3-2 [gerrit 快速入门] gerrit 使用 ssh 克隆 (05:12)
3-3 [gerrit 快速入门] nginx 代理 gerrit (10:21)
3-4 [gerrit 快速入门] gerrit 使用示例 (15:01)
4-1 [项目权限] 组的管理 (14:59)
4-2 [项目权限] 项目权限介绍 (19:27)
4-3 [项目权限] 项目权限模板介绍 (18:19)
5-1 [代码审查] 设置 Topic (12:02)
5-2 [代码审查] 自动添加审核者 (23:15)
5-3 [代码审查] 审核标签配置与创建 (38:01)
6-1 [提交类型和并发性] 提交类型(1) (21:52)
6-2 [提交类型和并发性] 提交类型(2) (15:05)
6-3 [提交类型和并发性] 并发代码审查 (16:13)
6-4 [提交类型和并发性] Abandon 更改 (12:50)
6-5 [提交类型和并发性] cherry pick 的使用 (10:04)
6-6 [提交类型和并发性] follow-up 的使用 (07:42)
6-7 [提交类型和并发性] 移动更改 (06:02)
6-8 [提交类型和并发性] 更改进行中WIP (10:19)
6-9 [提交类型和并发性] 私有更改 (08:26)
7-1 [外部服务的集成] gerrit 与 gitlab 的集成 (25:48)
7-2 [外部服务的集成] gerrit 与 jenkins 的集成(1) (18:17)
7-3 [外部服务的集成] gerrit 与 jenkins 的集成(2) (16:59)
8-1 [gerrit 代码审核示例] 分支模型介绍 (07:32)
8-2 [gerrit 代码审核示例] gerrit 分支模型示例(1) (19:57)
8-3 [gerrit 代码审核示例] gerrit 分支模型示例(2) (23:08)