选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

GitHub 和 GitHub Enterprise Server 的 GitHub 应用程序连接

聚焦模式
GitHub 和 GitHub Enterprise Server 的 GitHub 应用程序连接 - AWS CodeBuild

您可以使用 GitHub 应用程序与 CodeBuild 连接。通过 AWS CodeConnections 支持 GitHub 应用程序连接。

具有源提供商访问权限,您就可以使用 CreateWebhook 来订阅 GitHub Webhook 事件,或使用 CodeBuild 中的 教程:配置 CodeBuild 托管的 GitHub Actions 运行器,从而触发构建。

注意

CodeConnections 的可用区域比 CodeBuild 更少。您可以在 CodeBuild 中使用跨区域连接。在选择加入区域创建的连接不能在其他区域中使用。有关更多信息,请参阅 AWS CodeConnections 终端节点和限额

步骤 1:创建到 GitHub 应用程序的连接(控制台)

通过以下步骤,可使用 CodeBuild 控制台为 GitHub 中的项目添加连接。

创建到 GitHub 的连接

步骤 2:向 CodeBuild 项目 IAM 角色授予使用连接的权限

您可以向 CodeBuild 项目 IAM 角色授予权限,以便使用通过您的连接提供的 GitHub 令牌。

向 CodeBuild 项目 IAM 角色授予权限
  1. 按照 允许 CodeBuild 与其他 AWS 服务进行交互 中的说明为您的 CodeBuild 项目创建 IAM 角色。

  2. 按照说明进行操作时,将以下 IAM 策略添加到您的 CodeBuild 项目角色,以便授予对连接的访问权限。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeconnections:GetConnectionToken", "codeconnections:GetConnection" ], "Resource": [ <connection-arn> ] } ] }

步骤 3:配置 CodeBuild 以使用新连接

您可以将连接配置为账户级别凭证,并在项目中使用。

AWS Management Console
在 AWS Management Console 中将连接配置为账户级别凭证
  1. 对于源提供商,选择 GitHub

  2. 对于凭证,执行以下操作之一:

    • 选择默认来源凭证,使用您账户的默认来源凭证应用于所有项目。

      1. 如果未连接到 GitHub,请选择管理默认来源凭证

      2. 对于凭证类型,选择 GitHub 应用程序

      3. 连接中,选择使用现有连接或创建新连接。

    • 选择自定义来源凭证,以便使用自定义来源凭证来覆盖您账户的默认设置。

      1. 对于凭证类型,选择 GitHub 应用程序

      2. 连接中,选择使用现有连接或创建新连接。

AWS CLI
在 AWS CLI 中将连接配置为账户级别凭证
  • 打开终端(Linux、macOS 或 Unix)或命令提示符(Windows)。使用 AWS CLI 运行 import-source-credentials 命令,并为连接指定 --auth-type--server-type--token

    使用以下命令:

    aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type GITHUB --token <connection-arn>
在 AWS Management Console 中将连接配置为账户级别凭证
  1. 对于源提供商,选择 GitHub

  2. 对于凭证,执行以下操作之一:

    • 选择默认来源凭证,使用您账户的默认来源凭证应用于所有项目。

      1. 如果未连接到 GitHub,请选择管理默认来源凭证

      2. 对于凭证类型,选择 GitHub 应用程序

      3. 连接中,选择使用现有连接或创建新连接。

    • 选择自定义来源凭证,以便使用自定义来源凭证来覆盖您账户的默认设置。

      1. 对于凭证类型,选择 GitHub 应用程序

      2. 连接中,选择使用现有连接或创建新连接。

您也可为 CodeBuild 项目设置多个令牌。有关更多信息,请参阅 将多个令牌配置为源级别凭证

排查 GitHub 应用程序的问题

以下信息有助于解决 GitHub 应用程序的常见问题。

在非预期区域安装适用于 GitHub 应用程序的 AWS 连接器

问题:您从 GitHub Marketplace 安装了适用于 GitHub 的 AWS 连接器,但在非预期区域创建了连接。如果您尝试在 GitHub 网站上重新配置应用程序,因为该应用程序已安装在您的 GitHub 账户中,它将无法运行。

可能的原因:应用程序已安装在您的 GitHub 账户中,因此您只能重新配置应用程序权限。

推荐的解决方案:您可以在期望区域使用安装 ID 创建新连接。

  1. https://console.aws.amazon.com/codesuite/settings/connections 打开 CodeConnections 控制台,然后使用 AWS 控制台导航栏中的区域选择器导航到期望区域。

  2. 按照《开发人员工具用户指南》中的说明来创建与 GitHub 的连接

    注意

    由于您已经安装了适用于 GitHub 应用程序的 AWS 连接器,因此您可以选择该连接器,而不是安装新应用程序。

GitHub 应用程序连接无权访问存储库

问题:使用连接的 AWS 服务(例如 CodeBuild 或 CodePipeline)报告称,它无权访问存储库或存储库不存在。一些可能的错误消息包括:

  • Authentication required for primary source.

  • Unable to create webhook at this time. Please try again later.

  • Failed to create webhook. GitHub API limit reached. Please try again later.

可能的原因:您可能一直在使用 GitHub 应用程序,但尚未授予 webhook 权限范围。

推荐的解决方案:要授予所需的权限范围,请按照导航到要查看或修改的 GitHub 应用程序中的说明来配置已安装的应用程序。在权限部分下面,您会看到该应用程序没有 webhook 权限,并且您可以选择查看新请求的权限。查看并接受新权限。有关更多信息,请参阅批准 GitHub 应用程序的更新权限

可能的原因:连接按预期运行,但突然无权访问存储库。

可能的解决方案:首先查看您的授权安装情况,然后验证 GitHub 应用程序是否已授权并已安装。如果 GitHub 应用程序的安装已暂停,则需要将其取消暂停。如果 GitHub 应用程序未获得 UAT(用户访问令牌)连接的授权,或者未为 IAT(安装访问令牌)连接安装应用程序,则现有连接将无法再使用,您将需要创建一个新连接。请注意,重新安装 GitHub 应用程序不会恢复与旧安装关联的先前连接。

可能的解决方案:如果连接是 UAT 连接,请确保未并发使用该连接,例如在多个 CodeBuild 并发构建运行中使用。这是因为,如果连接刷新了即将到期的令牌,GitHub 会立即使之前发放的 UAT 失效。如果您需要为多个并发 CodeBuild 构建使用 UAT 连接,则可以创建多个连接并单独使用每个连接。

可能的解决方案:如果过去 6 个月内未使用 UAT 连接,GitHub 会使该连接失效。要修复此问题,请创建新的连接。

可能的原因:您可能在未安装应用程序的情况下使用 UAT 连接。

推荐的解决方案:尽管创建 UAT 连接不需要将连接与 GitHub 应用程序安装相关联,但需要安装应用程序才能访问存储库。按照说明来检查安装,确保已安装 GitHub 应用程序。如果未安装,请导航到 GitHub 应用程序的页面来安装应用程序。有关 UAT 访问权限的更多信息,请参阅关于用户访问令牌

AWS 服务的 IAM 角色缺少必需的 IAM 权限。

问题:您看到以下任何错误消息:

  • Access denied to connection <connection-arn>

  • Failed to get access token from <connection-arn>

推荐的解决方案:通常,您使用了与 AWS 服务(例如 CodePipeline 或 CodeBuild)的连接。当您为 AWS 服务指定 IAM 角色时,AWS 服务可以使用该角色的权限来代表您执行操作。确保 IAM 角色具有必要的权限。有关必要的 IAM 权限的更多信息,请参阅《开发人员工具控制台用户指南》中的向 CodeBuild 项目 IAM 角色授予使用连接的权限以及 AWS CodeStar 通知和 CodeConnections 的身份和访问管理

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。