google_cloudbuildv2_repository

A repository associated to a parent connection.

To get more information about Repository, see:

Example Usage - Cloudbuildv2 Repository Ghe Doc

resource "google_secret_manager_secret" "private-key-secret" {
  secret_id = "ghe-pk-secret"

  replication {
    auto {}
  }
}

resource "google_secret_manager_secret_version" "private-key-secret-version" {
  secret = google_secret_manager_secret.private-key-secret.id
  secret_data = file("private-key.pem")
}

resource "google_secret_manager_secret" "webhook-secret-secret" {
  secret_id = "github-token-secret"

  replication {
    auto {}
  }
}

resource "google_secret_manager_secret_version" "webhook-secret-secret-version" {
  secret = google_secret_manager_secret.webhook-secret-secret.id
  secret_data = "<webhook-secret-data>"
}

data "google_iam_policy" "p4sa-secretAccessor" {
  binding {
    role = "roles/secretmanager.secretAccessor"
    // Here, 123456789 is the Google Cloud project number for the project that contains the connection.
    members = ["serviceAccount:service-123456789@gcp-sa-cloudbuild.iam.gserviceaccount.com"]
  }
}

resource "google_secret_manager_secret_iam_policy" "policy-pk" {
  secret_id = google_secret_manager_secret.private-key-secret.secret_id
  policy_data = data.google_iam_policy.p4sa-secretAccessor.policy_data
}

resource "google_secret_manager_secret_iam_policy" "policy-whs" {
  secret_id = google_secret_manager_secret.webhook-secret-secret.secret_id
  policy_data = data.google_iam_policy.p4sa-secretAccessor.policy_data
}

resource "google_cloudbuildv2_connection" "my-connection" {
  location = "us-central1"
  name = "my-terraform-ghe-connection"

  github_enterprise_config {
    host_uri = "https://ghe.com"
    private_key_secret_version = google_secret_manager_secret_version.private-key-secret-version.id
    webhook_secret_secret_version = google_secret_manager_secret_version.webhook-secret-secret-version.id
    app_id = 200
    app_slug = "gcb-app"
    app_installation_id = 300
  }

  depends_on = [
    google_secret_manager_secret_iam_policy.policy-pk,
    google_secret_manager_secret_iam_policy.policy-whs
  ]
}

resource "google_cloudbuildv2_repository" "my-repository" {
  name = "my-terraform-ghe-repo"
  location = "us-central1"
  parent_connection = google_cloudbuildv2_connection.my-connection.id
  remote_uri = "https://ghe.com/hashicorp/terraform-provider-google.git"
}

Example Usage - Cloudbuildv2 Repository Github Doc

resource "google_secret_manager_secret" "github-token-secret" {
  secret_id = "github-token-secret"

  replication {
    auto {}
  }
}

resource "google_secret_manager_secret_version" "github-token-secret-version" {
  secret = google_secret_manager_secret.github-token-secret.id
  secret_data = file("my-github-token.txt")
}

data "google_iam_policy" "p4sa-secretAccessor" {
  binding {
    role = "roles/secretmanager.secretAccessor"
    // Here, 123456789 is the Google Cloud project number for the project that contains the connection.
    members = ["serviceAccount:service-123456789@gcp-sa-cloudbuild.iam.gserviceaccount.com"]
  }
}

resource "google_secret_manager_secret_iam_policy" "policy" {
  secret_id = google_secret_manager_secret.github-token-secret.secret_id
  policy_data = data.google_iam_policy.p4sa-secretAccessor.policy_data
}

resource "google_cloudbuildv2_connection" "my-connection" {
  location = "us-central1"
  name = "my-connection"

  github_config {
    app_installation_id = 123123
    authorizer_credential {
      oauth_token_secret_version = google_secret_manager_secret_version.github-token-secret-version.id
    }
  }
}

resource "google_cloudbuildv2_repository" "my-repository" {
  location = "us-central1"
  name = "my-repo"
  parent_connection = google_cloudbuildv2_connection.my-connection.name
  remote_uri = "https://github.com/myuser/myrepo.git"
}

Argument Reference

The following arguments are supported:


Attributes Reference

In addition to the arguments listed above, the following computed attributes are exported:

Timeouts

This resource provides the following Timeouts configuration options:

Import

Repository can be imported using any of these accepted formats:

In Terraform v1.5.0 and later, use an import block to import Repository using one of the formats above. For example:

import {
  id = "projects/{{project}}/locations/{{location}}/connections/{{parent_connection}}/repositories/{{name}}"
  to = google_cloudbuildv2_repository.default
}

When using the terraform import command, Repository can be imported using one of the formats above. For example:

$ terraform import google_cloudbuildv2_repository.default projects/{{project}}/locations/{{location}}/connections/{{parent_connection}}/repositories/{{name}}
$ terraform import google_cloudbuildv2_repository.default {{project}}/{{location}}/{{parent_connection}}/{{name}}
$ terraform import google_cloudbuildv2_repository.default {{location}}/{{parent_connection}}/{{name}}

User Project Overrides

This resource supports User Project Overrides.