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

#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. 【2020NOI.AC省选模拟#9】C. 重复

    题目链接 原题解: 通过计数相同的子序列对个数的方式来计算答案. 设$f(i,j)$为$S$的前$i$和$j$个字符的公共子序列对个数. 当$S_i=S_j$时,$f(i,j)=f(i,j-1)+f( ...

  2. Kubernetes--Ingress资源类型

    Ingress资源类型 基于HTTP暴露的每个Service资源均可发布于一个独立的FQDN主机名之上,如 " www.ik8s.io " :也可发布于某主机上的URL路径之上,从 ...

  3. 移动web_字体图标

    字体图标 字体图标的优点 1.他是文本内容,矢量图,放大不会失真 2.因为是文本所以可以用文本的样式来设置 字体图标与精灵图比较 1.精灵图可以将多个图存放在一个文件上,所以请求只有一次,但是精灵图存 ...

  4. CSS中z-index的属性与使用

    z-index 属性指定一个元素的堆叠顺序. 拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面. Z-index 仅能在定位元素上奏效,z-index 进行定位元素(position:abso ...

  5. Java基础学习:2、Java数据类型及逻辑运算符

    1.数据类型: 数据类型范围: byte:-2^7 ~ 2^7-1,即-128 ~ 127.1字节.Byte.末尾加B short:-2^15 ~ 2^15-1,即-32768 ~ 32767.2字节 ...

  6. Mac版SecureCRT修改配色方案

    SecureCRT是一个非常好用的远程连接工具,其可以配置特定关键词的颜色来使配置调试时更显目的辨别关键内容.网络上关于SecureCRT windows版本如何配置高亮配色的教程很多,但是关于Mac ...

  7. maven资源导出问题

    <!--在build中配置resources,来防止我们资源导出失败的问题--> <build> <resources> <resource> < ...

  8. 【转载】matlab常用函数

    第一篇:Matlab软件函数 一.软件操作函数 1)命令窗口函数: clc:清空命令窗口,使用向上箭头翻看命令. open:打开文件,文本文件(*.doc),可执行文件(*.exe),图形文件(*.f ...

  9. 修改mysql root密码,在workbench中导入.sql文件

    修改mysql root密码: 1.如果没有配置环境变量,在 \Program Files\MySQL\MySQL Server 8.0\bin 文件下 Shit+右键打开 Powershell 窗口 ...

  10. sqlite3 一条语句替换全表某个字符字段中的某个字符串

    update not_match_files set policy_id_tms = replace(policy_id_tms, substr(policy_id_tms,instr(policy_ ...