亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

Python3使用 GitLab API 進行批量合并分支

瀏覽:3日期:2022-07-08 10:39:12

Python3使用 GitLab API 進行批量合并分支

文章前言

每周五上午十二點前需要將項目上各組開發(fā)分支合并軟集倉庫分支, 需要在十個項目上進行 merge

程序員一般都是 很討厭麻煩, 所以編寫此腳本進行 批量 merge, 統(tǒng)一進行合并

另外, 如果項目經(jīng)歷上線或者修復(fù) bug 等情況, 需要合并分支至 uat、release、master 等分支, 也是能夠滿足此腳本使用情況

類似于這種功能性腳本, 一般習(xí)慣使用 Python 來編寫, 通過 GitLab 提供的 REST API 進行調(diào)用

GitLab 提供了非常豐富的 REST API 操作, 大家可以搜索官方網(wǎng)址查看

腳本思路

參考了網(wǎng)上大家提供的一部分腳本, 結(jié)合項目本身提供了此思路

在 GitLab 中獲取個人令牌 Token 獲取需要合并的項目 ID 獲取需要合并項目的來源分支以及目標(biāo)分支 驗證 GitLab 對應(yīng)的 Token 是否正確 進行合并請求, 失敗會刪除對應(yīng)的合并請求

在網(wǎng)上找到的大部分執(zhí)行不成功, 可能在之前是可以成功的, 但是隨著 GitLab 的 API 3->4 升級, 網(wǎng)上大部分腳本都執(zhí)行失敗了

運行前準(zhǔn)備

首先, 電腦上需要 安裝 python3 運行環(huán)境, 將對應(yīng)的 import 包依賴進行下載, 最重要的就是 獲取令牌 Token

登陸進 GitLab 設(shè)置頁面, 點擊訪問令牌

我設(shè)置了中文, 不過差別不大, Token 還是很好認(rèn)的

Python3使用 GitLab API 進行批量合并分支

依次輸入 Token名稱、Token有效期、以及對應(yīng)的權(quán)限范圍, 將對應(yīng)的 Token 復(fù)制到對應(yīng)的腳本就好了

Python3使用 GitLab API 進行批量合并分支

具體實現(xiàn)代碼

import urllib.requestimport gitlab# ========================================配置開始=================================================# ⚠️ 項目名, 無實際意義project_name = 'xxxx'# ⚠️ 代表多個項目 ID, 平常一個項目即可, 多個項目需要保證 source_branch、target_branches 保持一致project_id_list = [’xxxx’]# ⚠️ 生成 gitlab 對象gitlab_url = ’xxxx’# ⚠️ 需要生成自己的令牌 tokentoken = ’xxxx’# ⚠️ 將 source_branch 分支 merge target_branches 分支集上source_branch = ’test’target_branches = [’master’]# =========================================配置結(jié)束================================================# 驗證登錄gl = gitlab.Gitlab(gitlab_url, token)def main(): for project_id in project_id_list: project = gl.projects.get(project_id) print(’ >>> 項目ID :: [%s], 項目名稱 :: [%s] ’ % (str(project.id), project_name)) for target in target_branches: print(' >>> 正在合并項目 :: [%s] 的 [%s] 分支到 [%s] 分支' % (project_name, source_branch, target)) # mr合并請求的對象 mr = None try: # 創(chuàng)建 merge request mr = project.mergerequests.create({’source_branch’: source_branch, ’target_branch’: target, ’title’: 'Merge branch ’%s’ into ’%s’' % ( source_branch, target) }) # 接受合并請求 url = ’%s/api/v4/projects/%s/merge_requests/%s/merge’ % (gitlab_url, project.id, mr.iid) print(’ >>> Merge url :: [%s], title :: [%s] ’ % (url, mr.title)) # 個人/項目訪問令牌, 添加至請求頭 headers = {'PRIVATE-TOKEN': token} req = urllib.request.Request(url=url, headers=headers, method='PUT') resp = urllib.request.urlopen(req) if resp.code == 200: print(' >>> 合并到目標(biāo)分支 [%s] 成功, 結(jié)束... rn' % target) else: mr.delete() except Exception as e: print(' >>> 合并出錯, 可能有沖突未解決或者 [%s] 分支并沒有更新, 異常信息:: rn' % source_branch, str(e)) # 把創(chuàng)建的 merge 請求刪除 mr.delete()if __name__ == '__main__': main()

總結(jié)

到此這篇關(guān)于Python3使用 GitLab API 進行批量合并分支的文章就介紹到這了,更多相關(guān)Python合并分支內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 乱子伦xxxx| 亚洲综合第一欧美日韩中文 | 很黄的网站在线观看 | 成人欧美一区二区三区黑人 | 亚洲一区二区三区不卡视频 | 日本妞xxxxxxxxx69 | 日本三级香港三级妇三 | 欧美日韩看看2015永久免费 | 九九在线精品视频xxx | 精品国产免费久久久久久 | 免费一区二区三区四区五区 | 国产精品反差婊在线观看 | 国产草草影院 | 91精品成人免费国产 | 国产专区在线 | 女人18毛片a级毛片 女人aaaaa片一级一毛片 | 成年毛片 | 杨幂丝袜国产福利视频 | 日韩毛片大全免费高清 | 91久久精品一区二区三区 | 欧美性色生活免费观看 | 免费狼人久久香蕉网 | 亚洲成人免费在线 | 国产欧美一区二区三区免费 | 日本vs欧美一区二区三区 | 精品在线观看视频 | 自拍偷在线精品自拍偷无码专区 | 国产高清一区二区三区免费视频 | 性生活免费视频网站 | 97视频在线观看免费视频 | 韩国美女爽快一级毛片黄 | 三级网站在线 | 欧美成人区| 精品中文字幕在线 | 欧美大片aaa | 亚洲一区日韩一区欧美一区a | 成人在线网址 | 久久精品免费视频观看 | 午夜性爽爽爽 | 国产精品免费看久久久久 | 国产亚洲福利一区二区免费看 |