Python如何使用Gitlab API實(shí)現(xiàn)批量的合并分支
這篇文章主要介紹了Python如何使用Gitlab API實(shí)現(xiàn)批量的合并分支,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
1.需求:每次大批量上線(xiàn)完成后,都會(huì)進(jìn)行將hotfix合并到Master,合并到test/uat等等重復(fù)操作(上線(xiàn)發(fā)布后自動(dòng)合并master已完成)。
2.現(xiàn)實(shí):在完成發(fā)布后自動(dòng)合并master后,可能還有的項(xiàng)目人員忘記合并到其他分支的情況,so
#!/usr/bin/python3
#coding=utf-8
# 自動(dòng)合并項(xiàng)目dev分支到其他分支,當(dāng)合并失敗刪除merge請(qǐng)求
import sys
import datetime
import urllib.request
import gitlab
#項(xiàng)目名和項(xiàng)目ID
project_name = "python-jmmei"
project_list=[265]
# 生成gitlab對(duì)象
gitlab_url = 'http://gitlab.baidu.com'
token = 'xxxxxxxxxxxx'
old_branch="hotfix"
new_branches=["test","uat","uat_match"]
#驗(yàn)證登錄
gl = gitlab.Gitlab(gitlab_url, token)
for project_id in project_list:
project = gl.projects.get(project_id)
print(project.id)
for proj in new_branches:
print("正在合并項(xiàng)目:%s的%s分支到%s分支"%(project_name,old_branch,proj))
# mr合并請(qǐng)求的對(duì)象
mr = None
try:
# 創(chuàng)建mr
mr = project.mergerequests.create({'source_branch': old_branch,
'target_branch': proj,
'title': "%s to %s ---"%(old_branch,proj) + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
})
# 接受合并請(qǐng)求
url = "%s/api/v3/projects/%s/merge_request/%s/merge"%(gitlab_url,project.id, mr.id)
headers = {
"PRIVATE-TOKEN":token
}
req = urllib.request.Request(url=url,headers=headers,method="PUT")
resp = urllib.request.urlopen(req)
# print(resp)
print("合并到分支%s成功,結(jié)束...\r\n"%(proj))
except Exception as e:
print("合并出錯(cuò),可能有沖突未解決或者%s分支并沒(méi)有更新,異常信息:\r\n"%(old_branch))
print(e)
# 把剛創(chuàng)建的mr請(qǐng)求刪除
#v4版本支持 project.mergerequests.delete(mr.id)
mr.delete()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于python實(shí)現(xiàn)可視化生成二維碼工具
這篇文章主要介紹了基于python實(shí)現(xiàn)可視化生成二維碼工具,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
關(guān)于pytorch處理類(lèi)別不平衡的問(wèn)題
今天小編就為大家分享一篇關(guān)于pytorch處理類(lèi)別不平衡的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
為什么說(shuō)Python可以實(shí)現(xiàn)所有的算法
在本篇文章里小編給各位整理的是關(guān)于一個(gè)Python就可以實(shí)現(xiàn)所有的算法的相關(guān)文章,需要的朋友們參考下。2019-10-10
Python摸魚(yú)神器之利用樹(shù)莓派opencv人臉識(shí)別自動(dòng)控制電腦顯示桌面
這篇文章主要介紹了Python摸魚(yú)神器樹(shù)莓派opencv人臉識(shí)別自動(dòng)控制電腦顯示桌面,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
python實(shí)戰(zhàn)練習(xí)做一個(gè)隨機(jī)點(diǎn)名的程序
讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python實(shí)現(xiàn)一個(gè)隨機(jī)點(diǎn)名的程序,大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2021-10-10

