本页介绍了如何为 Secure Source Manager 代码库配置分支保护。
通过分支保护,代码库管理员可以设置规则来控制哪些人可以更改分支、哪些人需要批准或审核更改,以及在批准的更改可以合并到分支之前必须满足哪些条件。
如需详细了解分支保护规则,请参阅分支保护概览。
准备工作
所需的角色
如需获得为 Secure Source Manager 代码库配置分支保护规则所需的权限,请让管理员为您授予以下 IAM 角色:
- Secure Source Manager 实例上的 Secure Source Manager Instance Accessor (
roles/securesourcemanager.instanceAccessor) - 对 Secure Source Manager 代码库具有 Secure Source Manager Repository Admin (
roles/securesourcemanager.repoAdmin) 权限 -
如需在 Secure Source Manager 实例中的任何代码库中批准受保护分支上的拉取请求,请执行以下操作:
- Secure Source Manager Repository Pull Request Approver (
roles/securesourcemanager.repoPullRequestApprover) 在实例的 Google Cloud 项目上 - 实例的 Google Cloud 项目的 Secure Source Manager Repository Writer (
roles/securesourcemanager.repoWriter)
- Secure Source Manager Repository Pull Request Approver (
-
如需批准单个仓库中受保护分支上的拉取请求,请执行以下操作:
- 针对代码库的 Secure Source Manager Repository Pull Request Approver (
roles/securesourcemanager.repoPullRequestApprover) - 针对代码库的 Secure Source Manager Repository Writer (
roles/securesourcemanager.repoWriter)
- 针对代码库的 Secure Source Manager Repository Pull Request Approver (
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
如需了解如何授予 Secure Source Manager 角色,请参阅使用 IAM 进行访问权限控制和向用户授予实例访问权限。
创建分支保护规则
控制台
如需创建新的分支保护规则,请执行以下操作:
- 在 Secure Source Manager 网页界面中,选择要使用分支保护规则保护的代码库。
- 在代码库页面中,点击设置。
- 点击分支规则标签页。
- 点击添加分支规则。
在分支规则 ID 字段中,输入分支规则的名称。
分支规则 ID 只能包含小写字母、数字和连字符。第一个字符必须是字母,最后一个字符必须是字母或数字。分支规则 ID 的长度上限为 63 个字符。
在分支过滤条件字段中,输入您希望规则应用到的分支的名称;如果您希望规则应用到所有分支,请输入
.*。不支持完整的正则表达式匹配。已启用的分支规则过滤器必须在相应代码库中是唯一的。用户可以拥有多个已停用的分支规则过滤条件。例如,您不能在单个代码库中拥有两个启用的分支规则,且这两个规则的分支过滤条件均为
main。如果多个规则适用于某个分支,那么以特定分支名称作为分支过滤条件的分支规则将替换通配符规则。例如,具有分支过滤条件
main的分支规则会替换具有分支过滤条件.*的分支规则。规则不会合并。在分支保护规则详情部分中,从以下选项中指定分支规则的要求:
在合并之前需要拉取请求:如果启用,则会阻止直接向分支提交内容。必须先打开拉取请求,然后才能合并到受保护的分支。
所需审核人数量:指定合并拉取请求所需的审核人批准数量。
所需审批人数量:指定合并拉取请求所需的审批人数量。
审核者和审批者是具有特定 IAM 角色的用户。如需了解审核者和审批者所需的角色,请参阅分支保护概览。
阻止合并过时的审核和批准:如果启用,则在授予审核或批准后,如果将新提交推送到拉取请求,则会移除审核或批准。
合并前要求解决对话:如果启用此选项,则必须先解决所有代码注释和更改请求审核,然后才能进行合并。
需要线性历史记录:如果启用,则无法合并会创建非线性 Git 历史记录的拉取请求。
需要进行状态检查:如果启用此选项,必须成功完成所选的 build 状态检查,然后才能合并拉取请求。您必须先在触发器文件中配置触发器,然后才能选择它们作为分支保护的状态检查。
如需保存分支规则,请点击提交。
系统会显示分支规则标签页,其中列出了您新建的分支规则。
Terraform
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。 如需了解详情,请参阅 Terraform 提供程序参考文档。
如需使用 Terraform 创建新的分支保护规则,请使用google_secure_source_manager_branch_rule 资源。
以下配置示例会为 main 分支创建分支保护规则。
在使用示例之前,请替换以下内容:
- BRANCH_RULE_ID:分支保护规则的 ID。
- PROJECT_ID:项目 ID。
- LOCATION:代码库的位置。
- REPOSITORY_ID:制品库的 ID。
- BRANCH_NAME_PATTERN:分支名称或正则表达式,例如
main。
resource "google_secure_source_manager_branch_rule" "default" {
branch_rule_id = "BRANCH_RULE_ID"
project = "PROJECT_ID"
location = "LOCATION"
repository_id = "REPOSITORY_ID"
include_pattern = "BRANCH_NAME_PATTERN"
minimum_approvals_count = 2
minimum_reviews_count = 2
require_comments_resolved = true
require_linear_history = true
require_pull_request = true
disabled = false
allow_stale_reviews = false
}
修改分支保护规则
如需修改分支保护规则,请执行以下操作:
- 在 Secure Source Manager 网页界面中,选择包含要修改的分支保护规则的代码库。
- 在代码库页面中,点击设置。
- 点击分支规则标签页。
- 点击要修改的分支规则的名称。
- 修改分支保护规则。
- 点击更新。
分支保护规则已更新。
删除分支保护规则
如需删除分支保护规则,请执行以下操作:
- 在 Secure Source Manager 网页界面中,选择要从中移除分支规则的代码库。
- 在代码库页面中,点击设置。
- 点击分支规则标签页。
- 在要删除的规则所在的行中,点击删除图标
。 - 在移除分支规则确认界面中,点击是。
分支保护规则已删除。
后续步骤
- 阅读分支保护概览。
- 如需了解如何自动执行构建,请按照连接到 Cloud Build 中的步骤操作。
- 了解如何查看自动化构建的状态。