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
..
2022-03-04 09:04:02 +01:00

Artifactory is the recommended registry for Conan packages.

This datasource returns releases from given custom registryUrl(s).

The target URL is composed by the registryUrl and the packageName.

The release timestamp is taken from the date in the directory listing, and is assumed to be in UTC time.

Directory listings often contain file names instead of plain version numbers. Use extractVersion to get the version from the file name. For example, this custom manager updates a URL like https://artifactory.example.com/artifactory/my-repo/path/to/api/api-definition_v1.2.3.yaml:

{
  "customManagers": [
    {
      "customType": "regex",
      "managerFilePatterns": ["/^openapi\\.ts$/"],
      "matchStrings": [
        "'(?<registryUrl>https://[^'/]+/artifactory/[^'/]+/)(?<packageName>[^']+/)(?<filePrefix>[a-z-]+_)(?<currentValue>v?[0-9.]+)\\.yaml'"
      ],
      "datasourceTemplate": "artifactory",
      "extractVersionTemplate": "^{{{filePrefix}}}(?<version>v?[0-9.]+)\\.yaml$"
    }
  ]
}

Here extractVersionTemplate turns the listed file api-definition_v1.2.3.yaml into the version v1.2.3. currentValue is captured as v1.2.3 directly, because extractVersion is not applied to it.