Generate daily operations reports for GitCode repositories with key metrics, AI summaries and Markdown output. 将 GitCode 上配置的仓库运营数据整理成日报输出;支持关键指标统计、AI 摘要与 Markdown。Python 3.7+ standard library only, no pip dependencies.
根据 config 或用户指定的仓库列表,生成运营日报(调 API + 写 DB)。摘要根据报表数据生成后,渲染时自动写入 DB。
repos(脚本负责读写 config)。--repos "owner/repo,...",脚本会用于本次并写入 config,下次未指定时将使用此列表。repos 为空且用户未指定仓库,则提示:「请本次对话中指定要统计的仓库(将保存为默认),或在 config.json 中配置 repos」。GITCODE_TOKEN:按以下优先级读取,任一处有值即用。
| 优先级 | 来源 | 适用平台 |
|---|---|---|
| 1 | 进程环境变量 GITCODE_TOKEN | 所有平台 |
| 2 | Windows 用户级环境变量 | Windows |
| 3 | Windows 系统级环境变量 | Windows |
~/.bashrc 或 ~/.zshrc 中添加 export GITCODE_TOKEN="your_token"。SKILL_ROOT):本 SKILL.md 所在的目录。脚本通过 __file__ 定位自身,不依赖工作目录。SKILL_ROOT/temp_dir/,脚本自动创建。--report-json 和 --summaries-file 参数的相对路径会自动按 SKILL_ROOT 解析(也可传绝对路径),已有默认值无需每次指定。--repos "owner/repo,..."(逗号分隔);否则不传。config 由脚本读写,你无需写入 config。
python <SKILL_ROOT>/scripts/generate_daily_report.py [--date YYYY-MM-DD] [--repos "owner/repo,..."](默认 --type day)。需 GITCODE_TOKEN。SKILL_ROOT/temp_dir/report.json(UTF-8 编码),同时也输出到 stdout。优先从文件读取(避免 Windows 管道编码乱码),若文件不存在再解析 stdout。status == "error",提示 message 并结束。repos_saved: true 或 repos_saved_message,须用自然语言告知用户:「已保存为默认仓库列表,下次若不指定仓库将使用此列表。」不得向用户提及 config.json、--repos 等实现细节。SKILL_ROOT/temp_dir/report.json(脚本已自动写入,无需手动保存)。report.repos 中每个无 fetch_error 的仓,根据 merged_prs_for_ai,自行生成该仓今日摘要;再根据各仓摘要生成全局一句话摘要。
摘要要求:1-2 句话,≤100 字,概括该仓当日主要变更方向。示例:「今日合并 3 个 PR,涉及 NPU 调度策略优化和单测补充。」
SKILL_ROOT/temp_dir/summaries.json(使用 Write 工具),格式如下:
{
"period_type": "day",
"date": "2026-03-10",
"repos": [
{"repo": "owner/repo", "summary": "今日合并3个PR,涉及调度优化和单测补充。"}
],
"global": "全局一句话摘要"
}
python <SKILL_ROOT>/scripts/generate_daily_report.py --render --output <用户指定的 .md 路径>
脚本自动从 temp_dir/report.json 和 temp_dir/summaries.json 读取,渲染时同时自动将摘要写入 DB。同一天多次执行时 DB 自动保留最新结果。报告结构由 resources/daily_report.md 唯一确定,不得自行改写模板结构或跳过渲染。--type day(默认)、[--date YYYY-MM-DD]、[--repos "owner/repo,..."]。仓库列表:未传 --repos 时从 config.json 读取;传了则用于本次并写入 config(下次未指定时使用)。结果自动写入 temp_dir/report.json。stdout 仅输出简短状态(文件路径),必须从文件读取完整数据。--render --output <PATH> [--template <PATH>]。日报使用 resources/daily_report.md 模板。渲染时自动将 summaries.json 中的摘要保存到 DB。--save-summaries,仅在不渲染但需写 DB 时使用。__file__ 定位技能根目录,不依赖工作目录,Windows / Linux / macOS 均可使用绝对路径执行。以下
<S>代表<SKILL_ROOT>/scripts/generate_daily_report.py,执行时替换为脚本绝对路径。
| 用户意图 | 命令 |
|---|---|
| 生成今日日报 | python <S> |
| 生成 3 月 8 日日报 | python <S> --date 2026-03-08 |
| 指定仓库生成日报(并保存为默认) | python <S> --repos "owner/repo,owner2/repo2" |
| 渲染报表到文件(同时自动保存摘要到 DB) | python <S> --render --output 报告路径.md |
日报 必须 通过 --render 使用 resources/daily_report.md 模板生成,以保证输出格式一致。结构:标题(含 emoji)→ 一、仓库概览(整体指标表 + 全局一句话摘要)→ 二、分仓详情(含可点击 Issue/PR 链接、合并 PR 列表、热门 Issue 明细、该仓小结)→ 三、行动建议(基于数据自动识别的关注事项)。
v1.0.0 (2026-03-11)