Skip to content

Next

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Support
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
GitLab
GitLab
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 26,244
    • Issues 26,244
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 994
    • Merge Requests 994
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Packages
    • Packages
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issues
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • GitLab.org
  • GitLabGitLab
  • Issues
  • #3836

Closed
Open
Opened Oct 23, 2017 by Fabio Busatto@bikebilly0 of 3 tasks completed0/3 tasks
  • Report abuse
  • New issue
Report abuse New issue

GitHub project service integration (manual)

When GitLab CI/CD executes pipelines for a project that mirrors a GitHub project, the pipeline status is visible 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 see it directly in the GitHub interface.

We should implement a way to send the status back to the original project in GitHub, as many other CI/CD systems do.

Proposal

Create a project service integration for GitHub, that allows sending the status back to the original project using the GitHub status APIs (https://developer.github.com/v3/repos/statuses/).

Ask for the minimal information needed:

  1. GitHub address (to allow for on-prem GitHub Enterprise) (default to github.com)
  2. Personal API token (https://github.com/blog/1509-personal-api-tokens)
  3. Project owner (namespace) (default to namespace, if match found in GitHub)
  4. Project name (default to project name, if match found in GitHub)

When active, the service will connect to GitHub and update the commit status automatically.

Follow up improvements (%10.6)

  • Automatically fill and enable GitHub project service integration if importing a CI/CD only project from GitHuhb

Future improvements:

  • Provide a button to automatically connect to GitHub account and fill in 1 and 2. [Mark: I don't believe you can use the API to fetch or generate a personal API token, but we can use OAuth instead of a token.]
  • Send environment deployment status to GitHub (https://gitlab.com/gitlab-org/gitlab-ee/issues/3842).

Design

Empty Authorize Filled PR status
localhost-3000-h5bp-html5-boilerplate-services-github-edit image localhost-3000-h5bp-html5-boilerplate-services-github-edit__1_ image

Links / references

  • https://gitlab.com/gitlab-org/gitlab-ee/issues/3836
  • https://gitlab.com/gitlab-org/gitlab-ee/issues/3745
  • https://gitlab.com/gitlab-org/gitlab-ee/issues/3842
  • GitHub API: create a commit status

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
Edited Jan 26, 2018 by James Ramsay

Linked issues

  • Discussion
  • Designs
Assignee
Assign to
10.6
Milestone
10.6
Assign milestone
Time tracking
None
Due date
None
11
Labels
Deliverable Enterprise Edition GitLab Premium UX backend direction feature frontend mirror services workflowIn review
Assign labels
  • View project labels
Reference: gitlab-org/gitlab#3836