gitlab api 批量保护&解保护branches或tags使用详解

参考教程:https://gitlab.com/help/api/protected_branches.md

                  https://docs.gitlab.com/ee/api/protected_branches.html

branches支持gitlab 9.5及以上版本

#列出受保护的分支

curl --header "PRIVATE-TOKEN: " 'https://gitlab.example.com/api/v4/projects/5/protected_branches'

#保护单个分支(经测此项不可用,原因应该是没有添加push_access_level和merge_access_level,可使用下面的通配符批量保护分支,将通配符去掉即可保护单个分支

curl --header "PRIVATE-TOKEN: " 'https://gitlab.example.com/api/v4/projects/5/protected_branches/master'

#解除分支保护

curl --request DELETE --header "PRIVATE-TOKEN: " 'https://gitlab.example.com/api/v4/projects/5/protected_branches/*-stable'

#通配符批量保护分支:

curl --request POST --header "PRIVATE-TOKEN: 2su34dxDI8ujs65SOOKj" 'http://192.168.1.201:8099/api/v4/projects/5/protected_branches?name=master*&push_access_level=30&merge_access_level=40&unprotect_access_level=40'

解释:

2su34dxDI8ujs65SOOKj:此处是我的token,需要换成你自己的

Token一般在gitlab中点击我的头像---setting---account 

新版本一般在点击我的头像---setting---Access Tokens,输入Name 和Expires at生成Token

v4:指的是gitlab api的版本,不知道可以问管理员

5:指的是ProjectId,点击一个项目---setting---General project中可以看到

master*:指的是保护所有依master开头的分支名,例如:master1,master-or等

push_access_level=30: 允许推送级别

merge_access_level=40:允许合并级别

unprotect_access_level=40:允许取消保护分支级别

以下为具体数值:

0  => No access
30 => Developer access
40 => Maintainer access
60 => Admin access
 

tag支持GitLab 11.3版本

删除tag步骤同branches一样,只需把protected_branches修改为protected_tags即可!

 

:批量解除brnahcs或tags保护时,如果使用通配符,符合的branches或tags中有的已经被保护,有的没有被保护,这时如果执行命令会报错。

例如:tag version_v1.0已经被保护了,version_v2.0、version_v3.0没有被保护,如果用通配符执行保护version*是可以的,但是如果用通配符执行解除tag version*就会报错,version_v1.0必须单独解除!

 

GitLab API各状态码解释

200 - OK:这意味着GET,PUT或DELETE请求成功。当您请求资源时,它将以JSON格式返回。

201 - 已创建:这表示POST请求成功。仅当您尝试创建新资源时才会返回此状态代码。该资源也将退还给您。

400 - 错误请求:这表示您错过了此请求的必需属性。例如,未给出合并请求的标题。

401 - 未经授权:这意味着您未经过身份验证。如果您未随请求发送秘密令牌或发送无效令牌,则会返回此状态。

403 - 禁止访问:这意味着您已通过身份验证,但没有执行给定请求所需的权限。例如,如果您尝试删除项目但您不是项目的所有者,则可能会发生这种情况。

404 - 未找到:这意味着您尝试获取的资源不存在。例如,您尝试通过其ID请求问题,但无法找到该问题。

405 - 不允许的方法:这意味着GitLab不支持您尝试执行的请求。

409 - 冲突:这意味着存在冲突的资源; 例如,您尝试创建一个与已创建的项目同名的项目。

500 - 服务器错误:这表示您的请求出现了问题。这是服务器端问题,因此您无需更改邮件。您可能会在Gitlab中发现一个错误。

(如有其它观点,欢迎补充!)

你可能感兴趣的:(Gitlab)