GitHub

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

You can update GitHub with pipeline status updates from GitLab. The GitHub integration can help you if you use GitLab for CI/CD.

Pipeline status update on GitHub

This project integration is separate from the instance-wide GitHub integration and is automatically configured when you import a GitHub project.

Configure the integration

This integration requires a GitHub API token with repo:status access granted.

Complete these steps on GitHub:

  1. Go to your Personal access tokens page at https://github.com/settings/tokens.
  2. Select Generate new token.
  3. Under Note, enter a name for the new token.
  4. Ensure repo:status is selected and select Generate token.
  5. Copy the generated token to use in GitLab.

Complete these steps in GitLab:

  1. On the left sidebar, select Search or go to and find your project.
  2. Select Settings > Integrations.
  3. Select GitHub.
  4. Ensure the Active checkbox is selected.
  5. In Token, paste the token you generated on GitHub.
  6. In Repository URL, enter the path to your project on GitHub, such as https://github.com/username/repository.
  7. Optional. To disable static status check names, clear the Enable static status check names checkbox.
  8. Optional. Select Test settings.
  9. Select Save changes.

After configuring the integration, see Pipelines for external pull requests to configure pipelines to run for open pull requests.

Static or dynamic status check names

History
  • Changed in GitLab 12.4 to make static status check names the default behavior for new projects.

A status check name can be static or dynamic:

  • Static: The hostname of your GitLab instance is appended to the status check name.

  • Dynamic: The branch name is appended to the status check name.

The Enable static status check names option enables you to configure required status checks in GitHub, which need a consistent (static) name to work correctly.

If you disable this option, GitLab uses dynamic status check names instead.