AWS CodeBuild 支持 webhook 与 GitHub、GitHub Enterprise Server、GitLab、GitLab Self Managed 和 Bitbucket 集成。
主题
将 Webhook 与 AWS CodeBuild 结合使用的最佳实操
对于使用公共存储库来设置 Webhook 的项目,我们建议使用以下选项:
- 设置
ACTOR_ACCOUNT_ID
筛选条件 -
将
ACTOR_ACCOUNT_ID
筛选条件添加到项目的 Webhook 筛选条件组可指定哪些用户可以触发构建。传递到 CodeBuild 的每个 Webhook 事件都附带发送者信息,它可以指定角色的标识符。CodeBuild 将根据筛选器中提供的正则表达式模式筛选 Webhook。您可以使用此筛选器指定允许触发构建的特定用户。有关更多信息,请参阅GitHub Webhook 事件 和Bitbucket Webhook 事件。 - 设置
FILE_PATH
筛选条件 -
将
FILE_PATH
筛选条件添加到项目的 Webhook 筛选条件组中,以包含或排除更改后可能触发构建的文件。例如,您可以使用正则表达式模式(例如^buildspec.yml$
)和excludeMatchedPattern
属性来拒绝对buildspec.yml
文件进行更改的构建请求。有关更多信息,请参阅GitHub Webhook 事件 和Bitbucket Webhook 事件。 - 缩小构建 IAM 角色的权限
-
由 Webhook 触发的构建使用项目中指定的 IAM 服务角色。我们建议将服务角色中的权限设置为运行构建所需的最低权限集。例如,在测试和部署场景中,创建一个用于测试的项目和另一个用于部署的项目。测试项目接受存储库中的 Webhook 构建,但不提供对您的资源的写入权限。部署项目提供对您的资源的写入权限,并且 Webhook 筛选条件配置为仅允许受信任的用户触发构建。
- 使用内联或 Amazon S3 存储的 buildspec
-
如果您自行在项目内定义内联 buildspec,或者将 buildspec 文件存储在 Amazon S3 存储桶中,则该 buildspec 文件仅对项目所有者可见。这样可以防止拉取请求对 buildspec 文件进行代码更改并触发不必要的构建。有关更多信息,请参阅 CodeBuild API 参考中的 ProjectSource.buildspec。