gitlab 一键上传脚本
最近公司的项目将代码仓库迁移到了gitlab中,为了代码安全,gitlab中的开发分支被设置成了受保护的分支,每次提交都要走下面的流程:
本地开发分支 -> 新建临时分支 -> 将临时分支上传仓库 -> 创建合并请求 -> 删除本地临时分支 -> 切换会开发分支 |
每次都是如此麻烦的流程,因此便萌生了使用shell脚本完成这些机械的过程。
一、思路
1、本地进行提交
2、创建提交分支
3、将分支上传到gitlab中
4、使用gitlab的api创建合并请求
5、切换回开发分支
6、删除提交分支
二、准备工作
2.1 获取用户token
setting -> Access Token
2.2、获取项目id
11.4以上版本,project id 在项目首页
进入你的项目,就可以获取到项目id10.2 以上版本,
项目详情页 -> Settings -> General -> Expand General Settings
如果没有
Project ID
,你可以使用项目的路径
2.3、查看API
GitLab API
在这,需要关注几个参数:
id: 上一步获取到的项目id
source_branch: 源分支(你推送上去的分支)
source_branch: 目标分支(你需要合并进去的分支)
title: 请求合并时的标题
remove_source_branch:合并成功后是否需要删除源分支(一般选择true)
三、脚本
|
由于我这是使用Curl进行网络传输,需要注意几个点:
–insecure 忽略SSL验证
–header 设置token(gitlab的所有api都需要将你的token设置到头中)
-d 设置Post的请求参数
-X POST 强制使用POST请求
TIP: 如果是比较老的版本,需要将Authorization: Bearer
改为PRIVATE-TOKEN:
四、获取合并请求地址
有时,我们可能需要关闭合并请求,这时就需要请求地址了。
在上面使用API创建合并请求时,gitlab会返回一个json字符串给我们,里面便有合并详情的url
因此,我们可以使用jq
这个工具解析json,便可以获取到 web_url
4、1安装jq
jq 官网brew install jq
4.2 使用json解析出 web_url
web_url=`curl xxxx` | jq '.web_url' |
最终效果
五、参考地址
gitlab 一键上传脚本