SuperAPI AI 工具集

upgrade-examples

部署与运维

查看项目

更新于 10-16 08:23

技能介绍

用途

该技能用于在发布新版本 cocoindex 后,批量升级仓库中所有示例项目 pyproject.toml 文件里的 cocoindex 依赖版本。

主要能力

  • 使用基于正则的 sed 命令,一次性更新所有示例 pyproject.toml 中的 cocoindex 版本号。
  • 自动排除 .venv 目录,避免误改虚拟环境中的文件。
  • 升级后通过 grep 验证版本号是否正确。
  • 自动创建分支、提交、推送并创建 PR。
  • 完成后切回原分支并删除本地临时分支。
  • 向用户报告更新的文件数量并提供 PR 链接。

使用方式

调用格式:

/upgrade-examples <version>

示例:

/upgrade-examples 1.0.0a5

执行步骤:

  1. 创建新分支:
git checkout -b ex-dep-VERSION
  1. 运行以下命令更新所有示例 pyproject.toml 文件。注意:直接在 sed 命令中使用字面版本字符串,不要使用 shell 变量,因为引号问题可能导致版本被省略。
find examples -name "pyproject.toml" -not -path "*/.venv/*" -exec grep -l "cocoindex" {} \; | xargs sed -i '' 's/cocoindex\([^>]*\)>=[0-9][0-9a-zA-Z.]*/cocoindex\1>=VERSION/g'
  1. 验证更改显示正确版本:
grep -r "cocoindex.*>=" examples --include="pyproject.toml" | grep -v ".venv"
  1. 提交并推送更改:
git add examples/*/pyproject.toml
git commit -m "chore: upgrade examples deps to cocoindex-VERSION"
git push -u origin ex-dep-VERSION
  1. 使用 gh CLI 创建 PR 并从输出中捕获 PR URL:
gh pr create --base v1 --title "chore: upgrade examples deps to cocoindex-VERSION" --body ""
  1. 切回之前的分支并删除本地分支:
git checkout v1
git branch -d ex-dep-VERSION
  1. 向用户报告更新的文件数量,并提供 gh pr create 输出中的 PR 链接。

适用场景

  • cocoindex 发布新版本后,需要同步更新仓库内全部示例项目的依赖版本。
  • 维护示例代码与主包版本一致性。

限制

  • 该技能依赖 git 与 gh CLI 环境。
  • sed 命令使用了 macOS 风格的 -i '' 参数,在 Linux 等平台可能需要调整。
  • 仅处理 examples 目录下的 pyproject.toml 文件,且排除 .venv 目录。
  • 其他平台、收费、价格等信息暂未提供。