使用Python脚本一次性并发拉取Gitlab中所有的仓库

使用Git图形化管理工具SourceTree好多年,去年起SourceTree越更新越辣鸡,简直不能用,转而投了Fork的怀抱,但是两者都没有批量拉取的功能. 然而负责的项目越来越多,而单个拉取仓库更新代码无异是痛苦的. 于是花了点功夫看了下官方的API文档,写了个用Python批量拉取所有仓库的脚本,使用了一个第三方的 Python 模块: python-gitlab. 功能很简单,就是根据账号权限并发拉取所有能拉取的仓库,如果当前目录下不存在就创建;如果已存在仓库,则更新. import platform,os,gitlab,sys,multiprocessing def returnpath(path:str)->str: if ‘Windows’ == platform.system(): path = path.replace(‘/’,’\\’) return path def get_gitlab_groups_projs_path(gl_server:gitlab.Gitlab)->list: projs = [] projs_id = [] projs_tmp = [] def __add(group): for proj … “使用Python脚本一次性并发拉取Gitlab中所有的仓库”

Read More

用Python通过Jenkins View视图批量构建Jobs

这里用到了Jenkins的Python Module,所以先安装模块pip install python-jenkins。 废话少说。 # coding:utf-8 import jenkins def build_job_by_view(jenkins_server:jenkins.Jenkins,view_name:str): jobs = jenkins_server.get_jobs(view_name=view_name) for job in jobs: job_info = jenkins_server.get_job_info(name=job.get(‘name’)) if ‘com.cloudbees.hudson.plugins.folder.Folder’ == job_info.get(‘_class’): folder_jobs = job_info.get(‘jobs’) for folder_job in folder_jobs: full_jobname = job_info.get(‘fullName’) … “用Python通过Jenkins View视图批量构建Jobs”

Read More

树莓派用dnspod的DDNS自动更新宽带IP

前不久手痒花二百多大洋入了Raspberry 2B,折腾了几天,突然发现dnspod有更新记录的API,家里的宽带分配的IP又刚好是公网IP,这下可玩性更高了.比如自动将宽带的IP绑定到域名上,通过路由器的端口映射,可以直接访问到家里的所有接入设备,还可以开放一些服务,比如代理/Web服务等. 废话少说. 首先你要有个域名,嗯,巧的是前不久也刚好买了个域名,在Namesilo上买的,新用户首年只要6.9刀,相当于人民币不到五十块,还送隐私保护,这太值了. 然后可以将域名的解析转到其他专业的DNS服务商处,Namesilo虽然也有提供解析,但真心太弱了.我这用的是Dnspod的免费套餐,虽然免费,但其功能依旧强大.接着取一个三级域名名称,记录类型为A类型,值先随便填个IP,TTL设置为10分钟. 到这里就要获取domain_id和record_id了: #获取domain_id,将以下的xxx改为对应的邮箱和密码 curl curl -k https://dnsapi.cn/Domain.List -d “login_email=xxx&login_password=xxx” #获取record_id前,要获取domain_id,将以下的xxx改为对应值即可 curl -k https://dnsapi.cn/Record.List -d “login_email=xxx&login_password=xxx&domain_id=xxx” 然后就可以用以下填入以下代码: # coding:utf-8 import httplib, urllib import socket import time params = dict( login_email=”xxx”, # 邮箱 … “树莓派用dnspod的DDNS自动更新宽带IP”

Read More