Make GitLab CI/CD work with an external repository (GitHub, Bitbucket)
Several customers and prospects are interested in having a full CI/CD experience using GitLab CI/CD, but with the code repository hosted on external services, like GitHub or BitBucket.
GitLab CI/CD relies heavily on having the code in a local repo, and cannot be linked to external ones. One possible solution is to cache the external project on GitLab, and run pipelines from here, with status updated back to GitHub/BitBucket via their Status API. It is also useful to make the setup easy for users and provide a good user experience when using a GitLab just for CI/CD.
The first external service to be supported is GitHub.
Minimal viable changes
- Import CI/CD only project from GitHub Enterprise #5220
- Bitbucket Cloud web hooks when importing a CI/CD only project
- Bitbucket Cloud project service integration
- Send environment deployment status to GitHub: #3842
- Add GitLab CI/CD to GitHub Marketplace
Configure GitLab CI/CD via project setting instead of
- Disable Repository read/write while still enabling Pipelines
- Support GitHub.com and one or more GHE instances at the same time: #5354
- Connect to GitHub Enterprise at group level: #5355