python git切换分支_python 脚本备份gitlab分支(打tag)

本文介绍了一个Python脚本,用于在gitlab上自动化处理已发布版本分支,包括备份(打tag)和可选删除分支。脚本首先登录gitlab,然后遍历指定项目和分支,排除特定分支,对每个需要处理的分支创建tag,并在tag已存在时检查是否需要更新。最后,根据配置决定是否删除分支。
摘要由CSDN通过智能技术生成

现在使用git作为版本控制的趋势已经很明显, gitlab又是用的比较多的一个开源的git服务端;开发过程中会有很多dev分支,在发布生产后一般会把这些分支备份(打tag), 然后合并到master分支,之后就可以删除分支了。下面的python脚本 就是自动化实现这一过程的。

需要修改 host为gitlab域名,git_user_name ,git_pwd git登录账号密码,group_project 需要处理的分组和项目,exclude_branch 需要排除的分支;

基于 # GitLab Community Edition 12.10.6版本

可以基于last_commit判断是否已经备份打tag了

"""

用于gitlab已发布版本分支, 打Tag归档, 可选删除归档分支

python3

pip install BeautifulSoup

pip install requests

pip install lxml

"""

import requests

from bs4 import BeautifulSoup

# gitlab的域名 需要自己更改

host = "https://git.xxx.com"

login_index = host + "/users/sign_in"

login_url = host + "/users/auth/ldapmain/callback"

project_index_url = host + "/{}/{}"

branches_api = host + "/api/v4/projects/{}/repository/branches/?page={}&per_page={}"

tags_api = host + "/api/v4/projects/{}/repository/tags/?page={}&per_page={}"

add_tag_url = project_index_url + "/-/tags"

tree_url = project_index_url + "/-/tree/{}"

graphql = host + "/api/graphql"

branches_url = project_index_url + "/branches"

delete_branch_url = branches_url + "/{}"

# git登录的账号密码

git_user_name = "root"

git_pwd = "*****"

# 需要处理的分组和项目, Administrator = root 组名可以打开gitlab项目首页 地址栏显示即是【https://git.xxx.com/组名/项目名】, 建议先fork项目到私人仓库测试,检查没问题再在上游仓库执行

# group_project = {'plat': ['trade'], 'root': ['pay']}

group_project = {'core': ['trade','settle','service-api',]}

# 需要排除创建tag的分支,未发布的分支无需归档

exclude_branch = ['master', 'release', 'dev-v5.8.5', 'dev-v5.8.4', 'dev-v5.8.6', 'dev-v5.8.4.1', 'dev-v5.8.3.5']

# 归档完成是否删除分支,第一次测试请改为False,受保护的分支需要受权限才能删除

delete_bak_branch = True

tag_suffix = '-Tag'

header = {

'authority': 'git.xxx.com',

'method': 'POST',

'path': '/api/graphql',

'scheme': 'https',

'accept': '*/*',

'accept-encoding': 'gzip, deflate, br',

'accept-language': &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值