» google_sourcerepo_repository

A repository (or repo) is a Git repository storing versioned source content.

To get more information about Repository, see:

» Example Usage - Sourcerepo Repository Basic

resource "google_sourcerepo_repository" "my-repo" {
  name = "my/repository"

» Example Usage - Sourcerepo Repository Full

resource "google_service_account" "test-account" {
  account_id   = "my-account"
  display_name = "Test Service Account"

resource "google_pubsub_topic" "topic" {
  name     = "my-topic"

resource "google_sourcerepo_repository" "my-repo" {
  name = "my-repository"
  pubsub_configs {
      topic = google_pubsub_topic.topic.id
      message_format = "JSON"
      service_account_email = google_service_account.test-account.email

» Argument Reference

The following arguments are supported:

  • name - (Required) Resource name of the repository, of the form {{repo}}. The repo name may contain slashes. eg, name/with/slash

  • pubsub_configs - (Optional) How this repository publishes a change in the repository through Cloud Pub/Sub. Keyed by the topic names. Structure is documented below.

  • project - (Optional) The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

The pubsub_configs block supports:

  • topic - (Required) The identifier for this object. Format specified above.

  • message_format - (Required) The format of the Cloud Pub/Sub messages.

    • PROTOBUF: The message payload is a serialized protocol buffer of SourceRepoEvent.
    • JSON: The message payload is a JSON string of SourceRepoEvent.

Possible values are: * PROTOBUF * JSON

  • service_account_email - (Optional) Email address of the service account used for publishing Cloud Pub/Sub messages. This service account needs to be in the same project as the PubsubConfig. When added, the caller needs to have iam.serviceAccounts.actAs permission on this service account. If unspecified, it defaults to the compute engine default service account.

» Attributes Reference

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

  • id - an identifier for the resource with format projects/{{project}}/repos/{{name}}

  • url - URL to clone the repository from Google Cloud Source Repositories.

  • size - The disk usage of the repo, in bytes.

» Timeouts

This resource provides the following Timeouts configuration options:

  • create - Default is 4 minutes.
  • update - Default is 4 minutes.
  • delete - Default is 4 minutes.

» Import

Repository can be imported using any of these accepted formats:

$ terraform import google_sourcerepo_repository.default projects/{{project}}/repos/{{name}}
$ terraform import google_sourcerepo_repository.default {{name}}

» User Project Overrides

This resource supports User Project Overrides.