MCP Tools Reference: developerconnect.googleapis.com

Outil : fetch-repo-commit

Récupérez les détails d'un commit spécifique à partir d'un dépôt Git. Pour récupérer des fragments de correctif ligne par ligne en vue FULL, transmettez path_filters (par exemple, ['**'] pour tous les fichiers).

L'exemple de code suivant montre comment utiliser curl pour appeler l'outil MCP fetch-repo-commit.

Requête 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
}'

Schéma d'entrée

Message de requête pour FetchGitRepositoryLinkCommit.

FetchGitRepositoryLinkCommitRequest

Représentation JSON
{
  "name": string,
  "commitSha": string,
  "view": enum (CommitView),
  "pathFilters": [
    string
  ]
}
Champs
name

string

Obligatoire. Nom de ressource du GitRepositoryLink au format projects/*/locations/*/connections/*/gitRepositoryLinks/*.

commitSha

string

Obligatoire. SHA du commit ou révision symbolique (par exemple, nom de la branche, tag ou référence Git).

view

enum (CommitView)

Facultatif. Niveau de détails du commit à renvoyer dans la réponse. Prend la valeur FULL par défaut s'il n'est pas spécifié. Dans la vue FULL, les métadonnées files (chemins d'accès et états) sont renvoyées. path_filters doit également être spécifié pour renseigner les fragments de correctif de ligne.

pathFilters[]

string

Facultatif. Modèles de chemin d'accès ou chemins d'accès exacts pour filtrer les fichiers renvoyés (applicable uniquement dans la vue FULL). Lorsque path_filters est spécifié, FileDiff.patch est renseigné pour tous les fichiers correspondants (utilisez ["**"] pour inclure des correctifs pour tous les fichiers modifiés). Lorsque path_filters est omis ou vide, la liste complète des FileDiff est renvoyée sans différences de correctif (FileDiff.patch est vide).

CommitView

Niveau de détails du commit à renvoyer dans la réponse.

Enums
COMMIT_VIEW_UNSPECIFIED Si aucune valeur n'est spécifiée, la valeur par défaut est BASIC.
BASIC Vue de base, renvoie les métadonnées de commit, mais pas les différences de fichiers.
FULL Vue complète, renvoie les métadonnées de commit et les différences de fichiers.

Schéma de sortie

Message de réponse pour FetchGitRepositoryLinkCommit.

FetchGitRepositoryLinkCommitResponse

Représentation JSON
{
  "commit": {
    object (SCMCommit)
  },
  "files": [
    {
      object (FileDiff)
    }
  ]
}
Champs
commit

object (SCMCommit)

Métadonnées du commit.

files[]

object (FileDiff)

Liste des modifications de fichiers et des différences de correctifs. Omis lorsque la vue est BASIC. Les différences de correctif (FileDiff.patch) ne sont renseignées que lorsque path_filters est spécifié dans la requête.

SCMCommit

Représentation JSON
{
  "sha": string,
  "message": string,
  "author": string,
  "authorEmail": string,
  "commitTime": string,
  "url": string
}
Champs
sha

string

SHA de commit SCM complet de 40 caractères.

message

string

Texte du message de commit.

author

string

Nom à afficher de l'auteur.

authorEmail

string

Adresse e-mail de l'auteur.

commitTime

string (Timestamp format)

Horodatage de la création du commit.

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

url

string

Lien URL HTML du fournisseur de gestion de code source pour ce commit.

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. Doit être compris entre -62135596800 et 253402300799 inclus (ce qui correspond à la période allant du 01/01/0001 à 00:00:00 UTC au 31/12/9999 à 23:59:59 UTC).

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

FileDiff

Représentation JSON
{
  "path": string,
  "status": string,
  "patch": string
}
Champs
path

string

Chemin relatif au fichier dans le dépôt.

status

string

État de la modification : "ADDED", "MODIFIED", "REMOVED", "RENAMED".

patch

string

Fragment de correctif diff unifié standard pour le fichier. Renseigné uniquement lorsque path_filters est spécifié dans la requête. Sinon, vide.

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 considèrent ces indications comme non fiables, mais elles peuvent être utilisées pour décider quand envoyer une invite de confirmation à un utilisateur.

En plus de la chaîne de titre, les indices booléens suivants sont définis 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", l'appel répété de l'outil 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 sur le Web serait en monde ouvert, tandis qu'un outil de mémoire ne le serait pas.

Indice "Destructive" : ❌ | Indice "Idempotent" : ✅ | Indice "Read Only" : ✅ | Indice "Open World" : ❌