SuperAPI AI 工具集

git-weekly-report

办公与效率

查看项目

更新于 10-16 02:05

技能介绍

用途

git-weekly-report 用于从 Git 提交日志中提取信息,并生成结构化的日报或周报。其目标是把提交历史复用为站会、日报、周报或项目总结的素材,输出内容按已完成事项、进行中工作、亮点、计划与风险等类别组织。

主要能力

  • 按日期范围提取 Git 提交日志,支持日报、周报或自定义区间。
  • 支持按作者过滤提交,默认包含所有作者。
  • 支持指定一个或多个仓库路径,默认使用当前工作目录。
  • 输出结构化 JSON,包含日期范围、作者过滤条件、按仓库分组的提交列表以及总提交数。
  • 每条提交包含 hash、short_hash、author、date、subject、body、refs 等字段。
  • 依据 weekly-report-format.md 对提交进行分类,依据 weekly-report-template.md 生成最终报告结构。
  • 当单个仓库提交超过 50 条时,按类别汇总而非逐条列出,并保留 short hash 以便追溯。
  • 可从提交信息中识别进行中工作的信号,如 WIP、TODO、部分实现或未完成的功能分支。
  • 可识别亮点,如破坏性变更、安全修复、主要功能或涉及关键路径的提交。

使用方式

  1. 确定日期范围与报告类型:
    • 日报:用户提到“昨天”“今天”或“日报”时,默认 --since 为昨天,--until 为今天。
    • 周报:用户提到“本周”或“周报”时,默认 --since 为上周一,--until 为今天。
    • 其他情况:默认最近 7 天,并接受用户覆盖。
  2. 确定作者过滤条件,默认所有作者。
  3. 确定仓库路径,默认当前工作目录;若涉及多个项目则收集所有路径。
  4. 运行脚本:
python3 scripts/git_weekly_report.py --since <YYYY-MM-DD> --until <YYYY-MM-DD> [--author <name>] [--repo <path1> <path2> ...]

脚本用法示例:

# 默认:最近 7 天,当前目录
python3 scripts/git_weekly_report.py

# 指定日期范围
python3 scripts/git_weekly_report.py --since 2026-04-21 --until 2026-04-28

# 按作者过滤
python3 scripts/git_weekly_report.py --since 2026-04-21 --author "Yang"

# 多个仓库
python3 scripts/git_weekly_report.py --since 2026-04-21 --repo /path/to/project-a /path/to/project-b

# 保存输出到文件
python3 scripts/git_weekly_report.py --since 2026-04-21 --output /tmp/weekly.json

# 包含合并提交
python3 scripts/git_weekly_report.py --since 2026-04-21 --merges
  1. 读取 JSON 输出,脚本提供按仓库分组的结构化提交数据。
  2. 使用 weekly-report-format.md 作为分类指南,按类型对提交进行分类。
  3. 使用 weekly-report-template.md 作为生成最终报告时的输出结构。
  4. 对于“下周计划”和“风险”部分,需询问用户是否有补充项,因为这些无法从 Git 日志推导;日报中除非用户要求,否则省略这些部分。
  5. 呈现最终 Markdown 报告,如用户要求可保存到文件。

JSON 输出结构

  • date_range:{ since, until },查询的日期范围。
  • author_filter:字符串或 null,应用的作者过滤条件。
  • repositories:数组,每项包含 { path, name, commit_count, commits }。
  • total_commits:所有仓库的提交总数。
  • 每条提交包含:hash、short_hash、author、date、subject、body、refs。

适用场景

  • 从 Git 提交生成周报或日报。
  • 总结昨天或今天的 Git 活动。
  • 总结一个或多个仓库的近期 Git 活动。
  • 回顾某个日期范围内完成的工作。
  • 将提交历史整理为分类报告。
  • 从提交准备每日站会摘要。

限制

  • 不适用于对具体变更进行代码审查(应使用 code-reviewer)。
  • 不适用于详细检查单条提交。
  • 不适用于除日志提取之外的 Git 操作(如分支、合并等)。
  • 不适用于非 Git 相关的报告生成。
  • “下周计划”和“风险”部分无法从 Git 日志推导,需用户补充。
  • 日报中默认省略计划与风险部分,除非用户明确要求。