MCP Tools Reference: developerconnect.googleapis.com

Herramienta: fetch-repo-commit

Recupera los detalles de una confirmación específica de un repositorio de Git. Para recuperar fragmentos de parches línea por línea en la vista FULL, pasa path_filters (por ejemplo, ['**'] para todos los archivos).

En la siguiente muestra de código, se indica cómo usar curl para llamar a la herramienta de MCP fetch-repo-commit.

Solicitud de 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
}'

Esquema de entrada

Mensaje de solicitud para FetchGitRepositoryLinkCommit.

FetchGitRepositoryLinkCommitRequest

Representación JSON
{
  "name": string,
  "commitSha": string,
  "view": enum (CommitView),
  "pathFilters": [
    string
  ]
}
Campos
name

string

Obligatorio. Es el nombre del recurso de GitRepositoryLink en el formato projects/*/locations/*/connections/*/gitRepositoryLinks/*.

commitSha

string

Obligatorio. El SHA de confirmación o la revisión simbólica (por ejemplo, el nombre de la rama, la etiqueta o la referencia de Git).

view

enum (CommitView)

Es opcional. Es el nivel de detalles de confirmación que se mostrará en la respuesta. Si no se especifica, el número predeterminado es FULL. En la vista FULL, se devuelven los metadatos de files (rutas de acceso y estados); también se debe especificar path_filters para propagar los fragmentos de parches de línea.

pathFilters[]

string

Es opcional. Son patrones de ruta de acceso o rutas de acceso exactas para filtrar los archivos devueltos (solo se aplica en la vista FULL). Cuando se especifica path_filters, se propaga FileDiff.patch para todos los archivos que coinciden (usa ["**"] para incluir parches para todos los archivos modificados). Cuando se omite path_filters o está vacío, se devuelve la lista completa de FileDiff sin diferencias de parches (FileDiff.patch está vacío).

CommitView

Es el nivel de detalles de confirmación que se mostrará en la respuesta.

Enums
COMMIT_VIEW_UNSPECIFIED Sin especificar, el valor predeterminado es BASIC.
BASIC Vista básica: Muestra los metadatos de confirmación, pero no las diferencias de archivos.
FULL Vista completa, devuelve metadatos de confirmación y diferencias de archivos.

Esquema de salida

Es el mensaje de respuesta para FetchGitRepositoryLinkCommit.

FetchGitRepositoryLinkCommitResponse

Representación JSON
{
  "commit": {
    object (SCMCommit)
  },
  "files": [
    {
      object (FileDiff)
    }
  ]
}
Campos
commit

object (SCMCommit)

Son los metadatos de la confirmación.

files[]

object (FileDiff)

Lista de cambios de archivos y diferencias de parches. Se omite cuando la vista es BASIC. Las diferencias de parches (FileDiff.patch) solo se propagan cuando se especifica path_filters en la solicitud.

SCMCommit

Representación JSON
{
  "sha": string,
  "message": string,
  "author": string,
  "authorEmail": string,
  "commitTime": string,
  "url": string
}
Campos
sha

string

SHA de confirmación de SCM completo de 40 caracteres.

message

string

Es el texto del mensaje de confirmación.

author

string

Es el nombre visible del autor.

authorEmail

string

Es la dirección de correo electrónico del autor.

commitTime

string (Timestamp format)

Es la marca de tiempo de cuando se creó la confirmación.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

url

string

Es el vínculo de la URL HTML del proveedor de SCM para esta confirmación.

Marca de tiempo

Representación JSON
{
  "seconds": string,
  "nanos": integer
}
Campos
seconds

string (int64 format)

Representa los segundos del horario UTC desde el tiempo Unix 1970-01-01T00:00:00Z. Debe estar entre -62135596800 y 253402300799 inclusive (lo que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z).

nanos

integer

Fracciones no negativas de un segundo a una resolución de nanosegundos. Este campo es la parte de nanosegundos de la duración, no una alternativa a los segundos. Los valores de segundos negativos con fracciones deben tener valores nanos no negativos que se cuentan hacia adelante en el tiempo. Deben ser valores de 0 a 999,999,999 inclusive.

FileDiff

Representación JSON
{
  "path": string,
  "status": string,
  "patch": string
}
Campos
path

string

Es la ruta de acceso relativa al archivo en el repositorio.

status

string

Estado del cambio: "ADDED", "MODIFIED", "REMOVED", "RENAMED".

patch

string

Es el fragmento de parche de diferencias unificado estándar para el archivo. Solo se propaga cuando se especifica path_filters en la solicitud; de lo contrario, está vacío.

Anotaciones de herramientas

Las anotaciones de herramientas se envían a los clientes de MCP para describir el riesgo básico de una herramienta determinada. La mayoría de los clientes tratan estas sugerencias como no confiables, pero se pueden usar para decidir cuándo se puede enviar un mensaje de confirmación a un usuario.

Junto con la cadena de título, las siguientes sugerencias booleanas se definen de la siguiente manera:

  • readOnlyHint: Si es verdadero, la herramienta no modifica su entorno. Valor predeterminado: false.
  • destructiveHint: Si es verdadero, la herramienta puede realizar acciones destructivas. Si es falso, la herramienta solo puede realizar acciones aditivas. Valor predeterminado: true.
  • idempotentHint: Si es verdadero, llamar a la herramienta de forma repetida con los mismos argumentos no tendrá ningún efecto adicional en su entorno. Valor predeterminado: false.
  • openWorldHint: Si es verdadero, la herramienta puede interactuar con un "mundo abierto" de entidades externas. Si es falso, la herramienta solo puede interactuar con entidades internas. Por ejemplo, una herramienta de búsqueda web sería de mundo abierto, mientras que una herramienta de memoria no lo sería.

Sugerencia de destructivo: ❌ | Sugerencia de idempotente: ✅ | Sugerencia de solo lectura: ✅ | Sugerencia de mundo abierto: ❌