You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Renovate识别自定义Git标签并更新Makefile语义化版本

解决方案

要实现让Renovate识别Makefile中的语义化版本,并将OpenLDAP的Git标签转换为语义化版本进行更新,需要调整renovate.json中的自定义管理器配置,重点解决版本双向转换的问题:

{
  "customManagers": [
    {
      "customType": "regex",
      "managerFilePatterns": ["^Makefile$"],
      "matchStrings": [
        "VERSION\\s*:=\\s*(?<currentValue>\\d+\\.\\d+\\.\\d+)"
      ],
      "datasourceTemplate": "git-tags",
      "depNameTemplate": "https://git.openldap.org/openldap/openldap",
      "versioningTemplate": "regex:^OPENLDAP_REL_ENG_(?<major>\\d+)_(?<minor>\\d+)_(?<patch>\\d+)$",
      "extractVersionTemplate": "{{major}}.{{minor}}.{{patch}}",
      "serializeVersionTemplate": "OPENLDAP_REL_ENG_{{major}}_{{minor}}_{{patch}}"
    }
  ]
}

配置关键说明

  1. 精准匹配语义化版本
    matchStrings中的正则\d+\.\d+\.\d+专门捕获Makefile里的语义化版本格式(如2.5.19),确保Renovate能正确识别当前版本值。

  2. 版本双向转换规则

    • versioningTemplate:定义OpenLDAP Git标签的结构,将标签拆分为major、minor、patch三个分组,这是转换的基础。
    • extractVersionTemplate:指定如何从Git标签中提取语义化版本——把分组的数字用点连接,比如OPENLDAP_REL_ENG_2_6_10会被解析为2.6.10。
    • serializeVersionTemplate:核心配置,告诉Renovate如何把Makefile中的语义化版本反向转换成对应的Git标签格式(比如2.5.19→OPENLDAP_REL_ENG_2_5_19),这样Renovate就能在数据源中找到匹配的标签,确认当前版本的有效性,进而检测新版本。

工作流程

  1. Renovate读取Makefile中的VERSION := 2.5.19,通过serializeVersionTemplate生成对应的Git标签OPENLDAP_REL_ENG_2_5_19,验证该标签在OpenLDAP仓库中存在。
  2. 拉取仓库中所有符合规则的Git标签,用extractVersionTemplate将每个标签转换为语义化版本,比较后找到最新版本(如2.6.10)。
  3. 自动发起PR,将Makefile中的版本更新为解析后的语义化版本2.6.10。

内容的提问来源于stack exchange,提问作者Kins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:00:06