Files
Michael Kriese f64ec3975a fix(cache): build all cache keys with a shared helper (#46811)
* refactor(datasource): separate registry URLs in cache keys with a colon

Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io>
Co-Authored-By: Claude Sonnet 5.5 <michael.kriese+claude-code@mend.io>

* fix(datasource/go): separate the remaining cache key parts with a colon

Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io>

* refactor(datasource): build cache keys with a shared colon-joining helper

Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io>

* refactor: build all cache keys with buildCacheKey

Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io>

* refactor(http): keep GET package cache keys as the bare URL

Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io>

* refactor(cache): extend cache key helper to memory cache keys

Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io>

* refactor(datasource/go): prefix the goproxy cache keys with their purpose

Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io>

---------

Co-authored-by: Claude Opus 5.5 <michael.kriese+claude-code@mend.io>
2026-10-10 10:46:09 +00:00
..
…

endoflife.date provides version and end-of-life information for different packages.

To find the right "package" name for the software you're trying to update, use the endoflife.date "All packages" API endpoint. You can find it in the endoflife.date API documentation.

By default, this datasource uses loose versioning. If possible, we recommend you use a stricter versioning like semver instead of loose.

Usage Example

Say you're using Amazon EKS and want Renovate to update the versions in a Terraform .tfvars file. For example, you have this .tfvars file:

# renovate: datasource=endoflife-date depName=amazon-eks versioning=loose
kubernetes_version = "1.26"

Given the above .tfvars file, you put this in your renovate.json:

{
  "customManagers": [
    {
      "customType": "regex",
      "description": "Update Kubernetes version for Amazon EKS in tfvars files",
      "managerFilePatterns": ["/.+\\.tfvars$/"],
      "matchStrings": [
        "#\\s*renovate:\\s*datasource=(?<datasource>.*?) depName=(?<depName>.*?)( versioning=(?<versioning>.*?))?\\s.*?_version\\s*=\\s*\"(?<currentValue>.*)\""
      ],
      "versioningTemplate": "{{#if versioning}}{{{versioning}}}{{/if}}"
    }
  ],
  "packageRules": [
    {
      "matchDatasources": ["endoflife-date"],
      "matchPackageNames": ["amazon-eks"],
      "extractVersion": "^(?<version>.*)-eks.+$"
    }
  ]
}

With this configuration, Renovate will parse all *.tfvars files in the repository. It will then update variables that end with _version and have the # renovate: datasource=endoflife-date depName=dependency-name versioning=versioning comment set in the line above when any new versions are available.

For amazon-eks, the defined packageRule above will also strip the -eks-${eks-release-version} suffix to only set the Kubernetes minor version.