GitLab 集成
GitLab 集成提供两类连接:
- GitLab(gitlab.com):组织用 OAuth 连接 gitlab.com,把合并请求和提交关联到任务,自动更新状态,并在 GitLab 上发送任务回链。
- GitLab 自部署版:用自己的 GitLab 实例时,改用个人访问令牌连接;实例部署在内网、云上访问不到时,可以选择一台在线电脑作为内网代理访问。同样支持 Issue 同步、合并请求与提交关联和任务回链。
入口都在 外部应用集成。两种连接互相独立,使用哪类就绑定哪类。
连接 gitlab.com
组织 owner 或 admin 可以在 GitLab 集成页绑定组织。如果当前部署还没有配置 GitLab OAuth 凭据,页面会提示需要管理员先完成配置。
绑定组织后,成员可以在同一页面连接自己的 GitLab 账号,用于接收通知和身份匹配。
连接自部署 GitLab
自部署实例不使用 OAuth,由管理员用个人访问令牌完成组织连接:
- 打开 外部应用集成,进入 GitLab 自部署版 详情页。
- 填写 GitLab 地址,例如
https://gitlab.your-company.com(填平时打开 GitLab 用的根地址)。 - 在 GitLab 的 个人设置 中创建个人访问令牌,勾选
api权限,粘贴到连接对话框。建议使用专门的机器人账号。 - 令牌所属账号需要在要同步的项目中是 Maintainer 或以上,系统会用它创建 Webhook、同步 Issue 和发回链评论。
- 如果实例部署在内网,选择一台能访问它的在线电脑作为 内网代理。
- 点击连接。连接成功后,连接信息会显示令牌到期日和所用的代理电脑。
令牌无效、权限不足、地址跳转或访问不到时,页面会按真实原因提示;按提示修正令牌或地址后重试即可。
使用内网代理
GitLab 实例部署在内网、云端直接访问不到时,在连接时选择一台能打开该地址的电脑作为内网代理。选择后,HiFox 对 GitLab 的访问都会通过这台电脑进行。
- 只有在线电脑可选,离线电脑不可选;
- 代理电脑被移除后,连接会提示重新选择一台电脑;
- 所选电脑访问不到 GitLab 地址时,请确认这台电脑所在的网络能打开该地址。
更换令牌
令牌支持更换。连接会显示令牌到期日;令牌即将过期或已过期时,页面会提示尽快更换,避免同步和回链中断。
绑定个人账号(自部署)
组织连接自部署 GitLab 后,成员可以在同一页面粘贴自己的个人访问令牌完成个人绑定:
- 绑定后,你在任务里发的评论会以你本人的身份出现在 GitLab 上,处理人也会双向同步;
- 个人令牌只用于你自己的评论和处理人同步,不影响组织的连接;
- 你的令牌缺失或过期时,评论会暂时由组织连接的账号代发,页面会提示补填令牌;
- 同一时间只能绑定一个 GitLab 实例的个人账号,在其他实例上的绑定会被这里的绑定替换。
Issue 同步
GitLab 集成包含 Issue 同步入口:把 GitLab 项目关联到空间后,GitLab issue 与任务保持同步,标题、描述、状态和评论一致。自部署实例的项目同样可以关联,走组织连接时选择的线路(含内网代理)。
Webhook 配置
合并请求和提交关联通过 GitLab Webhook 接收事件,需要你把 Webhook 配到 GitLab 项目里:
- 在项目的 Settings → Webhooks 添加 HiFox 提供的 URL 和 Secret;
- 事件勾选 Push events 和 Merge request events;
- 打算关联多个项目时,群组级 Webhook 更省事,但它只在 GitLab Premium / Ultimate 可用;Free 套餐在每个项目里填同一份 URL 和 Secret 即可。
具体的 URL、Secret 和配置路径以集成页的配置指引为准。
常见问题
自部署页提示先由管理员连接怎么办?
自部署实例的组织连接必须先由管理员用个人访问令牌完成,之后成员才能绑定个人账号。先请管理员完成上面的组织连接步骤。
连接时提示访问不到 GitLab 地址?
实例在内网时会出现这个提示。请改选一台能访问该地址的电脑作为内网代理后再连接;如果已经选了代理电脑,请确认那台电脑所在网络能打开 GitLab。
令牌需要什么权限?
个人访问令牌需要勾选 api 权限。要同步 Issue 和发回链评论的账号,还需要在对应项目中是 Maintainer 或以上。
断开连接会删除任务或代码吗?
不会。断开只停止 HiFox 与 GitLab 之间的关联和同步,GitLab 上的代码、合并请求和 issue 都不受影响。