MCP Tools Reference: developerconnect.googleapis.com

Ferramenta: fetch-repo-commit

Busca detalhes de um commit específico de um repositório Git. Para recuperar hunks de patch linha por linha na visualização FULL, transmita path_filters (por exemplo, ['**'] para todos os arquivos).

O exemplo de código abaixo mostra como usar curl para chamar a ferramenta MCP fetch-repo-commit.

Solicitação 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

Mensagem de solicitação para FetchGitRepositoryLinkCommit.

FetchGitRepositoryLinkCommitRequest

Representação JSON
{
  "name": string,
  "commitSha": string,
  "view": enum (CommitView),
  "pathFilters": [
    string
  ]
}
Campos
name

string

Obrigatório. O nome do recurso do GitRepositoryLink no formato projects/*/locations/*/connections/*/gitRepositoryLinks/*.

commitSha

string

Obrigatório. O SHA de commit ou a revisão simbólica (por exemplo, nome da ramificação, tag ou referência do Git).

view

enum (CommitView)

Opcional. O nível de detalhes do commit a ser retornado na resposta. Quando não especificado, o padrão é FULL. Na visualização FULL, os metadados de files (caminhos e status) são retornados. path_filters também precisa ser especificado para preencher os hunks de patch de linha.

pathFilters[]

string

Opcional. Padrões de caminho ou caminhos exatos para filtrar os arquivos retornados (aplicável apenas na visualização FULL). Quando path_filters é especificado, FileDiff.patch é preenchido para todos os arquivos correspondentes (use ["**"] para incluir patches para todos os arquivos alterados). Quando path_filters é omitido ou está vazio, a lista completa de FileDiff é retornada sem diferenças de patch (FileDiff.patch está vazio).

CommitView

O nível de detalhes do commit a ser retornado na resposta.

Tipos enumerados
COMMIT_VIEW_UNSPECIFIED Não especificado, o padrão é BASIC.
BASIC Visualização básica, retorna metadados de commit, mas não diferenças de arquivo.
FULL Visualização completa, retorna metadados de commit e diferenças de arquivos.

Esquema de saída

Mensagem de resposta para FetchGitRepositoryLinkCommit.

FetchGitRepositoryLinkCommitResponse

Representação JSON
{
  "commit": {
    object (SCMCommit)
  },
  "files": [
    {
      object (FileDiff)
    }
  ]
}
Campos
commit

object (SCMCommit)

Os metadados de commit.

files[]

object (FileDiff)

Lista de mudanças de arquivos e diferenças de patch. Omitido quando a visualização é BASIC. As diferenças de patch (FileDiff.patch) só são preenchidas quando path_filters é especificado na solicitação.

SCMCommit

Representação JSON
{
  "sha": string,
  "message": string,
  "author": string,
  "authorEmail": string,
  "commitTime": string,
  "url": string
}
Campos
sha

string

SHA de commit do SCM completo de 40 caracteres.

message

string

Texto da mensagem de commit.

author

string

O nome de exibição do autor.

authorEmail

string

O endereço de e-mail do autor.

commitTime

string (Timestamp format)

Carimbo de data/hora em que o commit foi criado.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

url

string

O link do URL HTML do provedor de SCM para este commit.

Carimbo de data/hora

Representação JSON
{
  "seconds": string,
  "nanos": integer
}
Campos
seconds

string (int64 format)

Representa os segundos do horário UTC desde a época Unix 1970-01-01T00:00:00Z. Precisa estar entre -62135596800 e 253402300799, inclusive (o que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z).

nanos

integer

Frações não negativas de um segundo com resolução de nanossegundos. Esse campo é a parte de nanossegundos da duração, não uma alternativa aos segundos. Os valores de segundos negativos com frações ainda precisam ter valores em nanossegundos não negativos que representam períodos posteriores. O valor precisa ser de 0 a 999.999.999.

FileDiff

Representação JSON
{
  "path": string,
  "status": string,
  "patch": string
}
Campos
path

string

Caminho relativo para o arquivo no repositório.

status

string

Status da mudança: "ADDED", "MODIFIED", "REMOVED", "RENAMED".

patch

string

Hunk de patch de diff unificado padrão para o arquivo. Preenchido apenas quando path_filters é especificado na solicitação. Caso contrário, fica vazio.

Anotações de ferramentas

As anotações de ferramentas são enviadas aos clientes do MCP para descrever o risco básico de uma determinada ferramenta. A maioria dos clientes trata essas dicas como não confiáveis, mas elas podem ser usadas para decidir quando um pedido de confirmação pode ser enviado a um usuário.

Além da string de título, as seguintes dicas booleanas são definidas:

  • readOnlyHint: se for verdadeiro, a ferramenta não modifica o ambiente. Padrão: false.
  • destructiveHint: se for verdadeiro, a ferramenta poderá realizar ações destrutivas. Se for falso, a ferramenta só poderá realizar ações aditivas. Padrão: verdadeiro.
  • idempotentHint: se for verdadeiro, chamar a ferramenta repetidamente com os mesmos argumentos não terá efeito adicional no ambiente. Padrão: false.
  • openWorldHint: se for verdadeiro, a ferramenta poderá interagir com um "mundo aberto" de entidades externas. Se for falso, a ferramenta só poderá interagir com entidades internas. Por exemplo, uma ferramenta de pesquisa na Web seria de mundo aberto, enquanto uma ferramenta de memória não seria.

Dica destrutiva: ❌ | Dica idempotente: ✅ | Dica somente leitura: ✅ | Dica de jogos de mundo aberto: ❌