RepoSense 是一个高效的 Git 仓库批量管理工具,专为需要管理大量本地 Git 仓库的开发者设计。
- 🔍 智能扫描: 自动发现指定目录下的所有 Git 仓库
- 🚀 并行更新: 使用工作池模式并行执行批量
git pull操作 - 📊 状态收集: 获取仓库详细状态信息(分支、提交、工作区状态等)
- 📋 仓库列表: 列出仓库及其描述,自动从README提取项目描述
- 🏆 质量评分: 基于README、LICENSE、测试、CI等维度的0-10分质量评估
- 🤖 LLM智能描述: 支持OpenAI、Gemini、Claude、Ollama等LLM API智能生成项目描述
- 🌍 多语言支持: 支持中文、英文、日文的项目描述生成
- 🔤 智能排序: 支持按时间或字母排序,可正序/倒序显示
- 📈 进度显示: 实时显示更新进度和统计信息
- 🎯 智能过滤: 支持包含/排除模式过滤仓库
- 📄 多种输出: 支持文本、表格、JSON 三种输出格式
- 💾 报告保存: 可将结果保存为 JSON 报告文件
- 🧪 模拟运行: 支持 dry-run 模式预览操作
git clone <repository-url>
cd RepoSense
go mod tidy
go build -o reposense ./cmd/reposense# 将构建的二进制文件移动到 PATH 目录
sudo mv reposense /usr/local/bin/# 扫描当前目录下的所有 Git 仓库
reposense scan
# 扫描指定目录
reposense scan /path/to/repositories
# 列出仓库及其描述(按字母排序)
reposense list
# 按更新时间倒序列出仓库
reposense list --sort-by-time --reverse
# 批量更新当前目录下的所有 Git 仓库
reposense update
# 查看仓库状态
reposense status
# 使用表格格式显示
reposense list --format table
# 使用 JSON 格式输出
reposense update --format json# 使用 20 个并发工作协程进行更新
reposense update --workers 20
# 设置超时时间为 60 秒
reposense update --timeout 60s
# 只显示包含 "golang" 的仓库
reposense list --include golang
# 排除包含 "test" 的仓库列表
reposense list --exclude test --sort-by-time
# 按时间排序并保存为表格格式
reposense list --sort-by-time --format table --save-report
# 分析仓库质量并生成评分
reposense analyze /path/to/repositories
# 搜索高质量项目(评分7分以上)
reposense metadata search --min-quality 7.0
# 搜索Go语言项目
reposense metadata search --language Go
# 搜索命令行工具类项目
reposense metadata search --project-type cli-tool
# 使用LLM智能生成中文描述
export OPENAI_API_KEY=your_api_key
reposense list --enable-llm --llm-language zh
# 使用Gemini生成英文描述
reposense list --enable-llm --llm-provider gemini --llm-api-key your_key --llm-language en
# 使用本地Ollama模型
reposense list --enable-llm --llm-provider ollama --llm-model llama3 --llm-base-url http://localhost:11434
# 模拟运行,不执行实际操作
reposense update --dry-run
# 保存报告到文件
reposense update --save-report --report-file update-report.json
# 显示详细输出(包含更新时间)
reposense list --verbose --sort-by-time| 选项 | 简写 | 默认值 | 描述 |
|---|---|---|---|
--workers |
-w |
10 | 并发工作协程数量 (1-50) |
--timeout |
-t |
30s | 每个操作的超时时间 |
--format |
-f |
text | 输出格式 (text/table/json) |
--verbose |
-v |
false | 显示详细输出 |
--dry-run |
false | 模拟运行,不执行实际操作 | |
--include |
-i |
包含模式 (可多次指定) | |
--exclude |
-e |
排除模式 (可多次指定) | |
--save-report |
false | 保存报告到文件 | |
--report-file |
报告文件路径 |
| 选项 | 默认值 | 描述 |
|---|---|---|
--enable-llm |
false | 启用LLM智能描述提取 |
--llm-provider |
openai | LLM提供商 (openai/openai-compatible/gemini/claude/ollama) |
--llm-model |
gpt-4o-mini | LLM模型名称 |
--llm-api-key |
LLM API密钥 (可通过环境变量设置) | |
--llm-base-url |
LLM API基础URL | |
--llm-language |
zh | 描述语言 (zh/en/ja) |
--llm-timeout |
10s | LLM请求超时时间 |
OPENAI_API_KEY: OpenAI API密钥GEMINI_API_KEY: Gemini API密钥CLAUDE_API_KEY: Claude API密钥LLM_API_KEY: 通用LLM API密钥
扫描指定目录下的所有 Git 仓库并显示列表。
reposense scan /home/user/projects --format table批量更新指定目录下的所有 Git 仓库。
reposense update /home/user/projects --workers 15 --timeout 45s查看指定目录下所有 Git 仓库的详细状态信息。
reposense status /home/user/projects --format json列出指定目录下的所有 Git 仓库及其描述信息。
reposense list /home/user/projects --sort-by-time --reverse
reposense list --format table --include golangRepoSense 采用模块化设计,主要包含以下组件:
- Scanner: 仓库发现和扫描
- Updater: 批量 Git 操作管理
- Reporter: 进度显示和结果报告
- StatusCollector: 仓库状态收集
- 工作池模式: 使用 goroutine 池并行处理多个仓库
- 超时控制: 每个 Git 操作都有独立的超时设置
- 错误处理: 单个仓库失败不影响其他仓库的处理
- 进度追踪: 实时显示处理进度和统计信息
RepoSense 支持通过命令行参数进行配置,未来计划支持配置文件。
- 并发数: 根据机器性能和网络状况调整
--workers参数 - 超时时间: 根据网络环境调整
--timeout参数 - 过滤模式: 使用
--include和--exclude减少处理的仓库数量
更新结果 (3个仓库):
--------------------------------------------------------------------------------
✓ project1: 已是最新版本 (耗时: 1.2s)
✓ project2: 快进更新成功 (耗时: 2.1s)
✗ project3: 更新失败: network timeout
序号 仓库名称 状态 耗时 消息
----------------------------------------
1 project1 成功 1.20s 已是最新版本
2 project2 成功 2.10s 快进更新成功
3 project3 失败 30.00s network timeout
{
"update_results": [
{
"repository": {
"path": "/path/to/project1",
"name": "project1",
"is_git_repo": true
},
"success": true,
"message": "已是最新版本",
"duration": 1200000000,
"start_time": "2023-12-01T10:00:00Z",
"end_time": "2023-12-01T10:00:01Z"
}
],
"total": 3,
"timestamp": "2023-12-01T10:00:01Z"
}- 质量评分算法 - 详细了解 RepoSense 如何评估代码仓库质量
- 缓存系统设计 - 了解 LLM 缓存机制和性能优化
- Git 操作说明 - Git 命令执行和安全性说明
- 系统设计文档 - 完整的架构设计和实现细节
欢迎提交 Issue 和 Pull Request!
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
RepoSense 特别适合以下场景:
- 🎓 学习研究: 管理大量克隆的开源项目
- 💼 企业开发: 维护多个项目仓库
- 🔧 DevOps: 批量更新部署相关仓库
- 🏗️ 代码审查: 快速同步多个待审查项目
- 配置文件支持
- GUI 界面
- 更多 Git 操作支持 (fetch, status, branch)
- 插件系统
- 性能监控和分析
- AI 增强功能 (代码搜索、项目分析)
如果 RepoSense 对你有帮助,请给个 ⭐️ 支持一下!