代码中有注释,直接看代码

#coding:utf8
#!/usr/bin/env python
#@author: 9527 import gitlab
import openpyxl
import datetime class GitlabInfoget():
def __init__(self,queue02,Url,token):

     #这里传入的是GUI界面的Frame中的队列,可以直接去掉
self.queue02 = queue02 #配置GitLab服务器访问地址和访问令牌
self.Url = Url
self.token =token #调用登录接口
self.gl = gitlab.Gitlab(Url, private_token=token) def get_project_info(self):
#向GUI界面Frame的队列中压入字符串
self.queue02.put("正在查询project信息") #获取项目信息list
projects = self.gl.projects.list(all=True)
return projects def get_each_project_info(self,projects): #向GUI界面Frame的队列中压入字符串
self.queue02.put("正在处理数据表头") #定义行列起始值
Info_row = 1 #行
Info_column = 1 #列 # 创建一个工作簿
self.workbook = openpyxl.Workbook()
# 获取当前活动工作表
self.sheet = self.workbook.active #设定表头
write_in_excel_data0 = ["project名称","project层级",
"projectID","project简介","web地址","成员信息"]
#写入表头信息
for data in write_in_excel_data0:
# 在第Info_row行第Info_column列写入数据
self.sheet.cell(row=Info_row,column=Info_column, value=data)
#换列
Info_column+=1 #遍历获取到的项目信息
for project in projects:

       #同上
self.queue02.put("\n正在写入第" + str(Info_row) +"个project数据\n") #换行
Info_row +=1
#重置列起始值
Info_column = 1 #列 #获取该项目所有成员信息(包括继承)
member1 = project.members_all.list(get_all=True) #project名称
projectname = project.name
#project名称
projectlevel = project.path_with_namespace
#project的ID
projectid = project.id
#project简介
projectdescription = project.description
#web访问地址
web_addr = project.web_url #数据归纳
write_in_excel_data1 = [str(projectname) , str(projectlevel) ,
str(projectid) ,str(projectdescription),str(web_addr)] for data in write_in_excel_data1:
# 在第Info_row行第Info_column列写入数据
self.sheet.cell(row=Info_row,column=Info_column, value=data)
#换列
Info_column+=1 #遍历该项目成员信息
for member in member1:
#获取该成员信息的name,及姓名
member1name = member.name
#获取该成员信息的username,及姓名
member1user = member.username
#获取该成员信息的access_level,即接入权限
member1access_level = member.access_level #数据归纳
write_in_excel_data2 = [str(member1name),"-",str(member1user),
"-",str(member1access_level)]
write_in_excel_data2 = "\n".join(write_in_excel_data2) # 在第Info_row行第Info_column列写入数据
self.sheet.cell(row=Info_row, column=Info_column, value=write_in_excel_data2)
#换列
Info_column+=1 today = datetime.date.today() filename_excel = "gitlab_projectINFO_"+str(today) + ".xlsx" self.workbook.save(filename_excel)

     #同上
self.queue02.put("\n数据已整理存入Excel文件完毕,文件名:" + str(filename_excel)+"\n") # 释放连接
self.gl.session.close() return True '''
A = GitlabInfoget("192.168.1.1","test-Token")
B = A.get_project_info()
C = A.get_each_project_info(B)
print(C)
'''

使用python-gitlab获取本地gitlab仓库project信息的方法的更多相关文章

  1. Python中获取异常(Exception)信息

    异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序 ...

  2. 用python+selenium从百度获取本地明日的天气信息并根据温度情况设置提醒

    从百度天气获取当地明天的天气情况,如果明天下雨,请发送邮件通知全体同事带伞, 如果明天气温低于10度,请邮件提醒同事注意保暖,如果气温高于30度则提醒同事注意高温. 假设存在发送邮件的方法self.s ...

  3. Python实例获取mp3文件的tag信息

    下面利用一个python的实例程序,来学习python.这个程序的目的就是分析出所有MP3文件的Tag信息并输出. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  4. python中获取上一个月一号的方法

    业务场景: 我们经常会跑一些月级别或者周级别的报表. 周级别的报表还比较好确定,就是七天前的直接用timedelta(days=7)来获取开始日期就可以了; 但是月级别的报表就要麻烦一些,因为time ...

  5. python如何获取某模块的版本信息

    1)module.__version__ 2)用dir(module)查看有没有版本信息 3)help(module)

  6. python实现获取系统版本和mac信息上传到指定接口

    import os,platform,uuid,urllib.parse,urllib.request,json def BeforeSystemRequests(): ''' the systemi ...

  7. [VC]获取本地程序的版本信息信息

    CString CQwerApp::IS_GetAppVersion(char *AppName) { ////需要加上version.lib在link里 CString AppVersion; // ...

  8. 微信h5静默和非静默授权获取用户openId和用户信息的方法和步骤:

    原文链接:https://blog.csdn.net/qq_35430000/article/details/79299529 一.openId是什么?openId是用户在当前公众号下的唯一标识('身 ...

  9. Docker本地私有仓库实战

    Docker仓库主要用于存放Docker镜像,Docker仓库分为公共仓库和私有仓库,基于registry可以搭建本地私有仓库,使用私有仓库的优点如下: 1)节省网络带宽,针对于每个镜像不用去Dock ...

  10. Kubernetes本地私有仓库配置

    实验环境 master 10.6.191.181 node1 10.6.191.182 node2 10.6.191.183 本地私有仓库 10.6.191.184 一.安装本地私有仓库 1.安装do ...

随机推荐

  1. JS篇(001)-document load 和 document ready 的区别

    答案: 页面加载完成有两种事件 1.load是当页面所有资源全部加载完成后(包括DOM文档树,css文件,js文件,图片资源等),执行一个函数 问题:如果图片资源较多,加载时间较长,onload后等待 ...

  2. gitee提交过程

    https://gitee.com/ 一个线上代码云端软件开发协作平台 首先注册一个账号 然后添加新的仓库 仓库名称和路径是必填项 然后创建项目 选择  克隆存储数据库 存储库位置是网站获取的git位 ...

  3. RabbitMQ消息堆积问题?

    原因: 有时可能因为消费者自身代码问题,导致没办法正常消费消息,那么就会导致消息队列中会堆积大量的消息: 或因为同一时间来了非常多的消息,消费者没办法及时消费,导致消息队列中堆积了大量消息. 解决办法 ...

  4. sql 错误问题

    message: ### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: SELECT command denie ...

  5. python中的字典数据读取

    ①字典中嵌套字典 res1={'content': {'age': '47岁', 'ageOne': 47, 'ageOneUnit': '1', 'ageTwo': '8', 'ageTwoUnit ...

  6. 用IDEA查看class字节码反编译后的文件——

    反编译 利用IDEA 进行反编译 查看class字节码反编译后的文件 1.要找到class文件,路径: IDEA没有显示完全,不过你可以点击右边这个,很容易就找到完整的路径. 2.找到这个路径并进入p ...

  7. hdu4585 Treap与名次树/STL map(C/C++)

    hdu4585 题目地址:https://acm.dingbacode.com/showproblem.php?pid=4585 Shaolin Time Limit: 3000/1000 MS (J ...

  8. #硬件 #资讯 #科普 #短报 SSD价格跳水根本停不下来!不断刷出新低

    一份来自日本的统计显示,10~12月的初步统计显示,PC市场的指标产品中,256GB TLC颗粒SSD价格再次下跌2美元,现在只有29.5美元.这已经是该指标产品连续5个季度下跌,创下史上心底记录,同 ...

  9. bert一些思考

    bert结构 首先是embdding lookup,[batch * seq]-->[batch, seq, hidden] 然后是加个mask embdding和type embdding和p ...

  10. https://计算机四级

    计算机四级内容: 一,网络工程师 基本要求 1.了解大型网络系统规划.管理方法: 2.具备中小型网络系统规划.设计的基本能力: 3.掌握中小型网络系统组建.设备配置调试的基本技术: 4.掌握企事业单位 ...