SuperAPI AI 工具集

versions-renovate

通用与其它

查看项目

更新于 10-15 22:38

技能介绍

用途:管理 homelab 平台版本与 Renovate 注解。版本存放于 kubernetes/platform/versions.env,Renovate 的自定义正则管理器在 .github/renovate.json5 中解析每个条目上一行的 # renovate: 注解,Flux 在协调时将 ${var} 引用替换进 HelmRelease 规格。

主要能力:新增版本条目、选择初始版本、编写注解、配置包规则、排查注解被忽略等问题。

选择初始版本:必须从来源核实最新稳定标签,不要凭记忆猜测。可用命令: TOKEN=$(curl -s "https://ghcr.io/token?scope=repository:<org>/<image>:pull&service=ghcr.io" | jq -r .token) curl -s -H "Authorization: Bearer $TOKEN" "https://ghcr.io/v2/<org>/<image>/tags/list" | jq -r '.tags[]' | sort -V | tail skopeo list-tags docker://ghcr.io/<org>/<image> git ls-remote --tags --refs https://github.com/<org>/<repo>.git | sort -V | tail 匹配注册表实际标签格式,选最新稳定 semver,除非用户要求否则跳过 beta/rc/nightly/latest。

注解语法:

renovate: datasource=<source> depName=<name> [packageName=<pkg>] [extractVersion=<regex>] [registryUrl=<url>] [versioning=<scheme>]

variable_name=<value> 键顺序固定为 datasource、depName、packageName、extractVersion、registryUrl、versioning,顺序错误会被静默跳过。datasource 与 depName 必填;packageName 用于 OCI 注册表或 GitHub 仓库;extractVersion 用于转换上游版本;registryUrl 用于 HTTP Helm 仓库(不用于 OCI);versioning 用于非 semver 方案。

数据源选择:HTTP Helm 注册表用 datasource=helm 加 registryUrl;OCI Helm 注册表用 datasource=docker 加 packageName(不带 oci:// 前缀);GitHub release 用 datasource=github-releases 加 packageName=<org/repo>;GitHub tag 用 datasource=github-tags 加 packageName=<org/repo>。

YAML 容器镜像注解:对 Helm values 中硬编码的镜像标签,在 tag 或 image 上一行写 # renovate: datasource=docker depName=<镜像>。

包规则:在 .github/renovate.json5 中用 matchDepNames 匹配注解中的 depName,可设置 groupName 分组。默认 minor/patch 更新 3 天后自动合并,基础设施关键组(talos、kubernetes、cilium、gateway-api、flux)禁用自动合并。修改后运行 task renovate:validate。

限制与排查:注解必须紧贴 key=value 上一行;packageName 不能带 oci://;缺 extractVersion 会保留多余 v 前缀;OCI 图表误用 datasource=helm 会找不到;非 semver 需 versioning=loose。还可检查 Renovate GitHub issue 中的依赖面板与 renovate.json5 的 ignorePaths。