CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作 - AWS CodePipeline

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

CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作

支持连接的源操作 AWS CodeConnections。 CodeConnections 允许您创建和管理 AWS 资源与第三方存储库(例如)之间的连接 GitHub。在第三方源代码存储库上进行新提交时启动管道。当手动执行管道或从源提供程序发送 Webhook 事件时,源操作会检索代码更改。

您可以将管道中的操作配置为使用 Git 配置,该配置允许您使用触发器启动管道。要将管道触发器配置配置配置为使用触发器进行筛选,请在中查看更多详细信息筛选代码推送或拉取请求的触发器

注意

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

Connections 可以将您的 AWS 资源与以下第三方存储库相关联:

  • Bitbucket Cloud(通过 CodePipeline 控制台中的 Bitbuck et 提供者选项或 CLI 中的Bitbucket提供者)

    注意

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

  • 注意

    如果您使用的是 Bitbucket 工作区,则必须具有管理员访问权限才能创建连接。

  • GitHub 和 GitHub 企业云(通过 CodePipeline 控制台中的 GitHub (版本 2)提供商选项或 CLI 中的GitHub提供商)

    注意

    如果您的仓库位于 GitHub 组织中,则必须是组织所有者才能创建连接。如果使用不位于组织中的存储库,则您必须是存储库拥有者。

  • GitHub 企业服务器(通过 CodePipeline 控制台中的GitHub 企业服务器提供者选项或 CLI 中的GitHub Enterprise Server提供者)

  • GitLab.com(通过 CodePipeline控制台中的GitLab提供者选项或 CLI 中的GitLab提供者)

    注意

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

  • GitLab (企业版或社区版)的自行管理安装(通过 CodePipeline控制台中的GitLab 自我管理提供商选项或 CLI 中的GitLabSelfManaged提供程序)

注意

每个连接都支持您在该提供方处拥有的所有存储库。您只需为每个提供方类型创建一个新连接。

借助连接,您的管道可以通过第三方提供商的安装应用来检测源更改。例如,webhook 用于订阅 GitHub 事件类型,并且可以安装在组织、存储库或 GitHub 应用程序上。您的连接会在您的 GitHub 应用程序上安装一个订阅 GitHub 推送类型事件的存储库 webhook。

检测到代码更改后,您可以使用以下选项将代码传递给后续操作:

  • 默认:与其他现有 CodePipeline 源操作一样,CodeStarSourceConnection可以输出包含提交浅表副本的 ZIP 文件。

  • 完整克隆:也可以对 CodeStarSourceConnection 进行配置,以便为后续操作输出对存储库的 URL 引用。

    目前,Git URL 引用只能由下游 CodeBuild 操作用于克隆存储库和关联的 Git 元数据。尝试将 Git URL 引用传递给非CodeBuild 操作会导致错误。

CodePipeline 创建 AWS 连接时,会提示您将 Connector 安装应用程序添加到您的第三方帐户。您必须事先创建自己的第三方账户和存储库,然后才能通过 CodeStarSourceConnection 操作进行连接。

注意

要为您的角色创建或附加一项包含使用 AWS CodeStar 连接所需权限的策略,请参阅连接权限参考。根据您的 CodePipeline 服务角色的创建时间,您可能需要更新其权限以支持 AWS CodeStar 连接。有关说明,请参阅向 CodePipeline 服务角色添加权限

注意

要在欧洲(米兰)使用连接 AWS 区域,您必须:

  1. 安装区域特定的应用程序

  2. 启用该区域

这一特定于区域的应用程序支持欧洲地区(米兰)区域中的连接。该应用程序在第三方提供商网站上发布,与支持其他区域的连接的现有应用程序是分开的。安装此应用程序,即表示您授权第三方提供商仅与该区域的服务共享您的数据,并且您可以随时通过卸载该应用程序来撤消权限。

除非您启用区域,否则该服务不会处理或存储您的数据。启用此区域,即表示您授予我们的服务处理和存储您的数据的权限。

即使未启用该区域,如果区域特定的应用程序仍保持安装状态,第三方提供商也仍可以与我们的服务共享您的数据,因此,请务必在禁用该区域后立即卸载该应用程序。有关更多信息,请参阅启用区域

操作类型

  • 类别:Source

  • 拥有者:AWS

  • 提供方:CodeStarSourceConnection

  • 版本:1

配置参数

ConnectionArn

必需:是

为源提供程序进行配置和身份验证的连接 ARN。

FullRepositoryId

必需:是

要在其中检测源更改的存储库的拥有者和名称。

例如:some-user/my-repo

重要

您必须保持该FullRepositoryId值的正确大小写。例如,如果您的用户名为some-user,存储库名称为My-Repo,则建议的FullRepositoryId值为。some-user/My-Repo

BranchName

必需:是

要在其中检测源更改的分支的名称。

OutputArtifactFormat

必需:否

指定输出构件格式。可以是 CODEBUILD_CLONE_REFCODE_ZIP。如果未指定,则默认为 CODE_ZIP

重要

CODEBUILD_CLONE_REF选项只能由 CodeBuild下游操作使用。

如果选择此选项,则需要更新 CodeBuild 项目服务角色的权限,如所示添加连接 Bitbucket、 GitHub、En GitHub terprise Server 或 GitLab .com 的 CodeBuild GitClone 权限。如需查看教程以了解如何使用完整克隆选项,请参阅教程:使用带有 GitHub 管道源的完整克隆

DetectChanges

必需:否

指在所配置的存储库和分支上进行新提交时,会自动启动管道的控制设置。如果未指定,则默认值为 true,并且默认情况下不显示该字段。此参数的有效值:

  • true: 在新提交时 CodePipeline 自动启动您的管道。

  • false: CodePipeline 不会在新提交时启动您的管道。

输入构件

  • 构件数:0

  • 描述:输入构件不适用于此操作类型。

输出构件

  • 构件数:1

  • 描述:从存储库生成的构件是 CodeStarSourceConnection 操作的输出构件。源代码提交 ID 显示 CodePipeline 为触发管道执行的源修订版。您可以在以下文件中配置此操作的输出构件:

    • ZIP 文件,其中包含在提交时,指定作为管道执行的源修订的已配置存储库和分支的内容。

    • JSON 文件,其中包含存储库的 URL 引用,以便下游操作可以直接执行 Git 命令。

      重要

      此选项只能由 CodeBuild 下游操作使用。

      如果选择此选项,则需要更新 CodeBuild 项目服务角色的权限,如所示故障排除 CodePipeline。如需查看教程以了解如何使用完整克隆选项,请参阅教程:使用带有 GitHub 管道源的完整克隆

输出变量

配置后,此操作会生成变量,该变量可由管道中下游操作的操作配置引用。此操作生成的变量可视为输出变量,即使操作没有命名空间也是如此。您可以使用命名空间配置操作,以使这些变量可用于下游操作的配置。

有关更多信息,请参阅 Variables

AuthorDate

授权提交的日期,采用时间戳格式。

BranchName

进行源更改的 存储库的分支名称。

CommitId

触发管道执行的 提交 ID。

CommitMessage

与触发管道执行的提交相关联的描述消息(如果有)。

ConnectionArn

为源提供程序进行配置和身份验证的连接 ARN。

FullRepositoryName

发出创建触发管道的提交的 存储库名称。

操作声明

在以下示例中,对于 ARN 为 arn:aws:codestar-connections:region:account-id:connection/connection-id 的连接,输出构件被设置为默认的 CODE_ZIP 压缩格式。

YAML
Name: Source Actions: - InputArtifacts: [] ActionTypeId: Version: '1' Owner: AWS Category: Source Provider: CodeStarSourceConnection OutputArtifacts: - Name: SourceArtifact RunOrder: 1 Configuration: ConnectionArn: "arn:aws:codestar-connections:region:account-id:connection/connection-id" FullRepositoryId: "some-user/my-repo" BranchName: "main" OutputArtifactFormat: "CODE_ZIP" Name: ApplicationSource
JSON
{ "Name": "Source", "Actions": [ { "InputArtifacts": [], "ActionTypeId": { "Version": "1", "Owner": "AWS", "Category": "Source", "Provider": "CodeStarSourceConnection" }, "OutputArtifacts": [ { "Name": "SourceArtifact" } ], "RunOrder": 1, "Configuration": { "ConnectionArn": "arn:aws:codestar-connections:region:account-id:connection/connection-id", "FullRepositoryId": "some-user/my-repo", "BranchName": "main", "OutputArtifactFormat": "CODE_ZIP" }, "Name": "ApplicationSource" } ] },

安装安装应用并创建连接

首次使用控制台向第三方存储库添加新连接时,必须授予对存储库的 CodePipeline 访问权限。您选择或创建一个安装应用程序,以帮助您连接到创建第三方代码存储库的账户。

使用 AWS CLI 或 AWS CloudFormation 模板时,必须提供已通过安装握手的连接的连接 ARN。否则,不会触发管道。

注意

对于 CodeStarSourceConnection 源操作,您不必设置 Webhook 或默认进行轮询。连接操作会为您管理更改检测。

下列相关资源在您使用此操作的过程中会有所帮助。

  • AWS::CodeStarConnections::Connection— Connect AWS CodeStar ions 资源的 AWS CloudFormation 模板参考提供了 AWS CloudFormation 模板中连接的参数和示例。

  • AWS CodeStar连接 API 参考 —《AWS CodeStar 连接 API 参考》提供了可用连接操作的参考信息。

  • 要查看使用连接支持的源操作来创建管道的步骤,请参阅以下内容:

    • 对于 Bitbucket Cloud,请使用控制台中的 Bitbucket 选项或 CLI 中的 CodestarSourceConnection 操作。请参阅 Bitbucket Cloud 连接

    • 对于 GitHub 和 GitHub 企业云,请使用控制台中的GitHub提供者选项或 CLI 中的CodestarSourceConnection操作。请参阅 GitHub 连接

    • 对于 GitHub 企业服务器,请使用控制台中的GitHub 企业服务器提供者选项或 CLI 中的CodestarSourceConnection操作。请参阅 GitHub 企业服务器连接

    • 对于 GitLab .com,请使用控制台中的GitLab提供者选项或在 CLI 中使用GitLab提供程序的CodestarSourceConnection操作。请参阅 GitLab.com 连接

  • 要查看使用 Bitbucket 源和 CodeBuild 操作创建管道的入门教程,请参阅连接入门

  • 有关向您展示如何连接到 GitHub 存储库以及如何使用带有下游 CodeBuild 操作的 “完全克隆” 选项的教程,请参阅教程:使用带有 GitHub 管道源的完整克隆