GitHub Enterprise Server 连接 - Amazon CodePipeline
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

GitHub Enterprise Server 连接

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

注意

CodePipeline 连接操作在中国(北京)和中国(宁夏)区域不可用。要参考其他可用操作,请参阅 与 CodePipeline 的产品和服务集成

要在 CodePipeline 中添加 GitHub Enterprise Server 源操作,您可以选择以下任一操作:

注意

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

开始前的准备工作:

  • 您必须已创建 GitHub Enterprise Server 账户,并在基础设施上安装 GitHub Enterprise Server 实例。

    注意

    每个 VPC 一次只能与一个主机(GitHub Enterprise Server 实例)关联。

  • 您必须事先创建一个 GitHub Enterprise Server 代码存储库。

创建到 GitHub Enterprise Server 的连接(控制台)

通过以下步骤,可使用 CodePipeline 控制台为您的 GitHub Enterprise Server 存储库添加连接操作。

注意

GitHub Enterprise Server 连接只能访问用于创建连接的 GitHub Enterprise Server 账户所拥有的存储库。

开始前的准备工作:

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

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

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

  2. 选择以下选项之一。

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

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

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

    • 连接下,如果您尚未创建与提供程序的连接,请选择连接到 GitHub Enterprise Server。继续执行步骤 2:创建到 GitHub Enterprise Server 的连接。

    • 连接下,如果您已创建到提供程序的连接,请选择该连接。继续执行步骤 3:保存连接的源操作。

创建到 GitHub Enterprise Server 的连接

选择创建连接后,将显示连接到 GitHub Enterprise Server 页面。

重要

由于版本中的已知问题,Amazon CodeConnections不支持 GitHub Enterprise Server 版本 2.22.0。要执行连接,请升级到版本 2.22.1 或最新的可用版本。

连接到 GitHub Enterprise Server
  1. 连接名称,输入您的连接的名称。

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

    注意

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

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

    1. VPC ID 中,选择您的 VPC ID。确保为基础设施选择安装 GitHub Enterprise Server 实例的 VPC,或通过 VPN 或 Direct Connect 访问 GitHub Enterprise Server 实例的 VPC。

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

      确保为基础设施选择安装 GitHub Enterprise Server 实例的子网,或通过 VPN 或 Direct Connect 访问安装的 GitHub Enterprise Server 实例的子网。

    3. Security group IDs (安全组 ID) 下,选择 Add (添加)。在字段中,选择要用于主机的安全组。您最多可以选择 10 个安全组。

      确保为基础设施选择安装 GitHub Enterprise Server 实例的安全组,或通过 VPN 或 Direct Connect 访问安装的 GitHub Enterprise Server 实例的安全组。

    4. 如果您配置了私有 VPC,并且您已将 GitHub Enterprise Server 实例配置为使用非公有证书颁发机构执行 TLS 验证,请在 TLS certificate (TLS 证书) 中,输入证书 ID。TLS 证书值应该是证书的公有密钥。

      控制台屏幕截图显示了 VPC 选项的创建 GitHub Enterprise Server 连接页面。
  4. 选择 Connect to GitHub Enterprise Server (连接到 GitHub Enterprise Server)。创建的连接显示为 Pending (待处理) 状态。将使用您提供的服务器信息为连接创建一个主机资源。对于主机名,将使用 URL。

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

  6. 如果出现提示,请在 GitHub Enterprise 登录页面上使用您的 GitHub Enterprise 凭证登录。

  7. Create GitHub App (创建 GitHub 应用程序) 页面上,为应用程序选择名称。

  8. 在 GitHub 授权页面上,选择 Authorize <app-name> (授权 <应用程序名称>)

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

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

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

步骤 3:保存 GitHub Enterprise Server 源操作

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

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

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

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

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

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

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

创建主机和到 GitHub Enterprise Server 的连接 (CLI)

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

为此,请使用 create-connection 命令。

重要

默认情况下,通过 Amazon CLI 或 Amazon CloudFormation 创建的连接处于 PENDING 状态。使用 CLI 或 Amazon CloudFormation 创建一个连接后,可使用控制台编辑该连接以使其状态为 AVAILABLE

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

注意

您只需为每个 GitHub Enterprise Server 账户创建一次主机。您与特定 GitHub Enterprise Server 帐户的所有连接都将使用同一主机。

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

为此,请使用 create-host 命令。

重要

默认情况下,通过 Amazon CLI 创建的连接处于 Pending 状态。使用 CLI 创建主机后,可使用控制台或 CLI 设置主机以使其状态为 Available

要创建主机
  1. 打开终端(Linux、macOS 或 Unix)或命令提示符(Windows)。使用 Amazon CLI 运行 create-host 命令,并为连接指定 --name--provider-type--provider-endpoint。在此示例中,第三方提供程序名称为 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 状态。

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

创建到 GitHub Enterprise Server 的连接
  1. 打开终端(Linux、macOS 或 Unix)或命令提示符(Windows)。使用 Amazon 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" ] } } ] } } ]