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: <your_access_token>" 'https://gitlab.example.com/api/v4/projects/5/protected_branches'

#保護單個分支(經測此項不可用,原因應該是沒有添加push_access_level和merge_access_level,可使用下面的通配符批量保護分支,將通配符去掉即可保護單個分支

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

#解除分支保護

curl --request DELETE --header "PRIVATE-TOKEN: <your_access_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中發現一個錯誤。

(如有其它觀點,歡迎補充!)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章