-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Nexus repository manager for RubyGems #15459
Comments
Nexus docs are here: help.sonatype.com/repomanager2/ruby%2C-rubygems-and-gem-repositories Would be useful if anyone is able to create a reproduction of this problem using the free Nexus registry. |
Hi there, Help us by making a minimal reproduction repository. Before we can start work on your issue we first need to know exactly what's causing the current behavior. A minimal reproduction helps us with this. To get started, please read our guide on creating a minimal reproduction to understand what is needed. We may close the issue if you (or someone else) have not provided a minimal reproduction within two weeks. If you need more time, or are stuck, please ask for help or more time in a comment. Good luck, The Renovate team |
I'm reaching out to the Bundler team indirectly to see if we can get any advice on this. Good chance the proprietary/private registries all implemented the same way |
Related: #6787 #6845 |
@rarkins I believe this is a functioning reproduction repo? https://github.com/JrobT/renovate-minimal-reproduction-nexus-rubygems. Let me know if there's anything I can do. |
Can you provide instructions on how to run nexus locally to reproduce? |
@rarkins In readme |
We can add a flow to check for a nexus source in the |
I don't think we can reliably know a registry is Nexus from the
Therefore it may require some type of fallback/probe within the rubygems datasource. |
does nexus return a header we can use to identify? so make a head request to registry url, check header, cache info for further requests. |
@viceice Yes in the header there is useful information that we can use to implement this. |
Thanks for your work on this. |
When could I expect the work on this to be released? |
@JrobT looks like the PR got closed that was implementing this. |
@shea-mcdonough is there a problem other than that it tries a URL which isn't successful? |
I'm pretty sure nexus sends a header to detect this, so we can simply skip the second json fetch? |
I tend to leave it as is, maybe someday it will support more endpoints |
doing so causes nexus to be not usable for renovate and rubygems datasource, so it's not an option. I don't think nexus will support that API soon. |
Why not usable? It successfully creates PRs, just checked this yesterday |
so we catch that 404 on the api and continue what we've found on versions endpoint? it's only a cosmetic log issue? |
Yes, currently it's just one optional request for metadata |
Please, feel free to reopen this issue if needed |
Renovate didn't create any PRs for the Nexus gems. It seems like it tries the old API when looking up each of the gems and I see a bunch of these messages on the dependency dashboard
I figured we could rule out it being an issue with how we have the credentials configured since we see it hit the correct API and return a 200 but then it tries using the old API and fails |
@shea-mcdonough Please, could you tell the version of Renovate being used? Is this self-hosted or Github App one? |
@zharinov We are using the self-hosted Renovate
|
Thanks, okay, let's try one more PR, I hope it could fix it |
🎉 This issue has been resolved in version 36.1.15 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
👋 We tested again today and are still having issues. It looks like renovate is able to see that there is a new version of the gems but fails to update the gem
We did some manual testing against http://rubygems.org/. The following works:
The following does NOT:
|
👋 @zharinov Any update on when the fix will be released? |
Working on it... |
🎉 This issue has been resolved in version 36.23.1 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
@zharinov 👋 Thanks for pushing up the change! I now see renovate try The current issue is it didn't actually create the pull requests to upgrade the gems from Nexus. I see this output in the logs:
Is there a way to work around that? |
Inside PR, check retry box, it should help:
|
Tested with a dry-run and saw it produce some PR logs :) Thanks! |
🎉 This is working for us now. Thanks for fixing the Nexus support and answering our questions! |
What would you like Renovate to be able to do?
Nexus repository manager doesn't support the '/api/v1/' pattern for RubyGem discovery, however,
bundler
does support installing Gems when the Nexus URL is used as thesource
in theGemfile
.When Renovate finds a Gemfile with a source of a source of Nexus the logs show:
The above URL would result in a 400.
If you have any ideas on how this should be implemented, please tell us here.
The
source
used forbundler
is just a URL link to the Gem group rather than an API endpoint. Should maybe take that into account.Is this a feature you are interested in implementing yourself?
No
The text was updated successfully, but these errors were encountered: