versioningTemplate с регулярным выражением для извлечения тега github

Я пытаюсь отслеживать в своем репозитории git файл Dockerfile с помощью Renewate, который получает в качестве аргумента версию postfixadmin / postfixadmin с тегом git . Эта версия должна контролироваться regexManager. В качестве источника данных я использую github-tag. Вот моя конфигурация:

      {
  "regexManagers": [
    {
      "description": "Update postfixadmin git tag",
      "fileMatch": [
        "^Dockerfile$"
      ],
      "matchStrings": [
        "ARG POSTFIXADMIN_VERSION=(?<currentValue>.*?)"
      ],
      "depNameTemplate": "postfixadmin/postfixadmin",
      "versioningTemplate": "regex:^(?<prefix>postfixadmin-)?(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)$",
      "datasourceTemplate": "github-tags"
    }
  ]
}

Я проверил свое регулярное выражение versioningTemplate через regex101.com, но я не получаю запросов на вытягивание с новой версией postfixadmin.

Есть у кого-нибудь идеи, что здесь прописано настроено?

1 ответ

Базовым механизмом регулярных выражений здесь является PHP PCRE, и здесь вам нужно использовать определенную форму написания регулярных выражений, а именно буквальную нотацию регулярных выражений.

Ошибка должна быть исправлена ​​с помощью

      "versioningTemplate": "regex:/^(?<prefix>postfixadmin-)?(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)$/",

куда / символы используются как разделители регулярных выражений.

Поскольку регулярное выражение написано в отдельном файле, а не в файле кода, вам не нужны двойные обратные косые черты, если они не анализируются программным обеспечением определенным образом.

Другие вопросы по тегам