返回顶部
首页 > 资讯 > 后端开发 > Python >Python Gitlab Api 使用
  • 408
分享到

Python Gitlab Api 使用

PythonGitlabApi 2023-01-31 06:01:46 408人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

简述 公司使用gitlab 来托管代码,日常代码merge request 以及其他管理是交给测试,鉴于操作需经常打开网页,重复且繁琐,所以交给python 管理。 官方文档 安装 pip install Pyth

  • 简述

    公司使用gitlab 来托管代码,日常代码merge request 以及其他管理是交给测试,鉴于操作需经常打开网页,重复且繁琐,所以交给python 管理。


官方文档
  • 安装

    pip install Python-gitlab
    环境: py3

  • DEMO


# -*- coding: utf-8 -*-
__Author__ = "xiewm"
__Date__ = '2017/12/26 13:46'

"""
gitlab 经常使用到的api
DOC_URL: Http://python-gitlab.readthedocs.io/en/stable/
LOCAL_PATH: C:\python36\Lib\site-packages\gitlab
"""

import gitlab

url = 'http://xxxxxxx'
token = 'xxxxxxxxxxxxxx'

# 登录
gl = gitlab.Gitlab(url, token)

# ---------------------------------------------------------------- #
# 获取第一页project
projects = gl.projects.list()
# 获取所有的project
projects = gl.projects.list(all=True)
# ---------------------------------------------------------------- #


# ---------------------------------------------------------------- #
# 获取所有project的name,id
for p in gl.projects.list(all=True, as_list=False):
    print(p.name, p.id)
# ---------------------------------------------------------------- #


# ---------------------------------------------------------------- #
# 获取第一页project的name,id
for p in gl.projects.list(page=1):
    print(p.name, p.id)
# ---------------------------------------------------------------- #


# ---------------------------------------------------------------- #
# 通过指定id 获取 project 对象
project = gl.projects.get(501)
# ---------------------------------------------------------------- #


# ---------------------------------------------------------------- #
# 查找项目
projects = gl.projects.list(search='keyWord')
# ---------------------------------------------------------------- #

# ---------------------------------------------------------------- #
# 创建一个项目
project = gl.projects.create({'name':'project1'})
# ---------------------------------------------------------------- #


# ---------------------------------------------------------------- #
# 获取公开的项目
projects = gl.projects.list(visibility='public')  # 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()
# ---------------------------------------------------------------- #





# ---------------------------------------------------------------- #
# 获取指定项目的所有tags
tags = project.tags.list()

# 获取某个指定tag 的信息
tags = project.tags.list('1.0')

# 创建一个tag
tag = project.tags.create({'tag_name':'1.0', 'ref':'master'})

# 设置tags 说明:
tag.set_release_description('awesome v1.0 release')

# 删除tags
project.tags.delete('1.0')
# or
tag.delete()

# ---------------------------------------------------------------- #
# 获取所有commit info
commits = project.commits.list()
for c in commits:
    print(c.author_name, c.message, c.title)
# ---------------------------------------------------------------- #


# ---------------------------------------------------------------- #
# 获取指定commit的info
commit = project.commits.get('e3D5a71b')
# ---------------------------------------------------------------- #


# ---------------------------------------------------------------- #
# 获取指定项目的所有merge request
mrs = project.mergerequests.list()
print(mrs)
# ---------------------------------------------------------------- #


# ---------------------------------------------------------------- #
# 获取 指定mr info
mr = project.mergerequests.get(mr_id)
# ---------------------------------------------------------------- #


# ---------------------------------------------------------------- #
#  创建一个merge request
mr = project.mergerequests.create({'source_branch':'cool_feature',
                                   'target_branch':'master',
                                   'title':'merge cool feature', })
# ---------------------------------------------------------------- #


# ---------------------------------------------------------------- #
# 更新一个merge request 的描述
mr.description = 'New description'
mr.save()
# ---------------------------------------------------------------- #


# ---------------------------------------------------------------- #
# 开关一个merge request  (close or reopen):
mr.state_event = 'close'  # or 'reopen'
mr.save()
# ---------------------------------------------------------------- #


# ---------------------------------------------------------------- #
# Delete a MR:
project.mergerequests.delete(mr_id)
# or
mr.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(state='merged', sort='asc')  # all, merged, opened or closed
# ---------------------------------------------------------------- #



# ---------------------------------------------------------------- #
# 创建一个commit
data = {
    'branch_name': 'master',  # v3
    'commit_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 commits

for commit in result['commits']:
    print(commit)
#
# get the diffs
for file_diff in result['diffs']:
    print(file_diff)
# ---------------------------------------------------------------- #





# ---------------------------------------------------------------- #
# get the commits
for commit in result['commits']:
    print(commit)
#
# get the diffs
for file_diff in result['diffs']:
    print(file_diff)
# ---------------------------------------------------------------- #




总结

通过以上的api 可以封装一整套gitlab 的脚本操作或者是命令行操作。

--结束END--

本文标题: Python Gitlab Api 使用

本文链接: https://lsjlt.com/news/190261.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python Gitlab Api 使用
    简述 公司使用gitlab 来托管代码,日常代码merge request 以及其他管理是交给测试,鉴于操作需经常打开网页,重复且繁琐,所以交给Python 管理。 官方文档 安装 pip install pyth...
    99+
    2023-01-31
    Python Gitlab Api
  • GitLab API如何使用教程
    这篇文章主要介绍了GitLab API如何使用教程的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇GitLab API如何使用教程文章都会有所收获,下面我们一起来看看吧。1 简介GitLab 作为一个开源、强大的...
    99+
    2023-07-05
  • Python 3.7之使用web api
    1.调用GitHub的公共API #需要提前安装requests 包 import requests url = 'https://api.github.com/search/repositoriesq=language:pytho...
    99+
    2023-01-31
    Python api web
  • 使用 OpenAI API 和 Python 使用 GPT-3
    目录使用 OpenAI API 和相应的 Python SDK 试用 GPT-3 语言模型。介绍开始使用接口设置我们的环境生成文本结论使用 OpenAI API 和相应的 Pytho...
    99+
    2023-03-06
    OpenAI API 和 Python 使用 GPT-3 Python  OpenAI API 
  • 如何使用Python Numpy Load API?
    好的,下面是文章: Python是一种功能强大的编程语言,被广泛用于数据分析、机器学习、科学计算等领域。在这些领域中,处理大规模数据是常见的任务,而Numpy是Python中最流行的科学计算库之一。它提供了高效的数组操作和数学函数,可以使数...
    99+
    2023-09-04
    numpy load api
  • Python C API 使用详解(二)
    简介 介绍Python C API中的列表、元组、字典的使用,详细的进行了API中方法的介绍。 Python List API List API 简单介绍 int PyList_Check(PyObject *p) 判断是否是一个Py...
    99+
    2023-01-31
    详解 Python API
  • 如何利用GitLab进行API测试和模拟
    如何利用GitLab进行API测试和模拟引言:在进行软件开发过程中,API(Application Programming Interface,应用程序编程接口)测试和模拟是非常重要的一步,它可以帮助开发人员验证API的正确性和性能,并且可...
    99+
    2023-10-27
    模拟 gitlab API测试
  • Python使用Kubernetes API访问集群
    通过将身份认证令牌直接传给 API 服务器,可以避免使用 kubectl 代理,像这样: 使用 grep/cut 方式: # 查看所有的集群,因为你的 .kubeconfig 文件中可能包含多个上下文 kubec...
    99+
    2022-06-02
    Python Kubernetes API访问集群 Python Kubernetes API
  • 如何在Python中使用shell API?
    Python是一种流行的编程语言,它具有简单易学、高效灵活、可扩展性强等优点,因此越来越多的人选择使用Python来进行编程工作。在Python中,我们可以使用shell API来执行shell命令,这样就可以让Python具有更强大的功能...
    99+
    2023-10-16
    关键字 shell api
  • Python C API的使用详解(一)
    简介 介绍一下Python虚拟机的初始化及退出,Python基本数据类型的对象创建以及C和Python之间的数据类型互相转换。 Python虚拟机的初始化及退出 初始化Python虚拟机需要调用Py_Initialize()来实现。 Py_...
    99+
    2023-01-31
    详解 Python API
  • Python Flask API函数怎么使用
    这篇文章主要介绍“Python Flask API函数怎么使用”,在日常操作中,相信很多人在Python Flask API函数怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2023-07-05
  • 如何安装使用GitLab
    这篇文章主要为大家展示了“如何安装使用GitLab”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何安装使用GitLab”这篇文章吧。GitLab 是一个用于仓库管理系统的开源项目,使用Git作...
    99+
    2023-06-27
  • gitlab能不能使用ssh2
    随着互联网技术的发展,Git作为目前最流行的版本控制系统,已经成为了开发者必不可少的工具之一。而GitLab作为一款在线的Git仓库管理工具,则更是受到了广大开发者的青睐。在GitLab的开发者社区中,经常存在这样一个问题:GitLab能否...
    99+
    2023-10-22
  • python中gitlab库有什么用
    安装首先需要安装 python-gitlab 库pip 安装sudo pip install --upgrade python-gitlab源码安装git clone https://github.com/python-gitlab/pyt...
    99+
    2023-05-16
    Python gitlab
  • 怎么使用Flask编写Python Web API
    这篇文章主要介绍了怎么使用Flask编写Python Web API,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Python 是一个以语法简洁著称的高级的、面向对象的程序语...
    99+
    2023-06-16
  • 存储API数据:使用Python或Laravel?
    在当今的数字化时代,API已经成为了数据获取和传输的主要方式。许多应用程序都需要从API中获取数据,并将其存储在本地数据库中。但是,对于开发人员来说,选择哪种语言来编写存储API数据的代码是一个很大的问题。Python和Laravel是两种...
    99+
    2023-08-27
    laravel api 存储
  • 怎么在Apache Flink中使用Python API
    这篇文章主要介绍了怎么在Apache Flink中使用Python API,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一.Apache Flink Python API 的...
    99+
    2023-06-02
  • 如何使用 Python 编写 API 并在 Spring 中使用?
    Python 是一种十分流行的编程语言,它有着强大的数据处理和分析能力,同时也拥有丰富的库和工具,可以轻松地编写出高效、灵活的 API 接口。而 Spring 是一个基于 Java 开发的 Web 应用框架,它提供了很多方便的工具和组件,帮...
    99+
    2023-11-10
    spring linux api
  • IDEA中GitLab的使用详解
      首先安装git https://git-scm.com/downloads/下载对应的版本   下载好了,安装打开 Windows. 打开之后2步走,与git连接 首先选择仓库...
    99+
    2024-04-02
  • 如何安装和使用GitLab
    这篇文章给大家分享的是有关如何安装和使用GitLab的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。GitLab 是 Ruby 开发的自托管的 Git 项目仓库,可通过Web界面进行访问公开的或者私人项目。安装以下...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作