import gitlab
import os
import pandas as pd
# 获取当前用户的桌面路径
desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
# 配置GitLab连接信息
private_host = 'gg' #放置你的gitlab的地址
private_token = 'gg' # 放置你gitlab的accesstoken
client = gitlab.Gitlab(private_host, private_token=private_token)
# 获取所有项目(分页获取)
projects = client.projects.list(all=True, iterator=True)
# 用于存储数据的列表
data = []
# 处理项目信息,逐个显示项目名称和所属空间
for project in projects:
project_name = project.name
project_path = project.path
project_web_url = project.web_url
project_pace_url = project.web_url.replace("gg", "") #这个gg是代指你的gitlab地址用作替换用的
# 将每个项目的信息作为字典加入数据列表
data.append({
"项目名称": project_name,
"空间": project_pace_url,
"GIT地址": f"{project_web_url}.git",
})
df = pd.DataFrame(data)
# 设置Excel文件保存路径
excel_file_path = os.path.join(desktop_path, "projects_info.xlsx")
# 将DataFrame保存为Excel文件
df.to_excel(excel_file_path, index=False)
print(f"数据已成功导出到 Excel 文件:{excel_file_path}")
这个会在你的桌面生成excel 四列分别是项目名称所处空间,git地址
附上git代码project后的参数含义
id - 项目的唯一 ID。
name - 项目的名称。
path - 项目的路径(即项目的短名称)。
description - 项目的描述。
namespace - 项目所属的命名空间。包含了 name(命名空间名称)、path(命名空间路径)和 kind(命名空间类型,可能是 user 或 group)。
web_url - 项目的 Web 地址。
ssh_url_to_repo - 用于通过 SSH 协议访问该项目的 URL。
http_url_to_repo - 用于通过 HTTP 协议访问该项目的 URL。
readme_url - 项目 README 文件的 URL(如果有的话)。
created_at - 项目的创建时间。
last_activity_at - 项目的最后一次活动时间。
visibility - 项目的可见性(如 private、internal、public)。
archived - 项目是否被归档,True 或 False。
star_count - 项目获得的星标数量。
forks_count - 项目被 fork 的次数。
open_issues_count - 项目的未解决问题数。
merged_mrs_count - 项目合并的 Merge Request 数量。
license - 项目的许可证信息(如果有的话)。
owner - 项目的拥有者(如果是个人用户,则为用户信息;如果是组,则为组信息)。
topics - 项目的主题标签列表。
default_branch - 项目的默认分支。
repository_size - 项目的仓库大小(字节)。
tag_list - 项目的标签列表。
issues_enabled - 项目是否启用问题追踪。
merge_requests_enabled - 项目是否启用合并请求功能。
wiki_enabled - 项目是否启用 Wiki 功能。
snippets_enabled - 项目是否启用 Snippets 功能。
service_desk_enabled - 项目是否启用服务台功能。
visibility_level - 项目的可见性级别(例如,private、internal、public)。
namespace 字段(嵌套在 project 中)
name - 命名空间名称(通常是用户或组的名称)。
path - 命名空间路径(可以是组或用户的路径)。
kind - 命名空间的类型,可能是 user 或 group,用于区分项目所属是用户还是组。
full_path - 命名空间的完整路径(包括所有父级组路径)。