git-zadig 使用文档

git-zadig 是一个具备多仓协同管理能力的 Git 插件,具有多仓库管理、本地代码检查、多仓库提交并创建 Merge Request、汇总代码变更信息、联动 Zadig 工作流做日常迭代验证等相关功能。

目前仅支持 GitLab 。

git-zadig

管理员操作

准备 manifest 配置文件

配置 manifest 文件

manifest 数据结构完全继承自 Google 的 git-repo 工具,格式参考文档git-zadig 使用文档 - 图2 (opens new window)

  • 元素 remote 属性 type:非必填,用于指定远端代码仓类型。远端代码仓是 GitLab 时, 指定 <remote type=”gitlab”/>,可自动在变更仓库创建 MR。
  • 元素 manifest-url:非必填,指定 manifest 所在仓库地址,用于生成的提交记录链接信息。如果不填则会按照当前 manifest clone 地址自动生成,当地址比较特殊有可能自动生成不准确,这时需要手动指定。
  • 元素 record-branch :非必填,指定 manifest-url 仓库中的分支,用于记录多仓提交过程中创建的 MR 信息。需确保配置的分支在 manifest-url 仓库中已存在,并且开放该分支的 push 权限。

配置文件样例:

样例参考:https://github.com/koderover/zadig/tree/main/examples/git-zadig-demogit-zadig 使用文档 - 图3 (opens new window)

  1. <manifest>
  2. <record-branch>change-history</record-branch>
  3. <manifest-url>https://gitlab.com/kr-poc/manifest-repo</manifest-url>
  4. <remote name="origin"
  5. fetch="https://gitlab.com/kr-poc"
  6. review="https://gitlab.com"
  7. type="gitlab"/>
  8. <default revision="main"
  9. remote="origin"
  10. sync-j="4" />
  11. <project path="app-1-repo" name="app-1-repo" />
  12. <project path="app-2-repo" name="app-2-repo" />
  13. </manifest>

配置 Zadig 工作流

根据实际情况配置 Zadig 工作流,并添加相应的 Git 触发器,参考文档

  1. 构建过程使用 git-zadig 工具同步代码

git-zadig

  1. 配置触发器

git-zadig

注意

  1. 触发代码库选择 manifest 文件所在仓库
  2. 目标分支和 manifest 文件中 record-branch 元素配置保持一致
  3. 触发事件选择 Push commits

  4. 配置 IM 通知

git-zadig

准备前置检查脚本

工程师操作

下载并安装 git-zadig 工具

  1. 在 Zadig 上下载适合自己的系统版本 git-zadig 工具,如下图所示。

git-zadig

  1. 解压后,将 git-zadig 工具放入 PATH 中并添加可执行权限。

使用场景一:多仓提交并触发 Zadig 工作流

具体操作

  1. 初始化工作目录,并将所有相关 repo 下载本地
  1. git zadig init -u <manifest-url> -b <manifest-branch>
  2. git zadig sync
  1. 创建 feature 分支,开始编码
  1. git zadig start --all <branch>
  1. 完成编码后,提交代码并执行 upload 命令
  1. # 本地在各个项目目录下执行
  2. git add .
  3. git commit -m "msg"
  4. # 在 workspace 下执行
  5. git zadig upload

git-zadig

Upload 操作说明

  1. 填写必要的 MR 标题和描述信息
  2. 去除需要提交的 commit 前面的注释

实现效果

  1. Manifest 仓库获取变更汇总,变更代码库 MR 自动创建。

git-zadig 使用文档 - 图11 git-zadig 使用文档 - 图12

从输出中获取 manifest 仓库的 commit URL,访问 URL,获取多仓库代码提交的汇总信息,包括修改的代码库、feature 分支以及对应的 MR 信息

  1. 工作流自动触发效果

git-zadig 使用文档 - 图13 git-zadig 使用文档 - 图14

  1. IM 通知效果

git-zadig

使用场景二:添加前置检查脚本

  1. 为单仓/多仓添加前置检查脚本,脚本会自动识别当前工作目录是属于单仓还是多仓,分别进行初始化。
  1. git zadig hook -u <hook-url> -b <hook-branch>

git-zadig

  1. 在当前项目下进行 git 操作,可以发现 hook 检查已经注入。

git-zadig

  1. 清理单仓/多仓前置检查脚本,脚本会自动识别当前工作流目录是单仓还是多仓。
  1. git zadig hook -c