For the complete documentation index, see llms.txt. This page is also available as Markdown.

Git Platforms

What Lunar supports on GitHub and GitLab — identity, webhooks, policy results, merge gating, and CI — and where the setup instructions for each Git platform live.

Lunar integrates with GitHub (github.com and GitHub Enterprise Server) and GitLab (gitlab.com and self-managed instances). One Hub can serve both at once, and each repository is routed by its host.

Most of Lunar works identically on either Git platform: components, domains, collectors, policies, catalogers, the SQL API, and the Grafana dashboards behave the same on both. The differences are concentrated in a few places, and this page is the summary — read it before planning an install so nothing on the list below is a surprise later.

Creating the credential is platform-specific, and lives on each platform's page:

  • GitHub — create the GitHub App the Hub authenticates as.

  • GitLab — create the group access token, and set up the merge gate on Ultimate.

Everything after that is the ordinary install: Self hosted or Dedicated, each of which calls out the GitHub and GitLab variants inline where they diverge.

Capability summary

Capability
GitHub
GitLab

Repository identity

github.com/org/repo

gitlab.com/group/project, including nested subgroups

Credentials

GitHub App

Group access token

Webhook ingestion

Push, pull request, workflow run

Push, merge request

Webhook registration

Automatic, per repository

Automatic, per project

Results on pull/merge requests

Check run + PR comment

Commit status (GitLab Free/Premium) or external status check (GitLab Ultimate) + MR comment

Results on the default branch

Check run + Grafana dashboards

Commit status + Grafana dashboards; project badges; broadcast messages (single-tenant instances, when the configured token has admin rights)

Merge gating

Mark Lunar's check required in branch protection

Provisioned automatically on Ultimate; on Free and Premium, enable Pipelines must succeed yourself

Config sync

GitHub Action or CLI

.gitlab-ci.yml job running the CLI

Which CI systems Lunar traces is a separate question from which Git platform you are on — see Lunar CI Tracer.

What the differences mean in practice

Merge gating depends on your GitLab tier

On GitHub, Lunar posts a check run and you decide whether to make it required in branch protection.

On GitLab Ultimate, Lunar blocks merge requests whose gating policies do not pass, and provisions the necessary project settings itself — see the merge gate for what it changes and how to override a block.

On GitLab Free and Premium, Lunar posts a commit status instead. That can still gate merges, but you turn it on per project with Pipelines must succeed, and it gates on the whole pipeline rather than on Lunar as a named requirement. There is also no comment-driven bypass on these tiers.

Self-managed hosts must be configured

GitHub Enterprise Server and self-managed GitLab are both supported, but a self-managed GitLab host is only recognized as GitLab if you list it in your credentials configuration. See GitLab.

Running GitHub and GitLab together

One Hub can serve both. Configure the GitHub App as usual and add HUB_GITLAB_TOKENS alongside it; each repository is routed by its host. Neither platform is mandatory to the Hub, which starts as long as at least one is configured.

The Helm chart has not caught up on that last point: its template guard still requires the GitHub App values, so a self-hosted chart install carries a GitHub App configuration even when every component lives on GitLab. See install Step 4; dedicated hub.gitlab.* values are planned.

Next steps

  • GitHub — GitHub App setup.

  • GitLab — token setup, Hub configuration, and the merge gate.

Then carry the credential into your install:

Last updated