python操作gitlab API过程解析
这篇文章主要介绍了python操作gitlabAPI过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
使用python-gitlab模块来调用gitlab的API来管理gitlab
install
pipinstallpython-gitlab #如果是安装到Python3使用可以使用如下命令 pip3installpython-gitlab
配置
为了保护API用到的private_token,一般会将其写到系统的配置文件中去
/etc/python-gitlab.cfg或者~/.python-gitlab.cfg
配置示例:
root@pts/1$cat~/.python-gitlab.cfg [global] default=kaishugit ssh_verify=False timeout=8 [kaishugit] url=http://10.0.0.6 private_token=xxxxx-V4Yxxxxxxks7u api_version=3
程序使用
在程序中使用的时候可以直接用如下方式调用
##login gl=gitlab.Gitlab.from_config('kaishugit',['~/.python-gitlab.cfg'])
examples
##得到第一页project列表 projects=gl.projects.list() ##得到所有project projects=gl.projects.list(all=True) projects=gl.projects.all()
附加
自定义脚本获取指定用户或者分组或者全部的代码仓库地址
#!/usr/bin/envpython3 #encoding:utf-8 # __Author__='Colin' __Date__='2018-06-20' importgitlab importos importsys classGitlabAPI(object): def__init__(self,*args,**kwargs): ifos.path.exists('/etc/python-gitlab.cfg'): self.gl=gitlab.Gitlab.from_config('kaishugit',['/etc/python-gitlab.cfg']) elifos.path.exists(os.getenv('HOME')+'/.python-gitlab.cfg'): self.gl=gitlab.Gitlab.from_config('kaishugit',[os.getenv('HOME')+'/.python-gitlab.cfg']) else: print('Youneedtomakesurethereisafilenamed"/etc/python-gitlab.cfg"or"~/.python-gitlab.cfg"') sys.exit(5) defget_user_id(self,username): user=self.gl.users.get_by_username(username) returnuser.id defget_group_id(self,groupname): group=self.gl.users.search(groupname) returngroup[0].id defget_all_projects(self): projects=self.gl.projects.list(all=True) result_list=[] forprojectinprojects: result_list.append(project.http_url_to_repo) returnresult_list defget_user_projects(self,userid): projects=self.gl.projects.owned(userid=userid,all=True) result_list=[] forprojectinprojects: result_list.append(project.http_url_to_repo) returnresult_list defget_group_projects(self,groupname): projects=self.gl.projects.owned(groupname=groupname,all=True) result_list=[] forprojectinprojects: result_list.append(project.http_url_to_repo) returnresult_list if__name__=='__main__': username='caichenyu' git=GitlabAPI() userid=git.get_user_id(username) print(username+'->'+str(userid)) userprojects=git.get_user_projects(userid) print(userprojects)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。