

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

# CodeStarSourceConnection 适用于 Bitbucket Cloud GitHub、、 GitHub 企业服务器、 GitLab .com 和 GitLab 自我管理操作
<a name="action-reference-CodestarConnectionSource"></a>

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

您可以将管道中的操作配置为使用 Git 配置，以便用触发器启动管道。要配置管道触发器配置以使用触发器进行筛选，请参阅[添加带有代码推送或拉取请求事件类型的触发器](pipelines-filter.md)中的更多详细信息。

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

Connections 可以将您的 AWS 资源与以下第三方存储库相关联：
+ Bitbucket Cloud（通过 CodePipeline 控制台中的 **Bitbuck** et 提供者选项或 CLI 中的`Bitbucket`提供者）
**注意**  
您可以创建到 Bitbucket Cloud 存储库的连接。不支持已安装的 Bitbucket 提供程序类型（如 Bitbucket 服务器）。
+ 
**注意**  
如果您使用的是 Bitbucket 工作区，则必须具有管理员访问权限才能创建连接。
+ GitHub 和 GitHub 企业云（通过 CodePipeline 控制台中的 **GitHub （通过 GitHub应用程序）**提供者选项或 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 连接所需权限的策略，请参阅[连接权限参考](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html#permissions-reference-connections)。根据您的 CodePipeline 服务角色的创建时间，您可能需要更新其权限以支持 AWS CodeStar 连接。有关说明，请参阅[为 CodePipeline 服务角色添加权限](how-to-custom-role.md#how-to-update-role-new-services)。

**注意**  
要在欧洲（米兰）使用连接 AWS 区域，您必须：  
安装区域特定的应用程序
启用该区域
这一特定于区域的应用程序支持欧洲地区（米兰）区域中的连接。该应用程序在第三方提供商网站上发布，与支持其他区域的连接的现有应用程序是分开的。安装此应用程序，即表示您授权第三方提供商仅与该区域的服务共享您的数据，并且您可以随时通过卸载该应用程序来撤消权限。  
除非您启用区域，否则该服务不会处理或存储您的数据。启用此区域，即表示您授予我们的服务处理和存储您的数据的权限。  
即使未启用该区域，如果区域特定的应用程序仍保持安装状态，第三方提供商也仍可以与我们的服务共享您的数据，因此，请务必在禁用该区域后立即卸载该应用程序。有关更多信息，请参阅[启用区域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable)。

**Topics**
+ [操作类型](#action-reference-CodestarConnectionSource-type)
+ [配置参数](#action-reference-CodestarConnectionSource-config)
+ [输入构件](#action-reference-CodestarConnectionSource-input)
+ [输出构件](#action-reference-CodestarConnectionSource-output)
+ [输出变量](#action-reference-CodestarConnectionSource-variables)
+ [服务角色权限： CodeConnections 操作](#edit-role-connections)
+ [操作声明](#action-reference-CodestarConnectionSource-example)
+ [安装安装应用并创建连接](#action-reference-CodestarConnectionSource-auth)
+ [另请参阅](#action-reference-CodestarConnectionSource-links)

## 操作类型
<a name="action-reference-CodestarConnectionSource-type"></a>
+ 类别：`Source`
+ 拥有者：`AWS`
+ 提供方：`CodeStarSourceConnection`
+ 版本：`1`

## 配置参数
<a name="action-reference-CodestarConnectionSource-config"></a>

****ConnectionArn****  
是否必需：是  
为源提供程序进行配置和身份验证的连接 ARN。

****FullRepositoryId****  
是否必需：是  
要在其中检测源更改的存储库的拥有者和名称。  
示例：`some-user/my-repo`  
您必须保持该**FullRepositoryId**值的正确大小写。例如，如果您的用户名为`some-user`，存储库名称为`My-Repo`，则建议的**FullRepositoryId**值为。`some-user/My-Repo`

****BranchName****  
是否必需：是  
要在其中检测源更改的分支的名称。

****OutputArtifactFormat****  
必需：否  
指定输出构件格式。可以是 `CODEBUILD_CLONE_REF` 或 `CODE_ZIP`。如果未指定，则默认为 `CODE_ZIP`。  
`CODEBUILD_CLONE_REF` 选项只能由 CodeBuild 下游操作使用。  
如果选择此选项，则需要更新 CodeBuild 项目服务角色的权限，如所示[添加连接 Bitbucket、 GitHub、En GitHub terprise Server 或 GitLab .com 的 CodeBuild GitClone 权限](troubleshooting.md#codebuild-role-connections)。如需查看教程以了解如何使用**完整克隆**选项，请参阅[教程：使用带有 GitHub 管道源的完整克隆](tutorials-github-gitclone.md)。

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

## 输入构件
<a name="action-reference-CodestarConnectionSource-input"></a>
+ **构件数：**`0`
+ **描述：**输入构件不适用于此操作类型。

## 输出构件
<a name="action-reference-CodestarConnectionSource-output"></a>
+ **构件数：**`1`
+ **描述：**从存储库生成的构件是 `CodeStarSourceConnection` 操作的输出构件。源代码提交 ID 显示 CodePipeline 为触发管道执行的源修订版。您可以在以下文件中配置此操作的输出构件：
  + ZIP 文件，其中包含在提交时，指定作为管道执行的源修订的已配置存储库和分支的内容。
  + JSON 文件，其中包含存储库的 URL 引用，以便下游操作可以直接执行 Git 命令。
**重要**  
此选项只能由 CodeBuild 下游操作使用。  
如果选择此选项，则需要更新 CodeBuild 项目服务角色的权限，如所示[故障排除 CodePipeline](troubleshooting.md)。如需查看教程以了解如何使用**完整克隆**选项，请参阅[教程：使用带有 GitHub 管道源的完整克隆](tutorials-github-gitclone.md)。

## 输出变量
<a name="action-reference-CodestarConnectionSource-variables"></a>

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

有关更多信息，请参阅 [变量参考](reference-variables.md)。

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

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

CommitId  
触发管道执行的 提交 ID。

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

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

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

## 服务角色权限： CodeConnections 操作
<a name="edit-role-connections"></a>

对于 CodeConnections，需要以下权限才能使用使用连接的源（例如 Bitbucket Cloud）创建管道。

```
{
    "Effect": "Allow",
    "Action": [
        "codeconnections:UseConnection"
    ],
    "Resource": "resource_ARN"
},
```

有关连接的 IAM 权限的更多信息，请参阅[连接权限参考](https://docs.aws.amazon.com/dtconsole/latest/userguide/security-iam.html#permissions-reference-connections)。

## 操作声明
<a name="action-reference-CodestarConnectionSource-example"></a>

在以下示例中，对于 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"
        }
    ]
},
```

------

## 安装安装应用并创建连接
<a name="action-reference-CodestarConnectionSource-auth"></a>

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

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

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

## 另请参阅
<a name="action-reference-CodestarConnectionSource-links"></a>

下列相关资源在您使用此操作的过程中会有所帮助。
+ [AWS::CodeStarConnections::Connection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html)— Connect AWS CodeStar ions 资源的 CloudFormation 模板参考提供了 CloudFormation 模板中连接的参数和示例。
+ [AWS CodeStar连接 API 参考](https://docs.aws.amazon.com/codestar-connections/latest/APIReference/Welcome.html) —《*AWS CodeStar 连接 API 参*考》提供了可用连接操作的参考信息。
+ 要查看使用连接支持的源操作来创建管道的步骤，请参阅以下内容：
  + 对于 Bitbucket Cloud，请使用控制台中的 **Bitbucket** 选项或 CLI 中的 `CodestarSourceConnection` 操作。请参阅[Bitbucket Cloud 连接](connections-bitbucket.md)。
  + 对于 GitHub 和 GitHub 企业云，请使用控制台中的**GitHub**提供者选项或 CLI 中的`CodestarSourceConnection`操作。请参阅[GitHub 连接](connections-github.md)。
  + 对于 GitHub 企业服务器，请使用控制台中的**GitHub 企业服务器**提供者选项或 CLI 中的`CodestarSourceConnection`操作。请参阅[GitHub 企业服务器连接](connections-ghes.md)。
  + 对于 GitLab .com，请使用控制台中的**GitLab**提供者选项或在 CLI 中使用`GitLab`提供程序的`CodestarSourceConnection`操作。请参阅[GitLab.com 连接](connections-gitlab.md)。
+ 要查看使用 Bitbucket 源和 CodeBuild 操作创建管道的入门教程，请参阅[连接入门](https://docs.aws.amazon.com/dtconsole/latest/userguide/getting-started-connections.html)。
+ 有关向您展示如何连接到 GitHub 存储库以及如何使用带有下游 CodeBuild 操作的 “**完全克隆**” 选项的教程，请参阅[教程：使用带有 GitHub 管道源的完整克隆](tutorials-github-gitclone.md)。