机器人 救救瓜
Toggle navigation
Home
SCM-tool
Linux
Jenkins
SVN
other
About Me
Archives
Tags
Gitlab 的 release 功能
? gitlab ?
2019-11-04 16:07:22
24220
1
0
gua_l
? gitlab ?
## **gitlab 的 release 功能是项目交付跟踪的一种方式** </br> Gitlab 的release 功能不止将源代码快照(tag) 与版本对应记录,其他版本信息,如目标产物,修改说明,相关文档链接等,都可以在一个release 里跟踪。 </br> 目前在GitLab 11.7 以上版本已经包含了release 的功能,但是现在(2019-11-1)为止,Release 的入口只支持API接入。 </br> <font color=#FF0000 > 更新信息: Gitlab 的 release 现在已支持在界面上直接以 “new release” 进入编辑。 以下说明皆为使用 api 新建release 的方法:(此句更新于2021.5.6) </font> <br> ![图片标题](https://leanote.com/api/file/getImage?fileId=5dbbeb43ab644141d500043d) https://docs.gitlab.com/ee/api/releases/index.html </br> ## **官方文档相关说明** </br> 一个release 可以包含两大块资源: 代码和链接。后续会支持更多资源的关联,包含容器等 Release assets You can currently add the following types of assets to each Release: Source code: state of the repo at the time of the Release Links: to content such as built binaries or documentation GitLab will support more asset types in the future, including objects such as pre-built packages, compliance/security evidence, or container images. </br> ## **关联的资源** </br> **Source code** 实际是映射到 tag 对应的源码版本 ,tag 信息是需要在创建release 时提供。 **link** 目前支持 http, https, ftp 链接。一个release 里可以有多个link , 每个link 用字典管理,分别有自己的 id tag_name name url 属性的内容。 </br> 创建时一个release 时,提供tag 名称,必须提供的属性值是 id(project-id) , name(release name) ,tag name , 所以我们使用API 创建时,必须提供的是 release 的标题(name) , 代码的 tag name 。 </br> ``` curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" \ --data '{ "name": "New release", "tag_name": "v0.3", "description": "Super nice release", "assets": { "links": [{ "name": "hoge", "url": "https://google.com" }] } }' \ --request POST ``` </br> ![图片标题](https://leanote.com/api/file/getImage?fileId=5dbbe97aab644141d500042e) </br> 一个简易的release , 将展示标题,及关联的tag 的信息,包括在tag 里增加的附件,描述,也会在release 里实时同步。并且,tag 对应的代码会在release 页面展示为资源: Source code ,并提供4种格式的压缩包的下载 。 </br> ## **Release 的 API** </br> #### **list release** 列出项目下有多下个release ,需要提供的必要属性值是 project ID ``GET /projects/:id/releases`` 官网例子 ``` curl --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "http://localhost:3000/api/v4/projects/24/releases" ``` </br> #### **Get a Release by a tag name** 以 tag 名称查找关联的release ,需要提供的必要属性值是 project ID 和 tag 名称 ``GET /projects/:id/releases/:tag_name`` 官网例子 ``` curl --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "http://localhost:3000/api/v4/projects/24/releases/v0.1" ``` </br> #### **create release** 以API 创建 release ,需要提供的必要属性值是 project ID、release name、 tag name 和 description 描述 ``POST /projects/:id/releases`` 官网例子 ``` curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" \ --data '{ "name": "New release", "tag_name": "v0.3", "description": "Super nice release", "assets": { "links": [{ "name": "hoge", "url": "https://google.com" }] } }' \ --request POST http://localhost:3000/api/v4/projects/24/releases ``` </br> #### **update release** 以API 修改 release ,需要提供的必要属性值是 project ID 和 tag name ``PUT /projects/:id/releases/:tag_name`` 官网例子 ``` curl --header 'Content-Type: application/json' --request PUT --data '{"name": "new name", "milestones": ["v1.2"]}' --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1" ``` </br> #### **delete release** 以API 修改 release ,需要提供的必要属性值是 project ID 和 tag name ``DELETE /projects/:id/releases/:tag_name`` 官网例子 ``` curl --request DELETE --header "PRIVATE-TOKEN: gDybLx3yrUK_HLp3qPjS" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1" ``` </br>
Pre:
gitlab push rule
Next:
ftp 自动登录 并回到控制台--interact的使用
1
likes
24220
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Submit
Sign in
to leave a comment.
No Leanote account?
Sign up now.
0
comments
More...
Table of content
No Leanote account? Sign up now.