mtalexan's avatar
Senior Member
7 years ago
New Idea

Separate Remote Repository Integration accounts from repositories themselves

When integrating with GitHub and GitLab, a separate Remote System Integration must be added for each project/repository.  However GitHub and GitLab operate with a single account list per installation instance, and then a member filter per project/repository.  This results in users needing to repeat identical username information for every repository/project the Collaborator instance is integrated with.


Instead, the Remote Repository Integration could separate systems from repositories/projects.  A "System" would be a configurable list that would present to the Users as needing their username to match.  Repositories/Projects would look like what is currently provided, for Remote Repository Integration, but would have a mandatory "System" drop down to select which of the configured  "System"s the repository is associated with.  If a specific repository needs slightly different settings from the rest of the repositories in it's existing "System", a new "System" could be added with those variations and selected as the associated "System" for that one repository's configuration.


In most cases, a number of repositories are hosted in the same GitHub or GitLab instance.  When Collaborator is used as the primary review tool, it's likely many or all of the repositories will be integrated with Collaborator under only a few different credential settings (depending on how many different GitLab and/or GitHub instances exist). 


In our current use case, we have almost 40 repositories hosted on only two GitLab instances.  That means when we complete our integration, each user will have to enter one of only two different usernames almost 40 times. Even though we have Single Sign On via Active Directory being used for Collaborator and both GitLab instances, GitLab has decided usernames are the human readable version of a user's name as listed in their profile, so no automatic matching can easily occur (all GitLab's fault).

No CommentsBe the first to comment