温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python如何操作gitlab API

发布时间:2021-08-03 12:26:44 来源:亿速云 阅读:249 作者:小新 栏目:开发技术

这篇文章主要为大家展示了“python如何操作gitlab API”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何操作gitlab API”这篇文章吧。

使用 python-gitlab 模块来调用gitlab的API来管理gitlab

install

pip install python-gitlab # 如果是安装到Python3使用可以使用如下命令 pip3 install python-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/env python3 # encoding: utf-8 # __Author__ = 'Colin' __Date__ = '2018-06-20' import gitlab import os import sys class GitlabAPI(object):   def __init__(self, *args, **kwargs):     if os.path.exists('/etc/python-gitlab.cfg'):       self.gl = gitlab.Gitlab.from_config('kaishugit', ['/etc/python-gitlab.cfg'])     elif os.path.exists(os.getenv('HOME') + '/.python-gitlab.cfg'):       self.gl = gitlab.Gitlab.from_config('kaishugit', [os.getenv('HOME') + '/.python-gitlab.cfg'])     else:       print('You need to make sure there is a file named "/etc/python-gitlab.cfg" or "~/.python-gitlab.cfg"')       sys.exit(5)   def get_user_id(self, username):     user = self.gl.users.get_by_username(username)     return user.id   def get_group_id(self, groupname):     group = self.gl.users.search(groupname)     return group[0].id   def get_all_projects(self):     projects = self.gl.projects.list(all=True)     result_list = []     for project in projects:       result_list.append(project.http_url_to_repo)     return result_list   def get_user_projects(self, userid):     projects = self.gl.projects.owned(userid=userid, all=True)     result_list = []     for project in projects:       result_list.append(project.http_url_to_repo)     return result_list   def get_group_projects(self, groupname):     projects = self.gl.projects.owned(groupname=groupname, all=True)     result_list = []     for project in projects:       result_list.append(project.http_url_to_repo)     return result_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)

以上是“python如何操作gitlab API”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI