* 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>
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.