GitHub MCP Server
GitHub MCP Server напрямую подключает AI-инструменты к платформе GitHub. Это даёт AI-агентам, ассистентам и чат-ботам возможность читать репозитории и файлы кода, управлять issues и PR, анализировать код и автоматизировать рабочие процессы. Всё это — через взаимодействие на естественном языке.
Сценарии использования
-
Управление репозиториями: просматривайте и запрашивайте код, ищите файлы, анализируйте коммиты и разбирайтесь в структуре проекта в любом доступном вам репозитории.
-
Автоматизация issues и PR: создавайте, обновляйте и управляйте issues и pull request. Позвольте AI помогать с сортировкой багов, ревью изменений кода и поддержкой проектных досок.
-
CI/CD и аналитика рабочих процессов: отслеживайте запуски workflow GitHub Actions, анализируйте сбои сборки, управляйте релизами и получайте аналитику по вашему pipeline разработки.
-
Анализ кода: изучайте результаты проверок безопасности, просматривайте оповещения Dependabot, разбирайтесь в паттернах кода и получайте всестороннюю аналитику по вашей кодовой базе.
-
Командная работа: получайте доступ к обсуждениям, управляйте уведомлениями, анализируйте активность команды и оптимизируйте процессы для вашей команды.
Создан для разработчиков, которые хотят подключить свои AI-инструменты к контексту и возможностям GitHub — от простых запросов на естественном языке до сложных многошаговых агентных рабочих процессов.
Удалённый GitHub MCP Server
Удалённый GitHub MCP Server размещён на GitHub и предлагает самый простой способ начать работу. Если ваш MCP-хост не поддерживает удалённые MCP-серверы, не беспокойтесь! Вместо этого можно использовать локальную версию GitHub MCP Server.
Предварительные требования
-
Совместимый MCP-хост с поддержкой удалённых серверов (VS Code 1.101+, Claude Desktop, Cursor, Windsurf и т. д.)
-
Все применимые включённые политики
Установка в VS Code
Для быстрой установки используйте одну из кнопок установки в один клик выше. После завершения этого процесса включите режим Agent (рядом с полем ввода Copilot Chat), и сервер запустится. Убедитесь, что вы используете VS Code 1.101 или более позднюю версию для поддержки удалённого MCP и OAuth.
Либо, чтобы настроить VS Code вручную, выберите подходящий блок JSON из примеров ниже и добавьте его в конфигурацию вашего хоста:
| С использованием OAuth | С использованием GitHub PAT |
|---|---|
| VS Code (версия 1.101 или выше) | |
{
"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
}
]
}
|
Установка в других MCP-хостах
-
Copilot CLI — руководство по установке для GitHub Copilot CLI
-
GitHub Copilot в других IDE — установка для JetBrains, Visual Studio, Eclipse и Xcode с GitHub Copilot
-
Приложения Claude — руководство по установке для Claude Desktop и Claude Code CLI
-
Codex — руководство по установке для OpenAI Codex
-
Cursor — руководство по установке для Cursor IDE
-
OpenCode — руководство по установке для терминального агента OpenCode
-
Windsurf — руководство по установке для Windsurf IDE
-
Zed — руководство по установке для редактора Zed
-
Rovo Dev CLI — руководство по установке для Rovo Dev CLI
Примечание: Каждому приложению-хосту MCP необходимо настроить GitHub App или OAuth App для поддержки удалённого доступа через OAuth. Любое приложение-хост, поддерживающее удалённые MCP-серверы, должно поддерживать удалённый сервер GitHub с аутентификацией по PAT. Детали конфигурации и уровни поддержки зависят от хоста. Обязательно обратитесь к документации приложения-хоста для получения дополнительной информации.
Конфигурация
Конфигурация набора инструментов
См. Документация по удалённому серверу для получения полной информации о конфигурации удалённого сервера, наборах инструментов, заголовках и расширенном использовании. Этот файл содержит исчерпывающие инструкции и примеры по подключению, настройке и установке удалённого GitHub MCP Server в VS Code и других MCP-хостах.
Если наборы инструментов не указаны, используются наборы по умолчанию.
Режим Insiders
Попробуйте новые функции раньше! Удалённый сервер предлагает версию insiders с ранним доступом к новым функциям и экспериментальным инструментам.
| С использованием URL-пути | С использованием заголовка |
|---|---|
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/insiders"
}
}
}
|
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"X-MCP-Insiders": "true"
}
}
}
}
|
См. Документация по удалённому серверу для получения дополнительных сведений и примеров, а Функции Insiders — для полного списка доступных возможностей.
GitHub Enterprise
GitHub Enterprise Cloud с размещением данных (ghe.com)
GitHub Enterprise Cloud также может использовать удалённый сервер.
Пример для https://octocorp.ghe.com с токеном GitHub PAT:
{
...
"github-octocorp": {
"type": "http",
"url": "https://copilot-api.octocorp.ghe.com/mcp",
"headers": {
"Authorization": "Bearer ${input:github_mcp_pat}"
}
},
...
}
Примечание: При использовании OAuth с GitHub Enterprise в VS Code и GitHub Copilot вам также необходимо настроить параметры VS Code так, чтобы они указывали на ваш экземпляр GitHub Enterprise — см. Аутентификация из VS Code
GitHub Enterprise Server
GitHub Enterprise Server не поддерживает размещение удалённого сервера. Пожалуйста, обратитесь к разделам GitHub Enterprise Server и Enterprise Cloud с размещением данных (ghe.com) в конфигурации локального сервера.
Локальный GitHub MCP Server
Предварительные требования
-
Чтобы запустить сервер в контейнере, вам потребуется установленный Docker.
-
После установки Docker также убедитесь, что Docker запущен. Образ Docker доступен по адресу
ghcr.io/github/github-mcp-server. Образ публичный; если при загрузке возникают ошибки, возможно, ваш токен истёк, и нужно выполнитьdocker logout ghcr.io. -
Аутентификация. На github.com вам не нужно ничего создавать заранее — кнопки установки в один клик выше выполняют вход через OAuth при первом использовании (браузерный сценарий; токен хранится только в памяти). Кнопки Docker публикуют фиксированный порт обратного вызова (
127.0.0.1:8085), чтобы обратный вызов входа контейнера был доступен. См. OAuth-вход для локального сервера, чтобы узнать, как это работает, о резервном варианте для headless/device-code и о подключении собственного OAuth или GitHub App (требуется для GitHub Enterprise Server иghe.com).
Предпочитаете токен? Вы по-прежнему можете аутентифицироваться с помощью GitHub Personal Access Token, установив вместо этого GITHUB_PERSONAL_ACCESS_TOKEN (он имеет приоритет над OAuth). MCP-сервер может использовать многие API GitHub, поэтому включите разрешения, которые вы готовы предоставить своим AI-инструментам (чтобы узнать больше о токенах доступа, ознакомьтесь с документацией).
Безопасная работа с PAT
Переменные окружения (рекомендуется)
Чтобы обеспечить безопасность GitHub PAT и возможность его повторного использования в разных MCP-хостах:
- Храните PAT в переменных окружения
export GITHUB_PAT=your_token_here
Или создайте файл .env:
GITHUB_PAT=your_token_here
- Защитите файл
.env
# Add to .gitignore to prevent accidental commits
echo ".env" >> .gitignore
- Указывайте токен в конфигурациях
# CLI usage
claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
# In config files (where supported)
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "$GITHUB_PAT"
}
Примечание: Поддержка переменных окружения зависит от хост-приложения и IDE. Некоторым приложениям (например, Windsurf) требуется жёстко прописанный токен в файле конфигурации.
Лучшие практики безопасности токенов
-
Минимальный набор скоупов: предоставляйте только необходимые разрешения
-
repo— операции с репозиториями -
read:packages— доступ к Docker-образам -
read:org— доступ к командам организации
-
-
Раздельные токены: используйте разные PAT для разных проектов и окружений
-
Регулярная ротация: периодически обновляйте токены
-
Никогда не коммитьте: исключите токены из системы контроля версий
-
Права доступа к файлам: ограничьте доступ к файлам конфигурации, содержащим токены
chmod 600 ~/.your-app/config.json
GitHub Enterprise Server и Enterprise Cloud с локализацией данных (ghe.com)
Флаг --gh-host и переменная окружения GITHUB_HOST позволяют задать имя хоста для GitHub Enterprise Server или GitHub Enterprise Cloud с локализацией данных.
-
Для GitHub Enterprise Server указывайте имя хоста с префиксом схемы
https://. Использование HTTPS обязательно и контролируется: хосты без HTTPS отклоняются, чтобы учётные данные никогда не передавались в открытом виде (единственное исключение — loopback-хост вродеhttp://localhostдля локальной разработки). -
Для GitHub Enterprise Cloud с локализацией данных используйте имя хоста вида
https://YOURSUBDOMAIN.ghe.com.
"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>"
}
}
Установка
Установка в GitHub Copilot для VS Code
Для быстрой установки воспользуйтесь одной из кнопок установки в один клик выше. После завершения установки включите режим Agent (переключатель расположен рядом с полем ввода Copilot Chat) — сервер запустится автоматически.
Подробнее об использовании инструментов MCP-сервера в VS Code читайте в документации режима agent.
Установка в GitHub Copilot для других IDE (JetBrains, Visual Studio, Eclipse и др.)
Добавьте один из следующих JSON-блоков в настройки MCP вашей IDE.
Вход через OAuth (токен не нужно создавать или хранить). На github.com официальный образ уже содержит учётные данные приложения, поэтому предоставлять их самостоятельно не требуется: при первом использовании запускается вход через браузер, а полученный токен хранится только в памяти. В Docker для этого требуется фиксированный порт обратного вызова, опубликованный на loopback, чтобы колбэк входа в контейнере оставался доступным:
{
"mcp": {
"servers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-p",
"127.0.0.1:8085:8085",
"-e",
"GITHUB_OAUTH_CALLBACK_PORT",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_OAUTH_CALLBACK_PORT": "8085"
}
}
}
}
}
О варианте с нативным бинарным файлом (фиксированный порт не требуется), резервном сценарии headless/device-code, GitHub Enterprise Server / ghe.com, а также о подключении собственного OAuth или GitHub App читайте в документации по OAuth-входу для локального сервера.
Для неинтерактивных развёртываний через stdio см. аутентификацию через GitHub App.
Или выполните аутентификацию с помощью Personal Access Token. В этом случае задайте GITHUB_PERSONAL_ACCESS_TOKEN (он имеет приоритет над OAuth):
{
"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}"
}
}
}
}
}
При желании можно добавить аналогичный пример (то есть без ключа mcp) в файл .vscode/mcp.json в рабочем пространстве. Это позволит использовать одну конфигурацию в других хост-приложениях, поддерживающих тот же формат.
Пример JSON-блока без ключа 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}"
}
}
}
}
Установка в других MCP-хостах
Для остальных хост-приложений MCP воспользуйтесь нашими руководствами по установке:
-
Copilot CLI — руководство по установке GitHub Copilot CLI
-
GitHub Copilot в других IDE — установка для JetBrains, Visual Studio, Eclipse и Xcode с GitHub Copilot
-
Claude Code и Claude Desktop — руководство по установке Claude Code и Claude Desktop
-
Cursor — руководство по установке Cursor IDE
-
Google Gemini CLI — руководство по установке Google Gemini CLI
-
OpenCode — руководство по установке терминального агента OpenCode
-
Windsurf — руководство по установке Windsurf IDE
-
Zed — руководство по установке редактора Zed
Полный обзор всех вариантов установки представлен в индексе руководств по установке.
Примечание: Любое хост-приложение с поддержкой локальных MCP-серверов должно получить доступ к локальному GitHub MCP-серверу. Однако конкретный процесс настройки, синтаксис и стабильность интеграции зависят от хост-приложения. Хотя многие приложения следуют формату, похожему на приведённые выше примеры, гарантировать это нельзя. Корректный синтаксис конфигурации MCP и порядок настройки уточняйте в документации вашего хост-приложения.
Сборка из исходного кода
Если Docker недоступен, соберите бинарный файл командой go build в каталоге cmd/github-mcp-server, а затем используйте команду github-mcp-server stdio с переменной окружения GITHUB_PERSONAL_ACCESS_TOKEN, установленной в значение вашего токена. Чтобы указать путь вывода сборки, используйте флаг -o. Настройте сервер так, чтобы собранный исполняемый файл указывался в качестве command. Например:
{
"mcp": {
"servers": {
"github": {
"command": "/path/to/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
}
Конфигурация инструментов
GitHub MCP Server позволяет включать или отключать отдельные группы функций с помощью флага --toolsets. Это даёт возможность управлять тем, какие возможности GitHub API доступны вашим AI-инструментам. Если включать только необходимые наборы инструментов, это помогает LLM выбирать инструменты и уменьшает размер контекста.
Наборы инструментов не ограничиваются инструментами. Соответствующие MCP Resources и Prompts также включаются, где это применимо.
Если наборы инструментов не указаны, используются наборы по умолчанию.
Ищете примеры? См. руководство по конфигурации сервера с типовыми рецептами: минимальные конфигурации, режим только для чтения и комбинирование инструментов с наборами инструментов.
Указание наборов инструментов
Чтобы указать наборы инструментов, которые должны быть доступны LLM, можно передать список разрешённых наборов двумя способами:
- С помощью аргумента командной строки:
github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security
- С помощью переменной окружения:
GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ./github-mcp-server
Если указаны оба параметра, переменная окружения GITHUB_TOOLSETS имеет приоритет над аргументом командной строки.
Указание отдельных инструментов
Также можно настраивать отдельные инструменты с помощью флага --tools. Инструменты можно использовать независимо или комбинировать с наборами инструментов для более точного управления.
- С помощью аргумента командной строки:
github-mcp-server --tools get_file_contents,issue_read,create_pull_request
- С помощью переменной окружения:
GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" ./github-mcp-server
- Комбинирование с наборами инструментов (аддитивно):
github-mcp-server --toolsets repos,issues --tools get_gist
Это регистрирует все инструменты из наборов repos и issues, а также get_gist.
Важные примечания:
-
Инструменты и наборы инструментов можно использовать вместе
-
Режим только для чтения имеет приоритет: инструменты записи пропускаются, если установлен
--read-only, даже если они явно запрошены через--tools -
Имена инструментов должны совпадать точно (например,
get_file_contents, а неgetFileContents). Некорректные имена инструментов приведут к сбою сервера при запуске с сообщением об ошибке -
При переименовании инструментов старые имена сохраняются как псевдонимы для обратной совместимости. Подробнее см. Переименование инструментов.
Использование наборов инструментов с Docker
При использовании Docker можно передавать наборы инструментов как переменные окружения:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" \
ghcr.io/github/github-mcp-server
Использование инструментов с Docker
При использовании Docker можно передавать отдельные инструменты как переменные окружения. Также можно комбинировать инструменты с наборами инструментов:
# Tools only
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" \
ghcr.io/github/github-mcp-server
# Tools combined with toolsets (additive)
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_TOOLSETS="repos,issues" \
-e GITHUB_TOOLS="get_gist" \
ghcr.io/github/github-mcp-server
Специальные наборы инструментов
Набор инструментов "all"
Специальный набор инструментов all можно указать, чтобы включить все доступные наборы инструментов независимо от остальной конфигурации:
./github-mcp-server --toolsets all
Или с помощью переменной окружения:
GITHUB_TOOLSETS="all" ./github-mcp-server
Набор инструментов "default"
Набор инструментов по умолчанию default — это конфигурация, которая передаётся серверу, если наборы инструментов не указаны.
Конфигурация по умолчанию:
-
context
-
repos
-
issues
-
pull_requests
-
users
Чтобы сохранить конфигурацию по умолчанию и добавить дополнительные наборы инструментов:
GITHUB_TOOLSETS="default,stargazers" ./github-mcp-server
Режим Insiders
Локальный GitHub MCP Server предлагает версию insiders с ранним доступом к новым функциям и экспериментальным инструментам.
- С помощью аргумента командной строки:
./github-mcp-server --insiders
- С помощью переменной окружения:
GITHUB_INSIDERS=true ./github-mcp-server
При использовании Docker:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_INSIDERS=true \
ghcr.io/github/github-mcp-server
Доступные наборы инструментов
Доступны следующие наборы инструментов:
| Набор инструментов | Описание | |
|---|---|---|
context | Настоятельно рекомендуется: инструменты, предоставляющие контекст о текущем пользователе и контексте GitHub, в котором вы работаете | |
actions | Рабочие процессы GitHub Actions и операции CI/CD | |
code_quality | Инструменты, связанные с GitHub Code Quality | |
code_security | Инструменты, связанные с безопасностью кода, например GitHub Code Scanning | |
copilot | Инструменты, связанные с Copilot | |
copilot_issue_intents | Включаемые по желанию инструменты назначения issue в Copilot, которые передают метаданные намерения (обоснование, уверенность, предложение) | |
dependabot | Инструменты Dependabot | |
discussions | Инструменты, связанные с GitHub Discussions | |
gists | Инструменты, связанные с GitHub Gist | |
git | Инструменты, связанные с GitHub Git API, для низкоуровневых операций Git | |
governance | Инструменты управления репозиториями для работы с rulesets и пользовательскими свойствами на уровнях репозитория, организации и предприятия | |
issues | Инструменты, связанные с GitHub Issues | |
labels | Инструменты, связанные с GitHub Labels | |
notifications | Инструменты, связанные с GitHub Notifications | |
orgs | Инструменты, связанные с GitHub Organization | |
projects | Инструменты, связанные с GitHub Projects | |
pull_requests | Инструменты, связанные с GitHub Pull Request | |
repos | Инструменты, связанные с GitHub Repository | |
secret_protection | Инструменты, связанные с защитой секретов, например GitHub Secret Scanning | |
security_advisories | Инструменты, связанные с security advisories | |
stargazers | Инструменты, связанные с GitHub Stargazers | |
users | Инструменты, связанные с GitHub User |
Дополнительные наборы инструментов в удалённом GitHub MCP Server
| Набор инструментов | Описание |
|---|---|
copilot | Инструменты, связанные с Copilot (например, Copilot Coding Agent) |
copilot_spaces | Инструменты, связанные с Copilot Spaces |
github_support_docs_search | Поиск по документации для ответов на вопросы о продуктах и поддержке GitHub |
Инструменты
Actions
-
actions_get — Получение подробных сведений о ресурсах GitHub Actions (workflows, запуски workflow, задачи и артефакты)
-
Области OAuth Challenge:
repo -
method: выполняемый метод (string, обязательный) -
owner: владелец репозитория (string, обязательный) -
repo: название репозитория (string, обязательный) -
resource_id: уникальный идентификатор ресурса. Значение зависит от указанного "method", поэтому убедитесь, что передаёте корректный ID: -
Для метода 'get_workflow' укажите ID workflow или имя workflow-файла (например, ci.yaml).
-
Для методов 'get_workflow_run', 'get_workflow_run_usage' и 'get_workflow_run_logs_url' укажите ID запуска workflow.
-
Для метода 'download_workflow_run_artifact' укажите ID артефакта.
-
Для метода 'get_workflow_job' укажите ID задачи.
-
(string, обязательный)
-
actions_list — Получение списка workflow GitHub Actions в репозитории
-
Области OAuth Challenge:
repo -
method: выполняемое действие (string, обязательный) -
owner: владелец репозитория (string, обязательный) -
page: номер страницы для пагинации (по умолчанию: 1) (number, опциональный) -
perPage: количество результатов на странице (по умолчанию: 30, максимум: 100) (number, опциональный) -
repo: название репозитория (string, обязательный) -
resource_id: уникальный идентификатор ресурса. Значение зависит от указанного "method", поэтому убедитесь, что передаёте корректный ID: -
Для метода 'list_workflows' ID ресурса указывать не нужно.
-
Для метода 'list_workflow_runs' укажите ID workflow или имя workflow-файла (например, ci.yaml), либо опустите этот параметр, чтобы получить список всех запусков workflow в репозитории.
-
Для методов 'list_workflow_jobs' и 'list_workflow_run_artifacts' укажите ID запуска workflow.
-
(string, опциональный)
-
workflow_jobs_filter: фильтры для задач workflow. Используется ТОЛЬКО, когда method — 'list_workflow_jobs' (object, опциональный) -
workflow_runs_filter: фильтры для запусков workflow. Используется ТОЛЬКО, когда method — 'list_workflow_runs' (object, опциональный) -
actions_run_trigger — Запуск workflow в GitHub Actions
-
Области OAuth Challenge:
repo -
inputs: входные данные, которые принимает workflow. Используется только для метода 'run_workflow'. (object, опциональный) -
method: выполняемый метод (string, обязательный) -
owner: владелец репозитория (string, обязательный) -
ref: Git-ссылка для workflow; может быть именем ветки или тега. Требуется для метода 'run_workflow'. (string, опциональный) -
repo: название репозитория (string, обязательный) -
run_id: ID запуска workflow. Требуется для всех методов, кроме 'run_workflow'. (number, опциональный) -
workflow_id: ID workflow (числовой) или имя workflow-файла (например, main.yml, ci.yaml). Требуется для метода 'run_workflow'. (string, опциональный)
-
-
get_job_logs — Получение логов задач workflow GitHub Actions
-
Области OAuth Challenge:
repo -
failed_only: если true, возвращает логи всех задач, завершившихся с ошибкой, в запуске workflow, указанном через run_id. Требует передачи run_id. (boolean, опциональный) -
job_id: уникальный идентификатор задачи workflow. Требуется при получении логов отдельной задачи. (number, опциональный) -
owner: владелец репозитория (string, обязательный) -
repo: название репозитория (string, обязательный) -
return_content: возвращает фактическое содержимое логов вместо URL (boolean, опциональный) -
run_id: уникальный идентификатор запуска workflow. Требуется, когда failed_only имеет значение true, чтобы получить логи всех задач, завершившихся с ошибкой, в этом запуске. (number, опциональный) -
tail_lines: количество строк, возвращаемых с конца лога (number, опциональный)
-
Качество кода
-
get_code_quality_finding — Получение замечания по качеству кода
-
Области OAuth Challenge:
repo -
findingNumber: номер замечания. (number, обязательный) -
owner: владелец репозитория. (string, обязательный) -
repo: название репозитория. (string, обязательный)
-
Безопасность кода
-
get_code_scanning_alert — Получение оповещения сканирования кода
-
Области OAuth Challenge:
security_events -
alertNumber: номер оповещения. (number, обязательный) -
owner: владелец репозитория. (string, обязательный) -
repo: название репозитория. (string, обязательный)
-
-
list_code_scanning_alerts — Получение списка оповещений сканирования кода
-
Области OAuth Challenge:
security_events -
owner: владелец репозитория. (string, обязательный) -
page: номер страницы для пагинации (минимум 1) (number, опциональный) -
perPage: количество результатов на странице (минимум 1, максимум 100) (number, опциональный) -
ref: Git-ссылка, для которой нужно получить результаты. (string, опциональный) -
repo: название репозитория. (string, обязательный) -
severity: фильтр оповещений сканирования кода по уровню серьёзности (string, опциональный) -
state: фильтр оповещений сканирования кода по состоянию. По умолчанию — open (string, опциональный) -
tool_name: название инструмента, используемого для сканирования кода. (string, опциональный)
-
Контекст
-
get_me — Получение профиля текущего пользователя
- Параметры не требуются
-
get_team_members — Получение списка участников команды
-
Области OAuth Challenge:
read:org -
org: логин организации (владельца), в которой находится команда. (string, обязательный) -
team_slug: slug команды (string, обязательный)
-
-
get_teams — Получение списка команд
-
Области OAuth Challenge:
read:org -
user: имя пользователя, для которого нужно получить команды. Если не указано, используется авторизованный пользователь. (string, опциональный)
-
Copilot
-
assign_copilot_to_issue — Назначение Copilot на issue
-
Области OAuth Challenge:
repo -
base_ref: Git-ссылка (например, ветка), с которой агент начнёт работу. Если не указана, используется ветка репозитория по умолчанию (string, опциональный) -
custom_instructions: необязательные пользовательские инструкции, дополняющие описание issue и помогающие направить агента. Используйте их, чтобы передать дополнительный контекст, ограничения или указания, не отражённые в описании issue (string, опциональный) -
issue_number: номер issue (number, обязательный) -
owner: владелец репозитория (string, обязательный) -
repo: название репозитория (string, обязательный)
-
-
request_copilot_review — Запрос ревью от Copilot
-
Области OAuth Challenge:
repo -
owner: владелец репозитория (string, обязательный) -
pullNumber: номер pull request (number, обязательный) -
repo: название репозитория (string, обязательный)
-
Copilot Issue Intents
-
assign_copilot_to_issue_with_intent — Назначение Copilot на issue с указанием намерения
-
Области OAuth Challenge:
repo -
base_ref: Git-ссылка (например, ветка), с которой агент начнёт работу. Если не указана, используется ветка репозитория по умолчанию. Игнорируется, если is_suggestion имеет значение true (string, опциональный) -
confidence: степень уверенности в этом выборе. 'HIGH' — явный сигнал или прямая просьба пользователя; 'MEDIUM' — обоснованное предположение при некоторой неоднозначности; 'LOW' — догадка при ограниченных данных. (string, обязательный) -
custom_instructions: необязательные пользовательские инструкции, дополняющие описание issue и помогающие направить агента. Игнорируются, если is_suggestion имеет значение true (string, опциональный) -
is_suggestion: если true, фиксируется отложенное намерение назначить Copilot вместо немедленного запуска агента. При последующем подтверждении будет передан контекст запуска; в этом случае base_ref и custom_instructions игнорируются. (boolean, обязательный) -
issue_number: номер issue (number, обязательный) -
owner: владелец репозитория (string, обязательный) -
rationale: одно лаконичное предложение о том, что именно в issue повлияло на выбор Copilot. Укажите конкретный сигнал (например, 'Хорошо очерченная задача с чёткими критериями приёмки'). (string, обязательный) -
repo: название репозитория (string, обязательный)
-
Dependabot
-
get_dependabot_alert — Получение оповещения Dependabot
-
Области OAuth Challenge:
security_events -
alertNumber: номер оповещения. (number, обязательный) -
owner: владелец репозитория. (string, обязательный) -
repo: название репозитория. (string, обязательный)
-
-
list_dependabot_alerts — Получение списка оповещений Dependabot
-
Области OAuth Challenge:
security_events -
after: курсор для пагинации. Используйте курсор из предыдущего ответа. (string, опциональный) -
owner: владелец репозитория. (string, обязательный) -
perPage: количество результатов на странице (минимум 1, максимум 100) (number, опциональный) -
repo: название репозитория. (string, обязательный) -
severity: фильтр оповещений Dependabot по уровню серьёзности (string, опциональный) -
state: фильтр оповещений Dependabot по состоянию. По умолчанию — open (string, опциональный)
-
Discussions
-
discussion_comment_write — Управление комментариями в обсуждениях
-
Области OAuth Challenge:
repo -
body: содержимое комментария (обязательно для методов 'add', 'reply' и 'update') (string, опциональный) -
commentNodeID: Node ID комментария в обсуждении (обязателен для методов 'reply', 'update', 'delete', 'mark_answer' и 'unmark_answer'). Для 'reply' это комментарий верхнего уровня, на который даётся ответ; GitHub Discussions поддерживает только один уровень вложенности. (string, опциональный)
-
-
discussionNumber: Номер обсуждения (требуется для методов 'add' и 'reply') (number, необязательный)method: Операция записи, выполняемая над комментарием обсуждения.
Доступны следующие варианты:
-
'add' - добавляет новый комментарий верхнего уровня к обсуждению.
-
'reply' - отвечает на комментарий верхнего уровня обсуждения (GitHub Discussions поддерживают только один уровень вложенности).
-
'update' - обновляет существующий комментарий обсуждения.
-
'delete' - удаляет комментарий обсуждения.
-
'mark_answer' - отмечает комментарий обсуждения как ответ (только для Q&A).
-
'unmark_answer' - снимает отметку с комментария обсуждения как ответа (только для Q&A).
(string, обязательный)
-
owner: Владелец репозитория (требуется для методов 'add' и 'reply') (string, необязательный) -
repo: Имя репозитория (требуется для методов 'add' и 'reply') (string, необязательный) -
get_discussion - Получить обсуждение
-
Области OAuth Challenge:
repo -
discussionNumber: Номер обсуждения (number, обязательный) -
owner: Владелец репозитория (string, обязательный) -
repo: Имя репозитория (string, обязательный)
-
-
get_discussion_comments - Получить комментарии обсуждения
-
Области OAuth Challenge:
repo -
after: Курсор для пагинации. Используйте курсор из предыдущего ответа. (string, необязательный) -
discussionNumber: Номер обсуждения (number, обязательный) -
includeReplies: Если true, каждый комментарий верхнего уровня будет включать вложенные ответы (до 100 ответов на комментарий — это максимум GitHub API). По умолчанию false. (boolean, необязательный) -
owner: Владелец репозитория (string, обязательный) -
perPage: Количество результатов на странице для пагинации (мин. 1, макс. 100) (number, необязательный) -
repo: Имя репозитория (string, обязательный)
-
-
list_discussion_categories - Список категорий обсуждений
-
Области OAuth Challenge:
repo -
owner: Владелец репозитория (string, обязательный) -
repo: Имя репозитория. Если не указано, категории обсуждений будут запрошены на уровне организации. (string, необязательный)
-
-
list_discussions - Список обсуждений
-
Области OAuth Challenge:
repo -
after: Курсор для пагинации. Используйте курсор из предыдущего ответа. (string, необязательный) -
category: Необязательный фильтр по ID категории обсуждения. Если указан, будут перечислены только обсуждения с этой категорией. (string, необязательный) -
direction: Направление сортировки. (string, необязательный) -
orderBy: Сортировать обсуждения по полю. Если указано, также необходимо указать 'direction'. (string, необязательный) -
owner: Владелец репозитория (string, обязательный) -
perPage: Количество результатов на странице для пагинации (мин. 1, макс. 100) (number, необязательный) -
repo: Имя репозитория. Если не указано, обсуждения будут запрошены на уровне организации. (string, необязательный)
-
Gists
-
create_gist - Создать Gist
-
Области OAuth Challenge:
gist -
content: Содержимое для создания простого Gist с одним файлом (string, обязательный) -
description: Описание Gist (string, необязательный) -
filename: Имя файла для создания простого Gist с одним файлом (string, обязательный) -
public: Является ли Gist публичным (boolean, необязательный)
-
-
get_gist - Получить содержимое Gist
gist_id: ID Gist (string, обязательный)
-
list_gists - Список Gists
-
page: Номер страницы для пагинации (мин. 1) (number, необязательный) -
perPage: Количество результатов на странице для пагинации (мин. 1, макс. 100) (number, необязательный) -
since: Только Gists, обновлённые после этого времени (временная метка ISO 8601) (string, необязательный) -
username: Имя пользователя GitHub (не указывайте для Gists аутентифицированного пользователя) (string, необязательный)
-
-
update_gist - Обновить Gist
-
Области OAuth Challenge:
gist -
content: Содержимое файла (string, обязательный) -
description: Обновлённое описание Gist (string, необязательный) -
filename: Имя файла для обновления или создания (string, обязательный) -
gist_id: ID Gist для обновления (string, обязательный)
-
Git
-
get_repository_tree - Получить дерево репозитория
-
Области OAuth Challenge:
repo -
owner: Владелец репозитория (имя пользователя или организация) (string, обязательный) -
path_filter: Необязательный префикс пути для фильтрации результатов дерева (например, 'src/', чтобы показать только файлы в каталоге src) (string, необязательный) -
recursive: Установка этого параметра в true возвращает объекты или поддеревья, на которые ссылается дерево. По умолчанию false (boolean, необязательный) -
repo: Имя репозитория (string, обязательный) -
tree_sha: Значение SHA1 или имя ref (ветки или тега) дерева. По умолчанию используется ветка по умолчанию репозитория (string, необязательный)
-
Управление
-
create_repository_ruleset - Создать набор правил репозитория
-
Области OAuth Challenge:
repo,admin:org,admin:enterprise -
bypass_actors: Акторы, которые могут обходить правила в этом наборе правил (object[], необязательный) -
conditions: Условия применения этого набора правил, например {"ref_name": {"include": ["refs/heads/main"], "exclude": []}} (object, необязательный) -
enforcement: Уровень применения набора правил. 'evaluate' позволяет администраторам протестировать правила перед их применением (string, обязательный) -
enterprise: Slug предприятия. Обязательно, когда level — 'enterprise'. (string, необязательный) -
level: Уровень, на котором настроен набор правил: -
'repository': набор правил для одного репозитория (требует 'owner' и 'repo').
-
'organization': набор правил, охватывающий репозитории в организации (требует 'org').
-
'enterprise': набор правил, охватывающий репозитории в пределах предприятия (требует 'enterprise'). (string, обязательный)
-
name: Имя набора правил (string, обязательный) -
org: Имя организации. Обязательно, когда level — 'organization'. (string, необязательный) -
owner: Владелец репозитория. Обязательно, когда level — 'repository'. (string, необязательный) -
repo: Имя репозитория. Обязательно, когда level — 'repository'. (string, необязательный) -
rules: Массив правил в наборе правил. Каждое правило — объект с 'type' (например, 'creation', 'deletion', 'non_fast_forward', 'required_signatures', 'pull_request', 'required_status_checks') и, для правил, требующих настройки, объектом 'parameters' (object[], обязательный) -
target: Цель набора правил. По умолчанию 'branch'. 'repository' допустимо только для наборов правил уровня 'organization' и 'enterprise'. (string, необязательный)
-
-
custom_properties_read - Читать пользовательские свойства
-
Области OAuth Challenge:
repo,read:org,read:enterprise -
enterprise: Slug предприятия. Обязательно, когда level — 'enterprise'. (string, необязательный) -
level: Уровень, на котором управляются пользовательские свойства: -
'repository': ЗНАЧЕНИЯ пользовательских свойств, назначенные репозиторию (требует 'owner' и 'repo').
-
'organization': ОПРЕДЕЛЕНИЯ (схема) пользовательских свойств для организации (требует 'org').
-
'enterprise': ОПРЕДЕЛЕНИЯ (схема) пользовательских свойств для предприятия (требует 'enterprise'). (string, обязательный)
-
org: Имя организации. Обязательно, когда level — 'organization'. (string, необязательный) -
owner: Владелец репозитория. Обязательно, когда level — 'repository'. (string, необязательный) -
repo: Имя репозитория. Обязательно, когда level — 'repository'. (string, необязательный)
-
-
custom_properties_write - Задать пользовательские свойства
-
Области OAuth Challenge:
repo,admin:org,admin:enterprise -
enterprise: Slug предприятия. Обязательно, когда level — 'enterprise'. (string, необязательный) -
level: Уровень, на котором управляются пользовательские свойства: -
'repository': ЗНАЧЕНИЯ пользовательских свойств, назначенные репозиторию (требует 'owner' и 'repo').
-
'organization': ОПРЕДЕЛЕНИЯ (схема) пользовательских свойств для организации (требует 'org').
-
'enterprise': ОПРЕДЕЛЕНИЯ (схема) пользовательских свойств для предприятия (требует 'enterprise'). (string, обязательный)
-
org: Имя организации. Обязательно, когда level — 'organization'. (string, необязательный) -
owner: Владелец репозитория. Обязательно, когда level — 'repository'. (string, необязательный) -
properties: Пользовательские свойства для создания или обновления. На уровне репозитория каждый элемент назначает значение ('property_name' и 'value'); на уровнях организации и предприятия каждый элемент определяет схему ('property_name' и 'value_type', а также необязательные поля определения). (object[], обязательный) -
repo: Имя репозитория. Обязательно, когда level — 'repository'. (string, необязательный)
-
-
repository_ruleset_read - Читать наборы правил репозитория
-
Области OAuth Challenge:
repo,read:org,read:enterprise -
actor_name: Имя пользователя GitHub для фильтрации наборов правил. Используется методом 'list_rule_suites'. (string, необязательный) -
branch: Имя ветки. Обязательно для метода 'get_rules_for_branch'. (string, необязательный) -
enterprise: Slug предприятия. Обязательно, когда level — 'enterprise'. (string, необязательный) -
evaluate_status: Фильтровать наборы правил по режиму оценки набора правил. Используется методом 'list_rule_suites'. (string, необязательный)
-
-
includes_parents: Включать наборы правил, настроенные на более высоких уровнях, которые также применяются. По умолчанию true. Используется методами 'get' и 'list' на уровне репозитория. (boolean, необязательный)-
level: Уровень, на котором настроен набор правил: -
'repository': Набор правил для одного репозитория (требует 'owner' и 'repo').
-
'organization': Набор правил, охватывающий репозитории в организации (требует 'org').
-
'enterprise': Набор правил, охватывающий репозитории в рамках enterprise (требует 'enterprise'). (string, обязательный)
-
method: Операция для выполнения: -
'get': Получить конкретный набор правил по ID (требует 'ruleset_id'). Поддерживается на всех уровнях.
-
'list': Список всех наборов правил. Поддерживается на всех уровнях.
-
'get_rules_for_branch': Получить все правила, применяемые к ветке (требует 'branch'). Только на уровне репозитория.
-
'list_rule_suites': Список rule suite — результатов применения правил к push-событиям. Только на уровнях репозитория и организации.
-
'get_rule_suite': Получить конкретный rule suite по ID (требует 'rule_suite_id'). Только на уровнях репозитория и организации. (string, обязательный)
-
org: Название организации. Обязательно, когда level — 'organization'. (string, необязательный) -
owner: Владелец репозитория. Обязательно, когда level — 'repository'. (string, необязательный) -
page: Номер страницы для пагинации (мин. 1) (number, необязательный) -
perPage: Количество результатов на странице для пагинации (мин. 1, макс. 100) (number, необязательный) -
ref: Имя ref (ветка, тег и т. д.) для фильтрации rule suite. Используется методом 'list_rule_suites'. (string, необязательный) -
repo: Название репозитория. Обязательно, когда level — 'repository'. (string, необязательный) -
repository_name: Название репозитория для фильтрации rule suite. Используется методом 'list_rule_suites' на уровне организации. (string, необязательный) -
rule_suite_id: ID rule suite. Обязательно для метода 'get_rule_suite'. (number, необязательный) -
rule_suite_result: Результат rule suite для фильтрации. Используется методом 'list_rule_suites'. (string, необязательный) -
ruleset_id: ID набора правил. Обязательно для метода 'get'. (number, необязательный) -
time_period: Период времени для фильтрации rule suite. Используется методом 'list_rule_suites'. (string, необязательный)
-
Issues
-
add_issue_comment — Добавить комментарий к issue или pull request
-
Области действия OAuth Challenge:
repo -
body: Содержимое комментария. Обязательно, если не указана reaction. (string, необязательный) -
comment_id: Числовой ID комментария к issue или pull request, на который нужно поставить реакцию. Используйте это для реакций на комментарии; пропустите, чтобы отреагировать на сам issue или pull request. Нельзя комбинировать с body. (integer, необязательный) -
issue_number: Номер issue или pull request, к которому нужно оставить комментарий или поставить реакцию. (number, обязательный) -
owner: Владелец репозитория (string, обязательный) -
reaction: Эмодзи-реакция для добавления. Обязательно, если не указан body. (string, необязательный) -
repo: Название репозитория (string, обязательный)
-
-
get_label — Получить конкретную метку из репозитория
-
Области действия OAuth Challenge:
repo -
name: Имя метки. (string, обязательный) -
owner: Владелец репозитория (имя пользователя или название организации) (string, обязательный) -
repo: Название репозитория (string, обязательный)
-
-
issue_read — Получить сведения об issue
-
Области действия OAuth Challenge:
repo -
issue_number: Номер issue (number, обязательный) -
method: Операция чтения, выполняемая для одного issue.
-
Варианты:
-
get — Получить сведения об issue. Также возвращает по возможности флаги иерархии (
has_parent,has_children);parentиsub_issues_summary— необязательные сводки связей, аclosed_by_pull_requestsсуммирует pull request, настроенные на закрытие issue, какtotal_countплюс до 5references. -
get_comments — Получить комментарии к issue.
-
get_sub_issues — Получить под-issue (дочерние) для issue.
-
get_parent — Получить родительский issue, если этот issue является под-issue другого.
-
get_labels — Получить метки, назначенные issue.
(string, обязательный)
-
owner: Владелец репозитория (string, обязательный) -
page: Номер страницы для пагинации (мин. 1) (number, необязательный) -
perPage: Количество результатов на странице для пагинации (мин. 1, макс. 100) (number, необязательный) -
repo: Название репозитория (string, обязательный) -
issue_write — Создать или обновить issue/pull request
-
Области действия OAuth Challenge:
repo -
assignees: Имена пользователей для назначения на этот issue (string[], необязательный) -
body: Содержимое тела issue (string, необязательный) -
duplicate_of: Номер issue, дубликатом которого является этот issue. Обязательно, когда state_reason — 'duplicate'. (number, необязательный) -
issue_fields: Значения полей issue для установки или очистки. Каждый элемент требует 'field_name' и ровно одно из 'value', 'field_option_name' или 'delete: true'. (object[], необязательный) -
issue_number: Номер issue для обновления (number, необязательный) -
labels: Метки для применения к этому issue (string[], необязательный) -
method: Операция записи, выполняемая для одного issue.
-
Варианты:
-
'create' — создаёт новый issue.
-
'update' — обновляет существующий issue.
(string, обязательный)
-
milestone: Номер milestone (number, необязательный) -
owner: Владелец репозитория (string, обязательный) -
parent_issue_number: Номер issue родительского issue. Используется только когда method — 'create', и не может комбинироваться с issue_fields. Новый issue создаётся и прикрепляется к этому родителю в той же операции. (number, необязательный) -
parent_owner: Владелец репозитория родительского issue. Должен быть указан вместе с parent_repo. Пропустите оба, чтобы использовать owner и repo. Используется только когда method — 'create' и указан parent_issue_number. (string, необязательный) -
parent_repo: Название репозитория родительского issue. Должен быть указан вместе с parent_owner. Пропустите оба, чтобы использовать owner и repo. Используется только когда method — 'create' и указан parent_issue_number. (string, необязательный) -
repo: Название репозитория (string, обязательный) -
state: Новое состояние (string, необязательный) -
state_reason: Причина изменения состояния. Игнорируется, если state не изменён. (string, необязательный) -
title: Заголовок issue (string, необязательный) -
type: Тип этого issue. Для обновлений передайте null, чтобы удалить текущий тип. Используйте только если типы issue включены для этого репозитория. Используйте list_issue_types, чтобы получить допустимые значения типа для этого репозитория или его организации-владельца. Если репозиторий не поддерживает типы issue, пропустите этот параметр. (string | null, необязательный) -
list_issue_fields — Список полей issue
-
Области действия OAuth Challenge:
repo,read:org -
owner: Владелец аккаунта репозитория или организации. Имя не чувствительно к регистру. (string, обязательный) -
repo: Название репозитория. Если указано, возвращает поля для этого конкретного репозитория (унаследованные от его организации). Если пропущено, возвращает поля уровня организации напрямую. (string, необязательный)
-
-
list_issue_types — Список доступных типов issue
-
Области действия OAuth Challenge:
repo,read:org -
owner: Владелец аккаунта репозитория или организации. (string, обязательный) -
repo: Название репозитория. Если указано, возвращает типы issue для этого конкретного репозитория. Если пропущено, возвращает типы issue уровня организации напрямую. (string, необязательный)
-
-
list_issues — Список issue
-
Области действия OAuth Challenge:
repo -
after: Курсор для пагинации. Используйте курсор из предыдущего ответа. (string, необязательный) -
direction: Направление сортировки. Если указано, также нужно указать 'orderBy'. (string, необязательный) -
field_filters: Фильтр по значениям пользовательских полей issue. Каждая запись принимает field_name и value; сервер находит поле и приводит значение к его типу (имя опции single-select, текст, число или дата YYYY-MM-DD). (object[], необязательный) -
fields: Подмножество полей для возврата по каждому issue. Если пропущено, возвращаются все поля. Используйте это, чтобы уменьшить размер ответа, когда нужны только определённые поля; пропуск 'body' и 'field_values' в частности удаляет самые большие данные на результат. (string[], необязательный) -
labels: Фильтр по меткам (string[], необязательный) -
orderBy: Сортировать issue по полю. Если указано, также нужно указать 'direction'. (string, необязательный) -
owner: Владелец репозитория (string, обязательный) -
perPage: Количество результатов на странице для пагинации (мин. 1, макс. 100) (number, необязательный) -
repo: Название репозитория (string, обязательный) -
since: Фильтр по дате (временная метка ISO 8601) (string, необязательный) -
state: Фильтр по состоянию; по умолчанию, если не указано, возвращаются как открытые, так и закрытые issue (string, необязательный)
-
-
search_issues — Поиск issue
-
Области действия OAuth Challenge:
repo -
fields: Подмножество полей для возврата по каждому результату issue. Если пропущено, возвращаются все поля. Используйте это, чтобы уменьшить размер ответа, когда нужны только определённые поля; пропуск 'body', 'reactions' и 'labels' в частности удаляет самые большие данные на результат. (string[], необязательный) -
order: Порядок сортировки (string, необязательный)
-
-
owner: Необязательный владелец репозитория. Если указан вместе с repo, будут перечислены только issue для этого репозитория. (string, optional)-
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице для пагинации (минимум 1, максимум 100) (number, optional) -
query: Поисковый запрос на естественном языке. Если пользователь приводит альтернативные формулировки, включайте их как отдельные слова, а не объединяйте через OR. (string, required) -
repo: Необязательное имя репозитория. Если указано вместе с owner, будут перечислены только issue для этого репозитория. (string, optional) -
sort: Поле сортировки по количеству совпадений категорий; по умолчанию — лучшее совпадение (string, optional)
-
-
sub_issue_write - Изменить подзадачу
-
Области OAuth Challenge:
repo -
after_id: ID подзадачи, после которой нужно установить приоритет (нужно указать либо after_id, либо before_id) (number, optional) -
before_id: ID подзадачи, перед которой нужно установить приоритет (нужно указать либо after_id, либо before_id) (number, optional) -
issue_number: Номер родительского issue (number, required) -
method: Действие, выполняемое над одной подзадачей
-
Доступные варианты:
-
'add' - добавить подзадачу к родительскому issue в репозитории GitHub.
-
'remove' - удалить подзадачу из родительского issue в репозитории GitHub.
-
'reprioritize' - изменить порядок подзадач внутри родительского issue в репозитории GitHub. Используйте 'after_id' или 'before_id', чтобы указать новую позицию.
Записывает иерархию issue. Чтобы переместить подзадачу к новому родителю, используйте add с replace_parent=true; записываемого поля parent не существует.
(string, required)
-
owner: Владелец репозитория (string, required) -
replace_parent: Если true, заменяет текущий родительский issue подзадачи. Используйте только с методом 'add'. (boolean, optional) -
repo: Имя репозитория (string, required) -
sub_issue_id: ID подзадачи для добавления. ID не совпадает с номером issue (number, required) -
update_issue_comment - Обновить комментарий к issue
-
Области OAuth Challenge:
repo -
body: Новое содержимое комментария (string, required) -
comment_id: Числовой ID комментария в обсуждении issue или pull request, который нужно обновить. Не используйте ID комментария ревью pull request. (integer, required) -
owner: Владелец репозитория (string, required) -
repo: Имя репозитория (string, required)
-
Метки
-
get_label - Получить конкретную метку из репозитория
-
Области OAuth Challenge:
repo -
name: Имя метки. (string, required) -
owner: Владелец репозитория (имя пользователя или организации) (string, required) -
repo: Имя репозитория (string, required)
-
-
label_write - Операции записи с метками репозитория
-
Области OAuth Challenge:
repo -
color: Цвет метки в виде 6-символьного hex-кода без префикса '#' (например, 'f29513'). Обязателен для 'create', необязателен для 'update'. (string, optional) -
description: Текст описания метки. Необязателен для 'create' и 'update'. (string, optional) -
method: Выполняемая операция: 'create', 'update' или 'delete' (string, required) -
name: Имя метки — обязательно для всех операций (string, required) -
new_name: Новое имя метки (используется только с методом 'update' для переименования) (string, optional) -
owner: Владелец репозитория (имя пользователя или организации) (string, required) -
repo: Имя репозитория (string, required)
-
-
list_label - Список меток репозитория
-
Области OAuth Challenge:
repo -
owner: Владелец репозитория (имя пользователя или организации) — обязательно для всех операций (string, required) -
repo: Имя репозитория — обязательно для всех операций (string, required)
-
Уведомления
-
dismiss_notification - Отклонить уведомление
-
Области OAuth Challenge:
notifications -
state: Новое состояние уведомления (read/done) (string, required) -
threadID: ID треда уведомления (string, required)
-
-
get_notification_details - Получить сведения об уведомлении
-
Области OAuth Challenge:
notifications -
notificationID: ID уведомления (string, required)
-
-
list_notifications - Список уведомлений
-
Области OAuth Challenge:
notifications -
before: Показывать только уведомления, обновлённые до указанного времени (формат ISO 8601) (string, optional) -
filter: Фильтр уведомлений; если не указан, используется значение по умолчанию. Прочитанные уведомления — те, которые пользователь уже подтвердил. Уведомления с участием — те, в которых пользователь непосредственно участвует, например issue или pull request, которые он прокомментировал или создал. (string, optional) -
owner: Необязательный владелец репозитория. Если указан вместе с repo, будут перечислены только уведомления для этого репозитория. (string, optional) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице для пагинации (минимум 1, максимум 100) (number, optional) -
repo: Необязательное имя репозитория. Если указано вместе с owner, будут перечислены только уведомления для этого репозитория. (string, optional) -
since: Показывать только уведомления, обновлённые после указанного времени (формат ISO 8601) (string, optional)
-
-
manage_notification_subscription - Управление подпиской на уведомления
-
Области OAuth Challenge:
notifications -
action: Выполняемое действие: ignore, watch или delete для подписки на уведомления. (string, required) -
notificationID: ID треда уведомления. (string, required)
-
-
manage_repository_notification_subscription - Управление подпиской на уведомления репозитория
-
Области OAuth Challenge:
notifications -
action: Выполняемое действие: ignore, watch или delete для подписки на уведомления репозитория. (string, required) -
owner: Владелец аккаунта репозитория. (string, required) -
repo: Имя репозитория. (string, required)
-
-
mark_all_notifications_read - Отметить все уведомления как прочитанные
-
Области OAuth Challenge:
notifications -
lastReadAt: Описывает последнюю точку, когда уведомления были проверены (необязательно). По умолчанию: сейчас (string, optional) -
owner: Необязательный владелец репозитория. Если указан вместе с repo, только уведомления для этого репозитория будут отмечены как прочитанные. (string, optional) -
repo: Необязательное имя репозитория. Если указано вместе с owner, только уведомления для этого репозитория будут отмечены как прочитанные. (string, optional)
-
Организации
-
search_orgs - Поиск организаций
-
Области OAuth Challenge:
read:org -
order: Порядок сортировки (string, optional) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице для пагинации (минимум 1, максимум 100) (number, optional) -
query: Поисковый запрос по организациям. Примеры: 'microsoft', 'location:california', 'created:>=2025-01-01'. Поиск автоматически ограничивается type:org. (string, required) -
sort: Поле сортировки по категории (string, optional)
-
Проекты
-
projects_get - Получить сведения о ресурсах GitHub Projects
-
Области OAuth Challenge:
read:project -
field_id: ID поля. Обязателен для метода 'get_project_field'. (number, optional) -
field_names: Конкретный список имён полей для включения в ответ при получении элемента проекта (например, ["Status", "Priority"]). Разрешается на стороне сервера в ID полей — передавайте это вместо 'fields', если известны только человекочитаемые имена. Взаимоисключающе с 'fields' — укажите одно, но не оба. Используется только для метода 'get_project_item'. (string[], optional) -
fields: Конкретный список ID полей для включения в ответ при получении элемента проекта (например, ["102589", "985201", "169875"]). Если не указаны ни 'fields', ни 'field_names', включается только поле title. Взаимоисключающе с 'field_names' — укажите одно, но не оба. Используется только для метода 'get_project_item'. (string[], optional) -
item_id: ID элемента. Обязателен для метода 'get_project_item'. (number, optional) -
method: Метод для выполнения (string, required) -
owner: Владелец (логин пользователя или организации). Имя нечувствительно к регистру. (string, optional) -
owner_type: Тип владельца (user или org). Если не указан, определяется автоматически. (string, optional) -
project_number: Номер проекта. (number, optional) -
status_update_id: Node ID обновления статуса проекта. Обязателен для метода 'get_project_status_update'. (string, optional) -
view_id: Node ID представления проекта. Обязателен для метода 'get_project_view'. (string, optional)
-
-
projects_list - Список ресурсов GitHub Projects
-
Области OAuth Challenge:
read:project -
after: Курсор прямой пагинации из предыдущего pageInfo.nextCursor. (string, optional) -
before: Курсор обратной пагинации из предыдущего pageInfo.prevCursor (редко). (string, optional)
-
-
field_names: Имена полей, которые нужно включить при выводе элементов проекта (например,["Status", "Priority"]). Разрешаются на стороне сервера в ID полей — передавайте этот параметр вместоfields, когда знаете только человекочитаемые имена. Имена, которые не удалось разрешить, возвращают структурированную ошибку. Взаимоисключающий сfields— указывайте только один из них. Используется только для методаlist_project_items. (string[], optional)-
fields: ID полей, которые нужно включить при выводе элементов проекта (например,["102589", "985201"]). ВАЖНО: всегда указывайте, чтобы получить значения полей. Без этого (и безfield_names) возвращаются только заголовки. Взаимоисключающий сfield_names— указывайте только один из них. Используется только для методаlist_project_items. (string[], optional) -
method: Действие, которое нужно выполнить (string, required) -
owner: Владелец (логин пользователя или организации). Имя нечувствительно к регистру. (string, required) -
owner_type: Тип владельца (user или org). Если не указан, будет автоматически выполнена попытка для обоих вариантов. (string, optional) -
perPage: Количество результатов на странице (максимум 50) (number, optional) -
project_number: Номер проекта. Обязателен для методовlist_project_fields,list_project_items,list_project_viewsиlist_project_status_updates. (number, optional) -
query: Строка фильтра/запроса. Для list_projects: фильтрация по тексту заголовка и состоянию (например,"roadmap is:open"). Для list_project_items: расширенная фильтрация с использованием синтаксиса фильтрации проектов GitHub. (string, optional)
-
-
projects_write — Управление GitHub Projects
-
OAuth Challenge Scopes:
project -
body: Тело обновления статуса (markdown). Используется для методаcreate_project_status_update. (string, optional) -
field_name: Имя поля итерации (например,'Sprint'). Обязательно для методаcreate_iteration_field. (string, optional) -
filter: Фильтр сохранённого представления; не указывайте при обновлении, чтобы сохранить его, или передайте null, чтобы очистить. (string | null, optional) -
issue_number: Номер issue. Обязателен дляadd_project_item, когда item_type имеет значение'issue'. Также принимается методомupdate_project_itemдля поиска элемента по номеру issue (в сочетании с item_owner и item_repo). (number, optional) -
item_id: ID элемента проекта. Обязателен дляdelete_project_item. Дляupdate_project_itemукажите либо item_id, либо (item_owner + item_repo + issue_number), чтобы найти элемент по issue. (number, optional) -
item_owner: Владелец (пользователь или организация) репозитория, содержащего issue или pull request. Обязателен для методаadd_project_item. Также принимается методомupdate_project_itemпри поиске элемента по номеру issue. (string, optional) -
item_repo: Имя репозитория, содержащего issue или pull request. Обязательно для методаadd_project_item. Также принимается методомupdate_project_itemпри поиске элемента по номеру issue. (string, optional) -
item_type: Тип элемента — issue или pull_request. Обязателен для методаadd_project_item. (string, optional) -
items: Элементы, которые нужно обновить с помощью поля верхнего уровняupdated_field. Обязателен дляupdate_project_items; предпочтительнее, чем вызовupdate_project_itemв цикле. Каждая запись должна соответствовать ровно одному варианту ссылки:node_id, числовойitem_idилиitem_owner+item_repo+issue_number. Ограничение: 50 элементов на вызов. (object[], optional) -
iteration_duration: Длительность итераций поля в днях (например, 7 — для еженедельных, 14 — для двухнедельных). Обязательна для методаcreate_iteration_field. (number, optional) -
iterations: Пользовательские итерации для методаcreate_iteration_field. Указывайте это только тогда, когда нужны итерации с разной длительностью, перерывами между ними или конкретными заголовками. В остальных случаях опустите: GitHub автоматически создаёт три итерации поiteration_durationдней, начиная сstart_date, — это подходящий вариант для большинства случаев. (object[], optional) -
layout: Макет представления; обязателен при создании представления. (string, optional) -
method: Метод, который нужно выполнить (string, required) -
name: Имя представления; обязательно при создании представления. (string, optional) -
owner: Владелец проекта (логин пользователя или организации). Имя нечувствительно к регистру. (string, required) -
owner_type: Тип владельца (user или org). Обязателен для методаcreate_project. Если не указан для других методов, будет определён автоматически. (string, optional) -
project_number: Номер проекта. Обязателен для всех методов, кромеcreate_project. (number, optional) -
pull_request_number: Номер pull request (используйте, когда item_type имеет значение'pull_request'для методаadd_project_item). Укажите либо issue_number, либо pull_request_number. (number, optional) -
start_date: Дата начала в формате YYYY-MM-DD. Используется для методовcreate_project_status_updateиcreate_iteration_field. (string, optional) -
status: Статус проекта. Используется для методаcreate_project_status_update. (string, optional) -
target_date: Целевая дата обновления статуса в формате YYYY-MM-DD. Используется для методаcreate_project_status_update. (string, optional) -
title: Заголовок проекта. Обязателен для методаcreate_project. (string, optional) -
updated_field: Поле/значение для применения в формате{"id": 123, "value": ...}или{"name": "Status", "value": ...}; null очищает поле. Обязательно дляupdate_project_itemиupdate_project_items, где одно поле/значение верхнего уровня применяется ко всем элементам пакета. Для полей SINGLE_SELECT вupdate_project_itemформа с именем принимает имена параметров; форма с ID ожидает ID параметра. (object, optional) -
view_id: Node ID представления проекта для обновления или удаления; должен принадлежать owner/project_number. (string, optional) -
visible_field_names: Упорядоченные имена полей проекта для отображения при создании или замены при обновлении; опустите при обновлении, чтобы сохранить, или передайте[]для сброса. Взаимоисключающий с visible_fields. Roadmap принимает только[]. (string[], optional) -
visible_fields: Упорядоченные ID полей базы данных проекта для отображения при создании или замены при обновлении; опустите при обновлении, чтобы сохранить, или передайте[]для сброса. Взаимоисключающий с visible_field_names. Roadmap принимает только[]. (string[], optional)
-
Pull Requests
-
add_comment_to_pending_review — Добавить комментарий к последнему ожидающему ревью pull request от запрашивающего
-
OAuth Challenge Scopes:
repo -
body: Текст комментария к ревью (string, required) -
line: Строка блоба в diff pull request, к которой относится комментарий. Для многострочных комментариев — последняя строка диапазона (number, optional) -
owner: Владелец репозитория (string, required) -
path: Относительный путь к файлу, для которого нужен комментарий (string, required) -
pullNumber: Номер pull request (number, required) -
repo: Имя репозитория (string, required) -
side: Сторона diff, к которой относится комментарий. LEFT указывает на предыдущее состояние, RIGHT — на новое (string, optional) -
startLine: Для многострочных комментариев — первая строка диапазона, к которому относится комментарий (number, optional) -
startSide: Для многострочных комментариев — начальная сторона diff, к которой относится комментарий. LEFT указывает на предыдущее состояние, RIGHT — на новое (string, optional) -
subjectType: Уровень, на который направлен комментарий (string, required)
-
-
add_reply_to_pull_request_comment — Добавить ответ на комментарий к pull request
-
OAuth Challenge Scopes:
repo -
body: Текст ответа. Обязателен, если не указана reaction. (string, optional) -
commentId: Числовой ID комментария к ревью pull request, на который нужно ответить или поставить реакцию. Используйте число из якоря #discussion_r..., а не node ID ветки GraphQL (PRRT_...). (number, required) -
owner: Владелец репозитория (string, required) -
pullNumber: Номер pull request. Обязателен, когда указан body. (number, optional) -
reaction: Эмодзи-реакция для добавления. Обязательна, если не указан body. (string, optional) -
repo: Имя репозитория (string, required)
-
-
create_pull_request — Открыть новый pull request
-
OAuth Challenge Scopes:
repo -
base: Ветка, в которую выполняется слияние (string, required) -
body: Описание PR (string, optional) -
draft: Создать как черновик PR (boolean, optional) -
head: Ветка с изменениями (string, required) -
maintainer_can_modify: Разрешить правки от мейнтейнера (boolean, optional) -
owner: Владелец репозитория (string, required) -
repo: Имя репозитория (string, required) -
reviewers: Имена пользователей GitHub или команды в формате ORG/team-slug для запроса ревью (string[], optional) -
title: Заголовок PR (string, required)
-
-
list_pull_requests — Список pull requests
-
OAuth Challenge Scopes:
repo -
base: Фильтр по базовой ветке (string, optional) -
direction: Направление сортировки (string, optional)
-
-
fields: Подмножество полей, возвращаемых для каждого pull request. Если не указано, возвращаются все поля. Используйте это, чтобы уменьшить размер ответа, когда нужны только определённые поля; пропуск 'body' особенно сокращает наибольший объём данных на результат. (string[], необязательный)-
head: Фильтр по пользователю/организации head и ветке (string, необязательный) -
owner: Владелец репозитория (string, обязательный) -
page: Номер страницы для пагинации (минимум 1) (number, необязательный) -
perPage: Количество результатов на странице для пагинации (минимум 1, максимум 100) (number, необязательный) -
repo: Имя репозитория (string, обязательный) -
sort: Сортировать по (string, необязательный) -
state: Фильтр по состоянию (string, необязательный)
-
-
merge_pull_request - Слить pull request
-
OAuth Challenge Scopes:
repo -
commit_message: Дополнительные сведения для коммита слияния (string, необязательный) -
commit_title: Заголовок для коммита слияния (string, необязательный) -
expectedHeadSha: Ожидаемый SHA HEAD-ссылки pull request (string, необязательный) -
merge_method: Метод слияния (string, необязательный) -
owner: Владелец репозитория (string, обязательный) -
pullNumber: Номер pull request (number, обязательный) -
repo: Имя репозитория (string, обязательный)
-
-
pull_request_read - Получить сведения об одном pull request
-
OAuth Challenge Scopes:
repo -
after: Курсор для пагинации, используется только методом get_review_comments. Передайте endCursor из PageInfo предыдущей страницы, чтобы получить следующую страницу. (string, необязательный) -
method: Действие, указывающее, какие данные pull request нужно получить из GitHub.
-
Возможные варианты:
-
get - Получить сведения о конкретном pull request.
-
get_diff - Получить diff pull request.
-
get_status - Получить объединённый статус коммита head в pull request.
-
get_files - Получить список файлов, изменённых в pull request. Используйте с параметрами пагинации, чтобы управлять количеством возвращаемых результатов.
-
get_commits - Получить список коммитов в pull request. Используйте с параметрами пагинации, чтобы управлять количеством возвращаемых результатов.
-
get_review_comments - Получить потоки ревью в pull request. Каждый поток содержит логически сгруппированные комментарии ревью, сделанные в одном и том же месте кода во время ревью pull request. Возвращает метаданные потока и комментарии с nullable-координатами текущего и исходного диапазона строк (line, start_line, original_line, original_start_line). Текущие координаты опускаются, когда недоступны, например для устаревших комментариев. Используйте пагинацию на основе курсора (perPage, after) для управления результатами.
-
get_reviews - Получить ревью в pull request. Когда запрашиваются комментарии ревью, используйте метод get_review_comments. Используйте с параметрами пагинации, чтобы управлять количеством возвращаемых результатов.
-
get_comments - Получить комментарии в pull request. Используйте это, если пользователю не нужны именно комментарии ревью. Используйте с параметрами пагинации, чтобы управлять количеством возвращаемых результатов.
-
get_check_runs - Получить check runs для head-коммита pull request. Check runs — это отдельные задания и проверки CI/CD, которые выполняются для PR.
(string, обязательный)
-
owner: Владелец репозитория (string, обязательный) -
page: Номер страницы для пагинации (минимум 1) (number, необязательный) -
perPage: Количество результатов на странице для пагинации (минимум 1, максимум 100) (number, необязательный) -
pullNumber: Номер pull request (number, обязательный) -
repo: Имя репозитория (string, обязательный) -
pull_request_review_write - Операции записи (create, submit, delete) для ревью pull request
-
OAuth Challenge Scopes:
repo -
body: Текст комментария ревью (string, необязательный) -
commitID: SHA коммита для ревью (string, необязательный) -
event: Действие ревью, которое нужно выполнить. (string, необязательный) -
method: Операция записи, которую нужно выполнить для ревью pull request. (string, обязательный) -
owner: Владелец репозитория (string, обязательный) -
pullNumber: Номер pull request (number, обязательный) -
repo: Имя репозитория (string, обязательный) -
threadId: Node ID потока ревью (например, PRRT_kwDOxxx). Обязателен для методов resolve_thread и unresolve_thread. Получите ID потоков из pull_request_read с методом get_review_comments. (string, необязательный)
-
-
search_pull_requests - Поиск pull request
-
OAuth Challenge Scopes:
repo -
fields: Подмножество полей, возвращаемых для каждого результата pull request. Если не указано, возвращаются все поля. Используйте это, чтобы уменьшить размер ответа, когда нужны только определённые поля; пропуск 'body', 'reactions' и 'labels' особенно сокращает наибольший объём данных на результат. (string[], необязательный) -
order: Порядок сортировки (string, необязательный) -
owner: Необязательный владелец репозитория. Если указан вместе с repo, будут перечислены только pull request этого репозитория. (string, необязательный) -
page: Номер страницы для пагинации (минимум 1) (number, необязательный) -
perPage: Количество результатов на странице для пагинации (минимум 1, максимум 100) (number, необязательный) -
query: Поисковый запрос с использованием синтаксиса поиска pull request GitHub (string, обязательный) -
repo: Необязательное имя репозитория. Если указано вместе с owner, будут перечислены только pull request этого репозитория. (string, необязательный) -
sort: Поле сортировки по количеству совпадений категорий, по умолчанию — лучшее совпадение (string, необязательный)
-
-
update_pull_request - Редактировать pull request
-
OAuth Challenge Scopes:
repo -
base: Имя новой базовой ветки (string, необязательный) -
body: Новое описание (string, необязательный) -
draft: Пометить pull request как черновик (true) или готовый к ревью (false) (boolean, необязательный) -
maintainer_can_modify: Разрешить правки мейнтейнера (boolean, необязательный) -
owner: Владелец репозитория (string, обязательный) -
pullNumber: Номер pull request для обновления (number, обязательный) -
repo: Имя репозитория (string, обязательный) -
reviewers: Имена пользователей GitHub или команды-ревьюеры в формате ORG/team-slug, у которых запрашивается ревью (string[], необязательный) -
state: Новое состояние (string, необязательный) -
title: Новый заголовок (string, необязательный)
-
-
update_pull_request_branch - Обновить ветку pull request
-
OAuth Challenge Scopes:
repo -
expectedHeadSha: Ожидаемый SHA HEAD-ссылки pull request (string, необязательный) -
owner: Владелец репозитория (string, обязательный) -
pullNumber: Номер pull request (number, обязательный) -
repo: Имя репозитория (string, обязательный)
-
Репозитории
-
create_branch - Создать ветку
-
OAuth Challenge Scopes:
repo -
branch: Имя новой ветки (string, обязательный) -
from_branch: Исходная ветка (по умолчанию — ветка по умолчанию репозитория) (string, необязательный) -
owner: Владелец репозитория (string, обязательный) -
repo: Имя репозитория (string, обязательный)
-
-
create_or_update_file - Создать или обновить файл
-
OAuth Challenge Scopes:
repo,workflow -
allow_symlink_write: Установите true, чтобы обновить саму символическую ссылку; содержимое должно быть её новым целевым путём. (boolean, необязательный) -
branch: Ветка, в которой нужно создать/обновить файл (string, обязательный) -
content: Содержимое файла точно в том виде, в котором оно должно быть записано. Не кодируйте его в base64; сервер сделает это перед вызовом REST API. (string, обязательный) -
message: Сообщение коммита (string, обязательный) -
owner: Владелец репозитория (имя пользователя или организация) (string, обязательный) -
path: Путь, по которому нужно создать/обновить файл (string, обязательный) -
repo: Имя репозитория (string, обязательный) -
sha: Blob SHA заменяемого файла. Обязателен, если файл уже существует. Получите его с помощью get_file_contents, используя те же owner, repo и path, с ref, установленным в значение branch этого инструмента. (string, необязательный)
-
-
create_repository - Создать репозиторий
-
OAuth Challenge Scopes:
repo -
autoInit: Инициализировать с README (boolean, необязательный) -
description: Описание репозитория (string, необязательный) -
name: Имя репозитория (string, обязательный) -
organization: Организация, в которой нужно создать репозиторий (не указывайте, чтобы создать в личном аккаунте) (string, необязательный) -
private: Должен ли репозиторий быть приватным. По умолчанию true (приватный), если не указано. (boolean, необязательный)
-
-
delete_file - Удалить файл
-
OAuth Challenge Scopes:
repo,workflow -
branch: Ветка, из которой нужно удалить файл (string, обязательный) -
message: Сообщение коммита (string, обязательный) -
owner: Владелец репозитория (имя пользователя или организация) (string, обязательный) -
path: Путь к удаляемому файлу (string, обязательный) -
repo: Имя репозитория (string, обязательный)
-
-
delete_repository - Удалить репозиторий
-
OAuth Challenge Scopes:
delete_repo,repo -
owner: Владелец репозитория (имя пользователя или организация) (string, обязательный) -
repo: Имя репозитория (string, обязательный)
-
-
fork_repository - Форкнуть репозиторий
-
OAuth Challenge Scopes:
repo -
organization: Организация, в которую нужно сделать форк (string, необязательный) -
owner: Владелец репозитория (string, обязательный) -
repo: Имя репозитория (string, обязательный)
-
-
get_commit - Получить сведения о коммите
- OAuth Challenge Scopes:
repo
- OAuth Challenge Scopes:
-
detail: Уровень детализации для изменённых файлов. Значение "none" полностью исключает статистику и список файлов. Значение "stats" (по умолчанию) включает метаданные по каждому файлу: имя файла, статус и количество строк кода (добавления, удаления, изменения) без содержимого патча. Значение "full_patch" дополнительно включает unified diff для каждого файла и может быть очень объёмным. (string, optional)-
owner: Владелец репозитория (string, required) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице (минимум 1, максимум 100) (number, optional) -
repo: Название репозитория (string, required) -
sha: SHA коммита, имя ветки или тега (string, required)
-
-
get_file_contents — Получение содержимого файла или директории
-
OAuth Challenge Scopes:
repo -
fields: Подмножество полей для возврата по каждой записи, когда путь указывает на директорию. Если не задано, возвращаются все поля. Игнорируется, если путь указывает на отдельный файл. Используйте этот параметр для уменьшения размера ответа при перечислении содержимого директорий, когда нужны лишь определённые поля, например только 'name' и 'type'. (string[], optional) -
owner: Владелец репозитория (имя пользователя или организации) (string, required) -
path: Путь к файлу или директории (string, optional) -
ref: Принимает необязательные git-ссылки, такие какrefs/tags/{tag},refs/heads/{branch}илиrefs/pull/{pr_number}/head(string, optional) -
repo: Название репозитория (string, required) -
sha: Принимает необязательный SHA коммита. Если указан, используется вместо параметра ref (string, optional)
-
-
get_latest_release — Получение последнего релиза
-
OAuth Challenge Scopes:
repo -
owner: Владелец репозитория (string, required) -
repo: Название репозитория (string, required)
-
-
get_release_by_tag — Получение релиза по имени тега
-
OAuth Challenge Scopes:
repo -
owner: Владелец репозитория (string, required) -
repo: Название репозитория (string, required) -
tag: Имя тега (например, 'v1.0.0') (string, required)
-
-
get_tag — Получение сведений о теге
-
OAuth Challenge Scopes:
repo -
owner: Владелец репозитория (string, required) -
repo: Название репозитория (string, required) -
tag: Имя тега (string, required)
-
-
list_branches — Получение списка веток
-
OAuth Challenge Scopes:
repo -
owner: Владелец репозитория (string, required) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице (минимум 1, максимум 100) (number, optional) -
repo: Название репозитория (string, required)
-
-
list_commits — Получение списка коммитов
-
OAuth Challenge Scopes:
repo -
author: Имя пользователя или email автора для фильтрации коммитов (string, optional) -
fields: Подмножество полей для возврата по каждому коммиту. Если не задано, возвращаются все поля. Используйте этот параметр для уменьшения размера ответа, когда нужны лишь определённые поля, например только 'sha' и 'html_url'. (string[], optional) -
owner: Владелец репозитория (string, required) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
path: Возвращаются только коммиты, затрагивающие указанный путь к файлу (string, optional) -
perPage: Количество результатов на странице (минимум 1, максимум 100) (number, optional) -
repo: Название репозитория (string, required) -
sha: SHA коммита, имя ветки или тега для вывода списка коммитов. Если не задано, используется ветка по умолчанию репозитория. Если указан SHA коммита, выводятся коммиты вплоть до этого SHA. (string, optional) -
since: Возвращаются только коммиты после указанной даты (формат ISO 8601: YYYY-MM-DDTHH:MM:SSZ или YYYY-MM-DD) (string, optional) -
until: Возвращаются только коммиты до указанной даты (формат ISO 8601: YYYY-MM-DDTHH:MM:SSZ или YYYY-MM-DD) (string, optional)
-
-
list_releases — Получение списка релизов
-
OAuth Challenge Scopes:
repo -
fields: Подмножество полей для возврата по каждому релизу. Если не задано, возвращаются все поля. Используйте этот параметр для уменьшения размера ответа, когда нужны лишь определённые поля; в частности, исключение поля 'body' убирает наибольший объём данных по каждому релизу. (string[], optional) -
owner: Владелец репозитория (string, required) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице (минимум 1, максимум 100) (number, optional) -
repo: Название репозитория (string, required)
-
-
list_repository_collaborators — Получение списка соавторов репозитория
-
OAuth Challenge Scopes:
repo -
affiliation: Фильтр по типу принадлежности. Возможные значения: 'outside' (внешние соавторы), 'direct' (все пользователи с правами доступа независимо от членства в организации), 'all' (все соавторы). По умолчанию: 'all' (string, optional) -
owner: Владелец репозитория (string, required) -
page: Номер страницы для пагинации (по умолчанию 1, минимум 1) (number, optional) -
perPage: Количество результатов на странице (по умолчанию 30, минимум 1, максимум 100) (number, optional) -
repo: Название репозитория (string, required)
-
-
list_tags — Получение списка тегов
-
OAuth Challenge Scopes:
repo -
owner: Владелец репозитория (string, required) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице (минимум 1, максимум 100) (number, optional) -
repo: Название репозитория (string, required)
-
-
push_files — Отправка файлов в репозиторий
-
OAuth Challenge Scopes:
repo,workflow -
branch: Ветка, в которую выполняется отправка (string, required) -
files: Массив объектов файлов для отправки, каждый объект содержит path (string) и content (string) (object[], required) -
message: Сообщение коммита (string, required) -
owner: Владелец репозитория (string, required) -
repo: Название репозитория (string, required)
-
-
search_code — Поиск по коду
-
OAuth Challenge Scopes:
repo -
fields: Подмножество полей для возврата по каждому результату поиска кода. Если не задано, возвращаются все поля. Используйте этот параметр для уменьшения размера ответа, когда нужны лишь определённые поля; в частности, исключение полей 'repository' и 'text_matches' убирает наибольший объём данных по каждому результату. (string[], optional) -
order: Порядок сортировки результатов (string, optional) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице (минимум 1, максимум 100) (number, optional) -
query: Поисковый запрос (GitHub code search REST). Между терминами действует неявный оператор AND; поддерживаютсяOR,NOTи"quoted phrase"для точного совпадения фразы. Квалификаторы:repo:owner/repo,org:,user:,language:,path:dir(совпадение по префиксу),filename:exact.ext,extension:,in:file,in:path,size:,is:archived,is:fork. Максимум 256 символов. Примеры:WithContext language:go org:github;"package main" repo:o/r;func extension:go path:cmd repo:o/r;NOT TODO language:go repo:o/r. (string, required) -
sort: Поле сортировки (доступно только 'indexed') (string, optional)
-
-
search_commits — Поиск по коммитам
-
OAuth Challenge Scopes:
repo -
order: Порядок сортировки (string, optional) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице (минимум 1, максимум 100) (number, optional) -
query: Поисковый запрос по коммитам (GitHub commit search REST). Поиск выполняется только по сообщениям коммитов в ветке по умолчанию. Ограничьте область поиска с помощьюrepo:owner/repo,org:илиuser:(запросы без квалификатора области выполняются по всему GitHub и обычно не дают желаемого результата). Другие квалификаторы:author:,committer:,author-name:,committer-name:,author-email:,committer-email:,author-date:,committer-date:(поддерживаются операторы>,=,=2024-01-01;"refactor cache" repo:o/r;hash:abc1234 repo:o/r. (string, required) -
sort: Сортировка по дате автора или коммиттера (по умолчанию — наиболее релевантное совпадение) (string, optional)
-
-
search_repositories — Поиск репозиториев
-
OAuth Challenge Scopes:
repo -
minimal_output: Возвращать минимальную информацию о репозитории (по умолчанию: true). При значении false возвращаются полные объекты репозитория из GitHub API. (boolean, optional) -
order: Порядок сортировки (string, optional) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице (минимум 1, максимум 100) (number, optional) -
query: Поисковый запрос по репозиториям. Примеры: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'. Поддерживается расширенный синтаксис поиска для точной фильтрации. (string, required) -
sort: Поле для сортировки репозиториев (по умолчанию — наиболее релевантное совпадение) (string, optional)
-
Secret Protection
-
get_secret_scanning_alert — Получение оповещения о сканировании секретов
-
OAuth Challenge Scopes:
security_events -
alertNumber: Номер оповещения. (number, required) -
owner: Владелец репозитория. (string, required) -
repo: Название репозитория. (string, required)
-
-
list_secret_scanning_alerts — Получение списка оповещений о сканировании секретов
-
OAuth Challenge Scopes:
security_events -
owner: Владелец репозитория. (string, required) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице (минимум 1, максимум 100) (number, optional)
-
-
repo: Название репозитория. (string, required)-
resolution: Фильтр по разрешению (string, optional) -
secret_type: Список типов секретов, разделённых запятыми, которые нужно вернуть. По умолчанию возвращаются все стандартные шаблоны секретов. Чтобы получить общие шаблоны, передайте в параметре имя(имена) токена(ов). (string, optional) -
state: Фильтр по состоянию (string, optional)
-
Рекомендации по безопасности
-
get_global_security_advisory — Получить глобальную рекомендацию по безопасности
-
OAuth Challenge Scopes:
security_events -
ghsaId: Идентификатор GitHub Security Advisory (формат: GHSA-xxxx-xxxx-xxxx). (string, required)
-
-
list_global_security_advisories — Получить список глобальных рекомендаций по безопасности
-
OAuth Challenge Scopes:
security_events -
affects: Фильтрация рекомендаций по затронутому пакету или версии (например, "package1,package2@1.0.0"). (string, optional) -
cveId: Фильтр по идентификатору CVE. (string, optional) -
cwes: Фильтр по идентификаторам Common Weakness Enumeration (например, ["79", "284", "22"]). (string[], optional) -
ecosystem: Фильтр по экосистеме пакетов. (string, optional) -
ghsaId: Фильтр по идентификатору GitHub Security Advisory (формат: GHSA-xxxx-xxxx-xxxx). (string, optional) -
isWithdrawn: Возвращать только отозванные рекомендации. (boolean, optional) -
modified: Фильтр по дате публикации или обновления, либо по диапазону дат (дата или диапазон в формате ISO 8601). (string, optional) -
published: Фильтр по дате публикации или диапазону дат (дата или диапазон в формате ISO 8601). (string, optional) -
severity: Фильтр по уровню критичности. (string, optional) -
type: Тип рекомендации. (string, optional) -
updated: Фильтр по дате обновления или диапазону дат (дата или диапазон в формате ISO 8601). (string, optional)
-
-
list_org_repository_security_advisories — Получить список рекомендаций по безопасности репозиториев организации
-
OAuth Challenge Scopes:
security_events -
direction: Направление сортировки. (string, optional) -
org: Логин организации. (string, required) -
sort: Поле для сортировки. (string, optional) -
state: Фильтр по состоянию рекомендации. (string, optional)
-
-
list_repository_security_advisories — Получить список рекомендаций по безопасности репозитория
-
OAuth Challenge Scopes:
security_events -
direction: Направление сортировки. (string, optional) -
owner: Владелец репозитория. (string, required) -
repo: Название репозитория. (string, required) -
sort: Поле для сортировки. (string, optional) -
state: Фильтр по состоянию рекомендации. (string, optional)
-
Stargazers
-
list_starred_repositories — Получить список репозиториев, отмеченных звездой
-
OAuth Challenge Scopes:
repo -
direction: Направление сортировки результатов. (string, optional) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице для пагинации (минимум 1, максимум 100) (number, optional) -
sort: Способ сортировки результатов. Может быть 'created' (когда репозиторий был отмечен звездой) или 'updated' (когда в репозиторий последний раз был отправлен код). (string, optional) -
username: Имя пользователя, для которого нужно получить список репозиториев, отмеченных звездой. По умолчанию используется текущий аутентифицированный пользователь. (string, optional)
-
-
star_repository — Отметить репозиторий звездой
-
OAuth Challenge Scopes:
repo -
owner: Владелец репозитория (string, required) -
repo: Название репозитория (string, required)
-
-
unstar_repository — Убрать звезду с репозитория
-
OAuth Challenge Scopes:
repo -
owner: Владелец репозитория (string, required) -
repo: Название репозитория (string, required)
-
Пользователи
-
search_users — Поиск пользователей
-
OAuth Challenge Scopes:
repo -
order: Порядок сортировки (string, optional) -
page: Номер страницы для пагинации (минимум 1) (number, optional) -
perPage: Количество результатов на странице для пагинации (минимум 1, максимум 100) (number, optional) -
query: Поисковый запрос для пользователей. Примеры: 'john smith', 'location:seattle', 'followers:>100'. Поиск автоматически ограничен типом type:user. (string, required) -
sort: Сортировка пользователей по количеству подписчиков или репозиториев, либо по дате регистрации на GitHub. (string, optional)
-
Дополнительные инструменты в удалённом GitHub MCP Server
Copilot
-
create_pull_request_with_copilot — Выполнить задачу с помощью агента программирования GitHub Copilot
-
owner: Владелец репозитория. Вы можете предположить владельца, но подтвердите это у пользователя перед продолжением. (string, required) -
repo: Имя репозитория. Вы можете предположить имя репозитория, но подтвердите его у пользователя перед продолжением. (string, required) -
problem_statement: Подробное описание задачи, которую нужно выполнить (например, 'Реализовать функцию, которая делает X', 'Исправить ошибку Y' и т. д.) (string, required) -
title: Заголовок для создаваемого pull request (string, required) -
base_ref: Ссылка Git (например, ветка), с которой агент начнёт работу. Если не указано, используется ветка по умолчанию репозитория (string, optional)
-
Copilot Spaces
-
Примечание об аутентификации
-
Fine-grained PAT не скрываются фильтрацией областей classic PAT, поэтому эти инструменты могут всё ещё отображаться, даже если токен не может их использовать.
-
Для пространств, принадлежащих организации, fine-grained PAT должны быть установлены на владеющую организацию и включать
organization_copilot_spaces: read. -
Если пространство, принадлежащее организации, содержит ресурсы, связанные с репозиториями, токен также должен иметь доступ к каждому указанному репозиторию, иначе пространство может считаться не найденным.
-
-
get_copilot_space — Получить Copilot Space
-
owner: Владелец пространства. (string, required) -
name: Имя пространства. (string, required)
-
-
list_copilot_spaces — Список Copilot Spaces
Поиск по документации поддержки GitHub
-
github_support_docs_search — Получить документацию, необходимую для ответа на вопросы о продуктах и поддержке GitHub. Темы поддержки включают: рабочие процессы GitHub Actions, аутентификация, запросы в поддержку GitHub, практики pull request, обслуживание репозитория, GitHub Pages, GitHub Packages, GitHub Discussions, Copilot Spaces
query: Ввод от пользователя о вопросе, на который ему нужен ответ. Это последнее необработанное и неизменённое сообщение пользователя. Вы ВСЕГДА должны оставлять сообщение пользователя как есть, никогда не изменяйте его. (string, required)
Режим только для чтения
Чтобы запустить сервер в режиме только для чтения, используйте флаг --read-only. В этом режиме будут доступны только инструменты только для чтения, что предотвращает любые изменения репозиториев, issues, pull request и т. д.
./github-mcp-server --read-only
При использовании Docker можно передать режим только для чтения как переменную окружения:
-e GITHUB_READ_ONLY=1
ghcr.io/github/github-mcp-server">
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_READ_ONLY=1 \
ghcr.io/github/github-mcp-server
Режим блокировки
Режим блокировки ограничивает контент, который сервер будет показывать из публичных репозиториев. Когда он включён, сервер проверяет, имеет ли автор каждого элемента push-доступ к репозиторию. Приватные репозитории не затрагиваются, а коллабораторы сохраняют полный доступ к своему контенту.
Режим блокировки — это фильтр контента, работающий по мере возможностей, предназначенный для снижения риска prompt injection из недоверенного содержимого репозиториев (issues, pull request, комментарии, коммиты и т. д.). Это не граница авторизации: он не меняет то, что могут читать или записывать базовые учётные данные GitHub, и контент, скрытый из ответа отфильтрованного инструмента, всё ещё может быть доступен через другие инструменты или прямой доступ к GitHub API с теми же учётными данными.
В качестве намеренного исключения контент, созданный небольшим набором доверенных ботов (в настоящее время github-actions[bot] и copilot), всегда считается безопасным независимо от push-доступа. Это позволяет избежать фильтрации обычного вывода автоматизации (например, сгенерированных CI коммитов или комментариев), который иначе был бы скрыт в режиме блокировки.
./github-mcp-server --lockdown-mode
При запуске с Docker задайте соответствующую переменную окружения:
-e GITHUB_LOCKDOWN_MODE=1
ghcr.io/github/github-mcp-server">
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_LOCKDOWN_MODE=1 \
ghcr.io/github/github-mcp-server
В режиме HTTP этот флаг (или GITHUB_LOCKDOWN_MODE) является верхней границей: заголовок запроса X-MCP-Lockdown может включить режим блокировки, если оператор его не включил, но не может отключить режим блокировки, уже включённый оператором. Подробности см. в руководстве по конфигурации сервера.
Поведение режима блокировки зависит от вызываемого инструмента.
Следующие инструменты вернут ошибку, если у автора нет push-доступа:
-
issue_read:get -
pull_request_read:get -
pull_request_read:get_diff -
pull_request_read:get_files -
pull_request_read:get_commits
Следующие инструменты отфильтруют контент пользователей, у которых нет push-доступа:
-
issue_read:get_comments -
issue_read:get_sub_issues -
pull_request_read:get_comments -
pull_request_read:get_review_comments -
pull_request_read:get_reviews
i18n / Переопределение описаний
Описания инструментов можно переопределить, создав файл
github-mcp-server-config.json в том же каталоге, что и бинарный файл.
Файл должен содержать JSON-объект, где ключами являются имена инструментов, а значениями — новые
описания. Например:
{
"TOOL_ADD_ISSUE_COMMENT_DESCRIPTION": "an alternative description",
"TOOL_CREATE_BRANCH_DESCRIPTION": "Create a new branch in a GitHub repository"
}
Вы можете создать экспорт текущих переводов, запустив бинарный файл с
флагом --export-translations.
Этот флаг сохранит все переводы/переопределения, которые вы сделали, и добавит
любые новые переводы, появившиеся в бинарном файле с момента последнего
экспорта.
./github-mcp-server --export-translations
cat github-mcp-server-config.json
Вы также можете использовать переменные окружения для переопределения описаний. Имена
переменных окружения совпадают с ключами в JSON-файле, с префиксом
GITHUB_MCP_ и в верхнем регистре.
Например, чтобы переопределить инструмент TOOL_ADD_ISSUE_COMMENT_DESCRIPTION, можно
задать следующую переменную окружения:
export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"
Переопределение имени и заголовка сервера
Тот же механизм переопределения можно использовать для настройки полей name и
title MCP-сервера в ответе инициализации. Это полезно при запуске
нескольких экземпляров GitHub MCP Server (например, одного для github.com и одного для
GitHub Enterprise Server), чтобы агенты могли различать их.
| Ключ | Переменная окружения | Значение по умолчанию |
|---|---|---|
SERVER_NAME | GITHUB_MCP_SERVER_NAME | github-mcp-server |
SERVER_TITLE | GITHUB_MCP_SERVER_TITLE | GitHub MCP Server |
Например, чтобы настроить экземпляр сервера для GitHub Enterprise Server:
{
"SERVER_NAME": "ghes-mcp-server",
"SERVER_TITLE": "GHES MCP Server"
}
Или с помощью переменных окружения:
export GITHUB_MCP_SERVER_NAME="ghes-mcp-server"
export GITHUB_MCP_SERVER_TITLE="GHES MCP Server"
Использование библиотеки
Экспортированный Go API этого модуля в настоящее время следует считать нестабильным и подверженным ломающим изменениям. В будущем мы можем предложить стабильность; пожалуйста, создайте issue, если есть вариант использования, где это было бы ценно.
Участие в разработке
Мы приветствуем вклад. Перед открытием pull request, пожалуйста, прочитайте руководство по участию для получения инструкций по настройке, тестированию, линтингу и генерации документации.
Поддержка
Чтобы получить помощь по использованию GitHub MCP Server, см. руководство по поддержке. Если вы нашли ошибку или хотите запросить функцию, пожалуйста, поищите существующие issues перед созданием нового.
Безопасность
Пожалуйста, не сообщайте об уязвимостях безопасности через публичные issues. Следуйте инструкциям в политике безопасности, чтобы ответственно сообщать об уязвимостях.
Лицензия
Этот проект лицензирован на условиях открытой лицензии MIT. Полные условия см. в MIT.