将 GitHub(通过 OAuth 应用程序)源操作更新为 GitHub(通过 GitHub 应用程序)源操作
在 Amazon CodePipeline 中,GitHub 源操作有两个支持版本:
-
建议:GitHub(通过 GitHub 应用程序)操作使用 CodeStarSourceConnection(适用于 Bitbucket Cloud, GitHub、GitHub Enterprise Server、GitLab.com 和 GitLab 自托管操作) 资源支持的基于 Github 应用程序的身份验证。它会在您的 GitHub 组织中安装 AWS CodeStar 连接应用程序,以便您在 GitHub 中管理访问权限。
-
不建议:GitHub(通过 OAuth 应用程序)操作使用 OAuth 令牌向 GitHub 进行身份验证,并使用单独的 Webhook 来检测更改。这不再是建议方法。
注意
CodePipeline 连接操作在中国(北京)和中国(宁夏)区域不可用。要参考其他可用操作,请参阅 与 CodePipeline 的产品和服务集成。
使用 GitHub(通过 GitHub 应用程序)操作代替 GitHub(通过 OAuth 应用程序)操作有一些重要的优点:
-
通过连接,CodePipeline 不再需要 OAuth 应用程序或个人访问令牌来访问您的存储库。创建连接时,将安装一个 GitHub 应用程序以管理对 GitHub 存储库的身份验证,并允许组织级别权限。您必须以用户身份授权 OAuth 令牌访问存储库。有关基于 OAuth 的 GitHub 访问与基于应用的 GitHub 访问对比的更多信息,请参阅 https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps
。 -
在 CLI 或 CloudFormation 中管理 GitHub(通过 GitHub 应用程序)操作时,不再需要将个人访问令牌作为密钥存储在 Secrets Manager 中。不再需要在 CodePipeline 操作配置中动态引用存储的密钥。而是将连接 ARN 添加到操作配置中。有关示例操作配置,请参阅CodeStarSourceConnection(适用于 Bitbucket Cloud, GitHub、GitHub Enterprise Server、GitLab.com 和 GitLab 自托管操作)。
-
在 CodePipeline 中创建用于 GitHub(通过 GitHub 应用程序)操作的连接资源时,可以使用相同的连接资源将其他支持的服务(例如 CodeGuru Reviewer)与存储库相关联。
-
在 Github(通过 GitHub 应用程序)中,可以克隆存储库以在后续 CodeBuild 操作中访问 git 元数据,而在 Github(通过 OAuth 应用程序)中,只能下载源。
-
管理员将为组织的存储库安装应用程序。您不再需要跟踪依赖于创建令牌的个人的 OAuth 令牌。
安装到组织的所有应用程序都可以访问同一组存储库。要更改谁可访问每个存储库,请修改每个连接的 IAM 策略。有关示例,请参阅示例:将连接用于指定存储库的范围缩小策略。
可以使用本主题中的步骤从 CodePipeline 控制台删除 GitHub(通过 OAuth 应用程序)源操作,并添加 GitHub(通过 GitHub 应用程序)源操作。
步骤 1:替换 GitHub(通过 OAuth 应用程序)操作
使用管道编辑页面将您的 GitHub(通过 OAuth 应用程序)操作替换为 GitHub [(通过 GitHub 应用程序)] 操作。
替换 GitHub(通过 OAuth 应用程序)操作
-
登录 CodePipeline 控制台。
-
选择管道,然后选择编辑。在源阶段中,选择编辑阶段。将显示一条消息,建议您更新操作。
-
在操作提供程序中,选择 GitHub(通过 GitHub 应用程序)。
-
请执行以下操作之一:
-
在连接下,如果您尚未创建到提供程序的连接,请选择连接到 GitHub。继续执行步骤 2:创建到 GitHub 的连接。
-
在连接下,如果您已创建到提供程序的连接,请选择该连接。继续执行步骤 3:保存连接的源操作。
-
步骤 2:创建到 GitHub 的连接
选择创建连接后,将显示连接到 GitHub 页面。
创建到 GitHub 的连接
-
在 GitHub 连接设置下,您的连接名称将显示在连接名称中。
在 GitHub 应用程序下,选择一个应用程序安装或选择安装新应用程序来创建一个应用程序安装。
注意
您可以为与特定提供程序的所有连接安装一个应用程序。如果您已安装 GitHub 应用程序,选择它并跳过此步骤。
-
如果显示 GitHub 授权页面,请使用您的凭证登录,然后选择继续。
-
在应用程序安装页面上,将显示一条消息,表明 AWS CodeStar 应用程序正在尝试连接到您的 GitHub 账户。
注意
您只为每个 GitHub 账户安装一次应用程序。如果您之前已安装了应用程序,则可以选择配置,继续进入应用程序安装的修改页面,也可以使用后退按钮返回到控制台。
-
在安装 AWS CodeStar 页面上,选择安装。
-
在连接到 GitHub 页面上,将显示新安装的连接 ID。选择连接。
步骤 3:保存 GitHub 源操作
在编辑操作页面上完成更新以保存新的源操作。
保存 GitHub 源操作
-
在存储库中,输入第三方存储库的名称。在分支中,输入您希望管道在其中检测源更改的分支。
注意
在存储库中键入
owner-name/repository-name,如以下示例所示:my-account/my-repository -
在输出构件格式中,为构件选择格式。
-
要使用默认方法存储 GitHub 操作的输出构件,请选择 CodePipeline 默认。操作会访问 GitHub 存储库中的文件,并将构件以 ZIP 文件格式存储在管道构件存储中。
-
要存储包含存储库的 URL 引用的 JSON 文件,以便下游操作可以直接执行 Git 命令,请选择完全克隆。此选项只能由 CodeBuild 下游操作使用。
如果选择此选项,则需要更新您的 CodeBuild 项目服务角色的权限,如 添加 CodeBuild GitClone 权限以连接到 Bitbucket、GitHub、GitHub Enterprise Server 或 GitLab.com所示。如需查看教程以了解如何使用完整克隆选项,请参阅教程:对 GitHub 管道源使用完整克隆。
-
-
在输出构件中,可以保留此操作的输出对象的名称,例如
SourceArtifact。选择完成以关闭编辑操作页面。 -
选择完成以关闭阶段编辑页面。选择保存以关闭管道编辑页面。