

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

# 使用 CodeConnections 向管道添加第三方源提供程序
<a name="pipelines-connections"></a>

您可以使用 AWS CodePipeline 控制台或 AWS CLI 将您的管道连接到第三方存储库。

**注意**  
在使用控制台创建或编辑管道时，将为您创建更改检测资源。如果使用 AWS CLI 创建管道，您必须自行创建其他资源。有关更多信息，请参阅 [CodeCommit 源操作和 EventBridge](triggering.md)。

**Topics**
+ [

# Azure DevOps 连接
](connections-azure.md)
+ [

# Bitbucket Cloud 连接
](connections-bitbucket.md)
+ [

# GitHub 连接
](connections-github.md)
+ [

# GitHub 企业服务器连接
](connections-ghes.md)
+ [

# GitLab.com 连接
](connections-gitlab.md)
+ [

# 用于 GitLab 自我管理的连接
](connections-gitlab-managed.md)
+ [

# 使用与其他账户共享的连接
](connections-shared.md)

# Azure DevOps 连接
<a name="connections-azure"></a>

Connections 允许您授权和建立将您的第三方提供商与您的 AWS 资源关联的配置。要将您的第三方存储库关联为管道的源，您应使用连接。

**注意**  
不用再创建连接或使用账户中的现有链接，您可以使用其他 AWS 账户之间的共享连接。请参阅[使用与其他账户共享的连接](connections-shared.md)。

**注意**  
此功能不适用于亚太地区（香港）、亚太地区（海得拉巴）、亚太地区（雅加达）、亚太地区（墨尔本）、亚太地区（墨尔本）、亚太地区（大阪）、非洲（开普敦）、中东（巴林）、中东（阿联酋）、欧洲（西班牙）、欧洲（苏黎世）、以色列（特拉维夫） AWS GovCloud 或（美国西部）地区。要参考其他可用操作，请参阅 [产品和服务与 CodePipeline](integrations.md)。有关在欧洲地区（米兰）区域使用此操作的注意事项，请参阅[CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作](action-reference-CodestarConnectionSource.md)中的说明。

要在中添加 Azure DevOps 源操作 CodePipeline，可以选择以下任一选项：
+ 使用 CodePipeline 控制台的 “**创建管道**” 向导或 **“编辑” 操作**页面选择 **Azure DevOps** 提供者选项。参阅[创建到 Bitbucket Cloud 的连接（控制台）](connections-bitbucket.md#connections-bitbucket-console)以添加操作。控制台可帮助您创建连接资源。
+ 使用 CLI，添加提供方为 `Azure DevOps` 的 `CreateSourceConnection` 操作的操作配置，如下所示：
  + 要创建连接资源，请参阅 [创建与 Azure 的连接 DevOps (CLI)](#connections-azure-cli)，以便使用 CLI 创建连接资源。
  + 使用[CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作](action-reference-CodestarConnectionSource.md)中的 `CreateSourceConnection` 示例操作配置来添加操作，如[创建管道（CLI）](pipelines-create.md#pipelines-create-cli) 中所示。

**注意**  
您也可以使用开发人员工具控制台，在**设置**下创建连接。参阅[创建连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html)。

开始前的准备工作：
+ 你必须已在第三方存储库（例如 Azure）的提供商处创建了一个帐户 DevOps
+ 你必须已经创建了第三方代码存储库，例如 Azure DevOps 存储库。

**注意**  
Azure DevOps 连接仅提供对用于创建连接的 Azure DevOps 帐户所拥有的存储库的访问权限。  
要安装连接，您必须拥有 Azure 账户的**管理员**权限。

**Topics**
+ [

## 创建与 Azure 的连接 DevOps （控制台）
](#connections-azure-console)
+ [

## 创建与 Azure 的连接 DevOps (CLI)
](#connections-azure-cli)

## 创建与 Azure 的连接 DevOps （控制台）
<a name="connections-azure-console"></a>

使用这些步骤使用 CodePipeline 控制台为 Azure DevOps 存储库添加连接操作。

### 步骤 1：创建或编辑您的管道
<a name="connections-azure-console-action"></a>

**创建或编辑您的管道**

1. 登录 CodePipeline 控制台。

1. 选择下列选项之一。
   + 选择创建管道。按照*创建管道* 中的步骤操作，完成第一个屏幕，然后选择**下一步**。在 “**源**” 页上的 “**源提供程序**” 下，选择 **Azure DevOps**。
   + 选择编辑现有管道。选择**编辑**，然后选择**编辑阶段**。选择添加或编辑您的源操作。在**编辑操作**页面的**操作名称**下，输入您的操作的名称。在**操作提供者**中，选择 **Azure DevOps**。

1. 请执行以下操作之一：
   + 在 “**连接**” 下，如果你尚未创建与提供商的连接，请选择 “**连接到 Azure**” DevOps。继续执行步骤 2：创建与 Azure 的连接 DevOps。
   + 在**连接**下，如果您已创建到提供程序的连接，请选择该连接。继续执行步骤 3：保存连接的源操作。

### 步骤 2：创建与 Azure 的连接 DevOps
<a name="connections-azure-console-create"></a>

**创建与 Azure 的连接 DevOps**

1. 要创建与 Azure DevOps 存储库的连接，**请在 “选择提供者”** 下选择 **Azure DevOps**。在**连接名称**中，输入要创建的连接的名称。选择 “**连接到 Azure**” DevOps，然后继续执行步骤 2。  
![\[显示为 Azure 选择的连接选项的控制台屏幕截图 DevOps。\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/create-connection-azure.png)

1. 在 “**连接到 Azure DevOps** 设置” 页面上，将显示你的连接名称。

   在 **Azure DevOps 应用程序**下，选择应用程序**安装或选择安装新应用程序**来创建应用程序。
**注意**  
每个 Azure DevOps 帐户只安装一次应用程序。如果您已经安装了连接器应用程序，请选择它，然后移至本部分内容中的最后一步。

1. 如果显示 Microsoft 的登录页面，请使用您的凭证登录，然后选择继续。

1. 在应用程序安装页面上，一条消息显示连接器应用程序正在尝试连接到你的 Azure DevOps 帐户。

   选择**授予访问权限**。

1. 在连接页面上，将显示新安装的连接 ID。选择**连接**。创建的连接将显示在连接列表中。

### 步骤 3：保存你的 Azure DevOps 源代码操作
<a name="connections-azure-console-save"></a>

使用向导或**编辑操作**页面上的这些步骤，将源操作与连接信息一起保存。

**完成并保存您的源操作和连接**

1. 在**存储库名称**中，选择第三方存储库的名称。

1. 如果您的操作是 anCodeConnections 操作，则可以在 Pip **elin** e 触发器下添加触发器。要配置管道触发器配置并选择性使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。

1. 在**输出构件格式**中，您必须为构件选择格式。
   + 要使用默认方法存储 Azure DevOps 操作的输出项目，请选择**CodePipeline 默认**。操作会访问存储库中的文件，并将构件以 ZIP 文件格式存储在管道构件存储中。
   + 要存储包含存储库的 URL 引用的 JSON 文件，以便下游操作可以直接执行 Git 命令，请选择**完全克隆**。此选项只能由 CodeBuild 下游操作使用。

     如果选择此选项，则需要更新 CodeBuild 项目服务角色的权限，如所示[添加连接 Bitbucket、 GitHub、En GitHub terprise Server 或 GitLab .com 的 CodeBuild GitClone 权限](troubleshooting.md#codebuild-role-connections)。

1. 在向导上选择**下一步**，或者在**编辑操作**页面上选择**保存**。

## 创建与 Azure 的连接 DevOps (CLI)
<a name="connections-azure-cli"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 来创建连接。

为此，请使用 **create-connection** 命令。

**重要**  
默认情况下，通过 AWS CLI 或创建的连接 AWS CloudFormation 处于`PENDING`状态。使用 CLI 或创建连接后 CloudFormation，使用控制台编辑连接以使其处于状态`AVAILABLE`。

**创建连接**

1. 打开终端（Linux、macOS 或 Unix）或命令提示符（Windows）。 AWS CLI 使用运行**create-connection**命令，`--connection-name`为您的连接指定`--provider-type`和。在此示例中，第三方提供方名称为 `AzureDevOps`，指定的连接名称为 `MyConnection`。

   ```
   aws codeconnections create-connection --provider-type AzureDevOps --connection-name MyConnection
   ```

   如果成功，该命令将返回类似以下内容的连接 ARN 信息。

   ```
   {
       "ConnectionArn": "arn:aws:codeconnections:us-west-2:account_id:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f"
   }
   ```

1. 使用控制台完成连接。有关更多信息，请参阅[更新挂起的连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html)。

1. 管道默认会在向连接源存储库推送代码时检测更改。要配置手动发布或 Git 标签管道触发器配置，请执行以下操作之一：
   + 要将管道触发器配置为仅通过手动发布启动，请在配置中添加以下行：

     ```
     "DetectChanges": "false",
     ```
   + 要配置管道触发器配置以使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。例如，以下内容将 Git 标签添加到管道 JSON 定义的管道级别。在此示例中，`release-v0` 和 `release-v1` 是要包含的 Git 标签，`release-v2` 是要排除的 Git 标签。

     ```
     "triggers": [
                 {
                     "providerType": "CodeStarSourceConnection",
                     "gitConfiguration": {
                         "sourceActionName": "Source",
                         "push": [
                             {
                                 "tags": {
                                     "includes": [
                                         "release-v0", "release-v1"
                                     ],
                                     "excludes": [
                                         "release-v2"
                                     ]
                                 }
                             }
                         ]
                     }
                 }
             ]
     ```

# Bitbucket Cloud 连接
<a name="connections-bitbucket"></a>

Connections 允许您授权和建立将您的第三方提供商与您的 AWS 资源关联的配置。要将您的第三方存储库关联为管道的源，您应使用连接。

**注意**  
不用再创建连接或使用账户中的现有链接，您可以使用其他 AWS 账户之间的共享连接。请参阅[使用与其他账户共享的连接](connections-shared.md)。

**注意**  
此功能不适用于亚太地区（香港）、亚太地区（海得拉巴）、亚太地区（雅加达）、亚太地区（墨尔本）、亚太地区（墨尔本）、亚太地区（大阪）、非洲（开普敦）、中东（巴林）、中东（阿联酋）、欧洲（西班牙）、欧洲（苏黎世）、以色列（特拉维夫） AWS GovCloud 或（美国西部）地区。要参考其他可用操作，请参阅 [产品和服务与 CodePipeline](integrations.md)。有关在欧洲地区（米兰）区域使用此操作的注意事项，请参阅[CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作](action-reference-CodestarConnectionSource.md)中的说明。

要在中添加 Bitbucket Cloud 源操作 CodePipeline，您可以选择以下任一选项：
+ 使用 CodePipeline 控制台的 “**创建管道**” 向导或 **“编辑” 操作**页面选择 **Bitbucket** 提供程序选项。参阅[创建到 Bitbucket Cloud 的连接（控制台）](#connections-bitbucket-console)以添加操作。控制台可帮助您创建连接资源。
**注意**  
您可以创建到 Bitbucket Cloud 存储库的连接。不支持已安装的 Bitbucket 提供程序类型（如 Bitbucket 服务器）。
+ 使用 CLI，添加提供方为 `Bitbucket` 的 `CreateSourceConnection` 操作的操作配置，如下所示：
  + 要创建连接资源，请参阅 [创建到 Bitbucket Cloud 的连接 (CLI)](#connections-bitbucket-cli)，以便使用 CLI 创建连接资源。
  + 使用[CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作](action-reference-CodestarConnectionSource.md)中的 `CreateSourceConnection` 示例操作配置来添加操作，如[创建管道（CLI）](pipelines-create.md#pipelines-create-cli) 中所示。

**注意**  
您也可以使用开发人员工具控制台，在**设置**下创建连接。参阅[创建连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html)。

开始前的准备工作：
+ 您必须已创建第三方存储库提供方（如 Bitbucket Cloud）的账户。
+ 您必须事先创建第三方代码存储库，如 Bitbucket Cloud 存储库。

**注意**  
Bitbucket Cloud 连接只能访问用于创建连接的 Bitbucket Cloud 账户所拥有的存储库。  
如果要将应用程序安装在 Bitbucket Cloud 工作区中，则需要**管理工作区**权限。否则，安装应用程序的选项将不会显示。

**Topics**
+ [

## 创建到 Bitbucket Cloud 的连接（控制台）
](#connections-bitbucket-console)
+ [

## 创建到 Bitbucket Cloud 的连接 (CLI)
](#connections-bitbucket-cli)

## 创建到 Bitbucket Cloud 的连接（控制台）
<a name="connections-bitbucket-console"></a>

使用这些步骤使用 CodePipeline 控制台为您的 Bitbucket 存储库添加连接操作。

**注意**  
您可以创建到 Bitbucket Cloud 存储库的连接。不支持已安装的 Bitbucket 提供程序类型（如 Bitbucket 服务器）。

### 步骤 1：创建或编辑您的管道
<a name="connections-bitbucket-console-action"></a>

**创建或编辑您的管道**

1. 登录 CodePipeline 控制台。

1. 选择下列选项之一。
   + 选择创建管道。按照*创建管道* 中的步骤操作，完成第一个屏幕，然后选择**下一步**。在**源**页面的**源提供程序**下，选择 **Bitbucket**。
   + 选择编辑现有管道。选择**编辑**，然后选择**编辑阶段**。选择添加或编辑您的源操作。在**编辑操作**页面的**操作名称**下，输入您的操作的名称。在**操作提供程序**中，选择 **Bitbucket**。

1. 请执行以下操作之一：
   + 在**连接**下，如果您尚未创建到提供程序的连接，请选择**连接到 Bitbucket**。继续执行步骤 2：创建到 Bitbucket 的连接。
   + 在**连接**下，如果您已创建到提供程序的连接，请选择该连接。继续执行步骤 3：保存连接的源操作。

### 步骤 2：创建到 Bitbucket Cloud 的连接
<a name="connections-bitbucket-console-create"></a>

**创建到 Bitbucket Cloud 的连接**

1. 在**连接到 Bitbucket** 设置页面上，输入您的连接名称，然后选择**连接到 Bitbucket**。  
![\[显示“连接到 Bitbucket”按钮的控制台屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/create-connection-bitbucket.png)

   此时将出现 **Bitbucket 应用程序**字段。

1. 在 **Bitbucket 应用程序**下，选择一个应用程序安装，或者选择**安装新应用程序**来创建一个应用程序安装。
**注意**  
您只需为每个 Bitbucket 工作区或账户安装一次该应用。如果已经安装 Bitbucket 应用，请选择它，然后移至步骤 4。  
![\[显示“Connect to Bitbucket Cloud (连接到 Bitbucket Cloud)”对话框以及安装新应用程序按钮的控制台屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/newreview-source-wizard-bitbucket.png)

1. 如果显示 Bitbucket Cloud 的登录页面，请使用您的凭证登录，然后选择继续。

1. 在应用程序安装页面上，一条消息显示该 AWS CodeStar 应用程序正在尝试连接到您的 Bitbucket 帐户。

   如果您使用的是 Bitbucket 工作区，请更改工作区的 **Authorize for**（授权）选项。只有您拥有管理员访问权限的工作区才会显示。

   选择**授予访问权限**。

1. 在 **Bitbucket 应用程序**中，将显示新安装的连接 ID。选择**连接**。创建的连接将显示在连接列表中。  
![\[显示访问请求的控制台屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/create-connection-bitbucket-app-ID.png)

### 步骤 3：保存您的 Bitbucket Cloud 源操作
<a name="connections-bitbucket-console-save"></a>

使用向导或**编辑操作**页面上的这些步骤，将源操作与连接信息一起保存。

**完成并保存您的源操作和连接**

1. 在**存储库名称**中，选择第三方存储库的名称。

1. 如果您的操作是操作，则可以在 Pip **elin** e 触发器下添加触发器。 CodeConnections 要配置管道触发器配置并选择性使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。

1. 在**输出构件格式**中，您必须为构件选择格式。
   + 要使用默认方法存储 Bitbucket Cloud 操作的输出项目，请选择**CodePipeline 默认**。操作会访问 Bitbucket Cloud 存储库中的文件，并将构件以 ZIP 文件格式存储在管道构件存储中。
   + 要存储包含存储库的 URL 引用的 JSON 文件，以便下游操作可以直接执行 Git 命令，请选择**完全克隆**。此选项只能由 CodeBuild 下游操作使用。

     如果选择此选项，则需要更新 CodeBuild 项目服务角色的权限，如所示[添加连接 Bitbucket、 GitHub、En GitHub terprise Server 或 GitLab .com 的 CodeBuild GitClone 权限](troubleshooting.md#codebuild-role-connections)。

1. 在向导上选择**下一步**，或者在**编辑操作**页面上选择**保存**。

## 创建到 Bitbucket Cloud 的连接 (CLI)
<a name="connections-bitbucket-cli"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 来创建连接。

**注意**  
您可以创建到 Bitbucket Cloud 存储库的连接。不支持已安装的 Bitbucket 提供程序类型（如 Bitbucket 服务器）。

为此，请使用 **create-connection** 命令。

**重要**  
默认情况下，通过 AWS CLI 或创建的连接 AWS CloudFormation 处于`PENDING`状态。使用 CLI 或创建连接后 CloudFormation，使用控制台编辑连接以使其处于状态`AVAILABLE`。

**创建连接**

1. 打开终端（Linux、macOS 或 Unix）或命令提示符（Windows）。 AWS CLI 使用运行**create-connection**命令，`--connection-name`为您的连接指定`--provider-type`和。在此示例中，第三方提供方名称为 `Bitbucket`，指定的连接名称为 `MyConnection`。

   ```
   aws codestar-connections create-connection --provider-type Bitbucket --connection-name MyConnection
   ```

   如果成功，该命令将返回类似以下内容的连接 ARN 信息。

   ```
   {
       "ConnectionArn": "arn:aws:codestar-connections:us-west-2:account_id:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f"
   }
   ```

1. 使用控制台完成连接。有关更多信息，请参阅[更新挂起的连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html)。

1. 管道默认会在向连接源存储库推送代码时检测更改。要配置手动发布或 Git 标签管道触发器配置，请执行以下操作之一：
   + 要将管道触发器配置为仅通过手动发布启动，请在配置中添加以下行：

     ```
     "DetectChanges": "false",
     ```
   + 要配置管道触发器配置以使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。例如，以下内容将 Git 标签添加到管道 JSON 定义的管道级别。在此示例中，`release-v0` 和 `release-v1` 是要包含的 Git 标签，`release-v2` 是要排除的 Git 标签。

     ```
     "triggers": [
                 {
                     "providerType": "CodeStarSourceConnection",
                     "gitConfiguration": {
                         "sourceActionName": "Source",
                         "push": [
                             {
                                 "tags": {
                                     "includes": [
                                         "release-v0", "release-v1"
                                     ],
                                     "excludes": [
                                         "release-v2"
                                     ]
                                 }
                             }
                         ]
                     }
                 }
             ]
     ```

# GitHub 连接
<a name="connections-github"></a>

您可以使用连接来授权和建立将您的第三方提供商与您的 AWS 资源关联的配置。

**注意**  
不用再创建连接或使用账户中的现有链接，您可以使用其他 AWS 账户之间的共享连接。请参阅[使用与其他账户共享的连接](connections-shared.md)。

**注意**  
此功能不适用于亚太地区（香港）、亚太地区（海得拉巴）、亚太地区（雅加达）、亚太地区（墨尔本）、亚太地区（墨尔本）、亚太地区（大阪）、非洲（开普敦）、中东（巴林）、中东（阿联酋）、欧洲（西班牙）、欧洲（苏黎世）、以色列（特拉维夫） AWS GovCloud 或（美国西部）地区。要参考其他可用操作，请参阅 [产品和服务与 CodePipeline](integrations.md)。有关在欧洲地区（米兰）区域使用此操作的注意事项，请参阅[CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作](action-reference-CodestarConnectionSource.md)中的说明。

要在中为您的企业云存储库 GitHub 或 GitHub 企业云存储库添加源操作 CodePipeline，您可以选择：
+ 使用 CodePipeline 控制台的 “**创建管道**” 向导或 **“编辑” 操作**页面选择 **GitHub （通过 GitHub应用程序）**提供者选项。参阅[创建与 GitHub 企业服务器（控制台）的连接](connections-ghes.md#connections-ghes-console)以添加操作。控制台可帮助您创建连接资源。
**注意**  
有关指导您如何添加 GitHub 连接以及如何使用管道中的 “**完全克隆” 选项克隆**元数据的教程，请参阅[教程：使用带有 GitHub 管道源的完整克隆](tutorials-github-gitclone.md)。
+ 使用 CLI，通过[创建管道（CLI）](pipelines-create.md#pipelines-create-cli) 中所示的步骤，添加提供方为 `GitHub` 的 `CodeStarSourceConnection` 操作的操作配置。

**注意**  
您也可以使用开发人员工具控制台，在**设置**下创建连接。参阅[创建连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html)。

开始前的准备工作：
+ 您必须已使用创建账户 GitHub。
+ 您必须已经创建了 GitHub 代码存储库。
+ 如果您的 CodePipeline 服务角色是在 2019 年 12 月 18 日之前创建的，则可能需要更新其权限才能`codestar-connections:UseConnection`用于 AWS CodeStar 连接。有关说明，请参阅[为 CodePipeline 服务角色添加权限](how-to-custom-role.md#how-to-update-role-new-services)。

**注意**  
要创建连接，您必须是 GitHub 组织所有者。对于不属于组织的存储库，您必须是存储库拥有者。

**Topics**
+ [

## 创建与 GitHub （控制台）的连接
](#connections-github-console)
+ [

## 创建与 GitHub (CLI) 的连接
](#connections-github-cli)

## 创建与 GitHub （控制台）的连接
<a name="connections-github-console"></a>

使用这些步骤使用 CodePipeline 控制台为您的 GitHub或 GitHub 企业云存储库添加连接操作。

**注意**  
在这些步骤中，您可以在**存储库访问**下选择特定的存储库。任何未被选中的存储库都将无法访问或看见 CodePipeline。

### 步骤 1：创建或编辑您的管道
<a name="connections-github-console-action"></a>

1. 登录 CodePipeline 控制台。

1. 选择下列选项之一。
   + 选择创建管道。按照*创建管道* 中的步骤操作，完成第一个屏幕，然后选择**下一步**。在 “**来源**” 页面的 “**源提供者**” 下，选择 **GitHub （通过 GitHub 应用程序）**。
   + 选择编辑现有管道。选择**编辑**，然后选择**编辑阶段**。选择添加或编辑您的源操作。在**编辑操作**页面的**操作名称**下，输入您的操作的名称。在**操作提供者**中，选择 **GitHub （通过 GitHub应用程序）**。

1. 请执行以下操作之一：
   + 在 “**连接**” 下，如果您尚未创建与提供商的连接，请选择 **Connection to GitHub**。继续执行步骤 2：创建与的连接 GitHub。
   + 在**连接**下，如果您已创建到提供程序的连接，请选择该连接。继续执行步骤 3：保存连接的源操作。

### 步骤 2：创建与的连接 GitHub
<a name="connections-github-console-create"></a>

选择创建连接后，将出现 “**Connect t GitHub** o” 页面。

![\[显示初始 GitHub 连接页面的控制台屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/github-conn.png)


**要创建与的连接 GitHub**

1. 在 **“GitHub 连接设置”** 下，您的连接名称显示在 “**连接名称**” 中。选择 “**连接到” GitHub**。此时将显示访问请求页面。

1. 选择 “**为 AWS 连接器授权” GitHub**。连接页面将显示并显示 “**GitHub 应用程序**” 字段。  
![\[控制台屏幕截图显示了带有 “ GitHub 应用程序” 字段的初始 GitHub 连接页面。\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/github-conn-access-app.png)

1. 在 “**GitHub 应用程序**” 下，选择应用程序安装或选择 “**安装新应用程序**” 来创建一个。

   您可以为与特定提供程序的所有连接安装一个应用程序。如果您已经安装了 GitHub 应用程序 AWS 连接器，请选择它并跳过此步骤。
**注意**  
如果要创建[用户访问令牌](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)，请确保已经为 GitHub 应用程序安装了 Conn AWS ector，然后将 “应用程序安装” 字段留空。 CodeConnections 将使用用户访问令牌进行连接。

1. 在 “**安装 AWS 连接器 GitHub**” 页面上，选择要在其中安装应用程序的帐户。
**注意**  
您只需为每个 GitHub 账户安装一次该应用程序。如果您之前已安装了应用程序，则可以选择**配置**，继续进入应用程序安装的修改页面，也可以使用后退按钮返回到控制台。

1. 在 “**安装 AWS 连接器 GitHub**” 页面上，保留默认值，然后选择 “**安装**”。

1. 在 “**Connect t** o GitHub” 页面上，新安装的连接 ID 显示在 “**GitHub 应用程序**” 中。选择**连接**。

### 第 3 步：保存您的 GitHub 源代码操作
<a name="connections-github-console-save"></a>

使用**编辑操作**页面上的这些步骤，将源操作与连接信息一起保存。

**保存您的 GitHub 源代码操作**

1. 在**存储库名称**中，选择第三方存储库的名称。

1. 如果您的操作是操作，则可以在 Pip **elin** e 触发器下添加触发器。 CodeConnections 要配置管道触发器配置并选择性使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。

1. 在**输出构件格式**中，您必须为构件选择格式。
   + 要使用默认方法存储 GitHub 操作的输出对象，请选择**CodePipeline 默认**。该操作访问存储库中的文件，并将工件 GitHub 存储在管道工件存储区的 ZIP 文件中。
   + 要存储包含存储库的 URL 引用的 JSON 文件，以便下游操作可以直接执行 Git 命令，请选择**完全克隆**。此选项只能由 CodeBuild 下游操作使用。

     如果选择此选项，则需要更新 CodeBuild 项目服务角色的权限，如所示[添加连接 Bitbucket、 GitHub、En GitHub terprise Server 或 GitLab .com 的 CodeBuild GitClone 权限](troubleshooting.md#codebuild-role-connections)。如需查看教程以了解如何使用**完整克隆**选项，请参阅[教程：使用带有 GitHub 管道源的完整克隆](tutorials-github-gitclone.md)。

1. 在向导上选择**下一步**，或者在**编辑操作**页面上选择**保存**。

## 创建与 GitHub (CLI) 的连接
<a name="connections-github-cli"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 来创建连接。

为此，请使用 **create-connection** 命令。

**重要**  
默认情况下，通过 AWS CLI 或创建的连接 AWS CloudFormation 处于`PENDING`状态。使用 CLI 或创建连接后 CloudFormation，使用控制台编辑连接以使其处于状态`AVAILABLE`。

**创建连接**

1. 打开终端（Linux、macOS 或 Unix）或命令提示符（Windows）。 AWS CLI 使用运行**create-connection**命令，`--connection-name`为您的连接指定`--provider-type`和。在此示例中，第三方提供方名称为 `GitHub`，指定的连接名称为 `MyConnection`。

   ```
   aws codestar-connections create-connection --provider-type GitHub --connection-name MyConnection
   ```

   如果成功，该命令将返回类似以下内容的连接 ARN 信息。

   ```
   {
       "ConnectionArn": "arn:aws:codestar-connections:us-west-2:account_id:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f"
   }
   ```

1. 使用控制台完成连接。有关更多信息，请参阅[更新挂起的连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html)。

1. 管道默认会在向连接源存储库推送代码时检测更改。要配置手动发布或 Git 标签管道触发器配置，请执行以下操作之一：
   + 要将管道触发器配置为仅通过手动发布启动，请在配置中添加以下行：

     ```
     "DetectChanges": "false",
     ```
   + 要配置管道触发器配置以使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。例如，以下内容添加到管道 JSON 定义的管道级别。在此示例中，`release-v0` 和 `release-v1` 是要包含的 Git 标签，`release-v2` 是要排除的 Git 标签。

     ```
     "triggers": [
                 {
                     "providerType": "CodeStarSourceConnection",
                     "gitConfiguration": {
                         "sourceActionName": "Source",
                         "push": [
                             {
                                 "tags": {
                                     "includes": [
                                         "release-v0", "release-v1"
                                     ],
                                     "excludes": [
                                         "release-v2"
                                     ]
                                 }
                             }
                         ]
                     }
                 }
             ]
     ```

# GitHub 企业服务器连接
<a name="connections-ghes"></a>

Connections 允许您授权和建立将您的第三方提供商与您的 AWS 资源关联的配置。要将您的第三方存储库关联为管道的源，您应使用连接。

**注意**  
不用再创建连接或使用账户中的现有链接，您可以使用其他 AWS 账户之间的共享连接。请参阅[使用与其他账户共享的连接](connections-shared.md)。

**注意**  
此功能不适用于亚太地区（香港）、亚太地区（海得拉巴）、亚太地区（雅加达）、亚太地区（墨尔本）、亚太地区（墨尔本）、亚太地区（大阪）、非洲（开普敦）、中东（巴林）、中东（阿联酋）、欧洲（西班牙）、欧洲（苏黎世）、以色列（特拉维夫） AWS GovCloud 或（美国西部）地区。要参考其他可用操作，请参阅 [产品和服务与 CodePipeline](integrations.md)。有关在欧洲地区（米兰）区域使用此操作的注意事项，请参阅[CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作](action-reference-CodestarConnectionSource.md)中的说明。

要在中添加 GitHub 企业服务器源操作 CodePipeline，可以选择以下任一选项：
+ 使用 CodePipeline 控制台的 “**创建管道**” 向导或 **“编辑” 操作**页面选择**GitHub 企业服务器**提供者选项。参阅[创建与 GitHub 企业服务器（控制台）的连接](#connections-ghes-console)以添加操作。控制台可帮助您创建主机资源和连接资源。
+ 使用 CLI，添加提供方为 `GitHubEnterpriseServer` 的 `CreateSourceConnection` 操作的操作配置，并创建您的资源：
  + 要创建连接资源，请参阅[创建主机并连接到 GitHub 企业服务器 (CLI)](#connections-ghes-cli)，以便使用 CLI 创建主机资源和连接资源。
  + 使用[CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作](action-reference-CodestarConnectionSource.md)中的 `CreateSourceConnection` 示例操作配置来添加操作，如[创建管道（CLI）](pipelines-create.md#pipelines-create-cli) 中所示。

**注意**  
您也可以使用开发人员工具控制台，在**设置**下创建连接。参阅[创建连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html)。

开始前的准备工作：
+ 您必须已在 GitHub 企业服务器上创建帐户并在基础架构上安装了 GitHub 企业服务器实例。
**注意**  
每个 VPC 一次只能与一台主机（GitHub 企业服务器实例）关联。
+ 您必须已经使用 GitHub 企业服务器创建了代码存储库。

**Topics**
+ [

## 创建与 GitHub 企业服务器（控制台）的连接
](#connections-ghes-console)
+ [

## 创建主机并连接到 GitHub 企业服务器 (CLI)
](#connections-ghes-cli)

## 创建与 GitHub 企业服务器（控制台）的连接
<a name="connections-ghes-console"></a>

使用这些步骤使用 CodePipeline 控制台为您的 GitHub企业服务器存储库添加连接操作。

**注意**  
GitHub 企业服务器连接仅提供对用于创建连接的 GitHub 企业服务器帐户所拥有的存储库的访问权限。

**开始前的准备工作：**

要将主机连接到 E GitHub nterprise Server，必须完成为连接创建主机资源的步骤。请参阅[管理连接主机](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-hosts.html)。

### 步骤 1：创建或编辑您的管道
<a name="connections-ghes-console-action"></a>

**创建或编辑您的管道**

1. 登录 CodePipeline 控制台。

1. 选择下列选项之一。
   + 选择创建管道。按照*创建管道* 中的步骤操作，完成第一个屏幕，然后选择**下一步**。在 “**源**” 页上的 “**源提供商**” 下，选择 “**GitHub 企业服务器**”。
   + 选择编辑现有管道。选择**编辑**，然后选择**编辑阶段**。选择添加或编辑您的源操作。在**编辑操作**页面的**操作名称**下，输入您的操作的名称。在**操作提供者**中，选择**GitHub 企业服务器**。

1. 请执行以下操作之一：
   + 在 “**连接**” 下，如果您尚未创建与提供商的连接，请选择 “**连接到 GitHub 企业服务器**”。继续执行步骤 2：创建与 GitHub 企业服务器的连接。
   + 在**连接**下，如果您已创建到提供程序的连接，请选择该连接。继续执行步骤 3：保存连接的源操作。

### 创建与 GitHub 企业服务器的连接
<a name="connections-ghes-console-create"></a>

选择创建连接后，将显示 “**Connect to En GitHub terprise Server**” 页面。

**重要**  
AWS CodeConnections 由于版本中存在已知问题，不支持 GitHub 企业服务器版本 2.22.0。要执行连接，请升级到版本 2.22.1 或最新的可用版本。

**连接到 GitHub 企业服务器**

1. 在**连接名称**，输入您的连接的名称。

1. 在 **URL** 中，输入服务器的终端节点。
**注意**  
如果所提供的 URL 已用于为连接设置 GitHub企业服务器，则系统将提示您选择之前为该终端节点创建的主机资源 ARN。

1. 如果您已将服务器启动到 Amazon VPC 中，并且想要连接 VPC，请选择 **Use a VPC (使用 VPC)** 并完成以下操作。

   1. 在 **VPC ID** 中，选择您的 VPC ID。请务必为安装 GitHub 企业服务器实例的基础设施选择 VPC，或者选择可通过 VPN 或 Direct Connect 访问 GitHub企业服务器实例的 VPC。

   1. 在 **Subnet ID (子网 ID)** 下，选择 **Add (添加)**。在字段中，选择要用于主机的子网 ID。您可以选择最多 10 个子网。

      请务必为安装 GitHub 企业服务器实例的基础架构选择子网，或者选择可以通过 VPN 或 Direct Connect 访问已安装的 GitHub 企业服务器实例的子网。

   1. 在 “**安全组**” 下 IDs，选择 “**添加**”。在字段中，选择要用于主机的安全组。您最多可以选择 10 个安全组。

      请务必为安装 GitHub 企业服务器实例的基础架构选择安全组，或者选择可以通过 VPN 或 Direct Connect 访问已安装的 GitHub 企业服务器实例的安全组。

   1. 如果您配置了私有 VPC，并且已将 GitHub 企业服务器实例配置为使用非公共证书颁发机构执行 TLS 验证，请在 **TLS 证书**中输入您的证书 ID。TLS 证书值应该是证书的公有密钥。  
![\[控制台屏幕截图显示了 VPC 选项的 “创建 GitHub 企业服务器连接” 页面。\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/connections-create-ghes-screen-vpc.png)

1. 选择 “**连接到 GitHub 企业服务器”**。创建的连接显示为**待处理**状态。将使用您提供的服务器信息为连接创建一个主机资源。对于主机名，将使用 URL。

1. 选择**更新待处理的连接**。

1. 如果出现提示，请在 GitHub 企业登录页面上使用您的 GitHub企业凭据登录。

1. 在**创建 GitHub 应用程序**页面上，为您的应用程序选择一个名称。

1. 在 GitHub 授权页面上，选择**授权**<app-name>。

1. 在应用程序安装页面上，有一条消息显示连接器应用程序已准备好安装。如果您有多个组织，系统可能会提示您选择要安装该应用程序的组织。

   选择要安装应用程序的存储库设置。选择**安装**。

1. 连接页面显示已创建的连接处于**可用**状态。

### 步骤 3：保存您的 GitHub 企业服务器源操作
<a name="connections-ghes-console-save"></a>

使用向导或**编辑操作**页面上的这些步骤，将源操作与连接信息一起保存。

**完成并保存您的源操作和连接**

1. 在**存储库名称**中，选择第三方存储库的名称。

1. 如果您的操作是操作，则可以在 Pip **elin** e 触发器下添加触发器。 CodeConnections 要配置管道触发器配置并选择性使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。

1. 在**输出构件格式**中，您必须为构件选择格式。
   + 要使用默认方法存储 GitHub 企业服务器操作的输出对象，请选择**CodePipeline默认**。该操作访问 GitHub 企业服务器存储库中的文件，并将工件存储在管道对象存储区的 ZIP 文件中。
   + 要存储包含存储库的 URL 引用的 JSON 文件，以便下游操作可以直接执行 Git 命令，请选择**完全克隆**。此选项只能由 CodeBuild 下游操作使用。

1. 在向导上选择**下一步**，或者在**编辑操作**页面上选择**保存**。

## 创建主机并连接到 GitHub 企业服务器 (CLI)
<a name="connections-ghes-cli"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 来创建连接。

为此，请使用 **create-connection** 命令。

**重要**  
默认情况下，通过 AWS CLI 或创建的连接 AWS CloudFormation 处于`PENDING`状态。使用 CLI 或创建连接后 CloudFormation，使用控制台编辑连接以使其处于状态`AVAILABLE`。

您可以使用 AWS Command Line Interface (AWS CLI) 为已安装的连接创建主机。

**注意**  
每个 GitHub 企业服务器帐户只能创建一次主机。您与特定 GitHub 企业服务器帐户的所有连接都将使用同一台主机。

您可以使用主机来表示安装第三方提供程序的基础设施的终端节点。使用 CLI 完成主机创建后，主机将处于**待处理**状态。然后，您应设置或注册主机，使之转为**可用**状态。主机可用后，完成创建连接的步骤。

为此，请使用 **create-host** 命令。

**重要**  
默认情况下，通过创建的主机 AWS CLI 处于`Pending`状态。使用 CLI 创建主机后，可使用控制台或 CLI 设置主机以使其状态为 `Available`。

**创建主机**

1. 打开终端（Linux、macOS 或 Unix）或命令提示符（Windows）。 AWS CLI 使用运行**create-host**命令，`--provider-endpoint`为您的连接指定`--name``--provider-type`、和。在此示例中，第三方提供程序名称为 `GitHubEnterpriseServer`，终端节点为 `my-instance.dev`。

   ```
   aws codestar-connections create-host --name MyHost --provider-type GitHubEnterpriseServer --provider-endpoint "https://my-instance.dev"
   ```

   如果成功，该命令将返回类似以下内容的主机 Amazon 资源名称（ARN）信息。

   ```
   {
       "HostArn": "arn:aws:codestar-connections:us-west-2:account_id:host/My-Host-28aef605"
   }
   ```

   完成此步骤后，主机处于 `PENDING` 状态。

1. 使用控制台完成主机设置并将主机变为 `Available` 状态。

**创建与 GitHub 企业服务器的连接**

1. 打开终端（Linux、macOS 或 Unix）或命令提示符（Windows）。 AWS CLI 使用运行**create-connection**命令，`--connection-name`为您的连接指定`--host-arn`和。

   ```
   aws codestar-connections create-connection --host-arn arn:aws:codestar-connections:us-west-2:account_id:host/MyHost-234EXAMPLE --connection-name MyConnection
   ```

   如果成功，该命令将返回类似以下内容的连接 ARN 信息。

   ```
   {
       "ConnectionArn": "arn:aws:codestar-connections:us-west-2:account_id:connection/aEXAMPLE-8aad"
   }
   ```

1. 使用控制台设置待处理的连接。

1. 管道默认会在向连接源存储库推送代码时检测更改。要配置手动发布或 Git 标签管道触发器配置，请执行以下操作之一：
   + 要将管道触发器配置为仅通过手动发布启动，请在配置中添加以下行：

     ```
     "DetectChanges": "false",
     ```
   + 要配置管道触发器配置以使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。例如，以下内容添加到管道 JSON 定义的管道级别。在此示例中，`release-v0` 和 `release-v1` 是要包含的 Git 标签，`release-v2` 是要排除的 Git 标签。

     ```
     "triggers": [
                 {
                     "providerType": "CodeStarSourceConnection",
                     "gitConfiguration": {
                         "sourceActionName": "Source",
                         "push": [
                             {
                                 "tags": {
                                     "includes": [
                                         "release-v0", "release-v1"
                                     ],
                                     "excludes": [
                                         "release-v2"
                                     ]
                                 }
                             }
                         ]
                     }
                 }
             ]
     ```

# GitLab.com 连接
<a name="connections-gitlab"></a>

Connections 允许您授权和建立将您的第三方提供商与您的 AWS 资源关联的配置。要将您的第三方存储库关联为管道的源，您应使用连接。

**注意**  
不用再创建连接或使用账户中的现有链接，您可以使用其他 AWS 账户之间的共享连接。请参阅[使用与其他账户共享的连接](connections-shared.md)。

**注意**  
此功能不适用于亚太地区（香港）、亚太地区（海得拉巴）、亚太地区（雅加达）、亚太地区（墨尔本）、亚太地区（墨尔本）、亚太地区（大阪）、非洲（开普敦）、中东（巴林）、中东（阿联酋）、欧洲（西班牙）、欧洲（苏黎世）、以色列（特拉维夫） AWS GovCloud 或（美国西部）地区。要参考其他可用操作，请参阅 [产品和服务与 CodePipeline](integrations.md)。有关在欧洲地区（米兰）区域使用此操作的注意事项，请参阅[CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作](action-reference-CodestarConnectionSource.md)中的说明。

要在中添加 GitLab .com 源操作 CodePipeline，您可以选择以下任一选项：
+ 使用 CodePipeline 控制台的 “**创建管道**” 向导或 **“编辑” 操作**页面选择**GitLab**提供者选项。参阅[创建到 GitLab .com（控制台）的连接](#connections-gitlab-console)以添加操作。控制台可帮助您创建连接资源。
+ 使用 CLI，添加提供方为 `GitLab` 的 `CreateSourceConnection` 操作的操作配置，如下所示：
  + 要创建连接资源，请参阅 [创建到 GitLab .com 的连接 (CLI)](#connections-gitlab-cli)，以便使用 CLI 创建连接资源。
  + 使用[CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作](action-reference-CodestarConnectionSource.md)中的 `CreateSourceConnection` 示例操作配置来添加操作，如[创建管道（CLI）](pipelines-create.md#pipelines-create-cli) 中所示。

**注意**  
您也可以使用开发人员工具控制台，在**设置**下创建连接。参阅[创建连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html)。

**注意**  
在 GitLab .com中授权安装此连接，即表示您授予我们的服务权限，通过访问您的帐户来处理您的数据，并且您可以随时通过卸载应用程序来撤消这些权限。

开始前的准备工作：
+ 您必须已经在 GitLab .com上创建了账户。
**注意**  
连接只能访问用于创建并授权连接的账户所拥有的存储库。
**注意**  
您可以创建与拥有**所有者**角色的存储库的连接 GitLab，然后可以将该连接与包含诸如之类的资源的存储库一起使用 CodePipeline。对于群组中的仓库，您无需成为群组拥有者。
+ 要为您的管道指定一个源，必须事先在 gitlab.com 上创建存储库。

**Topics**
+ [

## 创建到 GitLab .com（控制台）的连接
](#connections-gitlab-console)
+ [

## 创建到 GitLab .com 的连接 (CLI)
](#connections-gitlab-cli)

## 创建到 GitLab .com（控制台）的连接
<a name="connections-gitlab-console"></a>

使用以下步骤使用 CodePipeline 控制台为中的项目（存储库）添加连接操作 GitLab。

**创建或编辑您的管道**

1. 登录 CodePipeline 控制台。

1. 选择下列选项之一。
   + 选择创建管道。按照*创建管道* 中的步骤操作，完成第一个屏幕，然后选择**下一步**。在 “**来源**” 页面的 “**源提供者**” 下，选择**GitLab**。
   + 选择编辑现有管道。选择**编辑**，然后选择**编辑阶段**。选择添加或编辑您的源操作。在**编辑操作**页面的**操作名称**下，输入您的操作的名称。对于**操作提供程序**，选择 **GitLab**。

1. 请执行以下操作之一：
   + 在 “**连接**” 下，如果您尚未创建与提供商的连接，请选择 “**连接到**” GitLab。继续执行步骤 4，以便创建连接。
   + 在**连接**下，如果您已创建到提供程序的连接，请选择该连接。继续执行步骤 9。
**注意**  
如果您在创建 GitLab .com 连接之前关闭了弹出窗口，则需要刷新页面。

1. 要创建到 GitLab .com 存储库的连接，**请在选择提供商**下选择**GitLab**。在**连接名称**中，输入要创建的连接的名称。选择 “**连接到” GitLab**。  
![\[显示所选连接选项的控制台屏幕截图 GitLab。\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/connections-create-gitlab.png)

1. 当显示 GitLab .com的登录页面时，使用您的凭据登录，然后选择**登录**。

1. 如果这是您首次授权连接，则会显示一个授权页面，其中包含一条消息，请求授权该连接访问您的 GitLab .com账户。

   选择**授权**。  
![\[屏幕截图显示了授权您的 GitLab .com 账户连接的消息。\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/gitlab-authorization.png)

1. 浏览器返回到连接控制台页面。在 “**创建 GitLab 连接**” 下，新连接显示在 “**连接名称”** 中。

1. 选择 “**连接到” GitLab**。

   您将返回到 CodePipeline 控制台。
**注意**  
成功创建 GitLab .com 连接后，将在主窗口中显示成功横幅。  
 如果您之前未在当前计算机 GitLab 上登录过，则需要手动关闭弹出窗口。

1. 在**存储库名称**中， GitLab 通过使用命名空间指定项目路径来选择项目名称。例如，对于组级存储库，请按以下格式输入存储库名称：`group-name/repository-name`。有关路径和命名空间的更多信息，请参阅 [https://docs.gitlab.com/ee/api/p get-single-project](https://docs.gitlab.com/ee/api/projects.html#get-single-project) rojects.ht `path_with_namespace` ml\$1 中的字段。有关中 GitLab命名空间的更多信息，请参阅 [https://docs.gitlab.com/ee/user/namespace/](https://docs.gitlab.com/ee/user/namespace/)。
**注意**  
对于中的群组 GitLab，必须使用命名空间手动指定项目路径。例如，对于组 `mygroup` 中名为 `myrepo` 的存储库，请输入以下内容：`mygroup/myrepo`。您可以在的 URL 中找到带有命名空间的项目路径 GitLab。

1. 如果您的操作是操作，则可以在 Pip **elin** e 触发器下添加触发器。 CodeConnections 要配置管道触发器配置并选择性使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。

1. 在**分支名称**中，选择您希望管道在其中检测源更改的分支。
**注意**  
如果未自动填充分支名称，说明您没有存储库的**所有者**访问权限。原因要么是项目名称无效，要么是所使用的连接无权访问项目/存储库。

1. 在**输出构件格式**中，您必须为构件选择格式。
   + 要使用默认方法存储 GitLab .com 操作的输出对象，请选择**CodePipeline 默认**。该操作访问 GitLab .com存储库中的文件，并将工件存储在管道工件存储区的 ZIP 文件中。
   + 要存储包含存储库的 URL 引用的 JSON 文件，以便下游操作可以直接执行 Git 命令，请选择**完全克隆**。此选项只能由 CodeBuild 下游操作使用。

     如果选择此选项，则需要更新 CodeBuild 项目服务角色的权限，如所示[添加连接 Bitbucket、 GitHub、En GitHub terprise Server 或 GitLab .com 的 CodeBuild GitClone 权限](troubleshooting.md#codebuild-role-connections)。如需查看教程以了解如何使用**完整克隆**选项，请参阅[教程：使用带有 GitHub 管道源的完整克隆](tutorials-github-gitclone.md)。

1. 选择保存源操作并继续。

## 创建到 GitLab .com 的连接 (CLI)
<a name="connections-gitlab-cli"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 来创建连接。

为此，请使用 **create-connection** 命令。

**重要**  
默认情况下，通过 AWS CLI 或创建的连接 AWS CloudFormation 处于`PENDING`状态。使用 CLI 或创建连接后 CloudFormation，使用控制台编辑连接以使其处于状态`AVAILABLE`。

**创建连接**

1. 打开终端（Linux、macOS 或 Unix）或命令提示符（Windows）。 AWS CLI 使用运行**create-connection**命令，`--connection-name`为您的连接指定`--provider-type`和。在此示例中，第三方提供方名称为 `GitLab`，指定的连接名称为 `MyConnection`。

   ```
   aws codestar-connections create-connection --provider-type GitLab --connection-name MyConnection
   ```

   如果成功，该命令将返回类似以下内容的连接 ARN 信息。

   ```
   {
       "ConnectionArn": "arn:aws:codestar-connections:us-west-2:account_id:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f"
   }
   ```

1. 使用控制台完成连接。有关更多信息，请参阅[更新挂起的连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html)。

1. 管道默认会在向连接源存储库推送代码时检测更改。要配置手动发布或 Git 标签管道触发器配置，请执行以下操作之一：
   + 要将管道触发器配置为仅通过手动发布启动，请在配置中添加以下行：

     ```
     "DetectChanges": "false",
     ```
   + 要配置管道触发器配置以使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。例如，以下内容添加到管道 JSON 定义的管道级别。在此示例中，`release-v0` 和 `release-v1` 是要包含的 Git 标签，`release-v2` 是要排除的 Git 标签。

     ```
     "triggers": [
                 {
                     "providerType": "CodeStarSourceConnection",
                     "gitConfiguration": {
                         "sourceActionName": "Source",
                         "push": [
                             {
                                 "tags": {
                                     "includes": [
                                         "release-v0", "release-v1"
                                     ],
                                     "excludes": [
                                         "release-v2"
                                     ]
                                 }
                             }
                         ]
                     }
                 }
             ]
     ```

# 用于 GitLab 自我管理的连接
<a name="connections-gitlab-managed"></a>

Connections 允许您授权和建立将您的第三方提供商与您的 AWS 资源关联的配置。要将您的第三方存储库关联为管道的源，您应使用连接。

**注意**  
不用再创建连接或使用账户中的现有链接，您可以使用其他 AWS 账户之间的共享连接。请参阅[使用与其他账户共享的连接](connections-shared.md)。

**注意**  
此功能不适用于亚太地区（香港）、亚太地区（海得拉巴）、亚太地区（雅加达）、亚太地区（墨尔本）、亚太地区（墨尔本）、亚太地区（大阪）、非洲（开普敦）、中东（巴林）、中东（阿联酋）、欧洲（西班牙）、欧洲（苏黎世）、以色列（特拉维夫） AWS GovCloud 或（美国西部）地区。要参考其他可用操作，请参阅 [产品和服务与 CodePipeline](integrations.md)。有关在欧洲地区（米兰）区域使用此操作的注意事项，请参阅[CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作](action-reference-CodestarConnectionSource.md)中的说明。

要在中添加 GitLab 自我管理的源操作 CodePipeline，您可以选择以下任一选项：
+ 使用 CodePipeline 控制台的 “**创建管道**” 向导或 **“编辑” 操作**页面选择**GitLab自我管理**的提供者选项。参阅[创建与 GitLab 自我管理（控制台）的连接](#connections-gitlab-managed-console)以添加操作。控制台可帮助您创建主机资源和连接资源。
+ 使用 CLI，添加提供方为 `GitLabSelfManaged` 的 `CreateSourceConnection` 操作的操作配置，并创建您的资源：
  + 要创建连接资源，请参阅[创建主机并连接到 GitLab 自我管理 (CLI)](#connections-gitlab-managed-cli)，以便使用 CLI 创建主机资源和连接资源。
  + 使用[CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作](action-reference-CodestarConnectionSource.md)中的 `CreateSourceConnection` 示例操作配置来添加操作，如[创建管道（CLI）](pipelines-create.md#pipelines-create-cli) 中所示。

**注意**  
您也可以使用开发人员工具控制台，在**设置**下创建连接。参阅[创建连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html)。

开始前的准备工作：
+ 您必须已经使用自己管理安装的 GitLab 企业版或 GitLab 社区版创建了帐户， GitLab 并且安装了企业版或社区版。有关更多信息，请参阅[https://docs.gitlab.com/ee/订阅/self\$1managed/](https://docs.gitlab.com/ee/subscriptions/self_managed/)。
**注意**  
连接只为用于创建并授权连接的账户提供访问权限。
**注意**  
您可以创建与拥有**所有者**角色的存储库的连接 GitLab，然后该连接可以与资源一起使用，例如 CodePipeline。对于群组中的仓库，您无需成为群组拥有者。
+ 您必须已经创建了仅具有以下范围缩小权限的 GitLab 个人访问令牌 (PAT)：api。有关更多信息，请参阅 [https://docs.gitlab.com/ee/user/profile/personal\$1access\$1tokens.html](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。您必须是管理员才能创建和使用 PAT。
**注意**  
您的 PAT 用于对主机进行授权，不会以其它方式存储或由连接使用。要设置主机，您可以创建一个临时 PAT，然后在设置主机之后，可以删除 PAT。
+ 您可以选择提前设置主机。无论是否使用 VPC，您都可以设置主机。有关 VPC 配置的详细信息以及有关创建主机的其他信息，请参阅[创建主机](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-host-create.html)。

**Topics**
+ [

## 创建与 GitLab 自我管理（控制台）的连接
](#connections-gitlab-managed-console)
+ [

## 创建主机并连接到 GitLab 自我管理 (CLI)
](#connections-gitlab-managed-cli)

## 创建与 GitLab 自我管理（控制台）的连接
<a name="connections-gitlab-managed-console"></a>

使用这些步骤使用 CodePipeline 控制台为您的 GitLab自管理存储库添加连接操作。

**注意**  
GitLab 自管理连接仅提供对用于创建连接的 GitLab 自我管理账户所拥有的存储库的访问权限。

**开始前的准备工作：**

要实现 GitLab 自我管理的主机连接，您必须完成为连接创建主机资源的步骤。请参阅[管理连接主机](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-hosts.html)。

### 步骤 1：创建或编辑您的管道
<a name="connections-gitlab-managed-console-action"></a>

**创建或编辑您的管道**

1. 登录 CodePipeline 控制台。

1. 选择下列选项之一。
   + 选择创建管道。按照*创建管道* 中的步骤操作，完成第一个屏幕，然后选择**下一步**。在**来源**页面的**来源提供商**下，选择**GitLab 自我管理**。
   + 选择编辑现有管道。选择**编辑**，然后选择**编辑阶段**。选择添加或编辑您的源操作。在**编辑操作**页面的**操作名称**下，输入您的操作的名称。在**操作提供者**中，选择**GitLab 自我管理**。

1. 请执行以下操作之一：
   + 在 Connecti **on** 下，如果您尚未创建与提供商的连接，请选择 **Connection 以进行 GitLab 自我管理**。继续执行步骤 2：创建 GitLab 自我管理连接。
   + 在 “**连接**” 下，如果您已经创建了与提供商的连接，请选择该连接，然后继续执行步骤 3：保存 GitLab 自行管理的源操作。

### 步骤 2：创建到 GitLab 自行管理的连接
<a name="connections-gitlab-managed-console-create"></a>

选择创建连接后，将显示 “**Connect t GitLab o 自我管理**” 页面。

**连接到 GitLab 自我管理**

1. 在**连接名称**，输入您的连接的名称。

1. 在 **URL** 中，输入服务器的终端节点。
**注意**  
如果提供的 URL 已用于为连接设置主机，系统将提示您选择之前为该端点创建的主机资源 ARN。

1. 如果您已将服务器启动到 Amazon VPC 中，并且想要连接 VPC，请选择**使用 VPC** 并填写 VPC 的信息。

1. 选择 **Connect 以进行 GitLab 自我管理**。创建的连接显示为**待处理**状态。将使用您提供的服务器信息为连接创建一个主机资源。对于主机名，将使用 URL。

1. 选择**更新待处理的连接**。

1. 如果页面打开时显示一条重定向消息，确认您是否要继续访问该提供程序，请选择**继续**。输入该提供程序的授权。

1. 将显示 *host\$1name* “**设置**” 页面。在**提供个人访问令牌**中，仅向你的 GitLab PAT 提供以下限定范围的权限：。`api`
**注意**  
只有管理员才能创建和使用 PAT。

   选择**继续**。  
![\[控制台屏幕截图显示了新主机的 GitLab 自我管理个人访问令牌条目\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/connections-create-glsm-pat.png)

1. 连接页面显示已创建的连接处于**可用**状态。

### 步骤 3：保存您 GitLab 自行管理的源代码操作
<a name="connections-gitlab-managed-console-save"></a>

使用向导或**编辑操作**页面上的这些步骤，将源操作与连接信息一起保存。

**完成并保存您的源操作和连接**

1. 在**存储库名称**中，选择第三方存储库的名称。

1. 如果您的操作是操作，则可以在 Pip **elin** e 触发器下添加触发器。 CodeConnections 要配置管道触发器配置并选择性使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。

1. 在**输出构件格式**中，您必须为构件选择格式。
   + 要使用默认方法存储 GitLab 自管理操作的输出对象，请选择**CodePipeline默认**。操作会访问存储库中的文件，并将构件以 ZIP 文件格式存储在管道构件存储中。
   + 要存储包含存储库的 URL 引用的 JSON 文件，以便下游操作可以直接执行 Git 命令，请选择**完全克隆**。此选项只能由 CodeBuild 下游操作使用。

1. 在向导上选择**下一步**，或者在**编辑操作**页面上选择**保存**。

## 创建主机并连接到 GitLab 自我管理 (CLI)
<a name="connections-gitlab-managed-cli"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 来创建连接。

为此，请使用 **create-connection** 命令。

**重要**  
默认情况下，通过 AWS CLI 或创建的连接 AWS CloudFormation 处于`PENDING`状态。使用 CLI 或创建连接后 CloudFormation，使用控制台编辑连接以使其处于状态`AVAILABLE`。

您可以使用 AWS Command Line Interface (AWS CLI) 为已安装的连接创建主机。

您可以使用主机来表示安装第三方提供程序的基础设施的终端节点。使用 CLI 完成主机创建后，主机将处于**待处理**状态。然后，您应设置或注册主机，使之转为**可用**状态。主机可用后，完成创建连接的步骤。

为此，请使用 **create-host** 命令。

**重要**  
默认情况下，通过创建的主机 AWS CLI 处于`Pending`状态。使用 CLI 创建主机后，可使用控制台或 CLI 设置主机以使其状态为 `Available`。

**创建主机**

1. 打开终端（Linux、macOS 或 Unix）或命令提示符（Windows）。 AWS CLI 使用运行**create-host**命令，`--provider-endpoint`为您的连接指定`--name``--provider-type`、和。在此示例中，第三方提供程序名称为 `GitLabSelfManaged`，终端节点为 `my-instance.dev`。

   ```
   aws codestar-connections create-host --name MyHost --provider-type GitLabSelfManaged --provider-endpoint "https://my-instance.dev"
   ```

   如果成功，该命令将返回类似以下内容的主机 Amazon 资源名称（ARN）信息。

   ```
   {
       "HostArn": "arn:aws:codestar-connections:us-west-2:account_id:host/My-Host-28aef605"
   }
   ```

   完成此步骤后，主机处于 `PENDING` 状态。

1. 使用控制台完成主机设置并将主机变为 `Available` 状态。

**创建与 GitLab 自我管理的连接**

1. 打开终端（Linux、macOS 或 Unix）或命令提示符（Windows）。 AWS CLI 使用运行**create-connection**命令，`--connection-name`为您的连接指定`--host-arn`和。

   ```
   aws codestar-connections create-connection --host-arn arn:aws:codestar-connections:us-west-2:account_id:host/MyHost-234EXAMPLE --connection-name MyConnection
   ```

   如果成功，该命令将返回类似以下内容的连接 ARN 信息。

   ```
   {
       "ConnectionArn": "arn:aws:codestar-connections:us-west-2:account_id:connection/aEXAMPLE-8aad"
   }
   ```

1. 使用控制台设置待处理的连接。

1. 管道默认会在向连接源存储库推送代码时检测更改。要配置手动发布或 Git 标签管道触发器配置，请执行以下操作之一：
   + 要将管道触发器配置为仅通过手动发布启动，请在配置中添加以下行：

     ```
     "DetectChanges": "false",
     ```
   + 要配置管道触发器配置以使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。例如，以下内容添加到管道 JSON 定义的管道级别。在此示例中，`release-v0` 和 `release-v1` 是要包含的 Git 标签，`release-v2` 是要排除的 Git 标签。

     ```
     "triggers": [
                 {
                     "providerType": "CodeStarSourceConnection",
                     "gitConfiguration": {
                         "sourceActionName": "Source",
                         "push": [
                             {
                                 "tags": {
                                     "includes": [
                                         "release-v0", "release-v1"
                                     ],
                                     "excludes": [
                                         "release-v2"
                                     ]
                                 }
                             }
                         ]
                     }
                 }
             ]
     ```

# 使用与其他账户共享的连接
<a name="connections-shared"></a>

您可以使用 AWS RAM 创建和管理共享连接。这允许在 AWS 账户之间共享连接以访问第三方存储库。这允许在跨账户的 CodePipeline 管道中使用单个连接，同时减少了用户在每个账户中管理和维护独立连接的需求。

要在 CodePipeline 中使用共享连接，请执行以下操作。
+ 通过开发人员工具控制台的**设置**创建连接。参阅[创建连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html)。
+ 使用 AWS RAM 设置资源共享。请参阅[与 AWS 账户共享连接](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html)。
+ 当您使用 CodePipeline 控制台的**创建管道**向导或**编辑操作**页面选择连接提供程序（例如 **Bitbucket** 提供程序选项）时，您可以选择已与目标账户共享的连接。