[gitlab] release功能

因爲項目需要用到發佈版本管理,喜歡玩github的應該懂,gitlab中有release管理,有專有的業界規範。
國內局域網對於release的內容比較少,不過看官方文檔也足夠了,因此筆者針對release功能進行了簡單探索。

需要你提前瞭解的東西

首先,目前的版本中,gitlab並沒有支持界面操作,基本如果用到這個功能,只能通過它的API進行操作。不過不算複雜,http restful玩的6的應該不需要學習。

access token

翻譯過來是准入令牌,說白了,因爲你的操作都是restful API,爲了安全,需要先在gitlab進行鑑權。
在這裏插入圖片描述
在這裏插入圖片描述

project id

每個gitlab中的項目都有一個唯一識別號,我們稱之爲project id,project id可以在項目的首頁看到:
在這裏插入圖片描述

tag

中文翻譯爲標籤。某些程度上面,tag和release你都可以認爲是快照的概念。
release基於tag,因此需要先打標籤:

在這裏插入圖片描述
在這裏插入圖片描述

API介紹

如果沒有其他操作,生成release就是把某個版本牽出來,裏面都是該版本的源碼,將會生成4種文件:
zip, tar.gz, tar.bz2tar

查看release信息

查看所有release信息

GET /projects/:id/releases

示例:
[app@csybapp3 soft]$ curl --header "PRIVATE-TOKEN: XXXXXXXXXXXXX" http://ip地址/api/v4/projects/工程id/releases

懶得截圖了,都是敏感信息。

查看指定release信息

GET /projects/:id/releases/:tag_name

示例:
[app@csybapp3 soft]$ curl --header "PRIVATE-TOKEN: XXXXXXXXXXXXX" http://ip地址/api/v4/projects/工程id/releases/標籤id

創建release

POST /projects/:id/releases

示例:

curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: XXXXXXXXXXXXX" --data '{ "name": "'release名稱'", "tag_name": "'標籤名'", "ref":"'標籤名'" ,"description": "'描述信息'" }' --request POST http://ip地址/api/v4/projects/工程id/releases

修改release

PUT /projects/:id/releases/:tag_name

示例:

curl --request PUT --data name="new name" --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "http://localhost:3000/api/v4/projects/24/releases/v0.1"

刪除release

DELETE /projects/:id/releases/:tag_name

示例:

curl --request DELETE --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "http://localhost:3000/api/v4/projects/24/releases/v0.1"

創建一個外部文件

效果如下圖:
在這裏插入圖片描述
也就是說,如果你想在版本中維護一個編譯好的二進制文件,可以通過名叫links的方式,即外鏈,文件不會存儲到gitlab,你可以放到ftp或者apache上面。

我推薦使用的是這種追加的形式:

curl --request POST  --header "PRIVATE-TOKEN: $token"  --data name="$release_file_name"   --data url="$release_path"  "http://$GITLAB_URL/api/v4/projects/$id/releases/$tag_name/assets/links"

腳本文件

看到這裏的話,送個福利給你,我自己寫的腳本文件,比較簡單,但是也很實用,有需要可以拿去,或者自己再加修改:

#!/usr/bin/env bash  

GITLAB_URL="172.18.20.41"

echo -n "0.請輸入Gitlab Access Token:"  
read token  
echo -n "1.請輸入項目的id:"  
read id  
echo -n "2.請輸入項目release的名稱:"  
read name  
echo -n "3.請輸入即將創建release版本的tag:"  
read tag_name  
echo -n "4.請輸入release的描述:"  
read description  
echo -n "5.請輸入release二進制文件名稱:"  
read release_file_name  
echo -n "6.請輸入release二進制文件發佈路徑:"  
read release_path  

#創建發佈版本  
curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: $token" --data '{ "name": "'$name'", "tag_name": "'$tag_name'", "ref":"'$tag_name'" ,"description": "'$description'" }' --request POST http://$GITLAB_URL/api/v4/projects/$id/releases

#創建二進制文件鏈接
curl --request POST  --header "PRIVATE-TOKEN: $token"  --data name="$release_file_name"   --data url="$release_path"  "http://$GITLAB_URL/api/v4/projects/$id/releases/$tag_name/assets/links"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章