MCP Tools Reference: developerconnect.googleapis.com

Strumento: fetch-repo-commit

Recuperare i dettagli di un commit specifico da un repository Git. Per recuperare gli hunk di patch riga per riga nella visualizzazione COMPLETA, passa path_filters (ad esempio, ['**'] per tutti i file).

Il seguente esempio di codice mostra come utilizzare curl per chiamare lo strumento MCP fetch-repo-commit.

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

Schema di input

Messaggio di richiesta per FetchGitRepositoryLinkCommit.

FetchGitRepositoryLinkCommitRequest

Rappresentazione JSON
{
  "name": string,
  "commitSha": string,
  "view": enum (CommitView),
  "pathFilters": [
    string
  ]
}
Campi
name

string

Obbligatorio. Il nome risorsa di GitRepositoryLink nel formato projects/*/locations/*/connections/*/gitRepositoryLinks/*.

commitSha

string

Obbligatorio. Il commit SHA o la revisione simbolica (ad esempio, nome del branch, tag o riferimento Git).

view

enum (CommitView)

Facoltativo. Il livello dei dettagli del commit da restituire nella risposta. Se non specificato, il valore predefinito è FULL. Nella visualizzazione FULL, vengono restituiti i metadati files (percorsi e stati); è necessario specificare anche path_filters per compilare i blocchi di patch di riga.

pathFilters[]

string

Facoltativo. Pattern di percorsi o percorsi esatti per filtrare i file restituiti (applicabile solo nella visualizzazione FULL). Quando viene specificato path_filters, FileDiff.patch viene compilato per tutti i file corrispondenti (utilizza ["**"] per includere le patch per tutti i file modificati). Se path_filters viene omesso o è vuoto, viene restituito l'elenco completo di FileDiff senza differenze di patch (FileDiff.patch è vuoto).

CommitView

Il livello dei dettagli del commit da restituire nella risposta.

Enum
COMMIT_VIEW_UNSPECIFIED Non specificato, il valore predefinito è BASIC.
BASIC Visualizzazione di base, restituisce i metadati del commit, ma non le differenze dei file.
FULL Visualizzazione completa, restituisce i metadati del commit e le differenze dei file.

Schema di output

Messaggio di risposta per FetchGitRepositoryLinkCommit.

FetchGitRepositoryLinkCommitResponse

Rappresentazione JSON
{
  "commit": {
    object (SCMCommit)
  },
  "files": [
    {
      object (FileDiff)
    }
  ]
}
Campi
commit

object (SCMCommit)

I metadati del commit.

files[]

object (FileDiff)

Elenco delle modifiche ai file e delle differenze delle patch. Omesso quando la visualizzazione è BASIC. Le differenze delle patch (FileDiff.patch) vengono compilate solo quando path_filters è specificato nella richiesta.

SCMCommit

Rappresentazione JSON
{
  "sha": string,
  "message": string,
  "author": string,
  "authorEmail": string,
  "commitTime": string,
  "url": string
}
Campi
sha

string

SHA del commit SCM completo di 40 caratteri.

message

string

Testo del messaggio di commit.

author

string

Il nome visualizzato dell'autore.

authorEmail

string

L'indirizzo email dell'autore.

commitTime

string (Timestamp format)

Timestamp della creazione del commit.

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".

url

string

Il link all'URL HTML del provider SCM per questo commit.

Timestamp

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

string (int64 format)

Rappresenta i secondi dell'ora UTC dall'epoca di Unix 1970-01-01T00:00:00Z. Deve essere compreso tra -62135596800 e 253402300799 inclusi (che corrisponde a un intervallo compreso tra 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 dei secondi negativi con frazioni devono comunque avere valori di nanosecondi non negativi che avanzano nel tempo. Deve essere compreso tra 0 e 999.999.999 inclusi.

FileDiff

Rappresentazione JSON
{
  "path": string,
  "status": string,
  "patch": string
}
Campi
path

string

Percorso relativo del file nel repository.

status

string

Stato della modifica: "ADDED", "MODIFIED", "REMOVED", "RENAMED".

patch

string

Sezione di patch diff unificata standard per il file. Compilato solo quando path_filters è specificato nella richiesta; altrimenti vuoto.

Annotazioni dello strumento

Le annotazioni degli strumenti 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 un prompt di conferma a un utente.

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

  • readOnlyHint: se true, lo strumento non modifica il suo ambiente. Valore predefinito: false.
  • destructiveHint: se true, lo strumento può eseguire azioni distruttive. Se false, lo strumento può eseguire solo azioni additive. Valore predefinito: true.
  • idempotentHint: se true, la chiamata ripetuta dello 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 entità interne. Ad esempio, uno strumento di ricerca web sarebbe open world, mentre uno strumento di memoria non lo sarebbe.

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