Skip to content

GitLab 集成

当你希望 Oratorio 把真实的 GitLab Issue 和 Merge Request 拉进看板时,可以接入 GitLab。Oratorio 能同步工作项、保持卡片更新、展示最新讨论;在你允许回写后,还能把留言、审阅反馈、审阅状态和交付出的 Merge Request 写回 GitLab。

NOTE

如果是第一次设置 Oratorio,请先从 快速开始 开始。本页只讲 GitLab 相关配置。DotCraft 设置见 接入 DotCraft;完整字段说明见 配置参考

开始之前

你需要准备:

  • 目标 GitLab 项目的访问权限;
  • 每个项目各自的 GitLab Token;
  • 已经在 DotCraft 中打开并可用的同一个项目;
  • 如果想用 Webhook 自动更新看板,还需要一个 GitLab 能访问到的 Oratorio server 地址。

如果 Oratorio 只在你的电脑上本地运行,GitLab 访问不到它,也没关系。手动同步和定时同步仍然可用。

在 Oratorio 中添加项目

打开 Settings → Credentials → GitLab

  • GitLab.com 可以保留默认地址。
  • 自建 GitLab 填入 GitLab 服务器主页地址即可,不需要自己补 GitLab API 路径。
  • 打开 GitLab read sync,用于导入 Issue 和 Merge Request。
  • 只有当你希望 Oratorio 写回留言、审阅状态或交付 Merge Request 时,才打开 GitLab writes

然后进入 Settings → Projects,添加一条 GitLab 项目。

  • GitLab project 中填入 GitLab 里看到的项目路径。带 subgroup 的路径也支持。
  • DotCraft workspace 中选择已经交给 DotCraft 使用的本地项目目录。
  • 在同一张项目卡片上填入 GitLab Token,以及你准备给 Webhook 使用的 secret 或 signing token。

保存设置。如果 Oratorio 提示需要重启,请先重启本地 server,再测试连接。

创建 GitLab Token

大多数团队优先使用 Project Access Token,因为它只作用于一个项目。Group Token 或 Personal Token 也能用,但范围更大,需要更谨慎地保存和分发。

按你想开启的能力,选择尽量小的权限:

你想做的事GitLab 中需要允许的访问
只导入 Issue 和 Merge Requestread API access
读取仓库信息用于审阅repository read access
把实现结果交付成 Merge Requestrepository write access
发布留言、讨论、审阅状态或 Merge RequestAPI access

Oratorio 保存后不会再显示 Token 明文。想保留原值就留空;想替换就粘贴新值并保存。

添加 GitLab Webhook

Webhook 不是必需的,但它能让 Oratorio 更快感知 GitLab 中的变化。

在 GitLab 项目的 Webhook 设置中,添加一个地址:你的 Oratorio server 地址后面接上 /api/v1/sources/gitlab/webhook。

Webhook 使用的 secret 或 signing token,要和 Oratorio 项目卡片中保存的值一致。事件建议开启 Issue、Merge Request、comment 或 note 相关事件。保存后,如果 GitLab 提供测试按钮,可以先测试一次,再回到 Oratorio 的 Settings → Sources 查看状态。

如果测试无法到达 Oratorio,通常是因为 GitLab 访问不到你的 Oratorio server。本地桌面会话通常不能直接接收 GitLab cloud 发来的 Webhook。

同步与审阅

打开 Settings → Sources 可以查看 GitLab 状态。

  • 想立刻导入时,点击 Pull now
  • 想让 Oratorio 定期检查 GitLab,可以开启定时同步。
  • 只有在需要重新检查整个项目时,才使用 full repair。

在 Oratorio 中审阅 GitLab Merge Request 时:

  • 通过 会在 GitLab 中记录一条通过的 Oratorio 审阅状态。
  • 要求修改 会留下反馈,并记录这次 Oratorio 审阅仍需处理。
  • 作废 会记录这项工作不应继续推进。

GitLab 的原生审阅状态和 GitHub 不完全一样,所以 Oratorio 会用留言和审阅状态把你的决定显示在 GitLab 中。

排查

看不到 GitLab 卡片。 检查 read sync 是否开启、项目路径是否正确、项目是否填了 Token,以及项目是否映射到了 DotCraft workspace。

一个项目能用,另一个不能。 每个 GitLab 项目都需要自己的项目卡片和 Token。回到 Settings → Projects 检查对应卡片。

Webhook 没有更新。 确认 Webhook 地址能被 GitLab 访问、secret 或 signing token 一致,并且事件包含 Issue、Merge Request 和 note。

回写失败。 确认 GitLab writes 已开启、Token 权限足够,并且本地 workspace 是同一个 GitLab 项目的 clone。

无法创建 Merge Request。 确认 Token 可以推送分支并创建 Merge Request,目标分支也允许新的 Merge Request。

修改了 GitLab server 地址。 保存后请重新填写项目 Token。Oratorio 会把不同 GitLab host 上的项目视为不同连接。

Apache License 2.0