Azure DevOps Server 2022 |Azure DevOps Server 2020 |Azure DevOps Server 2019
将 Azure DevOps Server 项目连接到 GitHub 存储库时,支持在 GitHub 提交和工作项的拉取请求之间进行链接。 使用 Azure Boards 来计划和跟踪工作时,可使用 GitHub 进行软件开发。
注意
Azure DevOps Server 支持与 GitHub.com 和 GitHub Enterprise Server 存储库集成。 若要从 Azure DevOps Services 进行连接,请参阅 将 Azure Boards 连接到 GitHub。
先决条件
类别 | 要求 |
---|---|
权限 | - 项目集合管理员 组的成员 和项目 参与者组的成员。 如果你创建了项目,则拥有权限。 - 连接到的 GitHub Enterprise Server 的管理员。 |
项目成员身份 | 项目成员. |
与 GitHub 集成 | - Azure DevOps Server 2020.1.1 补丁 2。 如果没有此修补程序,则只能连接到 GitHub Enterprise Server 存储库。 - GitHub 组织或帐户上安装的适用于 GitHub 的 Azure Boards 应用。 |
身份验证选项
支持以下身份验证选项:
注意
Azure DevOps Server 2020 不支持 OAuth。
将 Azure DevOps Server 连接到 GitHub Enterprise Server
可将多达 250 个 GitHub 存储库连接到一个 Azure Boards 项目。
注意
- 需要 Azure DevOps Server 2020.1 更新或更高版本才可连接到 100 多个 GitHub 存储库。
- 连接到 GitHub.com 存储库需要 Azure DevOps Server 2020.1.1 Patch 2 或更高版本。
打开 Azure DevOps Server 的 Web 门户。
选择
Azure DevOps 徽标以打开“项目”,然后选择为连接到 GitHub Enterprise 存储库而配置的 Azure Boards 项目。
选择“项目设置”>“GitHub 连接”。
如果这是你第一次从项目建立连接,请选择要用于建立连接的身份验证方法:
- GitHub 个人访问令牌:有关详细信息,请参阅 使用 GitHub PAT 进行连接。
- GitHub 凭据:有关详细信息,请参阅 使用 GitHub 凭据进行连接。
否则,请选择
“新建连接”,然后从“新建连接”对话框中选择身份验证方法。
使用 GitHub 个人访问令牌连接 Azure DevOps Server
若要创建 GitHub PAT,请参阅 “创建 GitHub PAT”。
提示
创建 GitHub PAT 时,请确保包含以下范围:
repo, admin:repo_hook, read:user, user:email
。输入 GitHub Enterprise Server 的 URL 以及该服务器识别的个人访问令牌凭据。 然后选择“连接”。
使用 GitHub 凭据连接 Azure DevOps Server
输入 GitHub Enterprise Server 的 URL 以及该服务器识别的管理员帐户凭据。 然后选择连接。
该对话框列出了你拥有 GitHub 管理权限的所有存储库。 可以在我的和全部之间切换以确定是否显示其他存储库,然后勾选要添加的存储库。 完成操作后,选择“保存”。
要首次从 Azure Boards 连接到 GitHub 帐户或组织,还需要安装适用于 GitHub 的 Azure Boards 应用。 按照确认连接中概述的过程完成集成。
解决连接问题
Azure Boards-GitHub 集成依赖于各种身份验证协议来支持连接。 如果更改用户的权限范围或身份验证凭据,可能会导致吊销已连接到 Azure Boards 的 GitHub 存储库。
若要大致了解适用于 GitHub 的 Azure Boards 应用支持的集成,请参阅 Azure Boards-GitHub 集成。
当与 GitHub 的 Azure Boards 连接不再具有访问权限时,它会在用户界面中显示带有红色 X 的警报状态。 将鼠标悬停在警报上,该警报指示凭据不再有效。 为了更正此问题,请删除连接,并重新创建一个新连接。
请考虑以下解决方案:
如果连接使用的是 OAuth:
Azure Boards 应用程序对其中一个存储库的访问被拒绝。
GitHub 可能不可用/无法访问。 这种不可用性可能是由于服务中断或本地基础结构/网络问题导致的。 可以从以下链接检查服务状态:
删除并重新创建与 GitHub 存储库的连接。 重新创建连接会导致 GitHub 提示重新授权 Azure Boards。
如果连接使用 GitHub PAT:
GitHub PAT 已吊销或所需的权限范围已更改且不足。
用户可能丢失了 GitHub 存储库的管理权限。
重新创建 GitHub PAT 并确保令牌的范围包括所需的权限:
repo, read:user, user:email, admin:repo_hook
更新选定的工作项类型的 XML 定义
如果你的组织使用托管 XML 或本地 XML 进程模型自定义工作跟踪,并且想要将 GitHub 链接类型集成到工作项表单的开发部分,则必须更新相应工作项类型的 XML 定义。
例如,若要将用户情景和 bug 链接到 GitHub 提交,并在工作项表单的开发部分中拉取请求,必须更新这些工作项类型的 XML 定义。
若要修改 XML 定义,请执行托管 XML 进程模型中概述的步骤。 对于每个工作项类型:
- 找到
Group Label="Development"
部分。 - 若要支持外部链接类型、 GitHub 提交 和 GitHub 拉取请求,请添加以下代码行:
此集成可直接从 Azure Boards 中的工作项无缝跟踪 GitHub 活动。
<ExternalLinkFilter Type="GitHub Pull Request" />
<ExternalLinkFilter Type="GitHub Commit" />
更新后,该部分应如下所示。
<Group Label="Development">
<Control Type="LinksControl" Name="Development">
<LinksControlOptions ViewMode="Dynamic" ZeroDataExperience="Development" ShowCallToAction="true">
<ListViewOptions GroupLinks="false">
</ListViewOptions>
<LinkFilters>
<ExternalLinkFilter Type="Build" />
<ExternalLinkFilter Type="Integrated in build" />
<ExternalLinkFilter Type="Pull Request" />
<ExternalLinkFilter Type="Branch" />
<ExternalLinkFilter Type="Fixed in Commit" />
<ExternalLinkFilter Type="Fixed in Changeset" />
<ExternalLinkFilter Type="Source Code File" />
<ExternalLinkFilter Type="Found in build" />
<ExternalLinkFilter Type="GitHub Pull Request" />
<ExternalLinkFilter Type="GitHub Commit" />
</LinkFilters>
</LinksControlOptions>
</Control>
</Group>