GitHub MCP Server

Integra com a API do GitHub para automação e interação com repositórios.

Documentação

GitHub MCP Server

O GitHub MCP Server é um servidor Model Context Protocol (MCP) que fornece integração perfeita com as APIs do GitHub, permitindo automação avançada e capacidades de interação para desenvolvedores e ferramentas.

Casos de Uso

  • Automatizar fluxos de trabalho e processos do GitHub.
  • Extrair e analisar dados de repositórios do GitHub.
  • Construir ferramentas e aplicações com IA que interagem com o ecossistema do GitHub.

GitHub MCP Server Remoto

Install in VS Code Install in VS Code Insiders

O GitHub MCP Server remoto é hospedado pelo GitHub e fornece o método mais fácil para começar. Se o seu host MCP não suporta servidores MCP remotos, não se preocupe! Você pode usar a versão local do GitHub MCP Server em vez disso.

Pré-requisitos

  1. Um host MCP que suporte a especificação MCP mais recente e servidores remotos, como VS Code.

Instalação

Uso com VS Code

Para instalação rápida, use um dos botões de instalação com um clique acima. Depois de concluir esse fluxo, alterne para o modo Agente (localizado na entrada de texto do Copilot Chat) e o servidor iniciará. Certifique-se de estar usando VS Code 1.101 ou posterior para suporte a MCP remoto e OAuth.

Alternativamente, para configurar o VS Code manualmente, escolha o bloco JSON apropriado dos exemplos abaixo e adicione-o à configuração do seu host:

Usando OAuthUsando um PAT do GitHub
VS Code (versão 1.101 ou superior)
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github_mcp_pat",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ]
}

Uso em outros hosts MCP

Para hosts MCP que são compatíveis com MCP remoto, escolha o bloco JSON apropriado dos exemplos abaixo e adicione-o à configuração do seu host:

Usando OAuthUsando um PAT do GitHub
{
  "mcpServers": {
    "github": {
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}
{
  "mcpServers": {
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "authorization_token": "Bearer <your GitHub PAT>"
    }
  }
}

Nota: O formato exato da configuração pode variar conforme o host. Consulte a documentação do seu host para a sintaxe e o local corretos para a configuração do servidor MCP remoto.

Configuração

Consulte a Documentação do Servidor Remoto sobre como passar configurações adicionais para o GitHub MCP Server remoto.


GitHub MCP Server Local

Install with Docker in VS Code Install with Docker in VS Code Insiders

Pré-requisitos

  1. Para executar o servidor em um contêiner, você precisará ter o Docker instalado.
  2. Depois que o Docker estiver instalado, você também precisará garantir que o Docker esteja em execução. A imagem é pública; se você receber erros ao puxar, pode ter um token expirado e precisará docker logout ghcr.io.
  3. Por último, você precisará Criar um Token de Acesso Pessoal do GitHub. O servidor MCP pode usar muitas das APIs do GitHub, então habilite as permissões que você se sentir confortável em conceder às suas ferramentas de IA (para saber mais sobre tokens de acesso, consulte a documentação).

Instalação

Uso com VS Code

Para instalação rápida, use um dos botões de instalação com um clique. Depois de concluir esse fluxo, alterne para o modo Agente (localizado na entrada de texto do Copilot Chat) e o servidor iniciará.

Uso em outros hosts MCP

Adicione o seguinte bloco JSON às configurações MCP do seu IDE.

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "github_token",
        "description": "GitHub Personal Access Token",
        "password": true
      }
    ],
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/github/github-mcp-server"
        ],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
        }
      }
    }
  }
}

Opcionalmente, você pode adicionar um exemplo semelhante (ou seja, sem a chave mcp) a um arquivo chamado .vscode/mcp.json no seu espaço de trabalho. Isso permitirá que você compartilhe a configuração com outras pessoas.

{
  "inputs": [
    {
      "type": "promptString",
      "id": "github_token",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ],
  "servers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
      }
    }
  }
}

Saiba mais sobre o uso das ferramentas do servidor MCP na documentação do modo agente do VS Code.

Uso com Claude Desktop

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

Compilar a partir do código-fonte

Se você não tiver o Docker, pode usar go build para compilar o binário no diretório cmd/github-mcp-server, e usar o comando github-mcp-server stdio com a variável de ambiente GITHUB_PERSONAL_ACCESS_TOKEN definida com seu token. Para especificar o local de saída da compilação, use o sinalizador -o. Você deve configurar seu servidor para usar o executável compilado como seu command. Por exemplo:

{
  "mcp": {
    "servers": {
      "github": {
        "command": "/path/to/github-mcp-server",
        "args": ["stdio"],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
        }
      }
    }
  }
}

Configuração de Ferramentas

O GitHub MCP Server suporta habilitar ou desabilitar grupos específicos de funcionalidades por meio do sinalizador --toolsets. Isso permite que você controle quais capacidades da API do GitHub estão disponíveis para suas ferramentas de IA. Habilitar apenas os conjuntos de ferramentas que você precisa pode ajudar o LLM na escolha de ferramentas e reduzir o tamanho do contexto.

Os conjuntos de ferramentas não se limitam a Ferramentas. Recursos e Prompts MCP relevantes também são incluídos quando aplicável.

Conjuntos de Ferramentas Disponíveis

Os seguintes conjuntos de ferramentas estão disponíveis (todos ativados por padrão):

Conjunto de FerramentasDescrição
actionsFluxos de trabalho do GitHub Actions e operações de CI/CD
contextAltamente recomendado: Ferramentas que fornecem contexto sobre o usuário atual e o contexto do GitHub em que você está operando
code_securityAlertas de varredura de código e recursos de segurança
issuesFerramentas relacionadas a issues (criar, ler, atualizar, comentar)
notificationsFerramentas relacionadas a notificações do GitHub
pull_requestsOperações de pull request (criar, mesclar, revisar)
reposFerramentas relacionadas a repositórios (operações de arquivos, branches, commits)
secret_protectionFerramentas relacionadas à proteção de segredos, como GitHub Secret Scanning
usersQualquer coisa relacionada a usuários do GitHub
experimentsRecursos experimentais (não considerados estáveis)

Especificando Conjuntos de Ferramentas

Para especificar os conjuntos de ferramentas que você deseja disponibilizar ao LLM, você pode passar uma lista de permissões de duas maneiras:

  1. Usando Argumento de Linha de Comando:

    github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security
    
  2. Usando Variável de Ambiente:

    GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ./github-mcp-server
    

A variável de ambiente GITHUB_TOOLSETS tem precedência sobre o argumento de linha de comando se ambos forem fornecidos.

Usando Conjuntos de Ferramentas com Docker

Ao usar Docker, você pode passar os conjuntos de ferramentas como variáveis de ambiente:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security,experiments" \
  ghcr.io/github/github-mcp-server

O Conjunto de Ferramentas "all"

O conjunto de ferramentas especial all pode ser fornecido para habilitar todos os conjuntos de ferramentas disponíveis, independentemente de qualquer outra configuração:

./github-mcp-server --toolsets all

Ou usando a variável de ambiente:

GITHUB_TOOLSETS="all" ./github-mcp-server

Descoberta Dinâmica de Ferramentas

Nota: Este recurso está atualmente em beta e pode não estar disponível em todos os ambientes. Teste e nos avise se encontrar algum problema.

Em vez de começar com todas as ferramentas habilitadas, você pode ativar a descoberta dinâmica de conjuntos de ferramentas. Os conjuntos de ferramentas dinâmicos permitem que o host MCP liste e habilite conjuntos de ferramentas em resposta a um prompt do usuário. Isso deve ajudar a evitar situações em que o modelo fica confuso com o grande número de ferramentas disponíveis.

Usando a Descoberta Dinâmica de Ferramentas

Ao usar o binário, você pode passar o sinalizador --dynamic-toolsets.

./github-mcp-server --dynamic-toolsets

Ao usar Docker, você pode passar os conjuntos de ferramentas como variáveis de ambiente:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_DYNAMIC_TOOLSETS=1 \
  ghcr.io/github/github-mcp-server

Modo Somente Leitura

Para executar o servidor em modo somente leitura, você pode usar o sinalizador --read-only. Isso oferecerá apenas ferramentas somente leitura, impedindo qualquer modificação em repositórios, issues, pull requests, etc.

./github-mcp-server --read-only

Ao usar Docker, você pode passar o modo somente leitura como uma variável de ambiente:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_READ_ONLY=1 \
  ghcr.io/github/github-mcp-server

GitHub Enterprise Server e Enterprise Cloud com residência de dados (ghe.com)

O sinalizador --gh-host e a variável de ambiente GITHUB_HOST podem ser usados para definir o nome do host para GitHub Enterprise Server ou GitHub Enterprise Cloud com residência de dados.

  • Para GitHub Enterprise Server, prefixe o nome do host com o esquema de URI https://, pois caso contrário, ele assume como padrão http://, que o GitHub Enterprise Server não suporta.
  • Para GitHub Enterprise Cloud com residência de dados, use https://YOURSUBDOMAIN.ghe.com como nome do host.
"github": {
    "command": "docker",
    "args": [
    "run",
    "-i",
    "--rm",
    "-e",
    "GITHUB_PERSONAL_ACCESS_TOKEN",
    "-e",
    "GITHUB_HOST",
    "ghcr.io/github/github-mcp-server"
    ],
    "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}",
        "GITHUB_HOST": "https://<your GHES or ghe.com domain name>"
    }
}

i18n / Substituindo Descrições

As descrições das ferramentas podem ser substituídas criando um arquivo github-mcp-server-config.json no mesmo diretório do binário.

O arquivo deve conter um objeto JSON com os nomes das ferramentas como chaves e as novas descrições como valores. Por exemplo:

{
  "TOOL_ADD_ISSUE_COMMENT_DESCRIPTION": "an alternative description",
  "TOOL_CREATE_BRANCH_DESCRIPTION": "Create a new branch in a GitHub repository"
}

Você pode criar uma exportação das traduções atuais executando o binário com o sinalizador --export-translations.

Este sinalizador preservará quaisquer traduções/substituições que você tenha feito, enquanto adiciona quaisquer novas traduções que foram adicionadas ao binário desde a última vez que você exportou.

./github-mcp-server --export-translations
cat github-mcp-server-config.json

Você também pode usar variáveis de ambiente para substituir as descrições. Os nomes das variáveis de ambiente são os mesmos que as chaves no arquivo JSON, prefixados com GITHUB_MCP_ e todos em maiúsculas.

Por exemplo, para substituir a ferramenta TOOL_ADD_ISSUE_COMMENT_DESCRIPTION, você pode definir a seguinte variável de ambiente:

export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"

Ferramentas

Usuários

  • get_me - Obtém detalhes do usuário autenticado
    • Nenhum parâmetro necessário

Issues

  • get_issue - Obtém o conteúdo de uma issue dentro de um repositório

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • issue_number: Número da issue (número, obrigatório)
  • get_issue_comments - Obtém comentários para uma issue do GitHub

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • issue_number: Número da issue (número, obrigatório)
  • create_issue - Cria uma nova issue em um repositório do GitHub

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • title: Título da issue (string, obrigatório)
    • body: Conteúdo do corpo da issue (string, opcional)
    • assignees: Nomes de usuário para atribuir a esta issue (string[], opcional)
    • labels: Rótulos para aplicar a esta issue (string[], opcional)
  • add_issue_comment - Adiciona um comentário a uma issue

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • issue_number: Número da issue (número, obrigatório)
    • body: Texto do comentário (string, obrigatório)
  • list_issues - Lista e filtra issues do repositório

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • state: Filtrar por estado ('open', 'closed', 'all') (string, opcional)
    • labels: Rótulos para filtrar (string[], opcional)
    • sort: Ordenar por ('created', 'updated', 'comments') (string, opcional)
    • direction: Direção da ordenação ('asc', 'desc') (string, opcional)
    • since: Filtrar por data (timestamp ISO 8601) (string, opcional)
    • page: Número da página (número, opcional)
    • perPage: Resultados por página (número, opcional)
  • update_issue - Atualiza uma issue existente em um repositório do GitHub

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • issue_number: Número da issue para atualizar (número, obrigatório)
    • title: Novo título (string, opcional)
    • body: Nova descrição (string, opcional)
    • state: Novo estado ('open' ou 'closed') (string, opcional)
    • labels: Novos rótulos (string[], opcional)
    • assignees: Novos responsáveis (string[], opcional)
    • milestone: Novo número de milestone (número, opcional)
  • search_issues - Pesquisar issues e pull requests

    • query: Consulta de pesquisa (string, obrigatório)
    • sort: Campo de ordenação (string, opcional)
    • order: Ordem de ordenação (string, opcional)
    • page: Número da página (number, opcional)
    • perPage: Resultados por página (number, opcional)
  • assign_copilot_to_issue - Atribuir o Copilot a uma issue específica em um repositório do GitHub

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • issueNumber: Número da issue (number, obrigatório)
    • Nota: Esta ferramenta pode ajudar a criar um Pull Request com alterações de código-fonte para resolver a issue. Mais informações podem ser encontradas na documentação do GitHub Copilot

Pull Requests

  • get_pull_request - Obter detalhes de um pull request específico

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
  • list_pull_requests - Listar e filtrar pull requests do repositório

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • state: Estado do PR (string, opcional)
    • sort: Campo de ordenação (string, opcional)
    • direction: Direção da ordenação (string, opcional)
    • perPage: Resultados por página (number, opcional)
    • page: Número da página (number, opcional)
  • merge_pull_request - Mesclar um pull request

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
    • commit_title: Título para o commit de mesclagem (string, opcional)
    • commit_message: Mensagem para o commit de mesclagem (string, opcional)
    • merge_method: Método de mesclagem (string, opcional)
  • get_pull_request_files - Obter a lista de arquivos alterados em um pull request

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
  • get_pull_request_status - Obter o status combinado de todas as verificações de status de um pull request

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
  • update_pull_request_branch - Atualizar um branch de pull request com as alterações mais recentes do branch base

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
    • expectedHeadSha: O SHA esperado da ref HEAD do pull request (string, opcional)
  • get_pull_request_comments - Obter os comentários de revisão em um pull request

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
  • get_pull_request_reviews - Obter as revisões em um pull request

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
  • get_pull_request_diff - Obter o diff de um pull request

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
  • create_pending_pull_request_review - Criar uma revisão pendente para um pull request que pode ser enviada posteriormente

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
    • commitID: SHA do commit a ser revisado (string, opcional)
  • add_pull_request_review_comment_to_pending_review - Adicionar um comentário à revisão pendente mais recente do solicitante

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
    • path: O caminho relativo do arquivo que necessita de um comentário (string, obrigatório)
    • body: O texto do comentário de revisão (string, obrigatório)
    • subjectType: O nível em que o comentário é direcionado (string, obrigatório)
      • Enum: "FILE", "LINE"
    • line: A linha do blob no diff do pull request à qual o comentário se aplica (number, opcional)
    • side: O lado do diff para comentar (string, opcional)
      • Enum: "LEFT", "RIGHT"
    • startLine: Para comentários de várias linhas, a primeira linha do intervalo (number, opcional)
    • startSide: Para comentários de várias linhas, o lado inicial do diff (string, opcional)
      • Enum: "LEFT", "RIGHT"
  • submit_pending_pull_request_review - Enviar a revisão pendente mais recente do solicitante

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
    • event: O evento a ser executado (string, obrigatório)
      • Enum: "APPROVE", "REQUEST_CHANGES", "COMMENT"
    • body: O texto do comentário de revisão (string, opcional)
  • delete_pending_pull_request_review - Excluir a revisão pendente mais recente do solicitante

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
  • create_and_submit_pull_request_review - Criar e enviar uma revisão para um pull request sem comentários de revisão

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
    • body: Texto do comentário de revisão (string, obrigatório)
    • event: Ação de revisão ('APPROVE', 'REQUEST_CHANGES', 'COMMENT') (string, obrigatório)
    • commitID: SHA do commit a ser revisado (string, opcional)
  • create_pull_request - Criar um novo pull request

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • title: Título do PR (string, obrigatório)
    • body: Descrição do PR (string, opcional)
    • head: Branch contendo as alterações (string, obrigatório)
    • base: Branch para mesclar (string, obrigatório)
    • draft: Criar como PR de rascunho (boolean, opcional)
    • maintainer_can_modify: Permitir edições do mantenedor (boolean, opcional)
  • update_pull_request - Atualizar um pull request existente em um repositório do GitHub

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request a ser atualizado (number, obrigatório)
    • title: Novo título (string, opcional)
    • body: Nova descrição (string, opcional)
    • state: Novo estado ('open' ou 'closed') (string, opcional)
    • base: Novo nome do branch base (string, opcional)
    • maintainer_can_modify: Permitir edições do mantenedor (boolean, opcional)
  • request_copilot_review - Solicitar uma revisão do GitHub Copilot para um pull request (experimental; sujeito ao suporte da API do GitHub)

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • pullNumber: Número do pull request (number, obrigatório)
    • Nota: Atualmente, esta ferramenta só funcionará para github.com

Repositórios

  • create_or_update_file - Criar ou atualizar um único arquivo em um repositório

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • path: Caminho do arquivo (string, obrigatório)
    • message: Mensagem do commit (string, obrigatório)
    • content: Conteúdo do arquivo (string, obrigatório)
    • branch: Nome do branch (string, opcional)
    • sha: SHA do arquivo se estiver atualizando (string, opcional)
  • delete_file - Excluir um arquivo de um repositório do GitHub

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • path: Caminho do arquivo a ser excluído (string, obrigatório)
    • message: Mensagem do commit (string, obrigatório)
    • branch: Branch do qual excluir o arquivo (string, obrigatório)
  • list_branches - Listar branches em um repositório do GitHub

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • page: Número da página (number, opcional)
    • perPage: Resultados por página (number, opcional)
  • push_files - Enviar vários arquivos em um único commit

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • branch: Branch para o qual enviar (string, obrigatório)
    • files: Arquivos a serem enviados, cada um com caminho e conteúdo (array, obrigatório)
    • message: Mensagem do commit (string, obrigatório)
  • search_repositories - Pesquisar repositórios do GitHub

    • query: Consulta de pesquisa (string, obrigatório)
    • sort: Campo de ordenação (string, opcional)
    • order: Ordem de ordenação (string, opcional)
    • page: Número da página (number, opcional)
    • perPage: Resultados por página (number, opcional)
  • create_repository - Criar um novo repositório do GitHub

    • name: Nome do repositório (string, obrigatório)
    • description: Descrição do repositório (string, opcional)
    • private: Se o repositório é privado (boolean, opcional)
    • autoInit: Inicializar automaticamente com README (boolean, opcional)
  • get_file_contents - Obter o conteúdo de um arquivo ou diretório

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • path: Caminho do arquivo (string, obrigatório)
    • ref: Referência do Git (string, opcional)
  • fork_repository - Bifurcar um repositório

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • organization: Nome da organização de destino (string, opcional)
  • create_branch - Criar um novo branch

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • branch: Nome do novo branch (string, obrigatório)
    • sha: SHA para criar o branch a partir dele (string, obrigatório)
  • list_commits - Obter uma lista de commits de um branch em um repositório

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • sha: Nome do branch, tag ou SHA do commit (string, opcional)
    • path: Apenas commits que contenham este caminho de arquivo (string, opcional)
    • page: Número da página (number, opcional)
    • perPage: Resultados por página (number, opcional)
  • get_commit - Obter detalhes de um commit de um repositório

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • sha: SHA do commit, nome do branch ou nome da tag (string, obrigatório)
    • page: Número da página, para arquivos no commit (number, opcional)
    • perPage: Resultados por página, para arquivos no commit (number, opcional)
  • get_tag - Obter detalhes sobre uma tag git específica em um repositório do GitHub

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • tag: Nome da tag (string, obrigatório)
  • list_tags - Listar tags git em um repositório do GitHub

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • page: Número da página (número, opcional)
    • perPage: Resultados por página (número, opcional)
  • search_code - Pesquisar código em repositórios do GitHub

    • query: Consulta de pesquisa (string, obrigatório)
    • sort: Campo de ordenação (string, opcional)
    • order: Ordem de ordenação (string, opcional)
    • page: Número da página (número, opcional)
    • perPage: Resultados por página (número, opcional)

Usuários

  • search_users - Pesquisar usuários do GitHub
    • q: Consulta de pesquisa (string, obrigatório)
    • sort: Campo de ordenação (string, opcional)
    • order: Ordem de ordenação (string, opcional)
    • page: Número da página (número, opcional)
    • perPage: Resultados por página (número, opcional)

Ações

  • list_workflows - Listar workflows em um repositório

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • page: Número da página (número, opcional)
    • perPage: Resultados por página (número, opcional)
  • list_workflow_runs - Listar execuções de workflow para um workflow específico

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • workflow_id: ID do workflow ou nome do arquivo (string, obrigatório)
    • branch: Filtrar por nome do branch (string, opcional)
    • event: Filtrar por tipo de evento (string, opcional)
    • status: Filtrar por status da execução (string, opcional)
    • page: Número da página (número, opcional)
    • perPage: Resultados por página (número, opcional)
  • run_workflow - Acionar um workflow via evento workflow_dispatch

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • workflow_id: ID do workflow ou nome do arquivo (string, obrigatório)
    • ref: Referência Git (branch, tag ou SHA) (string, obrigatório)
    • inputs: Parâmetros de entrada para o workflow (objeto, opcional)
  • get_workflow_run - Obter detalhes de uma execução de workflow específica

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • run_id: ID da execução do workflow (número, obrigatório)
  • get_workflow_run_logs - Baixar logs de uma execução de workflow

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • run_id: ID da execução do workflow (número, obrigatório)
  • list_workflow_jobs - Listar jobs de uma execução de workflow

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • run_id: ID da execução do workflow (número, obrigatório)
    • filter: Filtrar por status do job (string, opcional)
    • page: Número da página (número, opcional)
    • perPage: Resultados por página (número, opcional)
  • get_job_logs - Baixar logs de um job específico de workflow ou obter eficientemente todos os logs de jobs com falha de uma execução de workflow

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • job_id: ID do job (número, obrigatório para logs de um único job)
    • run_id: ID da execução do workflow (número, obrigatório ao usar failed_only)
    • failed_only: Quando verdadeiro, obtém logs de todos os jobs com falha em run_id (booleano, opcional)
    • return_content: Retorna o conteúdo real do log em vez de URLs (booleano, opcional)
  • rerun_workflow_run - Reexecutar um workflow inteiro

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • run_id: ID da execução do workflow (número, obrigatório)
    • enable_debug_logging: Habilitar log de depuração para a reexecução (booleano, opcional)
  • rerun_failed_jobs - Reexecutar apenas os jobs com falha em uma execução de workflow

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • run_id: ID da execução do workflow (número, obrigatório)
    • enable_debug_logging: Habilitar log de depuração para a reexecução (booleano, opcional)
  • cancel_workflow_run - Cancelar um workflow em execução

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • run_id: ID da execução do workflow (número, obrigatório)
  • list_workflow_run_artifacts - Listar artefatos de uma execução de workflow

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • run_id: ID da execução do workflow (número, obrigatório)
    • page: Número da página (número, opcional)
    • perPage: Resultados por página (número, opcional)
  • download_workflow_run_artifact - Obter URL de download para um artefato específico

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • artifact_id: ID do artefato (número, obrigatório)
  • delete_workflow_run_logs - Excluir logs de uma execução de workflow

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • run_id: ID da execução do workflow (número, obrigatório)
  • get_workflow_run_usage - Obter métricas de uso de uma execução de workflow

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • run_id: ID da execução do workflow (número, obrigatório)

Verificação de Código

  • get_code_scanning_alert - Obter um alerta de verificação de código

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • alertNumber: Número do alerta (número, obrigatório)
  • list_code_scanning_alerts - Listar alertas de verificação de código de um repositório

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • ref: Referência Git (string, opcional)
    • state: Estado do alerta (string, opcional)
    • severity: Severidade do alerta (string, opcional)
    • tool_name: O nome da ferramenta usada para verificação de código (string, opcional)

Verificação de Segredos

  • get_secret_scanning_alert - Obter um alerta de verificação de segredos

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • alertNumber: Número do alerta (número, obrigatório)
  • list_secret_scanning_alerts - Listar alertas de verificação de segredos de um repositório

    • owner: Proprietário do repositório (string, obrigatório)
    • repo: Nome do repositório (string, obrigatório)
    • state: Estado do alerta (string, opcional)
    • secret_type: Os tipos de segredo a serem filtrados em uma lista separada por vírgulas (string, opcional)
    • resolution: O status de resolução (string, opcional)

Notificações

  • list_notifications – Listar notificações para um usuário do GitHub

    • filter: Filtro a aplicar na resposta (default, include_read_notifications, only_participating)
    • since: Mostrar apenas notificações atualizadas após o horário informado (formato ISO 8601)
    • before: Mostrar apenas notificações atualizadas antes do horário informado (formato ISO 8601)
    • owner: Proprietário do repositório opcional (string)
    • repo: Nome do repositório opcional (string)
    • page: Número da página (número, opcional)
    • perPage: Resultados por página (número, opcional)
  • get_notification_details – Obter informações detalhadas de uma notificação específica do GitHub

    • notificationID: O ID da notificação (string, obrigatório)
  • dismiss_notification – Dispensar uma notificação marcando-a como lida ou concluída

    • threadID: O ID do tópico da notificação (string, obrigatório)
    • state: O novo estado da notificação (read ou done)
  • mark_all_notifications_read – Marcar todas as notificações como lidas

    • lastReadAt: Descreve o último ponto em que as notificações foram verificadas (opcional, string RFC3339/ISO8601, padrão: agora)
    • owner: Proprietário do repositório opcional (string)
    • repo: Nome do repositório opcional (string)
  • manage_notification_subscription – Gerenciar uma assinatura de notificação (ignorar, acompanhar ou excluir) para um tópico de notificação

    • notificationID: O ID do tópico da notificação (string, obrigatório)
    • action: Ação a executar: ignore, watch ou delete (string, obrigatório)
  • manage_repository_notification_subscription – Gerenciar uma assinatura de notificação de repositório (ignorar, acompanhar ou excluir)

    • owner: O proprietário da conta do repositório (string, obrigatório)
    • repo: O nome do repositório (string, obrigatório)
    • action: Ação a executar: ignore, watch ou delete (string, obrigatório)

Recursos

Conteúdo do Repositório

  • Obter Conteúdo do Repositório Recupera o conteúdo de um repositório em um caminho específico.

    • Modelo: repo://{owner}/{repo}/contents{/path*}
    • Parâmetros:
      • owner: Proprietário do repositório (string, obrigatório)
      • repo: Nome do repositório (string, obrigatório)
      • path: Caminho do arquivo ou diretório (string, opcional)
  • Obter Conteúdo do Repositório para um Branch Específico Recupera o conteúdo de um repositório em um caminho específico para um branch informado.

    • Modelo: repo://{owner}/{repo}/refs/heads/{branch}/contents{/path*}
    • Parâmetros:
      • owner: Proprietário do repositório (string, obrigatório)
      • repo: Nome do repositório (string, obrigatório)
      • branch: Nome do branch (string, obrigatório)
      • path: Caminho do arquivo ou diretório (string, opcional)
  • Obter Conteúdo do Repositório para um Commit Específico Recupera o conteúdo de um repositório em um caminho específico para um commit informado.

    • Modelo: repo://{owner}/{repo}/sha/{sha}/contents{/path*}
    • Parâmetros:
      • owner: Proprietário do repositório (string, obrigatório)
      • repo: Nome do repositório (string, obrigatório)
      • sha: SHA do commit (string, obrigatório)
      • path: Caminho do arquivo ou diretório (string, opcional)
  • Obter Conteúdo do Repositório para uma Tag Específica Recupera o conteúdo de um repositório em um caminho específico para uma tag informada.

    • Modelo: repo://{owner}/{repo}/refs/tags/{tag}/contents{/path*}
    • Parâmetros:
      • owner: Proprietário do repositório (string, obrigatório)
      • repo: Nome do repositório (string, obrigatório)
      • tag: Nome da tag (string, obrigatório)
      • path: Caminho do arquivo ou diretório (string, opcional)
  • Obter Conteúdo do Repositório para um Pull Request Específico Recupera o conteúdo de um repositório em um caminho específico para um pull request informado.

    • Modelo: repo://{owner}/{repo}/refs/pull/{prNumber}/head/contents{/path*}
    • Parâmetros:
      • owner: Proprietário do repositório (string, obrigatório)
      • repo: Nome do repositório (string, obrigatório)
      • prNumber: Número do pull request (string, obrigatório)
      • path: Caminho do arquivo ou diretório (string, opcional)

Uso da Biblioteca

A API Go exportada deste módulo deve atualmente ser considerada instável e sujeita a mudanças que quebram a compatibilidade. No futuro, podemos oferecer estabilidade; por favor, abra uma issue se houver um caso de uso em que isso seja valioso.

Licença

Este projeto é licenciado sob os termos da licença de código aberto MIT. Consulte MIT para os termos completos.