← 返回 Skills 市场
sunyang777

tag-release

作者 sunyang777 · GitHub ↗ · v1.0.1 · MIT-0
cross-platform ⚠ suspicious
45
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install tag-release
功能描述
按日期规则为一个或多个微服务基于指定分支创建并推送远程 release tag。适用于用户明确要求打 release tag、批量打 tag、按日期生成 tag、或基于 test/master 等分支给服务发布 tag 的场景。模型只负责整理服务、分支、日期或 tag 名,实际执行必须调用本 skill 自带脚本。
使用说明 (SKILL.md)

tag-release

把“按分支给一个或多个服务打远程 release tag”的流程交给固定脚本处理;不要让模型自己临时拼 git 命令批量打 tag

当前默认行为:打 tag 时,同时创建同名 GitHub Release

何时使用

只有默认行为:

  • 打 release tag
  • 同时创建同名 GitHub Release
  • 按需返回 tag / release / PR 信息

以下情况不要触发本 skill:

  • 只是讨论发版流程
  • 只是查询当前 tag
  • 只是要求部署,但没有要求打 tag
  • 只是让你看 tag 脚本或评审实现

模型职责

模型只做这些事:

  1. 判断用户是不是在明确要求“打 tag”
  2. 提取服务列表
  3. 判断目标分支
  4. 判断是否要按日期生成 tag,还是使用指定 tag 名
  5. 若用户给了 release 描述,则作为 tag message 传入;没给则自动用最新 PR 信息生成描述
  6. 默认同时创建 同名 GitHub Release,标题与 tag 名一致
  7. 需要预演时加 --dry-run
  8. 调用固定脚本
  9. 汇报结果

模型不要:

  • 自己循环执行 git tag / git push
  • 自己手写 tag 命名规则
  • 跳过脚本直接对多个仓库执行危险命令

执行方式

脚本路径:scripts/tag_release.py

基础调用:

python3 \x3Cskill_dir>/scripts/tag_release.py \
  --services cloud-device cloud-data \
  --branch master

指定日期:

python3 \x3Cskill_dir>/scripts/tag_release.py \
  --services cloud-device \
  --branch master \
  --date 2026-05-18

指定完整 tag:

python3 \x3Cskill_dir>/scripts/tag_release.py \
  --services cloud-device \
  --branch master \
  --tag release-2.5.18

指定 release 描述:

python3 \x3Cskill_dir>/scripts/tag_release.py \
  --services cloud-device \
  --branch master \
  --message '修复设备分页和版本展示'

预演:

python3 \x3Cskill_dir>/scripts/tag_release.py \
  --services cloud-device cloud-data \
  --branch master \
  --dry-run

参数整理规则

  • --services:直接使用 config.json 里的仓库键名;如果用户只说了模糊服务名,可先做一次合理匹配,但匹配到多个时要报错
  • --branch:优先使用用户指定分支;未指定时固定使用 master
  • --date:格式必须是 YYYY-MM-DD;未指定时默认今天
  • --tag:若用户明确给出完整 tag,则直接使用,不再按日期规则生成
  • --message:若用户明确给了 release 描述,则直接作为 annotated tag message;未给时自动用最新 PR 信息生成描述;若 PR 信息也拿不到,则回退为 tag from origin/\x3Cbranch>
  • --dry-run:当用户说“先看看/先预览/别真的打”时使用
  • 如果用户只说“打 release tag”但没给服务范围,脚本默认会对 config.json 中全部 repos 生效;这种场景下最好先确认一次,避免误打全量

输出说明

成功时重点汇报:

  • 实际处理了哪些服务
  • 基于哪个分支打 tag
  • 使用了哪个 tag 名
  • 哪些服务成功创建/推送
  • 哪些服务因 tag 已存在而跳过
  • 是否只是 dry-run
  • 最新合入 PR(如果能拿到)
  • PR 提交人信息(如果能拿到)
  • Tag 链接
  • Release 链接
  • Tag 描述 / tag message

失败时直接汇报失败服务和原因,例如:

  • 远程分支不存在
  • tag 已存在但指向不同 commit
  • git push 失败
  • repo 目录不存在

额外返回信息

脚本执行成功后,回复里应尽量补充以下信息:

  • 最新合入 PR 编号与标题(若 GitHub API 可获取)
  • PR 提交人 / 作者
  • Tag 链接
  • Release 链接
  • Tag 描述 / tag message
  • 分支信息

如果 GitHub API 查询失败,不要因此阻塞打 tag 主流程;应明确说明“tag 已完成,但 PR 信息获取失败”。

tag 规则说明

默认 tag 规则由脚本内置:

release-{year_index}.{month}.{day:02d}

其中:

  • year_index = year - base_year
  • 默认 base_year = 2024

例如:

  • 2025-05-18 → release-1.5.18
  • 2026-05-18 → release-2.5.18

资源说明

  • 脚本:scripts/tag_release.py
  • 配置:assets/config.json

安全说明

  • 该脚本会对远程仓库创建并 push tag,属于真实写操作
  • 当用户未明确说明服务范围时,不要默认全量执行,先确认一次
  • 当前 skill 使用的 github_token 允许用于这条固定链路:查询目标分支 commit、查询最新合入 PR、检查远程 tag / release、创建 annotated tag、创建 tag ref、创建 release
  • 禁止把这个 token 挪作他用,例如:通用 GitHub 浏览、PR 批量操作、issue 操作、仓库管理、权限变更、任意 GitHub API 探测
  • 如果任务超出“为服务打 release tag”范围,即使能复用这个 token,也不要使用;应改走别的 skill / 别的凭据
  • 不要在聊天里复述 token、仓库凭据等敏感信息
安全使用建议
Do not install this version as-is. Treat the bundled GitHub, Feishu, and Jenkins secrets as exposed: rotate them, remove them from the package, and require users to provide least-privilege credentials through a secret manager or environment variables. Only use the skill after confirming the target repositories and whether GitHub Release creation is desired.
能力评估
Purpose & Capability
The tag/release workflow is mostly coherent and SKILL.md discloses GitHub Release creation, but the bundled config also contains Feishu and Jenkins settings unrelated to tag creation.
Instruction Scope
Instructions limit use to explicit tag requests and recommend confirmation before all-repo execution, but the frontmatter description underplays release-management behavior that the body later discloses.
Install Mechanism
The skill uses a Python script plus git and GitHub API calls; no hidden installer or persistence mechanism was observed.
Credentials
The artifact embeds a GitHub token, Feishu webhook/app secret, and Jenkins API token, which is excessive for a public installable tag-release skill and creates immediate credential-exposure risk.
Persistence & Privilege
The script can create remote annotated tags and GitHub Releases across many repositories, defaulting to all configured repos when services are omitted; that is high-impact mutation authority even though dry-run support exists.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install tag-release
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /tag-release 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.1
Add shop services and fuzzy alias matching for tag creation
元数据
Slug tag-release
版本 1.0.1
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

tag-release 是什么?

按日期规则为一个或多个微服务基于指定分支创建并推送远程 release tag。适用于用户明确要求打 release tag、批量打 tag、按日期生成 tag、或基于 test/master 等分支给服务发布 tag 的场景。模型只负责整理服务、分支、日期或 tag 名,实际执行必须调用本 skill 自带脚本。 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 45 次。

如何安装 tag-release?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install tag-release」即可一键安装,无需额外配置。

tag-release 是免费的吗?

是的,tag-release 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

tag-release 支持哪些平台?

tag-release 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 tag-release?

由 sunyang777(@sunyang777)开发并维护,当前版本 v1.0.1。

💬 留言讨论