Vision: GitHub integration with GitLab CI
Details
This issue will serve as the vision for the GitLab <> GitHub integration that can help the Product team create a PRD that may include features that are out of scope for the MVC. This also helps the team, stakeholders, and customers have an idea of where we are going with this project.
Vision
Goal: Users are able to connect one or many GitHub repositories to GitLab and immediately start CI and interact with any GitLab feature.
User stories: Product Requirements Document SSOT
User flow 1 (Admin): Install the GitHub app to connect with your GitLab instance.
Requirements to note:
- The user must either sign up to GitLab using their GitHub account or, if they already have a GitLab account, they must sign in using their GitHub account in order for the integration to be later enabled. This GIF assumes they already have a GitLab account and are signing in with SSO.
User flow 2 (Project Maintainer/Developer): Connect a GitHub project with GitLab to use GitLab features like CI, security, etc.
Requirements to note:
- The admin must invite others to the group they created so the user can create a project.
- The user who creates this project must have
maintain
permissions on at least one GitHub repo in order for projects to appear. This is similar to ourproject maintainer
role. - The invited user must sign up for GitLab using their GitHub account. This GIF assumes they already have a GitLab account that they created through their GitHub account.
- We must still support the existing GitHub integration that mirrors the repositories in order to avoid breaking changes. The integration works in 2 methods, the latter that could be deprecated soon:
- Authenticate with GitHub
- Manually input a PAT (need to discuss if we can deprecate this soon)
- The integration that shows up as enabled in Project Settings needs to be separate from the existing GitHub integration. It has a different description and a
Recommended
badge to differentiate it.
User flow 3 (Developer): Trigger a pipeline on GitHub and see results on GitLab. Map GitHub and GitLab accounts.
Requirements to note:
- Users must SSO into GitLab with their GitHub account. This flow shows them logging into GitLab with their GitHub account, but they may hit the register page or be invited by email instead. Regardless, they need to SSO into GitLab using their GitHub account.
- Users can also get to this page through an email notification when their pipeline is finished.
- We will not be able to pull the GitHub PR details into GitLab.
Design assets
Next steps
- Socialize the vision and discuss with other departments for feedback (done in Slack)
- Scope the design to MVC in #505054
- Validate the MVC through Solution validation
Edited by Gina Doyle