使用REST API更新GitHub分支保护规则分支名称模式遇422错误,求可行方法
能否通过GitHub REST API更新分支保护规则的分支名称模式?
首先,你当前的请求路径和参数不符合GitHub REST API规范,这是导致422错误的核心原因。
GitHub REST API不支持直接修改现有分支保护规则的分支名称模式——因为分支名称模式是该保护规则的核心标识之一。要实现更新分支名称模式的需求,正确的操作流程是:
第一步:删除旧的分支保护规则
使用DELETE请求,路径需对旧分支模式做URL编码(比如feature/*要编码为feature%2F*):DELETE /repos/{owner}/{repo}/branches/{old_branch_pattern}/protection第二步:基于新分支名称模式创建新规则
若需要复用原有保护配置,先通过GET请求导出旧规则的完整配置:GET /repos/{owner}/{repo}/branches/{old_branch_pattern}/protection再用POST请求创建新规则,请求体需包含新分支模式和完整的保护配置项:
POST /repos/{owner}/{repo}/branches/protection示例请求体:
{ "branch_name_pattern": "{new_branch_name_pattern}", "required_status_checks": { "strict": true, "contexts": ["ci-build"] }, "enforce_admins": true, "required_pull_request_reviews": { "required_approving_review_count": 1 }, "restrictions": null }
如果你尝试用PUT请求直接覆盖规则,需注意PUT路径的分支模式是目标模式,且请求体必须传入完整的保护配置(不能仅传分支模式参数),但这种方式本质是创建/覆盖目标模式的规则,而非修改原有规则的模式,因此仍需先删除旧规则避免冲突。
内容的提问来源于stack exchange,提问作者User_01
相关产品推荐
相关产品推荐

