CNB 集成

CNB 集成把 cnb.cool 上的合并请求、提交和议题关联到 HiFox 任务,并可以在 CNB 上发送任务回链。

它和 GitHub 集成不是同一套:

  • 没有 OAuth 应用,组织绑的是 个人访问令牌
  • 没有平台级 webhook,入站靠每个仓库的 .cnb.yml 里贴一段流水线步骤。

从哪里进入?

打开 外部应用集成。CNB 在 Git 仓库 分组里,卡片名称是 CNB。菜单名称以线上为准。

用令牌连接 CNB 组

  1. 进入 外部应用集成,打开 CNB 详情页。
  2. 绑定 CNB 组织 中点击 绑定令牌
  3. 粘贴 CNB 个人访问令牌。令牌会加密存储,保存前会先向 CNB 验证一次。
  4. 完整令牌只在提交时出现;之后界面只显示遮罩摘要,不会再展示完整内容。

绑定页会写清令牌需要哪些权限。当前绑定页提示需要:

  • repo-notes:rw(发送回链评论)
  • repo-pr:r(回查合并请求正文)
  • account-engage:r(以你的身份参与讨论)

如果 CNB 拒绝令牌,页面会展示 CNB 返回的原因原文。按原文补权限或更换令牌即可,不必猜测内部错误码。

令牌失效时,回链评论和合并请求正文回查都会停。用 更换令牌立即校验 处理。

断开连接会停止合并请求关联和回链。仓库配对会保留,重新绑定同一个组织即可恢复。断开或移除连接都不会删除已有任务,也不会删除 CNB 上的内容。

配对仓库并粘贴 .cnb.yml

连接仓库后,把页面提供的片段贴进该仓库:

  1. 已配对的仓库 里点击 配对仓库
  2. 填写仓库路径(仓库链接里的完整路径,可能超过两段)和空间。
  3. 打开 配置指引,把页面给出的 .cnb.yml 片段提交到该仓库的默认分支。议题类事件只读取默认分支上的配置。

CNB 没有平台级 webhook。片段贴错或没贴到默认分支时,CNB 会静默跳过流水线,不会在 HiFox 里报一个醒目错误。

页面会显示「有没有收到过事件」:

  • 有最近事件:这段配置已经生效过;
  • 尚未收到任何事件:如果片段已经提交,确认它在默认分支上、并且流水线确实跑过。

片段里带有这个仓库专属的签名密钥,不要在别的仓库复用。密钥泄露时,用 重新生成密钥,再把新片段贴回去。

任务回链

任务回链可以开关。打开后,提到任务的 CNB 合并请求或议题下会回复一条任务链接。

把任务编号写进合并请求的标题、正文或源分支名——提交信息、议题和评论里同样有效——就会尝试关联到那个任务。

常见问题

为什么配对了仓库,却一直没有事件?

先看页面有没有收到过事件。没有的话,检查 .cnb.yml 片段是否贴在默认分支,以及 CNB 流水线有没有真正跑过。贴错时 CNB 会静默跳过。

令牌提示被拒绝怎么办?

看页面上的 CNB 原文。它通常会点出缺了哪个权限。按绑定页提示补齐后,再 立即校验更换令牌

断开 CNB 会删任务吗?

不会。已有任务和 CNB 上的内容都会保留。