

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 正在连接 GitHub
<a name="connecting-to-cicd-pipelines-connecting-github"></a>

GitHub 集成使 AWS DevOps 代理能够在事件调查期间访问代码存储库并接收部署事件。此集成遵循两个步骤的过程：账户级注册 GitHub，然后将特定的存储库连接到各个代理空间。

AWS DevOps 代理同时支持 GitHub .com (SaaS) 和 GitHub 企业服务器（自托管）实例。

## 先决条件
<a name="prerequisites"></a>

在连接之前 GitHub，请确保您具有：
+ 访问 AWS DevOps 代理管理员控制台
+ 具有管理员权限的 GitHub 用户账户或组织
+ 授权在您的账户或组织中安装 GitHub 应用程序

对于 GitHub 企业服务器，您还需要：
+ 可通过 HTTPS 访问的 GitHub 企业服务器实例（版本 3.x 或更高版本）
+ 您的 GitHub 企业服务器实例的 HTTPS 网址（例如，`https://github.example.com`）
+ （可选）私有连接（如果您的 GitHub 企业服务器实例不可公开访问）

## 注册 GitHub （账户级别）
<a name="registering-github-account-level"></a>

GitHub 在 AWS 账户级别注册，并在该账户中的所有代理空间之间共享。每个 AWS 账户只需要注册 GitHub 一次。

### 步骤 1：导航到管道提供商
<a name="step-1-navigate-to-pipeline-providers"></a>

1. 登录到 AWS 管理控制台

1. 导航到 AWS DevOps 代理控制台

1. 前往 “**功能**” 选项卡

1. 在 “**管道**” 部分中，单击 “**添加**”

1. **GitHub**从可用提供商列表中选择

如果 GitHub 尚未注册，系统将提示您先注册。

### 步骤 2：选择连接类型
<a name="step-2-choose-connection-type"></a>

在 “注册 GitHub 账户/组织” 屏幕上，选择您是以用户还是组织身份进行连接：
+ **用户**-包含用户名和个人资料的个人 GitHub 账户
+ **组织** — 一个共享 GitHub 帐户，多个人可以同时在多个项目中进行协作

如果您要连接到 GitHub 企业服务器实例，请选中 “**使用 GitHub 企业服务器**” 复选框并输入您的实例的 HTTPS URL（例如`https://github.example.com`）。

如果您的 E GitHub nterprise Server 实例不可公开访问，则可以选择配置私有连接，以允许 AWS DevOps 代理安全地访问您的实例。有关更多信息，请参阅 [连接到私人托管的工具](configuring-capabilities-for-aws-devops-agent-connecting-to-privately-hosted-tools.md)。

**注意**  
**请勿在 URL 中包含`/api/v3`或任何尾随路径 — 仅输入基本 URL。

### 第 3 步：设置 GitHub 应用程序
<a name="step-3-set-up-the-github-app"></a>

单击 “**提交**” 开始应用程序设置过程。后续步骤会有所不同，具体取决于您连接的是 GitHub .com 服务器还是 GitHub 企业服务器。

#### 对于 GitHub .com
<a name="for-githubcom"></a>

1. 您将被重定向 GitHub 到安装 AWS DevOps 代理 GitHub 应用程序。

1. 选择要在哪个账户或组织中安装应用程序。

1. 该应用程序允许 AWS DevOps 代理接收来自已连接存储库的事件，包括部署事件。

#### 适用于 GitHub 企业服务器
<a name="for-github-enterprise-server"></a>

GitHub Enterprise Server 使用 GitHub 应用程序清单流程，该流程会自动在您的实例上设置新 GitHub 应用程序。这涉及到您的 GitHub 企业服务器实例的两次重定向。

1. 您的浏览器将被重定向到您的 GitHub 企业服务器实例的 “创建 GitHub 应用程序” 页面。

1. 您将看到预先填充的应用程序名称。可以根据需要随时更改名称。单击 “**创建 GitHub 应用程序**”。

1. 您将被重定向回 AWS DevOps Agent，代理将清单代码交换为应用程序凭据。

### 步骤 4：选择存储库并完成安装
<a name="step-4-select-repositories-and-complete-installation"></a>

1. 您将看到该 GitHub 应用程序的 “**安装和授权**” 页面。

1. 选择允许该应用程序访问的存储库：
   + **所有存储库**-授予对所有当前和将来存储库的访问权限
   + **仅选择存储库**-从您的账户或组织中选择特定的存储库

1. 单击 “**安装并授权**”。

1. 您将被重定向回 AWS DevOps 代理控制台，该控制台 GitHub 将显示为已注册账号。

## 将存储库连接到代理空间
<a name="connecting-repositories-to-an-agent-space"></a>

在账户 GitHub 级别注册后，您可以将特定的存储库连接到各个代理空间：

1. 在 AWS DevOps 代理控制台中，选择您的代理空间

1. 前往 “**功能**” 选项卡

1. 在 “**管道**” 部分中，单击 “**添加**”

1. **GitHub**从可用提供商列表中选择

1. 选择与该代理空间相关的存储库子集

1. 单击 “**添加**” 完成连接

您可以根据组织需求将不同的存储库集连接到不同的代理空间。

## 了解 GitHub 应用程序
<a name="understanding-the-github-app"></a>

 AWS DevOps 代理 GitHub 应用程序：
+ 请求访问您的存储库 — 您可以在 GitHub 应用程序安装期间查看特定权限
+ 接收部署事件和其他存储库事件
+ 允许 AWS DevOps Agent 将代码更改与操作事件关联起来
+ 可以通过您的 GitHub 设置随时卸载

对于 GitHub 企业服务器， GitHub 应用程序是在注册期间在您的实例上自动创建的。您可以管理应用程序的存储库访问权限，也可以通过 **“设置” > “应用程序” > “已安装的 GitHub 应用程序**” 将其卸载。要完全删除应用程序定义，请前往 **“设置” > “开发者设置” > “ GitHub 应用程序**”。

## GitHub 应用程序权限更新
<a name="github-app-permission-updates"></a>

AWS DevOps 在您安装 GitHub 应用程序后，代理可能会请求权限更新以支持新功能。当这种情况发生时：

1. 您将收到来自的 GitHub 有关权限更新请求的通知。

1. 查看更新详细信息以了解正在申请哪些新权限。

1. 接受授予更新权限的请求。

无需对您的服务或应用程序进行任何更改。接受更新的权限后， AWS DevOps 代理请求的下一个安装访问令牌 GitHub 将自动包含新的权限。

**注意**  
**在您接受权限更新之前， AWS DevOps 代理将继续使用先前授予的权限进行操作。在您批准请求之前，依赖于更新权限的新功能将不可用。

## 管理 GitHub 连接
<a name="managing-github-connections"></a>
+ **更新存储库访问权限**-要更改 GitHub 应用程序可以访问的存储库，请转到您的 GitHub 帐户或组织设置（或您的 E GitHub nterprise Server 实例设置），导航到已安装的 GitHub 应用程序，然后修改 AWS DevOps 代理应用程序配置。
+ **查看连接的存储库**-在 AWS DevOps 代理控制台中，选择您的代理空间，然后转到 “功能” 选项卡，在 “管道” 部分中查看连接的存储库。
+ **删除 GitHub 连接**-要断开与 GitHub 代理空间的连接，请在 “管道” 部分中选择该连接，然后单击 “**删除**”。要完全卸载该 GitHub 应用程序，请将其从您的 GitHub 帐户或组织设置中卸载。对于 E GitHub nterprise Server，由于 GitHub 应用程序是在注册期间直接在您的实例上创建的，因此您可以选择通过执行以下两项操作来完全清理应用程序：
  + **卸载应用程序** — 前往 **“设置” > “应用程序” > “已安装的 GitHub 应用程序**”，在应用程序上单击 “**配置**”，然后将其卸载。
  + **删除应用程序**-前往 **“设置” > “开发者设置” > “ GitHub 应用程序**”，选择应用程序，转到 “**高级**” 选项卡，然后选择 “**删除 GitHub 应用程序**”。**警告：**删除 GitHub 应用程序是永久性的，无法撤消。如果将其删除，则需要从头开始在 AWS DevOps 代理控制台中重新注册 GitHub 企业服务器才能创建新应用程序。