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使用第四篇(日常维护)

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