Skills gitcode-repo-daily
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.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/autoxj/gitcode-repo-daily" ~/.claude/skills/clawdbot-skills-gitcode-repo-daily && rm -rf "$T"
manifest:
skills/autoxj/gitcode-repo-daily/SKILL.mdsource content
GitCode 仓库运营报表(日报)
根据 config 或用户指定的仓库列表,生成运营日报(调 API + 写 DB)。摘要根据报表数据生成后,渲染时自动写入 DB。
何时使用
- 用户表达「生成日报」「仓库运营报表」「今日动态」「整理成日报」等意图。
- 可选:用户提供仓库链接或 owner/repo、日期;未提供则使用脚本从 config.json 读取的
(脚本负责读写 config)。repos - 若用户本次指定了仓库,调用脚本时传入
,脚本会用于本次并写入 config,下次未指定时将使用此列表。--repos "owner/repo,..." - 若 config 中
为空且用户未指定仓库,则提示:「请本次对话中指定要统计的仓库(将保存为默认),或在 config.json 中配置 repos」。repos
认证
GITCODE_TOKEN:按以下优先级读取,任一处有值即用。
| 优先级 | 来源 | 适用平台 |
|---|---|---|
| 1 | 进程环境变量 | 所有平台 |
| 2 | Windows 用户级环境变量 | Windows |
| 3 | Windows 系统级环境变量 | Windows |
- Linux / macOS:仅读进程环境变量。建议在
或~/.bashrc
中添加~/.zshrc
。export GITCODE_TOKEN="your_token" - Windows:进程环境变量 → 用户级 → 系统级。
- 日报必选(调 API 拉取当日数据)。
路径约定
- 技能根目录(下称
):本 SKILL.md 所在的目录。脚本通过SKILL_ROOT
定位自身,不依赖工作目录。__file__ - 中间文件目录:
,脚本自动创建。SKILL_ROOT/temp_dir/ - 执行脚本时,统一使用脚本绝对路径,无需 cd 到特定目录。
和--report-json
参数的相对路径会自动按 SKILL_ROOT 解析(也可传绝对路径),已有默认值无需每次指定。--summaries-file
固化流程(必须按此执行)
日报
- 解析:解析 日期(今日/昨天/YYYY-MM-DD)和 仓库列表(可选)。
- 调用脚本:若用户本次指定了仓库,传入
(逗号分隔);否则不传。config 由脚本读写,你无需写入 config。--repos "owner/repo,..."
(默认 --type day)。需 GITCODE_TOKEN。python <SKILL_ROOT>/scripts/generate_daily_report.py [--date YYYY-MM-DD] [--repos "owner/repo,..."] - 读取结果:脚本成功时自动写入
(UTF-8 编码),同时也输出到 stdout。优先从文件读取(避免 Windows 管道编码乱码),若文件不存在再解析 stdout。SKILL_ROOT/temp_dir/report.json - 错误:若
,提示status == "error"
并结束。message - 提示用户:若脚本返回或 report.json 中含有
或repos_saved: true
,须用自然语言告知用户:「已保存为默认仓库列表,下次若不指定仓库将使用此列表。」不得向用户提及 config.json、--repos 等实现细节。repos_saved_message - 成功:
- 读取
(脚本已自动写入,无需手动保存)。SKILL_ROOT/temp_dir/report.json - 对
中每个无report.repos
的仓,根据fetch_error
,自行生成该仓今日摘要;再根据各仓摘要生成全局一句话摘要。merged_prs_for_ai摘要要求:1-2 句话,≤100 字,概括该仓当日主要变更方向。示例:「今日合并 3 个 PR,涉及 NPU 调度策略优化和单测补充。」
- 将各仓摘要与全局摘要写成
(使用 Write 工具),格式如下:SKILL_ROOT/temp_dir/summaries.json{ "period_type": "day", "date": "2026-03-10", "repos": [ {"repo": "owner/repo", "summary": "今日合并3个PR,涉及调度优化和单测补充。"} ], "global": "全局一句话摘要" } - 必须使用脚本渲染模式生成日报 Markdown:
脚本自动从 temp_dir/report.json 和 temp_dir/summaries.json 读取,渲染时同时自动将摘要写入 DB。同一天多次执行时 DB 自动保留最新结果。报告结构由 resources/daily_report.md 唯一确定,不得自行改写模板结构或跳过渲染。python <SKILL_ROOT>/scripts/generate_daily_report.py --render --output <用户指定的 .md 路径>
- 读取
禁止
- 禁止在未得到脚本 stdout 输出前猜测或伪造数据。日报只调用 generate 一次。
脚本与路径
- scripts/generate_daily_report.py(唯一脚本):
- 生成日报:
(默认)、--type day
、[--date YYYY-MM-DD]
。仓库列表:未传[--repos "owner/repo,..."]
时从 config.json 读取;传了则用于本次并写入 config(下次未指定时使用)。结果自动写入--repos
。stdout 仅输出简短状态(文件路径),必须从文件读取完整数据。temp_dir/report.json - 渲染报表:
[--template <PATH>]。日报使用 resources/daily_report.md 模板。渲染时自动将 summaries.json 中的摘要保存到 DB。--render --output <PATH> - 单独保存摘要(可选):
,仅在不渲染但需写 DB 时使用。--save-summaries
- 生成日报:
- resources/daily_report.md:日报的固定模板,不得擅自改动。
- 配置:config.json 由脚本读写(无需写入);存储:resources/report.db。
- 脚本通过
定位技能根目录,不依赖工作目录,Windows / Linux / macOS 均可使用绝对路径执行。__file__
示例(供无歧义执行)
以下
代表<S>,执行时替换为脚本绝对路径。<SKILL_ROOT>/scripts/generate_daily_report.py
| 用户意图 | 命令 |
|---|---|
| 生成今日日报 | |
| 生成 3 月 8 日日报 | |
| 指定仓库生成日报(并保存为默认) | |
| 渲染报表到文件(同时自动保存摘要到 DB) | |
报表内容结构(由模板唯一确定)
日报 必须 通过
--render 使用 resources/daily_report.md 模板生成,以保证输出格式一致。结构:标题(含 emoji)→ 一、仓库概览(整体指标表 + 全局一句话摘要)→ 二、分仓详情(含可点击 Issue/PR 链接、合并 PR 列表、热门 Issue 明细、该仓小结)→ 三、行动建议(基于数据自动识别的关注事项)。
参考
- 设计、config、DB 表、报表 Schema:README.md。
历史版本
v1.0.0 (2026-03-11)
- 🎉 初始版本发布
- 📅 支持日报与摘要