Python如何使用Gitlab API實現(xiàn)批量的合并分支
更新時間:2019年11月27日 09:01:16 作者:Jame-Mei
這篇文章主要介紹了Python如何使用Gitlab API實現(xiàn)批量的合并分支,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
這篇文章主要介紹了Python如何使用Gitlab API實現(xiàn)批量的合并分支,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
1.需求:每次大批量上線完成后,都會進行將hotfix合并到Master,合并到test/uat等等重復操作(上線發(fā)布后自動合并master已完成)。
2.現(xiàn)實:在完成發(fā)布后自動合并master后,可能還有的項目人員忘記合并到其他分支的情況,so
#!/usr/bin/python3
#coding=utf-8
# 自動合并項目dev分支到其他分支,當合并失敗刪除merge請求
import sys
import datetime
import urllib.request
import gitlab
#項目名和項目ID
project_name = "python-jmmei"
project_list=[265]
# 生成gitlab對象
gitlab_url = 'http://gitlab.baidu.com'
token = 'xxxxxxxxxxxx'
old_branch="hotfix"
new_branches=["test","uat","uat_match"]
#驗證登錄
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("正在合并項目:%s的%s分支到%s分支"%(project_name,old_branch,proj))
# mr合并請求的對象
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")
})
# 接受合并請求
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成功,結束...\r\n"%(proj))
except Exception as e:
print("合并出錯,可能有沖突未解決或者%s分支并沒有更新,異常信息:\r\n"%(old_branch))
print(e)
# 把剛創(chuàng)建的mr請求刪除
#v4版本支持 project.mergerequests.delete(mr.id)
mr.delete()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
使用Python設置Excel單元格數(shù)字的顯示格式
Python語言可以幫助我們靈活設置Excel單元格的數(shù)字格式,保證數(shù)據(jù)的一致性與專業(yè)標準,本文將介紹如何使用Python對Excel工作表中單元格的數(shù)字格式進行設置,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下2024-06-06
python中pandas.DataFrame排除特定行方法示例
這篇文章主要給大家介紹了關于python中pandas.DataFrame排除特定行的方法,文中給出了詳細的示例代碼,相信對大家的理解和學習具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03
修改Python的pyxmpp2中的主循環(huán)使其提高性能
這篇文章主要介紹了修改Python的pyxmpp2中的主循環(huán)使其提高性能,pyxmpp2是Python中使用需XMPP協(xié)議的一個常用工具,要的朋友可以參考下2015-04-04

