git和python交互_python实现git操作

#!/usr/bin/python#-*- coding:utf-8 -*-

importosimportargparsefrom git.repo importRepodefclone(repo_url, token, abs_local_repo):

repo_full_url= 'http://oauth2:%s@%s' %(token, repo_url)

Repo.clone_from(repo_full_url, to_path=abs_local_repo, branc='master')defreturn_newest_tag(repo):

all_tags=repo.tagsreturn all_tags[-1].namedefchange_to_tag(repo, tag):

repo.git.checkout(tag)defget_latest_commit(repo):#commit_log = repo.git.log('--pretty={"commit":"%h","author":"%an","summary":"%s","date":"%cd"}', max_count=50, date='format:%Y-%m-%d %H:%M')

commit_log = repo.git.log('--pretty={"commit":"%h","author":"%an","summary":"%s","date":"%cd"}', max_count=50)

log_list= commit_log.split('\n')returnlog_list[0]defmain():

description= '从GitLab检出代码,并切换到最新的tag\n'quick_usage= '''python checkout_from_gitlab.py -local_repo local_dir -outdir local_repo_exists_dir'''newParser= argparse.ArgumentParser(description=description, usage=quick_usage)

newParser.add_argument('-repo_url', dest='repo_url', help='repo url')

newParser.add_argument('-token', dest='token', help='gitlab access_tokens', default='_NuYiHQz-XuUXyj1exxx')

newParser.add_argument('-local_repo', dest='local_repo', help='local repo dir name', default='local_dir')

newParser.add_argument('-outdir', dest='outdir', help='default is current workdir', default=os.getcwd())

args=newParser.parse_args()

argsDict= args.__dict__repo_url= argsDict['repo_url']

token= argsDict['token']

local_repo= argsDict['local_repo']

outdir= argsDict['outdir']

abs_local_repo=os.path.join(outdir, local_repo)ifos.path.exists(abs_local_repo):

os.system('rm -rf %s' %abs_local_repo)

clone(repo_url, token, abs_local_repo)

repo=Repo(abs_local_repo)

newest_tag=return_newest_tag(repo)printnewest_tag

change_to_tag(repo, newest_tag)

latest_commit= get_latest_commit(repo)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值