AWS:如何使用CodeBuild审批已创建的CodeCommit审批规则模板
解决方案
根因说明
你当前调用的aws codecommit update-pull-request-approval-state命令仅用于提交单个身份的审批意见,不会触发你预设的审批规则模板校验逻辑,只要CodeBuild运行所用的IAM角色具备审批权限,就会直接跳过规则将PR标记为已审批。
配置步骤
- 第一步:确认审批规则模板配置正确
你创建的CodeCommit审批规则模板需要已经关联到目标代码仓库,规则的审批人池需要包含CodeBuild运行时使用的IAM角色,审批门槛设置符合你的业务要求,不要开启自动通过配置。 - 第二步:调整CodeBuild运行逻辑
不要直接提交审批,先校验规则状态再执行审批操作:- 运行命令拉取当前PR的规则校验结果:
aws codecommit evaluate-pull-request-approval-rules --pull-request-id $pullRequestId --revision-id $revisionId - 确认返回结果中对应规则的状态为
NOT_APPROVED后,再调用原审批命令提交审批意见。
- 运行命令拉取当前PR的规则校验结果:
- 第三步:调整CodeBuild IAM角色权限
给CodeBuild运行角色添加codecommit:EvaluatePullRequestApprovalRules权限,同时删除该角色的codecommit:OverridePullRequestApprovalRules权限,避免角色跳过规则强制审批。 - 第四步:验证流程
提交测试PR触发构建,确认构建成功后,PR会先更新对应审批规则的状态,所有预设规则全部满足后,PR才会标记为整体可合并的已审批状态。
内容的提问来源于stack exchange,提问作者Shashank S
相关产品推荐
相关产品推荐

