Skip to content

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 新增 hashparent_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
  • 更新 tokio 1.49 → 1.50、which 8.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