

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 web 挂钩与 AWS CodeBuild
<a name="webhooks"></a>

AWS CodeBuild 支持 webhook 与 GitHub 企业服务器 GitHub GitLab、 GitLab 自助管理和 Bitbucket 集成。

**Topics**
+ [将 webhook 与以下各项配合使用的最佳实践 AWS CodeBuild](#webhook-best-practices)
+ [Bitbucket Webhook 事件](bitbucket-webhook.md)
+ [GitHub 全球和组织 webhook](github-global-organization-webhook.md)
+ [GitHub 手动 webhook](github-manual-webhook.md)
+ [GitHub webhook 事件](github-webhook.md)
+ [GitLab 群组 webhook](gitlab-group-webhook.md)
+ [GitLab 手动 webhook](gitlab-manual-webhook.md)
+ [GitLab webhook 事件](gitlab-webhook.md)
+ [Buildkite 手动 webhook](buildkite-manual-webhook.md)
+ [拉取请求评论批准](pull-request-build-policy.md)

## 将 webhook 与以下各项配合使用的最佳实践 AWS CodeBuild
<a name="webhook-best-practices"></a>

对于使用公共存储库来设置 Webhook 的项目，我们建议使用以下选项：

设置 `ACTOR_ACCOUNT_ID` 筛选条件  
将 `ACTOR_ACCOUNT_ID` 筛选条件添加到项目的 Webhook 筛选条件组可指定哪些用户可以触发构建。发送到的每个 webhook 事件都 CodeBuild 附带指定参与者标识符的发送者信息。 CodeBuild 将根据过滤器中提供的正则表达式模式过滤 webhook。您可以使用此筛选器指定允许触发构建的特定用户。有关更多信息，请参阅[GitHub webhook 事件](github-webhook.md)和[Bitbucket Webhook 事件](bitbucket-webhook.md)。

设置 `FILE_PATH` 筛选条件  
将 `FILE_PATH` 筛选条件添加到项目的 Webhook 筛选条件组中，以包含或排除更改后可能触发构建的文件。例如，您可以使用正则表达式模式（例如 `^buildspec.yml$`）和 `excludeMatchedPattern` 属性来拒绝对 `buildspec.yml` 文件进行更改的构建请求。有关更多信息，请参阅[GitHub webhook 事件](github-webhook.md)和[Bitbucket Webhook 事件](bitbucket-webhook.md)。

缩小构建 IAM 角色的权限  
由 Webhook 触发的构建使用项目中指定的 IAM 服务角色。我们建议将服务角色中的权限设置为运行构建所需的最低权限集。例如，在测试和部署场景中，创建一个用于测试的项目和另一个用于部署的项目。测试项目接受存储库中的 Webhook 构建，但不提供对您的资源的写入权限。部署项目提供对您的资源的写入权限，并且 Webhook 筛选条件配置为仅允许受信任的用户触发构建。

使用内联或 Amazon S3 存储的 buildspec  
如果您自行在项目内定义内联 buildspec，或者将 buildspec 文件存储在 Amazon S3 存储桶中，则该 buildspec 文件仅对项目所有者可见。这样可以防止拉取请求对 buildspec 文件进行代码更改并触发不必要的构建。有关更多信息，请参阅《CodeBuild API Reference》**中的 [ProjectSource.buildspec](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html#CodeBuild-Type-ProjectSource-buildspec)。