低价的网站建设,网站建设小程序定制开发,专门做土特产的网站,新公司网站建设要求简述公司使用gitlab 来托管代码,日常代码merge request 以及其他管理是交给测试#xff0c;鉴于操作需经常打开网页,重复且繁琐,所以交给Python 管理。安装pip install python-gitlab环境: py3DEMO# -*- coding: utf-8 -*-__Author__ xiewm__Date__ 2017/12/26 …简述公司使用gitlab 来托管代码,日常代码merge request 以及其他管理是交给测试鉴于操作需经常打开网页,重复且繁琐,所以交给Python 管理。安装pip install python-gitlab环境: py3DEMO# -*- coding: utf-8 -*-__Author__ xiewm__Date__ 2017/12/26 13:46gitlab 经常使用到的apiDOC_URL: http://python-gitlab.readthedocs.io/en/stable/LOCAL_PATH: C:\Python36\Lib\site-packages\gitlabimport gitlaburl http://xxxxxxxtoken xxxxxxxxxxxxxx# 登录gl gitlab.Gitlab(url, token)# ---------------------------------------------------------------- ## 获取第一页projectprojects gl.projects.list()# 获取所有的projectprojects gl.projects.list(allTrue)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 获取所有project的name,idfor p in gl.projects.list(allTrue, as_listFalse):print(p.name, p.id)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 获取第一页project的name,idfor p in gl.projects.list(page1):print(p.name, p.id)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 通过指定id 获取 project 对象project gl.projects.get(501)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 查找项目projects gl.projects.list(searchkeyword)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 创建一个项目project gl.projects.create({name:project1})# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 获取公开的项目projects gl.projects.list(visibilitypublic) # public, internal or private# ---------------------------------------------------------------- ## 获取 project 对象是以下操作的基础# ---------------------------------------------------------------- ## 通过指定project对象获取该项目的所有分支branches project.branches.list()print(branches)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 获取指定分支的属性branch project.branches.get(master)print(branch)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 创建分支branch project.branches.create({branch_name: feature1,ref: master})# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 删除分支project.branches.delete(feature1)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 分支保护/取消保护branch.protect()branch.unprotect()# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 获取指定项目的所有tagstags project.tags.list()# 获取某个指定tag 的信息tags project.tags.list(1.0)# 创建一个tagtag project.tags.create({tag_name:1.0, ref:master})# 设置tags 说明:tag.set_release_description(awesome v1.0 release)# 删除tagsproject.tags.delete(1.0)# ortag.delete()# ---------------------------------------------------------------- ## 获取所有commit infocommits project.commits.list()for c in commits:print(c.author_name, c.message, c.title)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 获取指定commit的infocommit project.commits.get(e3d5a71b)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 获取指定项目的所有merge requestmrs project.mergerequests.list()print(mrs)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 获取 指定mr infomr project.mergerequests.get(mr_id)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 创建一个merge requestmr project.mergerequests.create({source_branch:cool_feature,target_branch:master,title:merge cool feature, })# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 更新一个merge request 的描述mr.description New descriptionmr.save()# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 开关一个merge request (close or reopen):mr.state_event close # or reopenmr.save()# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## Delete a MR:project.mergerequests.delete(mr_id)# ormr.delete()# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## Accept a MR:mr.merge()# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 指定条件过滤 所有的merge request# state: state of the MR. It can be one of all, merged, opened or closed# order_by: sort by created_at or updated_at# sort: sort order (asc or desc)mrs project.mergerequests.list(statemerged, sortasc) # all, merged, opened or closed# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## 创建一个commitdata {branch_name: master, # v3commit_message: blah blah blah,actions: [{action: create,file_path: blah,content: blah}]}commit project.commits.create(data)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## Compare two branches, tags or commits:result project.repository_compare(develop, feature-20180104)print(result)# get the commitsfor commit in result[commits]:print(commit)## get the diffsfor file_diff in result[diffs]:print(file_diff)# ---------------------------------------------------------------- ## ---------------------------------------------------------------- ## get the commitsfor commit in result[commits]:print(commit)## get the diffsfor file_diff in result[diffs]:print(file_diff)# ---------------------------------------------------------------- #总结通过以上的api 可以封装一整套gitlab 的脚本操作或者是命令行操作。以上这篇Python Gitlab Api 使用方法就是小编分享给大家的全部内容了希望能给大家一个参考也希望大家多多支持谷谷点程序。