Release v0.13.8
代码贡献统计 - 按作者的行级代码贡献分析
stats 命令新增 --contrib 选项,支持行级代码贡献统计;GitOperations trait 新增 get_workdir() 和 get_commit_line_stats() 方法;更新文档以澄清 endpoint 语义和模型兼容性。
新增
gcop-rs stats --contrib
- 新增
--contrib选项,计算每位作者的行级代码贡献统计 (插入行数、删除行数、总变更行数、百分比) - 使用
git log --numstat批量处理,而非逐个 commit 查询 git2 API - 自动排除 merge commits(
--no-merges) - 支持按作者过滤(
--author) - 所有输出格式均支持:文本(含彩色柱状图)、JSON、Markdown
GitOperations Trait 扩展
get_workdir():返回仓库工作目录路径;替代unstage_all()、stage_files()和compute_contrib_stats()中重复的repo.workdir()调用get_commit_line_stats(hash):通过 git2 原生Diff::stats()返回单个 commit 的插入/删除行数CommitInfo新增hash和parent_count字段,用于 merge commit 识别
变更
文档 - Endpoint 语义澄清
- 明确
endpoint支持基础 URL(https://api.anthropic.com)和完整路径 (https://api.anthropic.com/v1/messages)两种形式 - 移除所有 Provider 的硬编码模型白名单;新增"模型兼容性"章节,说明支持任何 兼容 API 的模型
- 更新示例配置为基础 URL 形式
依赖
- MSRV 从 1.93.0 降至 1.88.0
- 更新
tokio1.49 → 1.50、which8.0.0 → 8.0.2 等依赖
测试
tests/stats_contrib_test.rs:6 个测试覆盖compute_contrib_stats()(基本统计、多 commit、作者过滤、merge 跳过、百分比、空仓库)tests/stats_test.rs:6 个测试覆盖RepoStats::from_commits()(基本统计、时间范围、作者排序、周统计、作者过滤、边界情况)tests/git_repository_test.rs:3 个测试覆盖get_commit_line_stats()(初始 commit、正常 commit、无效 hash)
升级
bash
# Homebrew
brew upgrade gcop-rs
# Cargo
cargo install gcop-rs
# pip
pip install --upgrade gcop-rs