

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

# 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"
                                     ]
                                 }
                             }
                         ]
                     }
                 }
             ]
     ```