Research git frontend and how to configure it
#2 Updated by Peter Amstutz over 6 years ago
Making notes here as I go along.
Github clone. Uses Rails.
Github clone. Uses Rails. Supports issues.
Distributed with git. Changelog/commit oriented UI, instead of taking you to a tree associated with a branch tip (which seems more intuitive).
Used by kernel.org. Also changelog/commit oriented UI.
Uses bootstrap, looks good, written in PHP.
Clone of google code. Supports issues.
#4 Updated by Peter Amstutz over 6 years ago
User account handling:
gogs has its own user database. We want to link that seamlessly to Arvados accounts. Most importantly, we need to support Arvados permissions.
a) We could use the Workbench authentication flow. This delivers an Arvados API token to the service, so gogs would need some Arvados specific code.
b) Add an OAuth2 flow to gogs that sends the user to the SSO. Also requires adding new code (but maybe not much). Gogs supports OAuth2 but right now sends you to a 2nd step where you still have to create a local gogs account.
c) Set up an OAuth2 proxy which redirects to the SSO requests that don't have a valid session, and adds headers indicating the identity of the user. May not require modifying gogs at all, since this authentication feature is already supported.
The problem with (a) is that it may be too Arvados specific, the problem with (b) and (c) is that it may not be Arvados specific enough.
Users get a "short name" assigned to them which is used for shell and git accounts. This "short name" is stored on the API server and would need to be propagated to gogs.
Gogs sharing seems to be limited. Repositories are either "public" or "private". There is also support for organizations, but I don't know how the permissions model works.
Even though this is probably a (relatively) lighter weight solution that gitorious or gitlab, it still seems like we might need to do somewhat substantial customization to get the level of integration we need. Needs further study.