使用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 ...
随机推荐
- 基于Jenkins实现可腹部回滚的cicd平台
Jenkins :是一个开源的实现持续集成的工具,可以实施监控持续集成过程中所存在的问题,提供详细的日志文件和提醒功能,还能用图表的形式直观的展示出项目构建的趋势和稳定性 maven:只有在Java项 ...
- WAP-2.1
WAP 是一种源代码静态分析和数据挖掘工具,用于检测和纠正用 PHP 4.0 或更高版本编写的 Web 应用程序中的输入验证漏洞,且误报率较低. WAP 检测并纠正以下漏洞: SQL Injectio ...
- 作业三:CART回归树
作业三:CART回归树 20大数据三班 博客链接 学号 201613336 问题一: 表1为拖欠贷款人员训练样本数据集,使用CART算法基于该表数据构造决策树模型,并使用表2中测试样本集确定剪枝后的最 ...
- OpenGL_Extension_Viewer
使用OpenGL,查验一下我电脑显卡的相关配置
- vs2013如何添加扩展库函数
本文仅针对C和C++ vs2013下载C/C++编译器后,能够包含常见的头文件,stdlib.h,stdio.h,math.h这些.如果有其他需求例如:调用GL/glfw32.h,freeglut.h ...
- 远程访问ubuntu电脑
遇到的问题: 由于疫情的影响,一直在家划水,这几天突然想看看能不能通过我手中的笔记本远程访问那台在学校"落灰"的工作站呢? 目前有一台闲置的电脑,多个键已经"失灵&quo ...
- 【APT】海莲花组织DLL样本分析
前言 样本来源Twitter,之前的文章已经完整分析过一个类似的DLL样本,这次做个简单记录. 样本分析 样本信息如下: DLL文件共有40个导出函数: 导出函数内容基本一致,恶意代码都在DllMai ...
- 初步学习UE网络同步
UE 网络同步和框架介绍 为一个UE引擎的初学者基于现有知识储备和见识的限制下,对UE网络和游戏框架的粗鄙之见,文中多有错误敬请指出以较后文. 1.网络复制 不论是服务端还是客户端,代码都是一样的 ...
- sql server 01
1. 数据库管理系统(DateBase Management System )DBMS 是专门为管理数据库而设计的一个电脑软件系统 分为两种: (1)关系数据库:建立在关系模型基础上的数据库,比如 S ...
- python3GUI--用Tk开发一款恶搞蓝屏软件(附源码)
目录 一.准备工作 1.Tkinter 2.科普-电脑蓝屏 二.预览 1.蓝屏-win10.win11(中文版) 2.蓝屏-win10.win11(英文版) 3.Windows其他版本(XP.Win7 ...