本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
正在连接 GitHub
GitHub 集成使 AWS DevOps 代理能够在事件调查期间访问代码存储库并接收部署事件。此集成遵循两个步骤的过程:账户级注册 GitHub,然后将特定的存储库连接到各个代理空间。
AWS DevOps 代理支持 GitHub.com (SaaS)和 GitHub 企业服务器(自托管)实例。
先决条件
在连接之前 GitHub,请确保您具有:
访问 AWS DevOps 代理管理员控制台
具有管理员权限的 GitHub 用户账户或组织
授权在您的账户或组织中安装 GitHub 应用程序
对于 GitHub 企业服务器,您还需要:
可通过 HTTPS 访问的 GitHub 企业服务器实例(版本 3.x 或更高版本)
您的 GitHub 企业服务器实例的 HTTPS 网址(例如,
https://github.example.com)(可选)私有连接(如果您的 GitHub 企业服务器实例不可公开访问)
注册 GitHub (账户级别)
GitHub 在 AWS 账户级别注册,并在该账户中的所有代理空间之间共享。每次注册对应一个 GitHub 用户、一个组织或一个 GitHub 企业服务器实例。
步骤 1:导航到管道提供商
登录到 AWS 管理控制台
导航到 AWS DevOps 代理控制台
前往 “功能” 选项卡
在 “管道” 部分,选择 “添加”
GitHub从可用提供商列表中选择
如果 GitHub 尚未注册,系统将提示您先注册。
步骤 2:选择连接类型
在 “注册 GitHub 账户/组织” 屏幕上,选择您是以用户还是组织身份进行连接:
用户-包含用户名和个人资料的个人 GitHub 账户
组织 — 一个共享 GitHub 帐户,多个人可以同时在多个项目中进行协作
为您的GitHub 应用程序选择 GitHub 应用程序权限。权限级别决定了 GitHub 应用程序可以在您的存储库中执行的操作:
读写(默认): GitHub 应用程序同时请求读取和写入权限。这将启用所有功能。 DevOps 代理可以发布内联拉取请求评论、提出修复建议和触发工作流程。
只读: GitHub 应用程序仅请求读取权限。 DevOps 代理可以查看代码和拉取请求,但不能发布评论、提出修复建议或触发工作流程。
如果您要连接到 GitHub 企业服务器实例,请选中 “使用 GitHub 企业服务器” 复选框并输入您的实例的 HTTPS URL(例如https://github.example.com)。
如果您的 E GitHub nterprise Server 实例不可公开访问,则可以选择配置私有连接,以允许 AWS DevOps 代理安全地访问您的实例。有关更多信息,请参阅 连接到私人托管的工具。
注意
请勿在 URL 中包含/api/v3或任何尾随路径 — 仅输入基本 URL。
第 3 步:设置 GitHub 应用程序
选择 “提交” 以开始应用程序设置过程。后续步骤会有所不同,具体取决于您是连接到企业服务器 GitHub.com 还是 GitHub 企业服务器。
对于 GitHub.com
您将被重定向 GitHub 到安装 AWS DevOps 代理 GitHub 应用程序。
选择要在哪个账户或组织中安装应用程序。
该应用程序允许 AWS DevOps 代理接收来自已连接存储库的事件,包括部署事件。
适用于 GitHub 企业服务器
GitHub Enterprise Server 使用 GitHub 应用程序清单流程,该流程会自动在您的实例上设置新 GitHub 应用程序。这涉及到您的 GitHub 企业服务器实例的两次重定向。
您的浏览器将被重定向到您的 GitHub 企业服务器实例的 “创建 GitHub 应用程序” 页面。
您将看到预先填充的应用程序名称。可以根据需要随时更改名称。选择 “创建 GitHub 应用程序”。
您将被重定向回 AWS DevOps Agent,代理将清单代码交换为应用程序凭据。
步骤 4:选择存储库并完成安装
您将看到该 GitHub 应用程序的 “安装和授权” 页面。
选择允许该应用程序访问的存储库:
所有存储库-授予对所有当前和将来存储库的访问权限
仅选择存储库-从您的账户或组织中选择特定的存储库
选择安装和授权。
您将被重定向回 AWS DevOps 代理控制台,该控制台 GitHub 将显示为已注册账号。
将存储库连接到代理空间
在账户 GitHub 级别注册后,您可以将特定的存储库连接到各个代理空间:
在 AWS DevOps 代理控制台中,选择您的代理空间
前往 “功能” 选项卡
在 “管道” 部分,选择 “添加”
GitHub从可用提供商列表中选择
选择包含您要使用的存储库的 GitHub 注册
选择与该代理空间相关的存储库子集
选择 “添加” 以完成连接
您可以根据组织需求将不同的存储库集连接到不同的代理空间。单个代理空间可以使用来自多个注册的存储库。要从其他注册中添加存储库,请重复以下步骤。
配置代码审查和自动测试
当您在 GitHub 连接步骤中选择存储库时,它们会自动添加到 “代码审查和自动测试” 部分。本节配置哪些存储库会自动触发发布就绪代码审查和自动测试功能。
代码审查和自动测试配置包括:
功能-为每个存储库选择代码审查和自动测试功能。该部分为每个存储库提供了两个设置:
存储库列表-显示您在连接步骤中选择的所有存储库。使用搜索字段按名称筛选存储库。每个存储库都有用于这两种功能的独立复选框。
运行时角色(可选)— 选择 A DevOps gent 代入的 IAM 角色,以便在您选定的存储库上运行自动化功能。此角色用于访问构建期间所需的内部服务,例如私有包注册表和工件存储系统。我们建议使用与主代理角色不同的角色。
要配置自动审阅,请执行以下操作:
连接存储库后,导航到 GitHub 集成设置中的 “代码审查和自动测试” 部分。
对于每个存储库,启用或禁用自动触发变更审查功能,具体取决于您是否需要自动拉取请求审阅。
对于每个存储库,启用或禁用自动验证测试功能,具体取决于您是否希望在托管验证环境中进行自动验证测试。
(可选)从 “运行时角色” 下拉列表中选择 A DevOps gent 在所选存储库上运行自动化功能时将担任的 IAM 角色。
选择 “保存” 以应用您的配置。
配置完成后,启用自动触发变更审查的存储库中的任何新拉取请求都将自动触发发布就绪代码审查。如果还启用了自动验证测试,则审查包括验证环境中的功能验证。有关代码审查的更多信息,请参阅发布就绪代码审查。
了解 GitHub 应用程序
AWS DevOps 代理 GitHub 应用程序:
请求访问您的存储库 — 您可以在 GitHub 应用程序安装期间查看特定权限
接收部署事件和其他存储库事件
允许 AWS DevOps Agent 将代码更改与操作事件关联起来
可以通过您的 GitHub 设置随时卸载
对于 GitHub 企业服务器, GitHub 应用程序是在注册期间在您的实例上自动创建的。您可以管理应用程序的存储库访问权限,也可以通过 “设置” > “应用程序” > “已安装的 GitHub 应用程序” 将其卸载。要完全删除应用程序定义,请前往 “设置” > “开发者设置” > “ GitHub 应用程序”。
GitHub 应用程序权限更新
AWS DevOps 在您安装 GitHub 应用程序后,代理可能会请求权限更新以支持新功能。当这种情况发生时:
您将收到来自的 GitHub 有关权限更新请求的通知。
查看更新详细信息以了解正在申请哪些新权限。
选择 “接受新权限” 以授予更新的权限。
无需对您的服务或应用程序进行任何更改。在您接受更新的权限后, AWS DevOps 代理请求的下一个安装访问令牌 GitHub 将自动包含新的权限。
注意
在您接受权限更新之前, AWS DevOps 代理将继续使用先前授予的权限进行操作。在您批准请求之前,依赖于更新权限的新功能将不可用。如果您选择不接受新权限,则该应用程序将保留其当前权限。
请求 权限
下表描述了 AWS DevOps 代理 GitHub 应用程序请求的每项权限以及需要这些权限的原因。
如果您在注册时选择了只读,则 GitHub 应用程序仅请求下表中每项权限的读取级访问权限。使用 “只读” 权限, GitHub 应用程序无法执行 “目的” 列中列出的写入级操作。
| 权限 | 访问级别 | 用途 |
|---|---|---|
| 支票 | 读和写 | 发布准备就绪后的代码审查结果是对拉取请求进行检查,允许审核状态直接显示在 GitHub 用户界面中。 |
| 工作流 | 读和写 | 阅读工作流程定义并触发 GitHub 操作工作流程,以便在 CI/CD 管道中进行发布测试。 |
| 操作 | 读和写 | 监控 GitHub 操作工作流程在事件调查和发布测试期间运行并访问运行日志。 |
| 内容 | 读和写 | 阅读存储库源代码以进行代码审查分析和依赖关系映射。写入权限使代理能够针对已发现的问题提出修复建议。 |
| 拉取请求 | 读和写 | 阅读拉取请求详细信息以触发自动代码审查。写入权限允许发布包含发现结果和建议修复的内联评论评论。 |
管理 GitHub 连接
更新存储库访问权限-要更改 GitHub 应用程序可以访问的存储库,请转到您的 GitHub 帐户或组织设置(或您的 E GitHub nterprise Server 实例设置),导航到已安装的 GitHub 应用程序,然后修改 AWS DevOps 代理应用程序配置。
查看连接的存储库-在 AWS DevOps 代理控制台中,选择您的代理空间,然后转到 “功能” 选项卡,在 “管道” 部分中查看连接的存储库。
删除 GitHub 连接-要断开与 GitHub 代理空间的连接,请在 “管道” 部分中选择该连接,然后选择 “删除”。要完全卸载该 GitHub 应用程序,请将其从您的 GitHub 帐户或组织设置中卸载。对于 E GitHub nterprise Server,由于 GitHub 应用程序是在注册期间直接在您的实例上创建的,因此您可以选择通过执行以下两项操作来完全清理应用程序:
卸载应用程序 — 前往 “设置” > “应用程序” > “已安装的 GitHub 应用程序”,在应用程序上选择 “配置”,然后将其卸载。
删除应用程序-前往 “设置” > “开发者设置” > “ GitHub 应用程序”,选择应用程序,转到 “高级” 选项卡,然后选择 “删除 GitHub 应用程序”。警告:删除 GitHub 应用程序是永久性的,无法撤消。如果将其删除,则需要从头开始在 AWS DevOps 代理控制台中重新注册 GitHub 企业服务器才能创建新应用程序。