用途:该技能用于管理 GitLab 受保护分支,通过 glab api 直接调用 GitLab 原始接口完成分支保护规则的查看、创建、更新与删除。
主要能力:列出项目全部受保护分支、查看指定分支保护详情、保护分支、更新保护配置、取消保护。可配置 name(分支名或通配符)、push_access_level、merge_access_level、unprotect_access_level、allow_force_push、code_owner_approval_required。访问级别取值:0 无权限、30 Developer 及以上、40 Maintainer 及以上、60 仅实例管理员。支持通配符如 、feature/、release/、hotfix/、*-stable。
使用方式:需 api 令牌作用域;查看需 Developer+,管理需 Maintainer+。常用命令如 glab api projects/123/protected_branches --method GET;保护分支用 --method POST 加 -f name="main" -f push_access_level=40 -f merge_access_level=30;更新用 --method PATCH;取消保护用 --method DELETE。分支名含特殊字符时需 URL 编码,例如用 jq -Rr @uri 处理 release/1.0 或 feature/*。
适用场景:保护 main、develop、release、hotfix 等分支,限制推送与合并权限,禁止强制推送,配置代码所有者审批,审计现有保护规则,或临时放开推送后再恢复。
限制:代码所有者审批与多访问级别为 GitLab Premium 功能;取消保护会移除该分支全部保护,风险较高;不适用于创建或删除分支、管理合并请求审批、配置分支 CI/CD。常见错误包括 403(权限不足)、404(分支不存在或未受保护)、400(访问级别无效)。