python获取git所有项目

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 - 命名空间的完整路径(包括所有父级组路径)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值