Skip to content

代码平台配置

接入你的代码托管平台,客户端才能发现待评审的 PR、读 diff、发评论 / 审批 / 合并。目前支持:

  • GitHub(github.com 与 GitHub Enterprise Server)
  • Bitbucket Server / Data Center(REST API v1,≥ 7.0)
  • GitLab(gitlab.com 与 Self-Managed,CE / EE,REST API v4,≥ 13.8,推荐 15.6+)

添加连接

设置 → 连接(或首启向导)新建一条连接,填写:

字段说明
显示名给人看的名字,可任意取
Base URL平台 API 地址,见下方各平台说明
访问令牌(PAT)平台生成的 Personal Access Token,用于 REST API 鉴权
Clone 协议pat(默认,HTTPS 内嵌令牌克隆)或 ssh(走系统 ~/.ssh/config

连接可配置多条,但同时只启用一条进行轮询;按 id 查历史 PR 不受影响。 建议按最小授权配置访问令牌。连接保存后可点「测试」验证连通。

Clone 协议

  • pat(默认):克隆走 HTTPS,URL 里内嵌令牌,无需额外配置。
  • ssh:克隆走 git@host:...,端口 / 密钥由系统 ~/.ssh/config 决定,与 PAT 无关(PAT 仅用于 REST API)。GHE / Bitbucket 自定义 SSH 端口(如 Bitbucket 默认 7999)需在 ssh config 里配好。

平台能力对比

各平台原生支持的能力不同,客户端按活动连接的平台动态调整界面——不支持的操作对应的按钮或标签不渲染、或灰显不可用。下表汇总主要差异(✅ 支持 / ❌ 不支持)。

分类能力GitHubBitbucketGitLab
发现过滤待我评审(请求我评审的 PR / MR)
发现过滤我创建的(我作为作者的 PR / MR)
发现过滤指派给我
发现过滤提及我(正文 / 评论 @ 我)
评论发 / 回复 / 编辑 / 删除评论
评论行内评论✅¹
审批通过✅²
审批需修改
审批撤销✅²
合并合并 PR / MR
合并合并受阻原因展示✅³

侧栏「发现分类」标签按平台能力显示,不支持的分类不渲染对应标签。

  • ¹ GitLab 的行内评论仅支持单行选区,GitHub / Bitbucket 支持跨多行。
  • ² GitLab 审批为 EE(Premium / Ultimate) 功能,社区版(CE)灰显不可用;且 GitLab 审批是二元的——仅「通过 / 撤销」,无「需修改」。详见 3.2 CE / EE 审批差异
  • ³ GitHub 仅给出近似的可合并状态,Bitbucket / GitLab 展示精确的受阻原因(冲突 / 待审批 / 流水线未过等)。

一、GitHub:Personal Access Token 权限参考

接入 GitHub(github.com 或 GitHub Enterprise Server)需要一个 Personal Access Token (PAT)。本节给出最小权限集。

连接里的 Base URL:github.com 留空即可(默认 https://api.github.com);GitHub Enterprise Server 填实例地址即可,如 https://<你的 GHE 域名>——/api/v3 会自动补全(手填完整 API base 也兼容)。

1.1 经典 Token(Classic PAT)— 推荐

本客户端会跨项目 / 跨仓库轮询发现待评审的 PR,覆盖范围通常不固定。经典 token 按 scope 授权、自动覆盖你有权限的全部仓库,最契合这种用法,是本客户端的推荐方式。

适用 github.com 与 GHE Server。创建:Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token

勾选的 scope:

Scope用途何时需要
repo私有仓库的 PR 读写、评论、审批、合并、克隆评审私有仓库时(最常见)
public_repo仅公开仓库的上述操作只评审公开仓库时(替代 repo
read:user读取当前用户信息(/user可选;多数情况无需单独勾也能用

评审私有仓库 → 勾 repo 即可;只评审公开仓库 → 勾 public_repo

组织开启了 SAML SSO:生成 token 后,需在 token 页面点 Configure SSO / Authorize 为对应组织授权,否则访问该组织仓库会 403。

1.2 细粒度 Token(Fine-grained PAT)— 仅适合固定仓库集

细粒度 token 必须逐个枚举授权仓库,权限更细、更安全,但需要预先固定仓库范围——与本客户端跨项目轮询的用法不太契合(新增项目 / 仓库都要回去补授权)。仅当你只评审固定的少数仓库时适合用它;否则建议用上面的经典 token。

创建:Settings → Developer settings → Personal access tokens → Fine-grained tokens

  • Repository access:选择你要评审的仓库(或某组织下全部)。
  • Repository permissions(仓库权限):
权限级别用途
MetadataRead(强制,自动包含)基础元数据 / 仓库可见
Pull requestsRead and write列 PR、读评论、发行内 / 普通评论、回复 / 编辑 / 删除、提交审批(通过 / 需修改 / 撤销)
ContentsRead and write克隆仓库(read)+ 合并 PR(merge 写目标分支,需 write)
ChecksRead(可选)让「可合并状态」更准确(识别必需检查未通过)
Commit statusesRead(可选)同上,识别 status 检查

最小可用集:Pull requests: RW + Contents: RW + Metadata: R。 只读不合并也不发评论的话,可降到 Pull requests / Contents 均为 Read(但本客户端的评论 / 审批 / 合并会不可用)。

细粒度 token 在 GitHub Enterprise Server 上的可用性随版本而定;较老的 GHE 只支持经典 token——这种情况用上面的 Classic PAT(repo)。

1.3 按客户端操作对应的权限速查

客户端操作端点ClassicFine-grained
发现待我评审的 PRGET /search/issuesrepo / public_repoPull requests: R
读 PR / 评论 / 提交GET /pulls/issues/{n}/comments/pulls/{n}/commits同上Pull requests: R(+ Contents: R 取提交)
发 / 改 / 删 评论、回复POST/PATCH/DELETE …/comments同上Pull requests: RW
审批(通过 / 需修改 / 撤销)POST …/reviewsPUT …/reviews/{id}/dismissals同上Pull requests: RW
合并 PRPUT …/pulls/{n}/merge同上Contents: RW
克隆仓库(本地 diff)git over HTTPS(PAT)同上Contents: R
头像 / 评论内嵌图片资源 URL(带 token)同上无需额外

1.4 注意事项

  • 不能审批自己创建的 PR:GitHub 限制(会 422)。客户端已对自己作者的 PR 灰显审批按钮。
  • 合并需要 Contents 写权限:仅给 Pull requests 写而漏了 Contents 写时,评论 / 审批可用但合并会失败。
  • SSH 克隆:连接的 Clone 协议选 SSH 时,走系统 ~/.ssh/config,与 PAT 无关(PAT 仅用于 REST API)。
  • 限流:发现走 GitHub Search(约 30 次/分钟),客户端会按平台节流。
  • 安全:按最小必要范围授权,离职 / 泄露时及时吊销。

二、Bitbucket Server / Data Center

  • Base URL:填服务器根地址,如 https://bitbucket.your-company.com
  • 访问令牌:在 Bitbucket 个人设置 → HTTP access tokens(个人访问令牌) 创建。
  • 权限:授予目标项目 / 仓库的 Repository: Write(写含读)。
    • 只读评审(不评论 / 不合并)可降到 Repository: Read,但客户端的评论 / 审批 / 合并将不可用。
    • 合并 PR 需要仓库写权限。
  • 克隆 URL 形态:pat → https://<user>:<PAT>@host/scm/<proj>/<repo>.git(用户名取当前登录用户);ssh → git@host:<proj>/<repo>.git

三、GitLab(gitlab.com / Self-Managed,CE / EE)

接入 GitLab(gitlab.com 或自建 Self-Managed 实例)需要一个 Personal Access Token (PAT)。本节给出最小权限集。

连接里的 Base URL:gitlab.com 留空即可(默认 https://gitlab.com/api/v4);Self-Managed 填实例地址即可,如 https://<你的 GitLab 域名>——/api/v4 会自动补全(手填完整 API base 也兼容)。

创建:右上角头像 → Edit profile → Access Tokens(或 User Settings → Access Tokens)→ Add new token,勾选 scope 并设置有效期。

版本兼容:接入走 GitLab REST API v4,覆盖 gitlab.com SaaS 与 Self-Managed(CE / EE)。

  • 推荐 GitLab 15.6 及以上/metadata(15.2+)自动探测 edition、detailed_merge_status(15.6+)令可合并状态 full 保真,体验最完整。
  • 最低 GitLab 13.8:「待我评审」发现依赖 MR Reviewers 的 reviewer_username 筛选(13.8 起提供);更低版本该过滤不可用,可改用「我创建的 / 分配给我的」发现过滤。
  • 13.8 ~ 15.5 自动降级:缺 /metadata 退回 /version(保守按 CE、审批 UI 灰显),缺 detailed_merge_status 退回 merge_status(可合并判断略粗);发现 / 评论 / 合并 / clone 均正常。
  • 审批(通过 / 撤销):属 EE Premium / Ultimate(MR 审批 API 自 13.9),经 edition 探测启用,CE 灰显,详见下文 3.2。

3.1 Scope(最小授权)

GitLab PAT 按 scope 授权,自动覆盖你有权限的全部项目,契合本客户端跨项目轮询发现 MR 的用法。

Scope用途何时需要
api完整 REST API 读写:MR 发现、读 / 发 / 改 / 删评论与回复、审批(EE)、合并需要评论 / 审批 / 合并时(最常见,推荐
read_api只读 REST API仅浏览(不评论 / 不审批 / 不合并)时,替代 api
read_repositoryGit-over-HTTPS 克隆 / 拉取私有项目Clone 协议为 pat 且 token 只给了 read_api 时补上

推荐:单勾 api——它已涵盖 REST API 写操作与 HTTPS 克隆,最省心。 只读浏览:read_api +(pat 克隆再加)read_repository

3.2 CE / EE 审批差异

GitLab 的 MR 审批 API(approve / unapprove)自 13.9 起属 Premium / Ultimate(EE 付费版) 功能,且 GitLab 审批是二元的——只有「通过 / 撤销」,无「需修改」

  • 客户端经 /metadata 探测实例 edition,据此降级审批能力:
    • EE(Premium 及以上):审批按钮可用(通过 / 撤销)。
    • CE / 社区版:无审批 API,审批按钮 灰显不可用;发现 / 评论 / 合并照常。
  • 可合并状态走 detailed_merge_status,对合并阻塞原因(冲突 / 待审批 / 流水线未过等)full 保真展示。

3.3 按客户端操作对应的权限速查

客户端操作端点所需 scope
发现待我评审的 MRGET /merge_requests?reviewer_username=…read_api / api
读 MR / 评论(discussions)GET …/merge_requests/{iid}/discussionsread_api / api
发 / 改 / 删评论、回复POST/PUT/DELETE …/discussions[/notes]api
审批(通过 / 撤销,仅 EE)POST …/approve/unapproveapi
合并 MRPUT …/mergeapi
克隆仓库(本地 diff)git over HTTPS(PAT)read_repository(或 api
头像 / 评论内嵌图片资源 URL(带 token)无需额外

3.4 注意事项

  • 克隆 URL 形态:pat → https://<user>:<PAT>@host/<group>/<repo>.git(用户名取当前登录用户,支持嵌套 group);ssh → git@host:<group>/<repo>.git
  • 嵌套 group:路径含多级 group(如 group/subgroup/proj)已正确解析。
  • 审批自己的 MR:受项目「阻止作者审批」等服务端设置约束,按 GitLab 规则裁决,客户端透传 API 结果。
  • SSH 克隆:Clone 协议选 SSH 时走系统 ~/.ssh/config,与 PAT 无关(PAT 仅用于 REST API)。
  • 安全:按最小必要 scope 授权并设置有效期,离职 / 泄露时及时吊销。

采用 Apache License 2.0 发布。