Skip to content
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

Implement storage.Backend for Artifactory storage #1130

Closed
tylerchr opened this issue Mar 14, 2019 · 0 comments · Fixed by #1587 · May be fixed by #1671
Closed

Implement storage.Backend for Artifactory storage #1130

tylerchr opened this issue Mar 14, 2019 · 0 comments · Fixed by #1587 · May be fixed by #1671
Labels
proposal A proposal for discussion and possibly a vote storage work to do on one or more of our storage systems

Comments

@tylerchr
Copy link

tylerchr commented Mar 14, 2019

Is your feature request related to a problem? Please describe.

At Qualtrics we use Artifactory as an artifact repository, which is not currently supported by Athens. We want to deploy Athens internally. but strong corporate incentives exist to use our internal repository for storage instead of Athens' S3 support.

Describe the solution you'd like

I'd like Athens to support a storage backend which I can use to integrate with our Artifactory instance. Notably, this doesn't necessarily mean a bespoke artifactory storage backend—Artifactory also supports using raw HTTP requests with Basic Authentication.

From my perspective, the better solution would be to implement an http storage backend that exploits Artifactory's direct HTTP API. This has the added upside of looking remarkably similar to the Go module proxy HTTP API itself, though some extensions would be necessary to support the write operations.

Describe alternatives you've considered

Another option is to use Artifactory's REST API and implement a storage backend more tailored to Artifactory's unique API endpoints.

To me this is an inferior option. While it may provide tighter integration with Artifactory, it means that changes to the Artifactory API over time must be mirrored by updated support in Athens.

Additional context

I got curious and wrote up an http storage backend to demonstrate what this would look like. I'll submit that as a PR shortly, for a starting point for discussions on what we might be able to achieve here.

Update: Submitted #1131.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
proposal A proposal for discussion and possibly a vote storage work to do on one or more of our storage systems
Projects
None yet
2 participants