Skip to main content

GitLab

CatalogDiscoveryGitOpsScorecards

Summary

GitLab is a Git-based VCS that has a Cloud and Self-Hosted option. You can use GitLab to drive insights into values such as:

  • Git repository details (commit history, contributors)
  • Scorecard rules
  • Ownership

Setup

caution

If you do not see the Settings page you're looking for in the sidebar, you likely don't have the proper permissions and need to contact your admin.

Multi-account support

GitLab has multi account support - entities can be tagged across different GitLab organizations, instances, and credentials.

Each GitLab configuration requires a GitLab Personal Token with the read_api scope and an alias. We use the alias to correlate the instance you want to use with the application registrations for various entities. There is also a default configuration used by registrations without an alias listed. You can edit aliases and the default configuration under Settings → GitLab.

If using the Scaffolder, you'll need the full api scope.

caution
If you're using a self-hosted instance of GitLab, you'll need to verify that your Cortex instance is able to reach the GitLab instance.
We route our requests through a static IP address. Reach out to support at help@cortex.io to receive details about our static IP. If you're unable to directly whitelist our static IP, you can route requests through a secondary proxy in your network that has this IP whitelisted, and have that proxy route traffic to your GitLab instance.

Enabling GitOps

In order to use GitOps with GitLab, a webhook must be created. Setup steps for webhooks can be found here.

Registration

Catalog descriptor

Git

By specifying the x-cortex-git field in your Cortex Catalog Descriptor, you'll be able to see Git information in the entity page, including the top language, recent commits, and top contributors.

x-cortex-git:
gitlab:
repository: <namespace>/<project>
basepath: myService # optional
alias: myApp # optional
FieldDescriptionRequired
repositorynamespace/repo as defined in GitLabtrue
basepathIf the entity is in a monorepo (e.g. in a subdirectory), use this field to define the subdirfalse
aliasAlias is optional and only relevant if you have opted into multi account supportfalse

Ownership

You can define the following block in your Cortex Catalog Descriptor to add your GitLab groups.

Team name should match the group name in GitLab.

x-cortex-owners:
- type: group
name: Group Name
provider: GITLAB
description: This is a description for this owner # optional