用于 GitLab 自托管的连接 - AWS CodePipeline

用于 GitLab 自托管的连接

连接使您可以授权和建立一些配置,将您的第三方提供方与您的 AWS 资源相关联。要将您的第三方存储库关联为管道的源,您应使用连接。

注意

不用再创建连接或使用账户中的现有链接,您可以使用其他 AWS 账户之间的共享连接。请参阅使用与其他账户共享的连接

注意

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

要在 CodePipeline 中添加 GitLab 自托管源操作,您可以选择以下任一操作:

注意

您也可以使用开发人员工具控制台,在设置下创建连接。参阅创建连接

开始前的准备工作:

  • 您必须已经使用 GitLab 创建了一个账户,并且拥有采用自托管安装的 GitLab 企业版或 GitLab 社区版。有关更多信息,请参阅 https://docs.gitlab.com/ee/subscriptions/self_managed/

    注意

    连接只为用于创建并授权连接的账户提供访问权限。

    注意

    您可以创建与您在 GitLab 中具有拥有者角色的存储库的连接,然后该连接可以与包含诸如 CodePipeline 之类的资源一起使用。对于群组中的仓库,您无需成为群组拥有者。

  • 您必须已经创建了 GitLab 个人访问令牌(PAT),但仅具有以下范围缩小权限:api。有关更多信息,请参阅 https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html。您必须是管理员才能创建和使用 PAT。

    注意

    您的 PAT 用于对主机进行授权,不会以其它方式存储或由连接使用。要设置主机,您可以创建一个临时 PAT,然后在设置主机之后,可以删除 PAT。

  • 您可以选择提前设置主机。无论是否使用 VPC,您都可以设置主机。有关 VPC 配置的详细信息以及有关创建主机的其他信息,请参阅创建主机

创建到 GitLab 自托管的连接(控制台)

通过以下步骤,使用 CodePipeline 控制台为 GitLab 自托管存储库添加连接操作。

注意

GitLab 自托管连接只能提供对 GitLab 自托管账户(用于创建连接)所有的存储库的访问权限。

开始前的准备工作:

要建立到 GitLab 自托管的主机连接,您必须事先完成为连接创建主机资源的步骤。请参阅管理连接主机

步骤 1:创建或编辑您的管道

创建或编辑您的管道
  1. 登录 CodePipeline 控制台。

  2. 选择下列选项之一。

    • 选择创建管道。按照创建管道 中的步骤操作,完成第一个屏幕,然后选择下一步。在页面的源提供程序下,选择 GitLab 自托管

    • 选择编辑现有管道。选择编辑,然后选择编辑阶段。选择添加或编辑您的源操作。在编辑操作页面的操作名称下,输入您的操作的名称。在操作提供程序中,选择 GitLab 自托管

  3. 请执行以下操作之一:

    • 连接下,如果您尚未创建到提供程序的连接,请选择连接到 GitLab 自托管。继续执行步骤 2:创建到 GitLab 自托管的连接。

    • 连接下,如果您尚未创建到提供程序的连接,请选择相应连接,然后继续执行步骤 3:保存您的 GitLab 自托管源操作。

步骤 2:创建到 GitLab 自托管的连接

选择创建连接后,将显示连接到 GitLab 自托管页面。

连接到 GitLab 自托管
  1. 连接名称,输入您的连接的名称。

  2. URL 中,输入服务器的终端节点。

    注意

    如果提供的 URL 已用于为连接设置主机,系统将提示您选择之前为该端点创建的主机资源 ARN。

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

  4. 选择连接到 GitLab 自托管。创建的连接显示为待处理状态。将使用您提供的服务器信息为连接创建一个主机资源。对于主机名,将使用 URL。

  5. 选择更新待处理的连接

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

  7. 将显示设置 host_name 页面。在提供个人访问令牌中,仅向您的 GitLab PAT 提供以下范围缩小权限:api

    注意

    只有管理员才能创建和使用 PAT。

    选择继续

    显示新主机的 GitLab 自托管个人访问令牌条目的控制台屏幕截图
  8. 连接页面显示已创建的连接处于可用状态。

第 3 步:保存 GitLab 自托管源操作

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

完成并保存您的源操作和连接
  1. 存储库名称中,选择第三方存储库的名称。

  2. 如果您的操作是 CodeConnections 操作,您可以在管道触发器下添加触发器。要配置管道触发器配置并选择性使用触发器进行筛选,请参阅添加带有代码推送或拉取请求事件类型的触发器中的更多详细信息。

  3. 输出构件格式中,您必须为构件选择格式。

    • 要使用默认方法存储 GitLab 自托管操作的输出构件,请选择 CodePipeline 默认。操作会访问存储库中的文件,并将构件以 ZIP 文件格式存储在管道构件存储中。

    • 要存储包含存储库的 URL 引用的 JSON 文件,以便下游操作可以直接执行 Git 命令,请选择完全克隆。此选项只能由 CodeBuild 下游操作使用。

  4. 在向导上选择下一步,或者在编辑操作页面上选择保存

创建主机以及到 GitLab 自托管的连接(CLI)

您可以使用 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 命令,并为连接指定 --name--provider-type--provider-endpoint。在此示例中,第三方提供程序名称为 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 状态。

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

创建到 GitLab 自托管的连接
  1. 打开终端(Linux、macOS 或 Unix)或命令提示符(Windows)。使用 AWS CLI 运行 create-connection 命令,并为连接指定 --host-arn--connection-name

    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" }
  2. 使用控制台设置待处理的连接。

  3. 管道默认会在向连接源存储库推送代码时检测更改。要配置手动发布或 Git 标签管道触发器配置,请执行以下操作之一:

    • 要将管道触发器配置为仅通过手动发布启动,请在配置中添加以下行:

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

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