日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

Python3使用 GitLab API 進(jìn)行批量合并分支

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

Python3使用 GitLab API 進(jìn)行批量合并分支

文章前言

每周五上午十二點(diǎn)前需要將項(xiàng)目上各組開發(fā)分支合并軟集倉庫分支, 需要在十個(gè)項(xiàng)目上進(jìn)行 merge

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

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

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

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

腳本思路

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

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

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

運(yùn)行前準(zhǔn)備

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

登陸進(jìn) GitLab 設(shè)置頁面, 點(diǎn)擊訪問令牌

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

Python3使用 GitLab API 進(jìn)行批量合并分支

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

Python3使用 GitLab API 進(jìn)行批量合并分支

具體實(shí)現(xiàn)代碼

import urllib.requestimport gitlab# ========================================配置開始=================================================# ⚠️ 項(xiàng)目名, 無實(shí)際意義project_name = 'xxxx'# ⚠️ 代表多個(gè)項(xiàng)目 ID, 平常一個(gè)項(xiàng)目即可, 多個(gè)項(xiàng)目需要保證 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é)束================================================# 驗(yàn)證登錄gl = gitlab.Gitlab(gitlab_url, token)def main(): for project_id in project_id_list: project = gl.projects.get(project_id) print(’ >>> 項(xiàng)目ID :: [%s], 項(xiàng)目名稱 :: [%s] ’ % (str(project.id), project_name)) for target in target_branches: print(' >>> 正在合并項(xiàng)目 :: [%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)) # 個(gè)人/項(xiàng)目訪問令牌, 添加至請求頭 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(' >>> 合并出錯(cuò), 可能有沖突未解決或者 [%s] 分支并沒有更新, 異常信息:: rn' % source_branch, str(e)) # 把創(chuàng)建的 merge 請求刪除 mr.delete()if __name__ == '__main__': main()

總結(jié)

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

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
av亚洲在线观看| 久久亚洲专区| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美激情福利| 久久精品超碰| 国产亚洲欧美日韩在线观看一区二区| 国产精品毛片在线| 视频一区在线播放| 亚洲三级视频| 国产亚洲一区| 国产成人精品三级高清久久91| 日韩成人a**站| 日韩在线综合| 成人av二区| 美女精品在线观看| 日韩一区二区三免费高清在线观看| 日韩中文字幕区一区有砖一区| 天海翼亚洲一区二区三区| 日韩va欧美va亚洲va久久| 国产麻豆精品久久| 国产不卡人人| 欧美二三四区| 在线 亚洲欧美在线综合一区| 蜜臀a∨国产成人精品| 国产情侣一区| 女生影院久久| 国产亚洲精品久久久久婷婷瑜伽| 久久亚洲视频| 国产伦理久久久久久妇女| 高清日韩欧美| 黄色亚洲精品| 国产精品一区二区99| 亚洲国产福利| 国产日韩视频在线| 美女视频网站久久| 91嫩草亚洲精品| 在线日韩一区| 99久久激情| 成人亚洲欧美| 亚洲天堂日韩在线| 日本在线成人| 国产精品nxnn| 国产亚洲激情| 99久久夜色精品国产亚洲狼| 亚洲午夜黄色| 国产日产一区| 欧美a级片一区| 国产精品一区免费在线| 欧美国产91| 国产精品对白| 亚洲尤物在线| 日韩精品久久理论片| 国产福利片在线观看| 无码日韩精品一区二区免费| 亚洲不卡系列| 久久在线91| 蜜桃av一区| 激情久久久久久久| 日本亚洲不卡| 精品日韩视频| 美女久久精品| 日韩激情网站| 99久久婷婷这里只有精品| 国产欧美亚洲精品a| 免费成人av在线播放| а√天堂8资源中文在线| 国产一区二区三区四区五区| 老司机精品视频网| 性欧美精品高清| 久久久免费人体| 亚洲欧美成人综合| 免费在线亚洲| 中文视频一区| 亚洲www啪成人一区二区| 深夜福利一区| 欧美精选视频一区二区| 国产精品一区二区三区美女 | 久久亚洲风情| 国产自产自拍视频在线观看| 日韩精品一页| 欧洲av不卡| 日韩动漫一区| av不卡免费看| 欧美成人a交片免费看| 国产日韩欧美一区二区三区| 黄色亚洲免费| 岛国av在线网站| 日韩av一区二区在线影视| 激情综合自拍| 激情综合婷婷| 日本免费在线视频不卡一不卡二| 激情综合网五月| 麻豆成全视频免费观看在线看| 日本aⅴ精品一区二区三区| 精品91久久久久| 神马午夜在线视频| 国产极品模特精品一二| 免费成人在线视频观看| 女人av一区| 日韩av免费| 亚洲美女久久精品| 久久亚洲精精品中文字幕| 99热精品在线观看| 99久久夜色精品国产亚洲1000部| 成人国产精品一区二区免费麻豆| 国产麻豆精品| 91精品一区| 日韩中出av| 一区二区国产在线观看| 一区在线免费观看| 91精品久久久久久久久久不卡| 国产成人久久精品麻豆二区| 欧美国产不卡| 美女视频免费精品| 麻豆91精品91久久久的内涵| 国产精品天天看天天狠| 国产日产精品_国产精品毛片 | 日韩av一区二区三区四区| 亚洲专区视频| 亚洲精品观看| 视频精品一区| 亚洲精品麻豆| 日本在线视频一区二区| 日韩专区视频网站| 亚州av日韩av| 日韩精品视频网站| 国产欧美成人| 国产精品nxnn| 久久精品亚洲| 国产精品久久久久久久免费观看| 国产成人免费精品| 免费污视频在线一区| 久久久亚洲一区| 婷婷亚洲五月| 国产精品日本| 欧美大黑bbbbbbbbb在线| 亚洲经典在线| 五月亚洲婷婷 | 国产精品探花在线观看| 国产精品视频一区视频二区| 欧美xxxx性| 日韩中文欧美| 蜜桃视频欧美| 亚洲精品激情| 国产精品伊人| 中文在线资源| 99热免费精品| 69堂精品视频在线播放| 国产精品久久亚洲不卡| 欧美a在线观看| 亚洲精品在线影院| 国产一区导航| 国产伦精品一区二区三区在线播放| 精品国产亚洲一区二区三区在线 | 国产福利资源一区| 精品三级国产| 136国产福利精品导航网址| 91精品二区| 日韩av不卡一区二区| 精品视频网站| 亚洲电影在线一区二区三区| 中文字幕一区二区av| 国产精品一区二区免费福利视频| 成人在线视频区| 黄色日韩在线| 国产视频一区二| 久久三级视频| 亚洲丝袜美腿一区| 欧美经典一区| 久久三级视频| 日本不卡视频一二三区| 国产一区二区三区天码| 欧美日韩在线观看视频小说| 在线免费观看亚洲| 九九九精品视频| 男女精品网站| 久久精品国产免费| 亚洲自啪免费| 精品亚洲二区| 视频在线观看国产精品| 精品日韩一区| 久久午夜视频| www在线观看黄色| 日韩三区四区| 亚洲成人二区| 国产黄色一区| 午夜在线视频一区二区区别| 欧美综合精品| 1024精品一区二区三区| 国产亚洲一区| 中文欧美日韩| 精品亚洲成人| 亚洲理论在线| 欧洲av一区二区| 国产精品a级| 国产精品日韩久久久| 国产一区二区三区视频在线| 蜜桃久久久久久| 福利片在线一区二区| 蜜桃视频第一区免费观看|