I've created a VCS repository
with the name yarn-test
which is pointing to github. The main goal is to use this as remote repository to releases on github.
The following URL allows us to download a release:
https://repo-url/artifactory/api/vcs/downloadRelease/yarn-test/yarnpkg/yarn/v0.23.4?ext=tar.gz
All fine. This release is downloaded and in our cache of the yarn-test
registry. I can download the release from the cache using:
https://repo-url/artifactory/yarn-test/yarnpkg/yarn/releases/v0.23.4/yarn-v0.23.4.tar.gz
This seems to be good for us because we use a plugin which expects the URL of artifactory to be in a format of:
https://repo-url/artifactory/xx/xx/v0.23.4/yarn-v0.23.4.tar.gz
So when our release is in the cache of our repository it works fine. But when we upgrade the yarn release in our plugin configuration it's searching in the cache for a new version (for example v1.3.2
).
It's searching for:
https://repo-url/artifactory/yarn-test/yarnpkg/yarn/releases/v1.3.2/yarn-v1.3.2.tar.gz
The URL format is good, but the v1.3.2
version is not in our cache which is normal. But here pops up our issue. We would expect it would 'translate' this to the layout of our real remote repository. But this seems not to work.
We just receive a 404
error.
Why is our this not working? We can get a release from the cache but when the release does not exist our Artifactory repository is not able to download it from github because the layout is different?
Changes on our layout's do not seem to have any impact? (we really delete and recreate the remote repo with new layouts) We're using this example as inspiration:
For example, the remote repository http://download.java.net/maven/1 stores its artifacts according to the Maven 1 convention. You can configure the cache of this repository to use the Maven 2 layout, but set the Remote Layout Mapping to Maven 1. This way, the repository cache handles Maven 2 requests and artifact storage, while outgoing requests to the remote repository are translated to the Maven 1 convention.