git-publish-release

Solid

当用户明确要求发布项目到 GitHub、创建 GitHub Release 或生成 Release Notes 时使用。根据版本历史整理发布说明;仅要求预览时不执行发布。

Code & Development 48 stars 7 forks Updated today MIT

Install

View on GitHub

Quality Score: 86/100

Stars 20%
56
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# GitHub Release ## 目标 当用户明确要求"发布项目到 GitHub"、"创建 GitHub Release"或"生成 Release Notes"时使用。智能分析 tag 间历史变化并生成专业的 Release Notes;明确发布/创建请求时自动创建 GitHub Release,单独的 notes/历史总结请求仅生成预览,除非用户随后确认发布。支持首次发布、常规版本、预发布版本(alpha/beta/rc),自动识别 prerelease 标记。 ## 流程 ### 输入 #### 触发条件 用户需要: - 发布项目的新版本到 GitHub - 创建 GitHub Release 并自动生成 Release Notes - 推送某个 tag 到 GitHub 并创建 release - 总结版本间的历史变化 #### 你需要确认的输入 1. **目标 tag**(如 `v3.0.0`) - 如未指定,列出最近 tags 供选择 2. **项目路径**(可选,默认当前工作目录) 3. **任务输出目录**(宿主可设置 `TASK_OUTPUT_DIR`,指向本轮已声明的 `./.bensz-api/task-.../git-publish-release/output/`;未设置时临时 notes 使用 OS 临时目录并立即清理) > 认证通过 `gh auth login` 管理,无需手动配置 token。 明确要求“发布项目到 GitHub”或“创建 GitHub Release”时,按配置执行远程发布;仅要求“生成 Release Notes”或“总结版本间的历史变化”时只生成文案/预览,不调用 `gh release create`,除非用户随后明确确认发布。`release.require_confirmation` 的含义是:明确发布/创建请求可作为本次授权,覆盖已有 Release 仍按下方错误处理规则询问;不得把文案生成请求视为远程发布授权。 ### 执行步骤 #### 工作流程 ##### 确认项目信息 ```bash # 获取 owner/repo REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner) ``` ##### 获取最新 Release 信息 ```bash # 获取最近一次 release 的 tag PREVIOUS_TAG=$(gh release list --limit 1 --json tagName -q '.[0].tagName') ``` - 如果存在历史 release,比较范围为:`PREVIOUS_TAG..TARGET_TAG` - 如果是首个 release,比较范围为:从初始 commit 到 `TARGET_TAG` ##### 分析历史变化 获取两个版本之间的 commit 历史: ```bash # 如果有历史 release git log ${PREVIOUS_TAG}..${TARGET_TAG} --pretty=format:"%h|%s|%an|%ad" --date=short # 如果是首个 release git log ${TARGET_TAG} --pretty=format:"%h|%s|%an|%ad" --date=short ``` ##### 生成 Release Notes 根据 commit 历史和...

Details

Author
huangwb8
Repository
huangwb8/skills
Created
8 months ago
Last Updated
today
Language
Python
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category