GitHub 集成

GitHub 集成把代码托管和任务流打通。它和组织里给 Agent 用的「连接代码库」不是同一件事:这里管的是 PR 关联、Issue 同步和任务回链,不负责 Agent 在电脑上 clone 代码。

GitHub 集成能做什么?

  • 组织连接 GitHub:组织 owner 或 admin 安装 GitHub 应用,并选择仓库。
  • 把 Pull Request 和任务关联:分支名、PR 标题或正文里出现任务编号时,会尝试关联,并可以在 GitHub 上回链任务。
  • 把 GitHub Issue 同步到某个空间:把已安装应用的仓库关联到空间后,新建 Issue 会同步为任务。
  • 另连个人 GitHub 账号:成员可以把自己的 GitHub 账号和组织连接分开绑定;同步到 GitHub Issue 的评论会尽量用这个人的身份。

从哪里进入?

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

绑定了 GitHub 组织、但还没连个人账号时,卡片会按「已绑定 GitHub 组织」展示,不是已绑定个人账户。

连接组织 GitHub

组织 owner 或 admin 可以绑定 GitHub 组织。

  1. 进入 外部应用集成,打开 GitHub 详情页。
  2. 绑定 GitHub 组织 中点击 绑定
  3. 在 GitHub 安装应用,并选择这次要接入的仓库。
  4. 回到 HiFox,确认状态为 已绑定

只有实际管理这次 GitHub 应用安装的人,才能完成绑定。

断开某个 GitHub 组织后,来自该组织的 Pull Request 关联和任务回链会停止。已有任务和 GitHub 上的内容不会被删除。

个人 GitHub 账号

个人 GitHub 账号和组织连接不是同一件事。

  • 组织连接决定仓库、PR 关联和 Issue 同步能不能工作。
  • 我的 GitHub 账号 决定同步到 GitHub Issue 的评论尽量用谁的身份。没连个人账号时,走应用机器人身份。

关联后,你创建的 GitHub Issue 和评论会尽量归属到你,负责人也会尽量双向同步。该 GitHub 账号已经关联到其他成员时,不能再绑到你这边。

PR 和任务

设置页的 Git PR & Commit 关联到任务 里,可以开关 关联 Pull Request关联 Git Commit

把任务编号写进:

  • Pull Request 的标题;
  • Pull Request 的描述;
  • 来源分支名。

出现任务编号就会尝试关联。例如「Fixes HF-123」或只写「HF-123」都可以。

这里没有 fixes / closes / skip 这类关键字语义。合并 Pull Request 不会改任务状态。

公开仓库只关联可信作者的 Pull Request:仓库 owner、member 或 collaborator。

任务回链

任务回链会在关联的 Pull Request 和 GitHub Issue 下评论一条任务链接。开关在 GitHub 设置里:

  • 私有仓库:默认开;
  • 公开仓库:默认关。

空间是公开还是私有,不是回链开关。

Issue 同步

把一个 GitHub 仓库链到一个空间后,该仓库里新建的 GitHub Issue 会同步为任务。已有 Issue 不会导入。

同步方向:

方向含义
单向GitHub Issue 的改动同步到 HiFox,反向不同步。多个仓库可以同时关联到同一个空间。
双向GitHub Issue 与任务双向同步。一个空间只能有一个双向仓库。

关闭或重开 GitHub Issue,可以带动已经配对的任务状态。合并 Pull Request 不会。

把私有空间链到公开仓库、且方向会把内容写出时(例如双向),需要明确确认:任务标题、描述和成员评论会同步到 GitHub,任何人都能看到。

移除仓库关联后,新的 GitHub Issue 不再同步,已经创建的任务会保留。断开单个任务的 GitHub 同步,也不会删除任务或 Issue。

评论发到哪?

任务自己的评论框是内部讨论,不会发到 GitHub。

只有任务里 来自 GitHub … 的评论 这一块的回复框(发布到 GitHub)才会写到对应 Issue。这和 Slack 话题、飞书话题同一原则:外发回复走各自那条会话。

该仓库是单向同步时,回复不会发送到 GitHub。

常见问题

连了 GitHub,Agent 就能 clone 代码了吗?

不能。组织 GitHub 集成不管电脑上的 Git 凭证。Agent clone 代码仍看电脑上的 SSH key、HTTPS token 或代码托管凭据,见 连接代码库

为什么卡片显示已绑定组织,我却还要再连一次 GitHub?

组织绑定和个人账号是两步。组织绑定给全组织用;个人账号只影响你在 GitHub Issue 上的发言身份。

合并 PR 会不会自动完成任务?

不会。出现任务编号只会尝试关联。没有 fixes / closes 语义,合并也不会改任务状态。

断开 GitHub 会删任务或 Issue 吗?

不会。断开组织、移除仓库关联,或断开单个任务的 GitHub 同步,都不会删除已有任务或 GitHub 上的内容。