# gitlab-projects-collector **Repository Path**: fengyexjtu/gitlab-projects-collector ## Basic Information - **Project Name**: gitlab-projects-collector - **Description**: gitlab-projects-collector - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-28 - **Last Updated**: 2025-12-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GitLab 项目收集器 一个用于收集 GitLab 项目和分支信息并导出为 CSV 文件的工具。 ## 功能特性 - 自动获取 GitLab 中的所有项目信息 - 收集每个项目的所有分支详情 - 将数据导出为带时间戳的 CSV 文件 - 支持批量处理大量数据 - 自动处理分页请求 ## 项目结构 ``` gitlab-projects-collector/ ├── index.js # 主入口文件 ├── config.js # 配置管理 ├── gitlab-api.js # GitLab API 封装 ├── csv-storage.js # CSV 文件存储操作 ├── utils.js # 工具函数 ├── package.json # 项目依赖 └── .env # 环境变量配置 ``` ## 环境配置 在项目根目录创建 `.env` 文件: ```env # GitLab 配置 GITLAB_BASE_URL=https://gitlab.com GITLAB_ACCESS_TOKEN=your_gitlab_access_token GITLAB_USERNAME=your_username # 存储配置 BATCH_SIZE=100 ``` ### 多环境配置 支持按环境加载不同的配置文件: - `.env.local` - 本地开发环境 - `.env.dev` - 开发环境 - `.env.prod` - 生产环境 使用方式: ```bash NODE_ENV=dev node index.js ``` ## 安装依赖 ```bash yarn install ``` ## 使用方法 ```bash yarn start ``` 或 ```bash node index.js ``` ## 输出文件 程序运行后会在项目根目录生成两个 CSV 文件: - `projects_YYYYMMDDHHmm.csv` - 项目信息 - `branches_YYYYMMDDHHmm.csv` - 分支信息 文件名包含时间戳,格式为:年月日时分(例如:202510271430) ### 项目 CSV 字段 | 字段 | 说明 | |------|------| | id | 序列 ID | | gitlab_id | GitLab 项目 ID | | name | 项目名称 | | name_with_namespace | 完整项目名(含命名空间) | | path | 项目路径 | | path_with_namespace | 完整项目路径 | | web_url | 项目 Web 地址 | | ssh_url_to_repo | SSH 克隆地址 | | http_url_to_repo | HTTP 克隆地址 | | created_at | 创建时间 | | last_activity_at | 最后活动时间 | | visibility | 可见性 | | default_branch | 默认分支 | ### 分支 CSV 字段 | 字段 | 说明 | |------|------| | id | 序列 ID | | project_id | 项目 ID | | name | 分支名称 | | merged | 是否已合并 | | protected | 是否受保护 | | developers_can_push | 开发者可推送 | | developers_can_merge | 开发者可合并 | | can_push | 可推送 | | web_url | 分支 Web 地址 | | commit_id | 提交 ID | | commit_short_id | 提交短 ID | | commit_title | 提交标题 | | commit_created_at | 提交时间 | | commit_author_name | 提交作者 | | commit_author_email | 提交作者邮箱 | ## 技术栈 - Node.js - axios - HTTP 客户端 - dayjs - 日期时间处理 - dotenv - 环境变量管理 ## 许可证 MIT