MCP Tools Reference: dataform.googleapis.com

Strumento: get_repository

Recupera un singolo repository Dataform, incluse le impostazioni Git remote, gli override di compilazione dello spazio di lavoro e l'account di servizio predefinito.

Utilizza questo strumento per controllare il campo git_remote_settings e determinare come interagire con il repository. Se è presente il campo git_remote_settings, il repository è connesso a un host Git remoto, il che significa che devi utilizzare strumenti basati sullo spazio di lavoro per lo sviluppo di pipeline, come create_workspace o commit_workspace_changes. Se il campo non è presente, il repository è ospitato da Google. In questo caso, puoi comunque utilizzare gli spazi di lavoro per lo sviluppo della pipeline. Gli strumenti di repository diretti come commit_repository_changes non sono consigliati, a meno che tu non gestisca asset a file singolo.

Il valore parametro name deve essere nel formato projects/{project_id}/locations/{location}/repositories/{repository}.

Se non conosci il nome esatto del repository, utilizza lo strumento list_repositories per trovarlo.

Il seguente esempio di codice mostra come utilizzare curl per chiamare lo strumento MCP get_repository.

Richiesta 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": "get_repository",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Schema di input

GetRepository messaggio di richiesta.

GetRepositoryRequest

Rappresentazione JSON
{
  "name": string
}
Campi
name

string

Obbligatorio. Il nome del repository.

Schema di output

Rappresenta un repository Git Dataform.

Repository

Rappresentazione 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.
}
Campi
name

string

Identificatore. Il nome del repository.

createTime

string (Timestamp format)

Solo output. Il timestamp di creazione del repository.

Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

displayName

string

Facoltativo. Il nome intuitivo del repository.

gitRemoteSettings

object (GitRemoteSettings)

Facoltativo. Se impostato, configura questo repository in modo che sia collegato a un Git remoto.

npmrcEnvironmentVariablesSecretVersion

string

Facoltativo. Il nome della versione del secret di Secret Manager da utilizzare per interpolare le variabili nel file .npmrc per le operazioni di installazione dei pacchetti. Deve essere nel formato projects/*/secrets/*/versions/*. Il file stesso deve essere in formato JSON.

workspaceCompilationOverrides

object (WorkspaceCompilationOverrides)

Facoltativo. Se impostati, i campi di workspace_compilation_overrides sostituiscono le impostazioni di compilazione predefinite specificate in dataform.json durante la creazione di risultati di compilazione con ambito workspace. Per ulteriori informazioni, consulta la documentazione relativa a WorkspaceCompilationOverrides.

labels

map (key: string, value: string)

Facoltativo. Etichette utente del repository.

Un oggetto contenente un elenco di coppie "key": value. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

setAuthenticatedUserAdmin

boolean

Facoltativo. Solo input. Se impostata su true, all'utente autenticato verrà concesso il ruolo roles/dataform.admin nel repository creato. Per modificare l'accesso al repository creato in un secondo momento, applica setIamPolicy da https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories

serviceAccount

string

Facoltativo. Il account di servizio con cui eseguire le chiamate del flusso di lavoro.

kmsKeyName

string

Facoltativo. Il riferimento a una chiave di crittografia KMS. Se fornita, verrà utilizzata per criptare i dati utente nel repository e in tutte le risorse secondarie. Non è possibile aggiungere o aggiornare la chiave di crittografia dopo la creazione del repository. Esempio: projects/{kms_project}/locations/{location}/keyRings/{key_location}/cryptoKeys/{key}

dataEncryptionState

object (DataEncryptionState)

Solo output. Lo stato di crittografia dei dati di un repository Git se questo repository è protetto da una chiave KMS.

Campo unione _containing_folder.

_containing_folder può essere solo uno dei seguenti tipi:

containingFolder

string

Facoltativo. Il nome della cartella contenente il repository. Il campo è immutabile e può essere modificato tramite un'operazione MoveRepository. Formato: projects/*/locations/*/folders/*. o projects/*/locations/*/teamFolders/*.

Campo unione _team_folder_name.

_team_folder_name può essere solo uno dei seguenti tipi:

teamFolderName

string

Solo output. Il nome della risorsa del TeamFolder a cui è associato questo repository. Deve avere il seguente formato: projects/{project}/locations/{location}/teamFolders/{teamFolder}. Se non è impostato, il repository non è associato a una cartella del team.

Campo unione _internal_metadata.

_internal_metadata può essere solo uno dei seguenti tipi:

internalMetadata

string

Solo output. Tutte le informazioni sui metadati utilizzate internamente per pubblicare la risorsa. Ad esempio, timestamp, flag, campi di stato e così via. Il formato di questo campo è una stringa JSON.

Timestamp

Rappresentazione JSON
{
  "seconds": string,
  "nanos": integer
}
Campi
seconds

string (int64 format)

Rappresenta i secondi di tempo UTC dall'epoca di Unix 1970-01-01T00:00:00Z. Deve essere compreso tra -62135596800 e 253402300799 inclusi (corrispondenti a 0001-01-01T00:00:00Z e 9999-12-31T23:59:59Z).

nanos

integer

Frazioni di secondo non negative con risoluzione in nanosecondi. Questo campo è la parte in nanosecondi della durata, non un'alternativa ai secondi. I valori negativi dei secondi con frazioni devono comunque avere valori di nanosecondi non negativi che vengono conteggiati in avanti nel tempo. Deve essere compreso tra 0 e 999.999.999 inclusi.

GitRemoteSettings

Rappresentazione 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.
}
Campi
url

string

Obbligatorio. L'URL del repository Git remoto.

defaultBranch

string

Facoltativo. Il nome del ramo predefinito del repository Git remoto. Se non viene impostato, verrà utilizzato main.

effectiveDefaultBranch

string

Solo output. Il nome del ramo predefinito effettivo del repository Git remoto. Se impostato, questo è il nome del branch predefinito del Git remoto, altrimenti è main.

authenticationTokenSecretVersion

string

Facoltativo. Il nome della versione del secret di Secret Manager da utilizzare come token di autenticazione per le operazioni Git. Deve essere nel formato projects/*/secrets/*/versions/*.

sshAuthenticationConfig

object (SshAuthenticationConfig)

Facoltativo. Campi di autenticazione per URI remoti che utilizzano il protocollo SSH.

tokenStatus
(deprecated)

enum (TokenStatus)

Solo output. Obsoleto: il campo non contiene informazioni sullo stato del token. Utilizza invece https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus

Campo unione _git_repository_link.

_git_repository_link può essere solo uno dei seguenti tipi:

gitRepositoryLink

string

Facoltativo. Nome della risorsa per GitRepositoryLink utilizzato per le credenziali della macchina. Deve essere nel formato projects/*/locations/*/connections/*/gitRepositoryLinks/*

SshAuthenticationConfig

Rappresentazione JSON
{
  "userPrivateKeySecretVersion": string,
  "hostPublicKey": string
}
Campi
userPrivateKeySecretVersion

string

Obbligatorio. Il nome della versione del secret Secret Manager da utilizzare come chiave privata SSH per le operazioni Git. Deve essere nel formato projects/*/secrets/*/versions/*.

hostPublicKey

string

Obbligatorio. Contenuto di una chiave SSH pubblica per verificare l'identità di un host Git remoto.

WorkspaceCompilationOverrides

Rappresentazione JSON
{
  "defaultDatabase": string,
  "schemaSuffix": string,
  "tablePrefix": string
}
Campi
defaultDatabase

string

Facoltativo. Il database predefinito (ID progetto Google Cloud).

schemaSuffix

string

Facoltativo. Il suffisso da aggiungere a tutti i nomi degli schemi (ID set di dati BigQuery).

tablePrefix

string

Facoltativo. Il prefisso da aggiungere all'inizio di tutti i nomi delle tabelle.

LabelsEntry

Rappresentazione JSON
{
  "key": string,
  "value": string
}
Campi
key

string

value

string

DataEncryptionState

Rappresentazione JSON
{
  "kmsKeyVersionName": string
}
Campi
kmsKeyVersionName

string

Obbligatorio. Il nome della versione della chiave KMS con cui vengono criptati i dati di una risorsa.

TokenStatus

Lo stato del token di autenticazione.

Enum
TOKEN_STATUS_UNSPECIFIED Valore predefinito. Questo valore non viene utilizzato.
NOT_FOUND Il token non è stato trovato in Secret Manager (o l'account di servizio Dataform non disponeva dell'autorizzazione per accedervi).
INVALID Il token non può essere utilizzato per l'autenticazione rispetto al repository Git remoto.
VALID Il token è stato utilizzato correttamente per l'autenticazione con il repository Git remoto.

Annotazioni dello strumento

Le annotazioni dello strumento vengono inviate ai client MCP per descrivere il rischio di base di un determinato strumento. La maggior parte dei client considera questi suggerimenti non attendibili, ma possono essere utilizzati per decidere quando inviare a un utente una richiesta di conferma.

Oltre alla stringa del titolo, sono definiti i seguenti suggerimenti booleani:

  • readOnlyHint: se è true, lo strumento non modifica il suo ambiente. Valore predefinito: false.
  • destructiveHint: se è true, lo strumento può eseguire azioni distruttive. Se il valore è false, lo strumento può eseguire solo azioni additive. Valore predefinito: true.
  • idempotentHint: se è true, chiamare ripetutamente lo strumento con gli stessi argomenti non avrà alcun effetto aggiuntivo sul suo ambiente. Valore predefinito: false.
  • openWorldHint: se è true, lo strumento può interagire con un "open world" di entità esterne. Se è false, lo strumento può interagire solo con le entità interne. Ad esempio, uno strumento di ricerca web sarebbe open world, mentre uno strumento di memoria no.

Suggerimento distruttivo: ❌ | Suggerimento idempotente: ✅ | Suggerimento di sola lettura: ✅ | Suggerimento open world: ❌