Gitlab使用第三篇(API與Tags)

前面我們已經講述過Gitlab的部署以及安全相關設置,這一篇將講述調用Gitlab提供的API來創建項目(project),這樣對我們在運維自動化過程中非常有用。

從Gitlab官方文檔(https://docs.gitlab.com/ee/development/documentation/styleguide.html#curl-commands),我們可以獲取到如何使用API。

調用API的第一步是生成Access Token。此處以[email protected]用戶爲例。

1、進入到用戶設置(User Settings)

2、選擇"Access Tokens",來增加個人訪問令牌,如下圖1所示。

3、在Name輸入一個名字,如“firefly",在過期時間中設置一個日期,若按默認不設置,則爲永不過期。

4、允許通過token訪問具有哪些僅限。

5e4e823e9999470aabd8d623737e0322

圖1

最後點擊”Create personal access token"來生成Access Token,如圖2所示,token爲“ybxsZqyaSeG-wZWhL1-R”

f707a38d34304c23be2d866f79b488a7

圖2

調用API的第二步,編寫代碼或腳本來調用,此處以curl方式來測試。

1、通過token來查看組的詳細信息

curl -H "PRIVATE-TOKEN:ybxsZqyaSeG-wZWhL1-R" http://gitlab.demo.com/api/v4/groups/oa_group
執行上述命令返回信息如圖3所示,從中我們可以得到oa_group組的id爲7,oa_group組下有哪些project等等。

圖3

2、通過token來創建倉庫,默認不指定組時會創建在當前用戶下。


例如,執行上述命令後,我們可以看到名爲firefly的項目是在firefly用戶下,如圖4所示。

409655b7e5f34232be7b4f1829640e2b

圖4

2、通過token在指定的組下創建項目,Gitlab的API是通過指定組的ID(namespace_id)來確定組名的。

curl --request POST -H "PRIVATE-TOKEN:ybxsZqyaSeG-wZWhL1-R" --data "name=deploy_test01&namespace_id=7" http://gitlab.demo.com/api/v4/projects
或者
curl --request POST -H "PRIVATE-TOKEN:ybxsZqyaSeG-wZWhL1-R" http://gitlab.demo.com/api/v4/projects?name=deploy_test02&namespace_id=7
執行上述2條命令後,將在OA_GROUP組下創建2個倉庫,如圖5所示。

圖5

具體更多的操作,可參考Gitlab官方文檔。

----------------------------------------------------------------------------------------------------------------------------------------------

接下來我們要來說Gitlab的標籤(tags)創建,目前我們對tags的用途主要是用來做爲發佈版本號,可用於發佈版本以及回滾版本。如圖6所示,爲OA_GROUP組下的tc_service手動創建了標籤v_20191209_1821

34f20545d2d94f29ab06b1678fa097e2

圖6

由於該tag是手動輸入的,很有可能輸錯或者位數不對,導致版本發佈異常,所以要規範tags,不能隨意命名,而是要按一定規則,比如按,即按時間命名,精確到分鐘即可。再好的約束由人來執行也難免出錯,所以我們要修改Gitlab的源碼,讓其自動生成我們所需格式的tag,並強制用戶添加版本功能描述信息才能創建。最終效果如圖7所示。

bae04feaae8b4e5c8333d95f07af5435

圖7

我們看到,“Tag name”輸入框自動生成了tag,並且是灰色不可修改,另外,若開發人員在“Message”對話框中若不輸入描述性文字,則下方的"Create tag"按鈕爲灰色不可創建。這樣就達到了我們規範目的,是不是比較完美,哈哈。


下一篇將繼續講述Gitlab使用第四篇(日常維護)

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