使用GraphQL创建分支保护规则时requiredDeploymentEnvironments未生效
问题:GitHub GraphQL创建分支保护规则时requiredDeploymentEnvironments参数未生效
执行包含requiredDeploymentEnvironments参数的GraphQL mutation请求创建分支保护规则,请求返回成功,但该参数对应的配置未在分支保护规则中被选中。
请求命令
curl -X POST \ -H "Authorization: Bearer <PAT>" \ -H "Content-Type: application/json" \ -d '{ "query": "mutation { createBranchProtectionRule(input: { repositoryId: \"REPO_ID\", pattern: \"release/*\", requiresApprovingReviews: true, requiresCodeOwnerReviews: true, requiredApprovingReviewCount: 1 , requireLastPushApproval: true, requiresConversationResolution: true, dismissesStaleReviews: true , requiresStrictStatusChecks: true , requiresStatusChecks: true ,restrictsPushes : true , requiredDeploymentEnvironments: [\"dev\"]}) { branchProtectionRule { id } } }" }' https://api.github.com/graphql
返回结果
{"data":{"createBranchProtectionRule":{"branchProtectionRule":{"id":"BPR_kwDOMI-6g84DL5Qd"}}}}
排查与解决建议
- 检查环境存在性与权限:确保仓库中已创建名为
dev的环境,且PAT拥有repo(私有仓库)或public_repo(公共仓库)权限,同时具备管理分支保护规则的权限。环境名称区分大小写,需与参数值完全匹配。 - 验证参数与API版本:确认
requiredDeploymentEnvironments参数拼写正确,且请求头中显式指定支持该特性的API版本,例如添加Accept: application/vnd.github.v3+json或更高版本的头信息。 - 查询规则详情确认:通过以下GraphQL查询验证分支保护规则的实际配置:
query { repository(id: "REPO_ID") { branchProtectionRules(first: 10) { nodes { id pattern requiredDeploymentEnvironments } } } }
如果查询结果中requiredDeploymentEnvironments为空,说明参数未被正确处理;若有值但UI未显示,尝试刷新页面或等待缓存更新。
内容的提问来源于stack exchange,提问作者Uday Kiran
相关产品推荐
相关产品推荐

