GitCode Release Notes
by @autoxj
Generate release notes for GitCode repositories from commits (by tag range or since-date), grouped as feat/fix/docs/other, output Markdown for Release pages....
clawhub install gitcode-release-notes📖 About This Skill
name: gitcode-release-notes description: "Generate release notes for GitCode repositories from commits (by tag range or since-date), grouped as feat/fix/docs/other, output Markdown for Release pages. 按 tag 区间或日期拉取提交并生成版本发布公告 Markdown。Python 3.7+ standard library only." metadata: {"openclaw": {"requires": {"env": ["GITCODE_TOKEN"]}, "primaryEnv": "GITCODE_TOKEN"}}
GitCode 版本发布公告(Release Notes)
根据 GitCode API 拉取仓库在指定区间内的提交。脚本仅负责获取 commit 与简单过滤;你根据脚本输出的 JSON 总结、归类、润色并生成最终 release note,输出为 Markdown 格式,使阅读清晰、像人写的发布说明。
何时使用
--repo owner/repo(必传);可选提供 --branch、--from、--to、--since-date。认证
GITCODE_TOKEN:按以下优先级读取。
| 优先级 | 来源 |
|--------|------|
| 1 | 进程环境变量 GITCODE_TOKEN |
| 2 | Windows 用户级环境变量 |
| 3 | Windows 系统级环境变量 |
~/.bashrc 或 ~/.zshrc 中 export GITCODE_TOKEN="..."。路径约定
SKILL_ROOT):本 SKILL.md 所在目录。脚本通过 __file__ 定位,不依赖当前工作目录。固化流程
1. 解析参数:从用户输入或对话中提取 --repo(必传)、--branch、--from、--to、--since-date。
2. 调用脚本(输出 JSON):
python /scripts/release_notes.py --repo owner/repo --json [--branch BRANCH] [--from TAG] [--to TAG] [--since-date YYYY-MM-DD]
- 必须带 --json:脚本只做拉取与简单过滤,向 stdout 输出 JSON,不生成最终 Markdown。
- 区间三选一:--since-date(从该日 00:00 上海时间至今)、--from(从某 tag 至今)、或 --from + --to(两 tag 之间)。
- --branch 未传时:脚本依次尝试 master → develop → main,都不存在则报错并提示使用 --branch。
3. 读取 JSON:从 stdout 解析 JSON。若退出码非 0 或 stderr 有错误信息,向用户展示详细错误并结束。
4. 生成最终 release note:
- 根据 JSON 中的 commits 做归类(新特性 / 修复 / 文档 / 其他)、总结(每条或每组用简要概括,不要直接贴 commit 原文)、润色(统一语言、合并同类、去掉无信息量项),生成干净、专业、可对外发布的 release note。
- 按 「最终 release note 输出格式」 与 「撰写原则」 写出 Markdown(标题、四小节、每条仅写简要说明;不展示 commit 信息;不展示合并条数/测试/合规等无价值信息)。
- 交付给用户(可保存为文件或粘贴到 GitCode Release)。
5. 禁止:不得在未得到脚本 JSON 前猜测或伪造数据;不得将 commit 列表原样当作最终 release note 交付,须经总结与润色后再交付。其余禁止事项见「禁止」一节。脚本参数
| 参数 | 必填 | 说明 |
|------|------|------|
| --repo | 是 | 仓库,格式 owner/repo |
| --json | 必带(本技能调用时) | 脚本输出 JSON(仅拉取+简单过滤),由你总结并生成最终 release note |
| --branch | 否 | 分支;未传时自动尝试 master → develop → main |
| --since-date | 否 | 从该日期 00:00(Asia/Shanghai)至今的提交 |
| --from | 否 | 起始 tag(到当前 HEAD 或到 --to) |
| --to | 否 | 结束 tag,与 --from 一起表示区间 |
| --max-per-category | 否 | 仅在不使用 --json 时生效,每类最多展示条数,默认 10 |
--since-date、或仅用 --from、或 --from + --to。若同时传多种,脚本按 --since-date > --from/--to 优先级处理。--json(以获取 JSON 供你总结);不带 --json 时脚本会直接输出 Markdown,不经过本技能总结步骤。脚本 --json 输出与你的职责
commits 与 stats 做归类、简要概括、润色,按「最终 release note 输出格式」与「撰写原则」写出 Markdown;不得原样罗列 commit。最终 release note 输出格式(须统一遵守)
生成 Markdown 时必须按以下格式;每条条目的简要说明根据 commit 进行归纳。
1. 标题:# owner/repo Release Notes(版本区间),或使用 JSON 中的 title_line 作为二级标题(如 ## v1.1.0 (YYYY-MM-DD))时,一级标题可为 # owner/repo Release Notes。
2. 小节顺序与标题(有内容的才输出,顺序不可调换):
- ### 🚀 新特性
- ### 🐛 修复
- ### 📚 文档
- ### 🔧 其他更改
3. 每条条目格式:- 简要说明。简要说明由你根据该 commit 归纳;不展示 commit 哈希或链接。
4. 其他更改:仅保留对用户/使用方有感知的架构或能力类变更;不展示「合并与依赖更新(共 N 条)」;若无实质内容可省略该小节或仅 1~2 条。
5. 每类条数:新特性、修复、文档、其他更改每类最多 10 条;优先保留对用户价值最高、最易理解的条目,超出时合并同类或略去次要项。
6. 语言:小节标题与条目说明统一用中文;专有名词、仓库名可保留英文。
撰写原则(保证输出质量)
面向非核心研发(测试、产品、运维等)可快速抓取重点,避免信息过载与内部黑话。
输出示例(Markdown)
# owner/repo Release Notes(v1.0.0 → v1.1.0)🚀 新特性
新增 XXX 支持,兼容 A 与 B 场景。
支持从配置文件加载集群拓扑。 🐛 修复
修复 namespace 与任务名相同时的匹配错误。
修复日志打印重复与级别丢失问题。
修复包含 init 容器时的配置生成问题。 📚 文档
更新依赖源说明。 🔧 其他更改
设备 ID 体系与资源管理实现与重构。
故障码与知识库、路径诊断等能力补充与优化。
禁止
--repo 时执行脚本(必须提示用户提供 --repo)。示例
| 用户意图 | 命令(须带 --json) |
|----------|---------------------------|
| 从 v1.0.0 到当前 | python |
| 从 v1.0.0 到 v1.1.0 | --repo owner/repo --json --from v1.0.0python |
| 从 2026-01-08 至今(上海时间) | --repo owner/repo --json --from v1.0.0 --to v1.1.0python |
| 指定分支 | --repo owner/repo --json --since-date 2026-01-08python | --repo owner/repo --json --since-date 2026-01-08 --branch main
其中 为 的绝对路径。不带 --json 时脚本会直接输出 Markdown,不经过本技能总结步骤。
历史版本
v1.0.0 (2026-03-11)