MCP Tools Reference: dataform.googleapis.com

Outil : update_repository

Mettez à jour les propriétés d'un dépôt Dataform existant, telles que ses paramètres Git distant, les remplacements de compilation de l'espace de travail ou le compte de service par défaut.

Prérequis : Utilisez l'outil get_repository pour lire l'état actuel du dépôt avant de le mettre à jour.

Si la valeur du paramètre update_mask est omise, tous les champs modifiables sont remplacés par les valeurs fournies dans la valeur du paramètre repository. Pour modifier uniquement certains champs sans effacer les autres, listez-les dans update_mask.

La valeur du paramètre repository.name doit être au format projects/{project_id}/locations/{location}/repositories/{repository}.

L'exemple de code suivant montre comment utiliser curl pour appeler l'outil MCP update_repository.

Requête curl
curl --location 'https://dataform.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "update_repository",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Schéma d'entrée

Message de requête UpdateRepository.

UpdateRepositoryRequest

Représentation JSON
{
  "updateMask": string,
  "repository": {
    object (Repository)
  }
}
Champs
updateMask

string (FieldMask format)

Facultatif. Spécifie les champs à mettre à jour dans le dépôt. Si ce paramètre n'est pas défini, tous les champs seront mis à jour.

Il s'agit d'une liste de noms de champs complets séparés par une virgule. Exemple : "user.displayName,photo".

repository

object (Repository)

Obligatoire. Dépôt à mettre à jour.

FieldMask

Représentation JSON
{
  "paths": [
    string
  ]
}
Champs
paths[]

string

Ensemble des chemins du masque de champ.

Dépôt

Représentation JSON
{
  "name": string,
  "createTime": string,
  "displayName": string,
  "gitRemoteSettings": {
    object (GitRemoteSettings)
  },
  "npmrcEnvironmentVariablesSecretVersion": string,
  "workspaceCompilationOverrides": {
    object (WorkspaceCompilationOverrides)
  },
  "labels": {
    string: string,
    ...
  },
  "setAuthenticatedUserAdmin": boolean,
  "serviceAccount": string,
  "kmsKeyName": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },

  // Union field _containing_folder can be only one of the following:
  "containingFolder": string
  // End of list of possible types for union field _containing_folder.

  // Union field _team_folder_name can be only one of the following:
  "teamFolderName": string
  // End of list of possible types for union field _team_folder_name.

  // Union field _internal_metadata can be only one of the following:
  "internalMetadata": string
  // End of list of possible types for union field _internal_metadata.
}
Champs
name

string

Identifiant. Nom du dépôt.

createTime

string (Timestamp format)

Uniquement en sortie. Code temporel de la création du dépôt.

Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

displayName

string

Facultatif. Nom convivial du dépôt.

gitRemoteSettings

object (GitRemoteSettings)

Facultatif. Si cette option est activée, ce dépôt est associé à un dépôt Git distant.

npmrcEnvironmentVariablesSecretVersion

string

Facultatif. Nom de la version du secret Secret Manager à utiliser pour interpoler les variables dans le fichier .npmrc pour les opérations d'installation de packages. Il doit respecter le format projects/*/secrets/*/versions/*. Le fichier lui-même doit être au format JSON.

workspaceCompilationOverrides

object (WorkspaceCompilationOverrides)

Facultatif. Si cette option est définie, les champs de workspace_compilation_overrides remplacent les paramètres de compilation par défaut spécifiés dans dataform.json lors de la création de résultats de compilation à l'échelle de l'espace de travail. Pour en savoir plus, consultez la documentation sur WorkspaceCompilationOverrides.

labels

map (key: string, value: string)

Facultatif. Libellés utilisateur du dépôt

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

setAuthenticatedUserAdmin

boolean

Facultatif. Uniquement en entrée. Si la valeur est définie sur "true", le rôle roles/dataform.admin sera attribué à l'utilisateur authentifié dans le dépôt créé. Pour modifier l'accès au dépôt créé ultérieurement, appliquez setIamPolicy à partir de https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories.

serviceAccount

string

Facultatif. Compte de service sous lequel exécuter les appels de workflow.

kmsKeyName

string

Facultatif. Référence à une clé de chiffrement KMS. Si elle est fournie, elle sera utilisée pour chiffrer les données utilisateur dans le dépôt et toutes les ressources enfants. Il n'est pas possible d'ajouter ni de modifier la clé de chiffrement une fois le dépôt créé. Exemple : projects/{kms_project}/locations/{location}/keyRings/{key_location}/cryptoKeys/{key}

dataEncryptionState

object (DataEncryptionState)

Uniquement en sortie. État de chiffrement des données d'un dépôt Git si ce dépôt est protégé par une clé KMS.

Champ d'union _containing_folder.

_containing_folder ne peut être qu'un des éléments suivants :

containingFolder

string

Facultatif. Nom du dossier contenant le dépôt. Ce champ est immuable et peut être modifié à l'aide d'une opération MoveRepository. Format : projects/*/locations/*/folders/*. ou projects/*/locations/*/teamFolders/*.

Champ d'union _team_folder_name.

_team_folder_name ne peut être qu'un des éléments suivants :

teamFolderName

string

Uniquement en sortie. Nom de ressource du dossier d'équipe auquel ce dépôt est associé. Il doit être au format suivant : projects/{project}/locations/{location}/teamFolders/{teamFolder}. Si cette valeur n'est pas définie, le dépôt n'est pas associé à un dossier d'équipe.

Champ d'union _internal_metadata.

_internal_metadata ne peut être qu'un des éléments suivants :

internalMetadata

string

Uniquement en sortie. Toutes les informations de métadonnées utilisées en interne pour diffuser la ressource. Par exemple : codes temporels, indicateurs, champs d'état, etc. Le format de ce champ est une chaîne JSON.

Horodatage

Représentation JSON
{
  "seconds": string,
  "nanos": integer
}
Champs
seconds

string (int64 format)

Représente les secondes de l'heure UTC à partir de l'epoch Unix 1970-01-01T00:00:00Z. La valeur doit être comprise entre -62135596800 et 253402300799 inclus (ce qui correspond à 0001-01-01T00:00:00Z et 9999-12-31T23:59:59Z).

nanos

integer

Fractions de secondes non négatives avec une précision de l'ordre de la nanoseconde. Ce champ correspond à la partie en nanosecondes de la durée, et non à une alternative aux secondes. Les valeurs de secondes négatives avec des fractions doivent toujours comporter des valeurs de nanosecondes non négatives comptabilisées dans le temps. La valeur doit être comprise entre 0 et 999 999 999 inclus.

GitRemoteSettings

Représentation JSON
{
  "url": string,
  "defaultBranch": string,
  "effectiveDefaultBranch": string,
  "authenticationTokenSecretVersion": string,
  "sshAuthenticationConfig": {
    object (SshAuthenticationConfig)
  },
  "tokenStatus": enum (TokenStatus),

  // Union field _git_repository_link can be only one of the following:
  "gitRepositoryLink": string
  // End of list of possible types for union field _git_repository_link.
}
Champs
url

string

Obligatoire. URL du dépôt Git distant.

defaultBranch

string

Facultatif. Nom de la branche par défaut du dépôt Git distant. Si ce paramètre n'est pas défini, main est utilisé.

effectiveDefaultBranch

string

Uniquement en sortie. Nom de la branche par défaut effective du dépôt distant Git. Il s'agit du nom de la branche par défaut du dépôt Git distant, s'il est défini. Sinon, il s'agit de main.

authenticationTokenSecretVersion

string

Facultatif. Nom de la version du secret Secret Manager à utiliser comme jeton d'authentification pour les opérations Git. Il doit respecter le format projects/*/secrets/*/versions/*.

sshAuthenticationConfig

object (SshAuthenticationConfig)

Facultatif. Champs d'authentification pour les URI distants utilisant le protocole SSH.

tokenStatus
(deprecated)

enum (TokenStatus)

Uniquement en sortie. Obsolète : le champ ne contient aucune information sur l'état du jeton. Utilisez plutôt https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus.

Champ d'union _git_repository_link.

_git_repository_link ne peut être qu'un des éléments suivants :

gitRepositoryLink

string

Facultatif. Nom de ressource pour le GitRepositoryLink utilisé pour les identifiants machine. Doit être au format projects/*/locations/*/connections/*/gitRepositoryLinks/*

SshAuthenticationConfig

Représentation JSON
{
  "userPrivateKeySecretVersion": string,
  "hostPublicKey": string
}
Champs
userPrivateKeySecretVersion

string

Obligatoire. Nom de la version du secret Secret Manager à utiliser comme clé privée SSH pour les opérations Git. Il doit respecter le format projects/*/secrets/*/versions/*.

hostPublicKey

string

Obligatoire. Contenu d'une clé SSH publique permettant de vérifier l'identité d'un hôte Git distant.

WorkspaceCompilationOverrides

Représentation JSON
{
  "defaultDatabase": string,
  "schemaSuffix": string,
  "tablePrefix": string
}
Champs
defaultDatabase

string

Facultatif. Base de données par défaut (ID du projet Google Cloud).

schemaSuffix

string

Facultatif. Suffixe à ajouter à tous les noms de schémas (ID d'ensemble de données BigQuery).

tablePrefix

string

Facultatif. Préfixe à ajouter à tous les noms de tables.

LabelsEntry

Représentation JSON
{
  "key": string,
  "value": string
}
Champs
key

string

value

string

DataEncryptionState

Représentation JSON
{
  "kmsKeyVersionName": string
}
Champs
kmsKeyVersionName

string

Obligatoire. Nom de la version de clé KMS avec laquelle les données d'une ressource sont chiffrées.

TokenStatus

État du jeton d'authentification.

Enums
TOKEN_STATUS_UNSPECIFIED Valeur par défaut. Cette valeur n'est pas utilisée.
NOT_FOUND Le jeton est introuvable dans Secret Manager (ou le compte de service Dataform n'est pas autorisé à y accéder).
INVALID Le jeton n'a pas pu être utilisé pour l'authentification auprès du dépôt Git distant.
VALID Le jeton a été utilisé avec succès pour l'authentification auprès du dépôt Git distant.

Schéma de sortie

Représente un dépôt Git Dataform.

Dépôt

Représentation JSON
{
  "name": string,
  "createTime": string,
  "displayName": string,
  "gitRemoteSettings": {
    object (GitRemoteSettings)
  },
  "npmrcEnvironmentVariablesSecretVersion": string,
  "workspaceCompilationOverrides": {
    object (WorkspaceCompilationOverrides)
  },
  "labels": {
    string: string,
    ...
  },
  "setAuthenticatedUserAdmin": boolean,
  "serviceAccount": string,
  "kmsKeyName": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },

  // Union field _containing_folder can be only one of the following:
  "containingFolder": string
  // End of list of possible types for union field _containing_folder.

  // Union field _team_folder_name can be only one of the following:
  "teamFolderName": string
  // End of list of possible types for union field _team_folder_name.

  // Union field _internal_metadata can be only one of the following:
  "internalMetadata": string
  // End of list of possible types for union field _internal_metadata.
}
Champs
name

string

Identifiant. Nom du dépôt.

createTime

string (Timestamp format)

Uniquement en sortie. Code temporel de la création du dépôt.

Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

displayName

string

Facultatif. Nom convivial du dépôt.

gitRemoteSettings

object (GitRemoteSettings)

Facultatif. Si cette option est activée, ce dépôt est associé à un dépôt Git distant.

npmrcEnvironmentVariablesSecretVersion

string

Facultatif. Nom de la version du secret Secret Manager à utiliser pour interpoler les variables dans le fichier .npmrc pour les opérations d'installation de packages. Il doit respecter le format projects/*/secrets/*/versions/*. Le fichier lui-même doit être au format JSON.

workspaceCompilationOverrides

object (WorkspaceCompilationOverrides)

Facultatif. Si cette option est définie, les champs de workspace_compilation_overrides remplacent les paramètres de compilation par défaut spécifiés dans dataform.json lors de la création de résultats de compilation à l'échelle de l'espace de travail. Pour en savoir plus, consultez la documentation sur WorkspaceCompilationOverrides.

labels

map (key: string, value: string)

Facultatif. Libellés utilisateur du dépôt

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

setAuthenticatedUserAdmin

boolean

Facultatif. Uniquement en entrée. Si la valeur est définie sur "true", le rôle roles/dataform.admin sera attribué à l'utilisateur authentifié dans le dépôt créé. Pour modifier l'accès au dépôt créé ultérieurement, appliquez setIamPolicy à partir de https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories.

serviceAccount

string

Facultatif. Compte de service sous lequel exécuter les appels de workflow.

kmsKeyName

string

Facultatif. Référence à une clé de chiffrement KMS. Si elle est fournie, elle sera utilisée pour chiffrer les données utilisateur dans le dépôt et toutes les ressources enfants. Il n'est pas possible d'ajouter ni de modifier la clé de chiffrement une fois le dépôt créé. Exemple : projects/{kms_project}/locations/{location}/keyRings/{key_location}/cryptoKeys/{key}

dataEncryptionState

object (DataEncryptionState)

Uniquement en sortie. État de chiffrement des données d'un dépôt Git si ce dépôt est protégé par une clé KMS.

Champ d'union _containing_folder.

_containing_folder ne peut être qu'un des éléments suivants :

containingFolder

string

Facultatif. Nom du dossier contenant le dépôt. Ce champ est immuable et peut être modifié à l'aide d'une opération MoveRepository. Format : projects/*/locations/*/folders/*. ou projects/*/locations/*/teamFolders/*.

Champ d'union _team_folder_name.

_team_folder_name ne peut être qu'un des éléments suivants :

teamFolderName

string

Uniquement en sortie. Nom de ressource du dossier d'équipe auquel ce dépôt est associé. Il doit être au format suivant : projects/{project}/locations/{location}/teamFolders/{teamFolder}. Si cette valeur n'est pas définie, le dépôt n'est pas associé à un dossier d'équipe.

Champ d'union _internal_metadata.

_internal_metadata ne peut être qu'un des éléments suivants :

internalMetadata

string

Uniquement en sortie. Toutes les informations de métadonnées utilisées en interne pour diffuser la ressource. Par exemple : codes temporels, indicateurs, champs d'état, etc. Le format de ce champ est une chaîne JSON.

Horodatage

Représentation JSON
{
  "seconds": string,
  "nanos": integer
}
Champs
seconds

string (int64 format)

Représente les secondes de l'heure UTC à partir de l'epoch Unix 1970-01-01T00:00:00Z. La valeur doit être comprise entre -62135596800 et 253402300799 inclus (ce qui correspond à 0001-01-01T00:00:00Z et 9999-12-31T23:59:59Z).

nanos

integer

Fractions de secondes non négatives avec une précision de l'ordre de la nanoseconde. Ce champ correspond à la partie en nanosecondes de la durée, et non à une alternative aux secondes. Les valeurs de secondes négatives avec des fractions doivent toujours comporter des valeurs de nanosecondes non négatives comptabilisées dans le temps. La valeur doit être comprise entre 0 et 999 999 999 inclus.

GitRemoteSettings

Représentation JSON
{
  "url": string,
  "defaultBranch": string,
  "effectiveDefaultBranch": string,
  "authenticationTokenSecretVersion": string,
  "sshAuthenticationConfig": {
    object (SshAuthenticationConfig)
  },
  "tokenStatus": enum (TokenStatus),

  // Union field _git_repository_link can be only one of the following:
  "gitRepositoryLink": string
  // End of list of possible types for union field _git_repository_link.
}
Champs
url

string

Obligatoire. URL du dépôt Git distant.

defaultBranch

string

Facultatif. Nom de la branche par défaut du dépôt Git distant. Si ce paramètre n'est pas défini, main est utilisé.

effectiveDefaultBranch

string

Uniquement en sortie. Nom de la branche par défaut effective du dépôt distant Git. Il s'agit du nom de la branche par défaut du dépôt Git distant, s'il est défini. Sinon, il s'agit de main.

authenticationTokenSecretVersion

string

Facultatif. Nom de la version du secret Secret Manager à utiliser comme jeton d'authentification pour les opérations Git. Il doit respecter le format projects/*/secrets/*/versions/*.

sshAuthenticationConfig

object (SshAuthenticationConfig)

Facultatif. Champs d'authentification pour les URI distants utilisant le protocole SSH.

tokenStatus
(deprecated)

enum (TokenStatus)

Uniquement en sortie. Obsolète : le champ ne contient aucune information sur l'état du jeton. Utilisez plutôt https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus.

Champ d'union _git_repository_link.

_git_repository_link ne peut être qu'un des éléments suivants :

gitRepositoryLink

string

Facultatif. Nom de ressource pour le GitRepositoryLink utilisé pour les identifiants machine. Doit être au format projects/*/locations/*/connections/*/gitRepositoryLinks/*

SshAuthenticationConfig

Représentation JSON
{
  "userPrivateKeySecretVersion": string,
  "hostPublicKey": string
}
Champs
userPrivateKeySecretVersion

string

Obligatoire. Nom de la version du secret Secret Manager à utiliser comme clé privée SSH pour les opérations Git. Il doit respecter le format projects/*/secrets/*/versions/*.

hostPublicKey

string

Obligatoire. Contenu d'une clé SSH publique permettant de vérifier l'identité d'un hôte Git distant.

WorkspaceCompilationOverrides

Représentation JSON
{
  "defaultDatabase": string,
  "schemaSuffix": string,
  "tablePrefix": string
}
Champs
defaultDatabase

string

Facultatif. Base de données par défaut (ID du projet Google Cloud).

schemaSuffix

string

Facultatif. Suffixe à ajouter à tous les noms de schémas (ID d'ensemble de données BigQuery).

tablePrefix

string

Facultatif. Préfixe à ajouter à tous les noms de tables.

LabelsEntry

Représentation JSON
{
  "key": string,
  "value": string
}
Champs
key

string

value

string

DataEncryptionState

Représentation JSON
{
  "kmsKeyVersionName": string
}
Champs
kmsKeyVersionName

string

Obligatoire. Nom de la version de clé KMS avec laquelle les données d'une ressource sont chiffrées.

TokenStatus

État du jeton d'authentification.

Enums
TOKEN_STATUS_UNSPECIFIED Valeur par défaut. Cette valeur n'est pas utilisée.
NOT_FOUND Le jeton est introuvable dans Secret Manager (ou le compte de service Dataform n'est pas autorisé à y accéder).
INVALID Le jeton n'a pas pu être utilisé pour l'authentification auprès du dépôt Git distant.
VALID Le jeton a été utilisé avec succès pour l'authentification auprès du dépôt Git distant.

Annotations d'outils

Les annotations d'outil sont envoyées aux clients MCP pour décrire le risque de base d'un outil donné. La plupart des clients traitent ces indices comme non fiables, mais ils peuvent être utilisés pour déterminer quand un message de confirmation peut être envoyé à un utilisateur.

En plus de la chaîne de titre, les indications booléennes suivantes sont définies comme suit :

  • readOnlyHint : si la valeur est "true", l'outil ne modifie pas son environnement. Valeur par défaut : "false".
  • destructiveHint : si la valeur est "true", l'outil peut effectuer des actions destructrices. Si la valeur est "false", l'outil ne peut effectuer que des actions d'ajout. Valeur par défaut : "true".
  • idempotentHint : si la valeur est "true", appeler l'outil à plusieurs reprises avec les mêmes arguments n'aura aucun effet supplémentaire sur son environnement. Valeur par défaut : "false".
  • openWorldHint : si la valeur est "true", l'outil peut interagir avec un "monde ouvert" d'entités externes. Si la valeur est "false", l'outil ne peut interagir qu'avec des entités internes. Par exemple, un outil de recherche Web serait en monde ouvert, tandis qu'un outil de mémoire ne le serait pas.

Indication destructive : ❌ | Indication d'idempotence : ❌ | Indication de lecture seule : ❌ | Indication de monde ouvert : ❌