python 删除git Jenkinsfile文件
背景:在做ci集成的发现分支超过100个之后,pipline activity列表中前期的分支会被隐藏,这导致master分支在活动视图中不可见
解决方案:删除历史分支的Jenkinsfile
分支太多了,写了个脚本处理,具体如下
from git import Repo
import os
import time # vi .git/config
# lb = !"for k in `git branch -r|perl -pe s/^..//`;do echo `git show --pretty=format:\"%Cgreen%ci %Cblue%cr%Creset\" $k|head -n 1`\\\t$k;done|sort"
'''通过git for-each-ref --sort=-committerdate命令获得需要删除文件的分支名,按提交时间倒叙'''
x = """
origin/test1
origin/test2
origin/test3
"""
# 获得需要删除Jenkinsfile的分支列表
list_branch = [_.split("origin/")[1].strip() for _ in x.split("\n") if _]
# 源代码存放的本地路径
cdir = "/Users/test/Documents/code/test"
repo = Repo(cdir)
remote = repo.remote()
gt = remote.repo.git
list_branch_err = []
for branch in list_branch:
# 切换分支
gt.checkout(branch)
print(repo.active_branch)
index = repo.index
try:
# 如果分支上存在Jenkinsfile则删除并提交git
if "Jenkinsfile" in os.listdir(cdir):
index.remove(['Jenkinsfile'])
index.commit('remove Jenkinsfile')
remote.push()
# 本地的源文件可能并没有删除,删除本地Jenkinsfile源文件
if "Jenkinsfile" in os.listdir(cdir):
os.remove(cdir+"/Jenkinsfile")
except Exception as e:
list_branch_err.append(branch)
print("failed to remove jenkins file on these branches", list_branch_err)
python 删除git Jenkinsfile文件的更多相关文章
- 删除Git服务器文件但是保留本地文件
参考: https://blog.csdn.net/u012804886/article/details/83059315 https://www.cnblogs.com/wfsovereign/p/ ...
- 【转】 python 删除非空文件夹
转自:https://blog.csdn.net/xiaodongxiexie/article/details/77155864 一般删除文件时使用os库,然后利用os.remove(path)即可完 ...
- python 删除非空文件夹
import os import shutil os.remove(path) #删除文件 os.removedirs(path) #删除空文件夹 shutil.rmtree(path) #递归删除文 ...
- python删除某一文件夹下的重复文件
#2022-10-28 import hashlib import os import time def getmd5(filename): """ 获取文件 md5 码 ...
- Python 删除含有只读文件(夹)的文件夹
def rm_read_only(fn, tmp, info): if os.path.isfile(tmp): os.chmod(tmp, stat.S_IWRITE) os.remove(tmp) ...
- git 恢复工作区删除的所有文件
/********************************************************************* * git 恢复工作区删除的所有文件 * 说明: * 今天 ...
- git忽略文件并删除git仓库中的文件
问题描述 不慎在创建.gitignore 文件之前的时候将文件push到了 git仓库,即使之后在.gitignore文件中写入新的过滤规则,这些规则也不会起作用的,git依然会对所有git仓库中的 ...
- 如何删除错误提交的 git 大文件
早上小伙伴告诉我,他无法拉下代码,我没有在意.在我开始写代码的时候,发现我的 C 盘炸了.因为我的磁盘是苏菲只有 256G 放了代码就没空间了,于是我查找到了原来是我的代码占用了居然有 2000+M ...
- 用Python删除本地目录下某一时间点之前创建的所有文件
因为工作原因,需要定期清理某个文件夹下面创建时间超过1年的所有文件,所以今天集中学习了一下Python对于本地文件及文件夹的操作.网上 这篇文章 简明扼要地整理出最常见的os方法,抄袭如下: os.l ...
随机推荐
- Blazor初体验之寻找存储client-side jwt token的方法
https://www.cnblogs.com/chen8854/p/securing-your-blazor-apps-authentication-with-clientside-blazor-u ...
- Kong Gateway - 11 基于网关服务的ACL访问控制列表 黑名单
Kong Gateway - 11 基于网关服务的ACL访问控制列表 黑名单 同一服务名称 book 不允许即创建白名单访问控制列表又创建黑名单访问控制列表 启用服务的白名单&黑名单配置文件时 ...
- 《自拍教程22》wget_文件下载工具
wget用途介绍 日常测试过程中,我们可以用wget命令,来下载一些资源文件. wget是一个很好文件下载命令, Linux操作系统下,自带wget命令. Windows操作系统下,需要自己去下载并配 ...
- 诱人的 react 视频教程-基础篇(14 个视频)
诱人的 react 视频教程-基础篇(14 个视频) 诱人的 react 视频教程 - 基础篇 #1 介绍「07:25」 诱人的 react 视频教程 - 基础篇 #2 create-react-ap ...
- expect: spawn id exp6 not open while executing "expect eof"
1.expect是基于tcl演变而来的,所以很多语法和tcl类似 基本的语法如下所示:1.1 首行加上/usr/bin/expect1.2 spawn: 后面加上需要执行的shell命令,比如说spa ...
- 修改sudoers
使用visudo命令 [root@898f990a8808 etc]# visudo
- 怎样在GitHub上新建一个文件夹
GitHub如何创建文件夹 创建新文件的时候名字后面加个斜杠(/)就可以了 点击新建文件,输入文件名的时候后面加上斜杠/就是创建了一个文件夹,没有斜杠就是创建了一个文 创建好后点提交 Commit n ...
- MySQL int(1) 与 int(3) 的区别
1.占用的字节都一样,只是容纳字符个数有区别. int(1): 一个字符. int(3): 三个字符. 2.另外要注意的是,无符号整数,自动左侧0填充宽度. int(3),插入值5,会变成005存储. ...
- 一起学Vue之表单输入绑定
在Vue进行前端开发中,表单的输入是基础且常见的功能,本文以一个简单的小例子,简述v-model数据绑定的用法,仅供学习分享使用,如有不足,还请指正. 基础用法 你可以用 v-model 指令在表单 ...
- 【Hibernate】hibernate原生sql利用transformers返回多表自定义类型对象
大致结构: Person(人): id,name,age,bookId Book(书):id,bookName Author(作者):id,authorName,bookId 一个人 只有 一本书,一 ...