GitHub project service integration
Description
When GitLab CI/CD executes pipelines for a project that mirrors a GitHub project, the pipeline status is visibla only in GitLab. This requires users to go to GitLab in order to see the health of their project, while they should be able to do it directly from the GitHub interface.
We should implement a way to send the status back to the original project in GitHub, as many of the other CI/CD systems do.
Proposal
Create a project service integration for GitHub, that allows to send the status back to the original project using the GitHub status APIs (https://developer.github.com/v3/repos/statuses/).
A first iteration consists in asking for the minimal information needed:
- GitHub address (it allows support for on-prem GitHubEnterprise installations)
- Personal API token (https://github.com/blog/1509-personal-api-tokens)
- Project owner (namespace)
- Project name
If OAuth2 is configured properly, a button can automatically connect to GitHub account and fill in 1 and 2.
When active, the service will connect to GitHub- and update the commit status automatically.
Links / references
- https://gitlab.com/gitlab-org/gitlab-ce/issues/32052
- https://gitlab.com/gitlab-org/gitlab-ee/issues/3745
Documentation blurb
Overview
What is it? Why should someone use this feature? What is the underlying (business) problem? How do you use this feature?
Use cases
Who is this for? Provide one or more use cases.
Feature checklist
Make sure these are completed before closing the issue, with a link to the relevant commit.
-
Feature assurance -
Documentation -
Added to features.yml