使用python-gitlab获取本地gitlab仓库project信息的方法
代码中有注释,直接看代码
#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信息的方法的更多相关文章
- Python中获取异常(Exception)信息
异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序 ...
- 用python+selenium从百度获取本地明日的天气信息并根据温度情况设置提醒
从百度天气获取当地明天的天气情况,如果明天下雨,请发送邮件通知全体同事带伞, 如果明天气温低于10度,请邮件提醒同事注意保暖,如果气温高于30度则提醒同事注意高温. 假设存在发送邮件的方法self.s ...
- Python实例获取mp3文件的tag信息
下面利用一个python的实例程序,来学习python.这个程序的目的就是分析出所有MP3文件的Tag信息并输出. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- python中获取上一个月一号的方法
业务场景: 我们经常会跑一些月级别或者周级别的报表. 周级别的报表还比较好确定,就是七天前的直接用timedelta(days=7)来获取开始日期就可以了; 但是月级别的报表就要麻烦一些,因为time ...
- python如何获取某模块的版本信息
1)module.__version__ 2)用dir(module)查看有没有版本信息 3)help(module)
- python实现获取系统版本和mac信息上传到指定接口
import os,platform,uuid,urllib.parse,urllib.request,json def BeforeSystemRequests(): ''' the systemi ...
- [VC]获取本地程序的版本信息信息
CString CQwerApp::IS_GetAppVersion(char *AppName) { ////需要加上version.lib在link里 CString AppVersion; // ...
- 微信h5静默和非静默授权获取用户openId和用户信息的方法和步骤:
原文链接:https://blog.csdn.net/qq_35430000/article/details/79299529 一.openId是什么?openId是用户在当前公众号下的唯一标识('身 ...
- Docker本地私有仓库实战
Docker仓库主要用于存放Docker镜像,Docker仓库分为公共仓库和私有仓库,基于registry可以搭建本地私有仓库,使用私有仓库的优点如下: 1)节省网络带宽,针对于每个镜像不用去Dock ...
- Kubernetes本地私有仓库配置
实验环境 master 10.6.191.181 node1 10.6.191.182 node2 10.6.191.183 本地私有仓库 10.6.191.184 一.安装本地私有仓库 1.安装do ...
随机推荐
- JAVA中的变量与基本操作
- Leetcode本地阅读器开发--01界面设计二
返回项目声明及目录:Leetcode本地阅读器开发--总声明 继续上一节内容: 1.第一个内容是左边第一行的功能,读取默认路径和修改路径.此路径为本地阅读器的搜索题目的主目录. 为了整个程序都能读取工 ...
- 在Unity3D中开发的Rim Shader
Swordmaster Rim Shaders 特点 本资源包共包含两种Rim效果的Shader (1)Rim Bumped Specular. (2)Rim StandardPBR(Metallic ...
- react常见bug - 查询条件变化,但page未重置为1
问题1.多次触发请求,且存在潜在的竞态问题 const [page, setPage] = useState(1); const [keyword, setKeyword] = useState('' ...
- windows 10 的VMware workstation Pro突然变成英文界面
电脑的VMware虚拟机界面是中文版的,后来在捣弄些电脑配置,突然变成英文版界面了. 后面发现原来是区域格式选错了:正确的格式是下图红框
- bquote
在Linux环境下,按"·"(1左边的按钮)会进入bquote模式 退出方法 按 Ctrl + C 其它(待补充)
- Hadoop高可用集群存在的一些共性问题
Hadoop高可用集群存在的一些共性问题 1.NameNode 偶然性挂掉 问题原因: 用群启脚本启动HA集群,启动过程中NameNode要依赖于JournalNode,所以在启动过程中, Nam ...
- 如何在微信小程序中使用ECharts图表
在微信小程序中使用ECharts 1. 下载插件 首先,下载 GitHub 上的 ecomfe/echarts-for-weixin 项目. 下载链接:ecomfe/echarts-for-weixi ...
- == 和 equal 的区别
== 比较的是两个对象的索引是否相同: equal 比较的是两个对象内容是否相同: int a = 1;long b = 1L;a==b? 答案是 对:因为a和b指向的索引地址相同. 再例如 Stri ...
- centos7 升级gcc
#安装gcc yum install -y gcc-c++ autoconf automake #centos7 默认的 gcc 默认是4.8.5,版本小于 5.3 无法编译,需要先安装gcc新版 ...