gitlab_project_badge (Resource)

The gitlab_project_badge resource allows to manage the lifecycle of project badges.

Upstream API: GitLab REST API docs

Example Usage

resource "gitlab_project" "foo" {
  name = "foo-project"
}

resource "gitlab_project_badge" "example" {
  project   = gitlab_project.foo.id
  link_url  = "https://example.com/badge-123"
  image_url = "https://example.com/badge-123.svg"
  name      = "badge-123"
}

# Pipeline status badges with placeholders will be enabled
resource "gitlab_project_badge" "gitlab_pipeline" {
  project   = gitlab_project.foo.id
  link_url  = "https://gitlab.example.com/%%{project_path}/-/pipelines?ref=%%{default_branch}"
  image_url = "https://gitlab.example.com/%%{project_path}/badges/%%{default_branch}/pipeline.svg"
  name      = "badge-pipeline"
}

# Test coverage report badges with placeholders will be enabled
resource "gitlab_project_badge" "gitlab_coverage" {
  project   = gitlab_project.foo.id
  link_url  = "https://gitlab.example.com/%%{project_path}/-/jobs"
  image_url = "https://gitlab.example.com/%%{project_path}/badges/%%{default_branch}/coverage.svg"
  name      = "badge-coverage"
}

# Latest release badges with placeholders will be enabled
resource "gitlab_project_badge" "gitlab_release" {
  project   = gitlab_project.foo.id
  link_url  = "https://gitlab.example.com/%%{project_path}/-/releases"
  image_url = "https://gitlab.example.com/%%{project_path}/-/badges/release.svg"
  name      = "badge-release"
}

Schema

Required

Optional

Read-Only

Import

Import is supported using the following syntax:

# GitLab project badges can be imported using an id made up of `{project_id}:{badge_id}`, e.g.
terraform import gitlab_project_badge.foo 1:3