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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。