

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

# 连接到 CI/CD 管道
<a name="configuring-capabilities-for-aws-devops-agent-connecting-to-cicd-pipelines-index"></a>

CI/CD 管道集成使 AWS DevOps 代理能够监控部署并在调查期间将代码更改与操作事件关联起来。通过连接您的 CI/CD 提供商，代理可以跟踪部署事件并将其与 AWS 资源关联，以帮助在事件响应期间确定潜在的根本原因。

AWS DevOps Agent 支持通过两步流程与流行 CI/CD 平台集成：

1. **账户级注册** — 在账户级别注册您的 CI/CD 提供商一次 AWS 

1. **Agent Space 连接** — 根据您的组织需求，将特定项目或存储库连接到各个代理空间

这种方法允许您在多个代理空间之间共享 CI/CD 提供商注册，同时保持对每个空间监控哪些项目的精细控制。

## 支持的 CI/CD 提供商
<a name="supported-cicd-providers"></a>

AWS DevOps 代理支持以下 CI/CD 平台：
+ **GitHub**— 使用 AWS DevOps 代理 GitHub 应用程序连接来自 [GitHub.com](http://GitHub.com) 的存储库。
+ **GitLab**— 连接来自 [GitLab.com的项目、](http://gitlab.com)托管 GitLab 实例或可公开访问的自托管 GitLab 部署。

**主题**
+ [正在连接 GitHub](connecting-to-cicd-pipelines-connecting-github.md)
+ [正在连接 GitLab](connecting-to-cicd-pipelines-connecting-gitlab.md)

# 正在连接 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 应用程序：
+ 请求对仓库的只读访问权限
+ 接收部署事件和其他存储库事件
+ 允许 AWS DevOps Agent 将代码更改与操作事件关联起来
+ 可以通过您的 GitHub 设置随时卸载

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

## 管理 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 企业服务器才能创建新应用程序。

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

GitLab 集成使 AWS DevOps 代理能够监控来自 GitLab 管道的部署，以便在事件响应期间为因果调查提供信息。此集成遵循两个步骤的过程：账户级注册 GitLab，然后将特定项目连接到各个代理空间。

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

GitLab 在 AWS 账户级别注册，并在该账户中的所有代理空间之间共享。然后，各个代理空间可以选择适用于其代理空间的特定项目。

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

1. 登录到 AWS 管理控制台

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

1. 转到**能力提供者**页面（可从侧面导航栏访问）

1. **GitLab**在 Pi **pelin** e 下的 “**可用**提供商” 部分中查找，然后点击**注册**

### 步骤 2：配置 GitLab 连接
<a name="step-2-configure-gitlab-connection"></a>

在 GitLab 注册页面上，配置以下内容：

**连接类型**-选择您是以个人还是群组的身份进行连接：
+ 个@@ **人**（默认）-包含 GitLab 用户名和个人资料的个人用户帐户
+ **群组** — 在群组中 GitLab，您可以使用群组同时管理一个或多个相关项目

**GitLab 实例类型**-选择要连接的 GitLab 实例类型：
+ **GitLab.com**（默认）-公共 GitLab 服务
+ **可公开访问的自托管 GitLab** — 选中**使用 GitLab 自托管终端节点**复选框并提供您的 GitLab 实例的 URL

**注意**  
**目前，仅支持可公开访问的 GitLab 实例。

**访问令牌** — 提供 GitLab 个人访问令牌：

1. 在单独的浏览器选项卡中，登录到您的 GitLab 帐户

1. 导航到您的用户设置并选择**访问令牌**

1. 使用以下权限创建新的个人访问令牌：
   + `read_repository`— 访问存储库内容所必需的
   + `read_virtual_registry`— 访问虚拟注册表信息所必需的
   + `read_registry`— 访问注册表信息所必需的
   + `api`— 读取和写入 API 访问权限所必需的
   + `self_rotate`-轮换代币是必需的。 AWS DevOps 代理目前不支持此功能，但稍后将支持该功能。现在添加可以防止将来需要创建新代币。

1. 将代币到期时间设置为自当前日期起最长 365 天

1. 复制生成的令牌

1. 返回 AWS DevOps 代理控制台

1. 将令牌粘贴到 “访问令牌” 字段

### 第 3 步：完成注册
<a name="step-3-complete-registration"></a>

**（可选）标签**-为组织目的向 GitLab 注册添加 AWS 标签。

单击 “**下一步**” 查看您的配置，然后单击 “**提交**” 以完成 GitLab 注册过程。系统将验证您的访问令牌并建立连接。

## 将项目连接到代理空间
<a name="connecting-projects-to-an-agent-space"></a>

在账户 GitLab 级别注册后，您可以将特定项目关联到各个代理空间：

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

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

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

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

1. 选择与您的代理空间相关的 GitLab 项目

1. 单击 “**保存**”

AWS DevOps 代理将监控这些项目的部署情况，以便 GitLab 为因果调查提供信息。

## 管理 GitLab 连接
<a name="managing-gitlab-connections"></a>
+ **更新访问令牌**-如果您的访问令牌过期或需要更新，则可以在 AWS DevOps 代理控制台中通过修改账户级别的 GitLab 注册来对其进行更新。
+ **查看关联项目**-在 AWS DevOps 代理控制台中，选择您的代理空间，然后转到功能选项卡，在 “管道” 部分中查看连接的项目。
+ **移除 GitLab 连接**-要断开 GitLab 项目与代理空间的连接，请在 “管道” 部分中选择该连接，然后单击 “**删除**”。要完全删除 GitLab 注册，请先将其从所有代理空间中删除，然后在账户级别删除注册。