GitHub MCP Server

MCP MCP Servers Open Source

Официальный MCP-сервер от GitHub: управление репозиториями, issues, pull requests, code search и Actions прямо из AI-агента.

v0.1
v1.5.0
27.06.2026 current
Добавлен 03.07.2026 · Обновлён 24.07.2026 · MCP Servers
Установка
Требуется GitHub Personal Access Token (Settings → Developer settings → PAT).

# Claude Desktop — claude_desktop_config.json:
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
               "ghcr.io/github/github-mcp-server"],
      "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_ВАШ_ТОКЕН" }
    }
  }
}

# Claude Code (CLI):
claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=ghp_ВАШ_ТОКЕН -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server

# OpenCode — ~/.config/opencode/opencode.json:
{
  "mcp": {
    "github": {
      "type": "local",
      "command": ["docker", "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
                  "ghcr.io/github/github-mcp-server"],
      "environment": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_ВАШ_ТОКЕН" }
    }
  }
}
переведено ИИ

Go Report Card

Сервер GitHub MCP

Сервер GitHub MCP подключает ИИ-инструменты напрямую к платформе GitHub. Это даёт ИИ-агентам, ассистентам и чат-ботам возможность читать репозитории и файлы кода, управлять задачами и Pull Request, анализировать код и автоматизировать рабочие процессы. Всё это через взаимодействие на естественном языке.

Примеры использования

  • Управление репозиториями: Просмотр и запрос кода, поиск файлов, анализ коммитов и понимание структуры проекта в любом доступном вам репозитории.
  • Автоматизация задач и PR: Создание, обновление и управление задачами и Pull Request. Пусть ИИ поможет сортировать баги, просматривать изменения кода и вести доски проекта.
  • Интеллектуальные возможности CI/CD и рабочих процессов: Мониторинг запусков рабочих процессов GitHub Actions, анализ ошибок сборки, управление релизами и получение аналитики по вашей конвейерной линии разработки.
  • Анализ кода: Изучение результатов проверок безопасности, просмотр оповещений Dependabot, понимание паттернов кода и получение исчерпывающей аналитики по вашей кодовой базе.
  • Командная работа: Доступ к обсуждениям, управление уведомлениями, анализ активности команды и оптимизация процессов для вашей команды.

Создан для разработчиков, которые хотят подключить свои ИИ-инструменты к контексту и возможностям GitHub — от простых запросов на естественном языке до сложных многоэтапных рабочих процессов с участием агентов.


Удалённый сервер GitHub MCP

Установить в VS Code Установить в VS Code Insiders Установить в Visual Studio

Удалённый сервер GitHub MCP размещён GitHub и предоставляет самый простой способ для начала работы. Если ваш хост MCP не поддерживает удалённые серверы MCP, не волнуйтесь! Вы можете использовать локальную версию сервера GitHub MCP.

Предварительные требования

  1. Совместимый хост MCP с поддержкой удалённых серверов (VS Code 1.101+, Claude Desktop, Cursor, Windsurf и т.д.)
  2. Включение всех применимых политик

Установка в VS Code

Для быстрой установки используйте одну из кнопок установки в один клик выше. После завершения этой процедуры включите режим Агента (расположен рядом с полем ввода для чата Copilot), и сервер запустится. Убедитесь, что вы используете 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 - Руководство по установке для IDE Cursor
  • OpenCode - Руководство по установке для терминального агента OpenCode
  • Windsurf - Руководство по установке для IDE Windsurf
  • Zed - Руководство по установке для редактора Zed
  • Rovo Dev CLI - Руководство по установке для Rovo Dev CLI

Примечание: Каждое приложение-хост MCP должно настроить GitHub App или OAuth App для поддержки удалённого доступа через OAuth. Любой хост, поддерживающий удалённые серверы MCP, должен поддерживать удалённый сервер GitHub с аутентификацией PAT. Подробности конфигурации и уровень поддержки различаются в зависимости от хоста. Обязательно обратитесь к документации приложения-хоста для получения дополнительной информации.

Конфигурация

Конфигурация набора инструментов

Смотрите Документацию удалённого сервера для полных сведений о конфигурации удалённого сервера, наборах инструментов, заголовках и расширенном использовании. Этот файл содержит исчерпывающие инструкции и примеры для подключения, настройки и установки удалённого сервера GitHub MCP в VS Code и других хостах MCP.

Если наборы инструментов не указаны, используются наборы по умолчанию.

Режим Insiders

Попробуйте новые функции заранее! Удалённый сервер предлагает версию Insiders с ранним доступом к новым функциям и экспериментальным инструментам.

Используя URL PathИспользуя заголовок
{
  "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

Установить с помощью Docker в VS Code Установить с помощью Docker в VS Code Insiders Установить с помощью Docker в Visual Studio

Предварительные требования

  1. Для запуска сервера в контейнере вам понадобится установленный Docker.
  2. После установки Docker убедитесь, что Docker запущен. Docker-образ доступен в ghcr.io/github/github-mcp-server. Образ является публичным; если при загрузке возникают ошибки, возможно, ваш токен устарел, и вам нужно выполнить docker logout ghcr.io.
  3. Аутентификация. На github.com вам не нужно ничего создавать заранее — кнопки «один клик» выше выполняют вход через OAuth при первом использовании (браузерный поток; токен хранится только в памяти). Кнопки Docker публикуют фиксированный порт обратного вызова (127.0.0.1:8085), чтобы вход обратного вызова контейнера был доступен. См. Вход OAuth для локального сервера, чтобы узнать, как это работает, о неинтерактивном/устройственном варианте с кодом и о подключении собственного OAuth или приложения GitHub (требуется для GitHub Enterprise Server и ghe.com).

Предпочтительнее токен? Вы все еще можете аутентифицироваться с помощью Персонального токена доступа GitHub, установив вместо этого GITHUB_PERSONAL_ACCESS_TOKEN (он имеет приоритет над OAuth). MCP-сервер может использовать многие API GitHub, поэтому включите те разрешения, которые вы готовы предоставить своим ИИ-инструментам (чтобы узнать больше о токенах доступа, ознакомьтесь с документацией).

Безопасная обработка ПДС

Переменные окружения (Рекомендуется)

Чтобы сохранить ваш ПДС в безопасности и обеспечить его многократное использование в разных хостах MCP:

  1. Сохраните ваш ПДС в переменных окружения

bash export GITHUB_PAT=your_token_here

Или создайте файл .env:

env GITHUB_PAT=your_token_here

  1. Защитите ваш файл .env

bash # Добавьте в .gitignore, чтобы избежать случайной отправки echo ".env" >> .gitignore

  1. Укажите токен в конфигурациях

```bash # Использование через CLI 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

# В файлах конфигурации (где поддерживается) "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "$GITHUB_PAT" } ```

Примечание: Поддержка переменных окружения варьируется в зависимости от хост-приложения и IDE. Некоторые приложения (например, Windsurf) требуют захардкоженных токенов в файлах конфигурации.

Лучшие практики безопасности токенов

  • Минимальные области видимости: Предоставляйте только необходимые разрешения
  • repo - Операции с репозиториями
  • read:packages - Доступ к Docker-образам
  • read:org - Доступ к командам организации
  • Разные токены: Используйте разные ПДС для разных проектов/окружений
  • Регулярная ротация: Обновляйте токены периодически
  • Никогда не коммитьте: Держите токены вдали от контроля версий
  • Права на файлы: Ограничьте доступ к файлам конфигурации, содержащим токены
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 добавьте префикс к имени хоста в виде схемы URI https://, так как по умолчанию используется http://, который не поддерживается GitHub Enterprise Server.
  • Для 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

Для быстрой установки используйте одну из кнопок «установка одним кликом» выше. После завершения этого потока включите режим агента (расположен рядом с текстовым вводом Copilot Chat), и сервер запустится.

Подробнее об использовании инструментов MCP-сервера в документации по режиму агента VS Code.

Установка в 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"
        }
      }
    }
  }
}

См. Вход OAuth для локального сервера для нативного потока (без фиксированного порта), неинтерактивного/устройственного варианта с кодом, GitHub Enterprise Server / ghe.com, а также подключения собственного OAuth или приложения GitHub.

Для неинтерактивных stdio-развертываний см. Аутентификация приложения GitHub.

Или аутентифицируйтесь с помощью Персонального токена доступа. Установите вместо этого 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 - Руководство по установке для IDE Cursor
  • Google Gemini CLI - Руководство по установке для Google Gemini CLI
  • OpenCode - Руководство по установке для терминального агента OpenCode
  • Windsurf - Руководство по установке для IDE Windsurf
  • Zed - Руководство по установке для редактора Zed

Для полного обзора всех вариантов установки см. наш Индекс руководств по установке.

Примечание: Любое хост-приложение, поддерживающее локальные MCP-серверы, должно иметь возможность подключиться к локальному GitHub MCP-серверу. Однако конкретный процесс настройки, синтаксис и стабильность интеграции будут различаться в зависимости от хост-приложения. Хотя многие из них могут следовать формату, аналогичному приведенным выше примерам, это не гарантируется. Обратитесь к документации вашего хост-приложения, чтобы узнать правильный синтаксис конфигурации MCP и процесс настройки.

Сборка из исходного кода

Если у вас нет Docker, вы можете использовать команду go build для сборки исполняемого файла в директории cmd/github-mcp-server и использовать команду github-mcp-server stdio с установленной переменной окружения GITHUB_PERSONAL_ACCESS_TOKEN, содержащей ваш токен. Чтобы указать расположение результата сборки, используйте флаг -o. Вы должны настроить свой сервер так, чтобы он использовал собранный исполняемый файл в качестве своей команды. Например:

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

CLI-утилиты

Исполняемый файл github-mcp-server включает несколько CLI-подкоманд, полезных для отладки и изучения сервера.

  • github-mcp-server tool-search "<запрос>" — ищет инструменты по имени, описанию и именам входных параметров. Используйте флаг --max-results для получения большего количества совпадений. Пример (цветной вывод требует TTY; используйте docker run -t (или -it) при запуске в Docker):
docker run -it --rm ghcr.io/github/github-mcp-server tool-search "issue" --max-results 5
github-mcp-server tool-search "issue" --max-results 5

Конфигурация инструментов

GitHub MCP Server поддерживает включение или отключение определенных групп функциональности с помощью флага --toolsets. Это позволяет вам контролировать, какие возможности GitHub API доступны вашим AI-инструментам. Включение только тех наборов инструментов, которые вам нужны, может помочь LLM в выборе инструментов и уменьшить размер контекста.

Наборы инструментов не ограничиваются инструментами (Tools). Соответствующие MCP-ресурсы (Resources) и промпты (Prompts) также включаются, где это применимо.

Когда наборы инструментов не указаны, используются наборы инструментов по умолчанию.

Ищете примеры? Ознакомьтесь с Руководством по настройке сервера, чтобы узнать о распространенных конфигурациях, таких как минимальные настройки, режим только для чтения и комбинация инструментов с наборами инструментов.

Указание наборов инструментов

Чтобы указать наборы инструментов, доступные для LLM, вы можете передать список разрешений двумя способами:

  1. С использованием аргумента командной строки:

bash github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security

  1. С использованием переменной окружения:

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

Переменная окружения GITHUB_TOOLSETS имеет приоритет над аргументом командной строки, если заданы оба параметра.

Указание отдельных инструментов

Вы также можете настроить конкретные инструменты с помощью флага --tools. Инструменты можно использовать отдельно или в сочетании с наборами инструментов для тонкой настройки.

  1. С использованием аргумента командной строки:

bash github-mcp-server --tools get_file_contents,issue_read,create_pull_request

  1. С использованием переменной окружения:

bash GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" ./github-mcp-server

  1. В сочетании с наборами инструментов (дополнительно):

bash 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

Чтобы сохранить конфигурацию по умолчанию и добавить дополнительные наборы инструментов:

```bash
GITHUB_TOOLSETS="default,stargazers" ./github-mcp-server

Режим "Инсайдеры"

Локальный GitHub MCP Server предлагает версию для "инсайдеров" с ранним доступом к новым функциям и экспериментальным инструментам.

  1. С использованием аргумента командной строки:

bash ./github-mcp-server --insiders

  1. С использованием переменной окружения:

bash 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

Доступные наборы инструментов

Доступны следующие наборы инструментов:

Набор инструментов Описание
person context Настоятельно рекомендуется: Инструменты, предоставляющие информацию о текущем пользователе и контексте GitHub, в котором вы работаете
workflow actions Рабочие процессы GitHub Actions и операции CI/CD
code-square code_quality Инструменты, связанные с качеством кода GitHub
codescan code_security Инструменты, связанные с безопасностью кода, такие как GitHub Code Scanning
copilot copilot Инструменты, связанные с Copilot
copilot copilot_issue_intents Инструменты назначения задач Copilot с опциональным включением, несущие метаданные намерения (обоснование, уверенность, предложение)
dependabot dependabot Инструменты Dependabot
comment-discussion discussions Инструменты, связанные с GitHub Discussions
logo-gist gists Инструменты, связанные с GitHub Gist
git-branch git Инструменты GitHub Git API для низкоуровневых операций Git
issue-opened issues Инструменты, связанные с GitHub Issues
tag labels Инструменты, связанные с GitHub Labels (метками)
bell notifications Инструменты, связанные с GitHub Notifications (уведомлениями)
organization orgs Инструменты, связанные с GitHub Organization (организациями)
project projects Инструменты, связанные с GitHub Projects (проектами)
git-pull-request pull_requests Инструменты, связанные с GitHub Pull Request
repo repos Инструменты, связанные с GitHub Repository (репозиториями)
shield-lock secret_protection Инструменты защиты секретов, такие как GitHub Secret Scanning
shield security_advisories Инструменты, связанные с уведомлениями о безопасности
star stargazers Инструменты, связанные со GitHub Stargazers (поставившими звёзды)
people 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 (workflow, запусках workflow, задачах и артефактах)
  • Необходимые области OAuth: repo
  • method: Метод для выполнения (строка, обязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • repo: Название репозитория (строка, обязательный)
  • resource_id: Уникальный идентификатор ресурса. Он различается в зависимости от указанного «method», поэтому убедитесь, что указываете правильный ID:
  • Укажите ID workflow или имя файла workflow (например, ci.yaml) для метода 'get_workflow'.
  • Укажите ID запуска workflow для методов 'get_workflow_run', 'get_workflow_run_usage' и 'get_workflow_run_logs_url'.
  • Укажите ID артефакта для метода 'download_workflow_run_artifact'.
  • Укажите ID задачи для метода 'get_workflow_job'. (строка, обязательный)

  • actions_list — Вывод списка workflow GitHub Actions в репозитории

  • Необходимые области OAuth: repo
  • method: Действие для выполнения (строка, обязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • page: Номер страницы для постраничной навигации (по умолчанию: 1) (число, необязательный)
  • per_page: Количество результатов на страницу для постраничной навигации (по умолчанию: 30, максимум: 100) (число, необязательный)
  • repo: Название репозитория (строка, обязательный)
  • resource_id: Уникальный идентификатор ресурса. Он различается в зависимости от указанного «method», поэтому убедитесь, что указываете правильный ID:
  • Не указывайте никакой ID ресурса для метода 'list_workflows'.
  • Укажите ID workflow или имя файла workflow (например, ci.yaml) для метода 'list_workflow_runs', либо опустите, чтобы вывести все запуски workflow в репозитории.
  • Укажите ID запуска workflow для методов 'list_workflow_jobs' и 'list_workflow_run_artifacts'. (строка, необязательный)
  • workflow_jobs_filter: Фильтры для задач workflow. Используется ТОЛЬКО когда method равен 'list_workflow_jobs' (объект, необязательный)
  • workflow_runs_filter: Фильтры для запусков workflow. Используется ТОЛЬКО когда method равен 'list_workflow_runs' (объект, необязательный)

  • actions_run_trigger — Запуск действий workflow GitHub Actions

  • Необходимые области OAuth: repo
  • inputs: Входные данные, принимаемые workflow. Используется только для метода 'run_workflow'. (объект, необязательный)
  • method: Метод для выполнения (строка, обязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • ref: Git-ссылка для workflow. Ссылка может быть именем ветки или тега. Обязательна для метода 'run_workflow'. (строка, необязательный)
  • repo: Название репозитория (строка, обязательный)
  • run_id: ID запуска workflow. Обязателен для всех методов, кроме 'run_workflow'. (число, необязательный)
  • workflow_id: ID workflow (числовой) или имя файла workflow (например, main.yml, ci.yaml). Обязателен для метода 'run_workflow'. (строка, необязательный)
  • get_job_logs — Получение журналов задач рабочего процесса GitHub Actions
  • Необходимые области OAuth: repo
  • failed_only: Если значение true, получает журналы для всех завершившихся с ошибкой задач в запуске рабочего процесса, указанном с помощью run_id. Требуется параметр run_id. (логический, необязательный)
  • job_id: Уникальный идентификатор задачи рабочего процесса. Требуется при получении журнала для одной задачи. (числовой, необязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • repo: Название репозитория (строка, обязательный)
  • return_content: Возвращает фактическое содержание журнала вместо URL-адресов (логический, необязательный)
  • run_id: Уникальный идентификатор запуска рабочего процесса. Требуется, когда failed_only установлен в true, чтобы получить журналы для всех завершившихся с ошибкой задач в запуске. (числовой, необязательный)
  • tail_lines: Количество строк для вывода с конца журнала (числовой, необязательный)

Качество кода

  • get_code_quality_finding — Получение результата проверки качества кода
  • Необходимые области OAuth: repo
  • findingNumber: Номер результата. (числовой, обязательный)
  • owner: Владелец репозитория. (строка, обязательный)
  • repo: Название репозитория. (строка, обязательный)

Безопасность кода

  • get_code_scanning_alert — Получение предупреждения сканирования кода
  • Необходимые области OAuth: security_events
  • Принимаемые области OAuth: repo, security_events
  • alertNumber: Номер предупреждения. (числовой, обязательный)
  • owner: Владелец репозитория. (строка, обязательный)
  • repo: Название репозитория. (строка, обязательный)

  • list_code_scanning_alerts — Список предупреждений сканирования кода

  • Необходимые области OAuth: security_events
  • Принимаемые области OAuth: repo, security_events
  • owner: Владелец репозитория. (строка, обязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (числовой, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (числовой, необязательный)
  • ref: Git-ссылка для результатов, которые вы хотите вывести. (строка, необязательный)
  • repo: Название репозитория. (строка, обязательный)
  • severity: Фильтрация предупреждений сканирования кода по серьезности (строка, необязательный)
  • state: Фильтрация предупреждений сканирования кода по состоянию. По умолчанию — open (строка, необязательный)
  • tool_name: Название инструмента, используемого для сканирования кода. (строка, необязательный)

Контекст

  • get_me — Получение моего профиля пользователя
  • Параметры не требуются

  • get_team_members — Получение участников команды

  • Необходимые области OAuth: read:org
  • Принимаемые области OAuth: admin:org, read:org, write:org
  • org: Входная информация организации (владелец), содержащей команду. (строка, обязательный)
  • team_slug: Slug команды (строка, обязательный)

  • get_teams — Получение команд

  • Необходимые области OAuth: read:org
  • Принимаемые области OAuth: admin:org, read:org, write:org
  • user: Имя пользователя, для которого нужно получить команды. Если не указано, используется аутентифицированный пользователь. (строка, необязательный)

Copilot

  • assign_copilot_to_issue — Назначение Copilot на задачу
  • Необходимые области OAuth: repo
  • base_ref: Git-ссылка (например, ветка), с которой агент начнет свою работу. Если не указана, по умолчанию используется ветка по умолчанию репозитория (строка, необязательный)
  • custom_instructions: Необязательные пользовательские инструкции для управления агентом за пределами тела задачи. Используйте это для предоставления дополнительного контекста, ограничений или руководства, которые не описаны в описании задачи (строка, необязательный)
  • issue_number: Номер задачи (числовой, обязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • repo: Название репозитория (строка, обязательный)

  • request_copilot_review — Запрос ревью от Copilot

  • Необходимые области OAuth: repo
  • owner: Владелец репозитория (строка, обязательный)
  • pullNumber: Номер pull request (числовой, обязательный)
  • repo: Название репозитория (строка, обязательный)

Намерения задач Copilot

  • assign_copilot_to_issue_with_intent — Назначение Copilot на задачу с намерением
  • Необходимые области OAuth: repo
  • base_ref: Git-ссылка (например, ветка), с которой агент начнет свою работу. Если не указана, по умолчанию используется ветка по умолчанию репозитория. Игнорируется, когда is_suggestion равен true (строка, необязательный)
  • confidence: Насколько вы уверены в этом выборе. 'HIGH' — для четкого сигнала или явного запроса пользователя, 'MEDIUM' — для разумного вывода с некоторой неоднозначностью, 'LOW' — для наилучшего предположения с ограниченным сигналом. (строка, обязательный)
  • custom_instructions: Необязательные пользовательские инструкции для управления агентом за пределами тела задачи. Игнорируется, когда is_suggestion равен true (строка, необязательный)
  • is_suggestion: Если true, записывает ожидающее назначение Copilot вместо запуска агента. Утверждение впоследствии предоставляет контекст запуска; base_ref и custom_instructions игнорируются в этом случае. (логический, обязательный)
  • issue_number: Номер задачи (числовой, обязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • rationale: Одно краткое предложение, объясняющее, что конкретно в задаче привело к выбору Copilot. Укажите конкретный сигнал (например, 'Хорошо структурированная задача с четкими критериями приемки'). (строка, обязательный)
  • repo: Название репозитория (строка, обязательный)

Dependabot

  • get_dependabot_alert — Получение предупреждения dependabot
  • Необходимые области OAuth: security_events
  • Принимаемые области OAuth: repo, security_events
  • alertNumber: Номер предупреждения. (числовой, обязательный)
  • owner: Владелец репозитория. (строка, обязательный)
  • repo: Название репозитория. (строка, обязательный)

  • list_dependabot_alerts — Список предупреждений dependabot

  • Необходимые области OAuth: security_events
  • Принимаемые области OAuth: repo, security_events
  • after: Указатель для постраничной навигации. Используйте указатель из предыдущего ответа. (строка, необязательный)
  • owner: Владелец репозитория. (строка, обязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (числовой, необязательный)
  • repo: Название репозитория. (строка, обязательный)
  • severity: Фильтрация предупреждений dependabot по серьезности (строка, необязательный)
  • state: Фильтрация предупреждений dependabot по состоянию. По умолчанию — open (строка, необязательный)

Обсуждения

  • discussion_comment_write — Управление комментариями к обсуждениям
  • Необходимые области OAuth: repo
  • body: Содержимое комментария (обязательно для методов 'add', 'reply' и 'update') (строка, опционально)
  • commentNodeID: Идентификатор узла (Node ID) комментария обсуждения (обязательно для методов 'reply', 'update', 'delete', 'mark_answer' и 'unmark_answer'). Для 'reply' это уровень, на который даётся ответ; обсуждения в GitHub поддерживают только один уровень вложенности. (строка, опционально)
  • discussionNumber: Номер обсуждения (обязательно для методов 'add' и 'reply') (число, опционально)
  • method: Операция записи для выполнения над комментарием обсуждения. Варианты:
  • 'add' - добавляет новый корневой комментарий к обсуждению.
  • 'reply' - отвечает на корневой комментарий обсуждения (обсуждения в GitHub поддерживают только один уровень вложенности).
  • 'update' - обновляет существующий комментарий обсуждения.
  • 'delete' - удаляет комментарий обсуждения.
  • 'mark_answer' - отмечает комментарий обсуждения как ответ (только для вопросов и ответов).
  • 'unmark_answer' - снимает отметку комментария обсуждения как ответа (только для вопросов и ответов). (строка, обязательна)
  • owner: Владелец репозитория (обязательно для методов 'add' и 'reply') (строка, опционально)
  • repo: Название репозитория (обязательно для методов 'add' и 'reply') (строка, опционально)

  • get_discussion - Получить обсуждение

  • Необходимые области доступа OAuth: repo
  • discussionNumber: Номер обсуждения (число, обязательна)
  • owner: Владелец репозитория (строка, обязательна)
  • repo: Название репозитория (строка, обязательна)

  • get_discussion_comments - Получить комментарии обсуждения

  • Необходимые области доступа OAuth: repo
  • after: Курсор для постраничного вывода. Используйте курсор из предыдущего ответа. (строка, опционально)
  • discussionNumber: Номер обсуждения (число, обязательна)
  • includeReplies: Если установлено в true, каждый корневой комментарий будет включать вложенные в него ответы (до 100 ответов на комментарий, что является максимумом для API GitHub). По умолчанию false. (булево, опционально)
  • owner: Владелец репозитория (строка, обязательна)
  • perPage: Результатов на страницу для постраничного вывода (мин. 1, макс. 100) (число, опционально)
  • repo: Название репозитория (строка, обязательна)

  • list_discussion_categories - Вывести список категорий обсуждений

  • Необходимые области доступа OAuth: repo
  • owner: Владелец репозитория (строка, обязательна)
  • repo: Название репозитория. Если не указано, категории обсуждений будут запрошены на уровне организации. (строка, опционально)

  • list_discussions - Вывести список обсуждений

  • Необходимые области доступа OAuth: repo
  • after: Курсор для постраничного вывода. Используйте курсор из предыдущего ответа. (строка, опционально)
  • category: Опциональный фильтр по ID категории обсуждения. Если указан, выводятся только обсуждения этой категории. (строка, опционально)
  • direction: Направление сортировки. (строка, опционально)
  • orderBy: Сортировать обсуждения по полю. Если указано, также необходимо указать 'direction'. (строка, опционально)
  • owner: Владелец репозитория (строка, обязательна)
  • perPage: Результатов на страницу для постраничного вывода (мин. 1, макс. 100) (число, опционально)
  • repo: Название репозитория. Если не указано, обсуждения будут запрошены на уровне организации. (строка, опционально)

Блоки (Gists)

  • create_gist - Создать блок
  • Необходимые области доступа OAuth: gist
  • content: Содержимое для простого создания блока с одним файлом (строка, обязательна)
  • description: Описание блока (строка, опционально)
  • filename: Имя файла для простого создания блока с одним файлом (строка, обязательна)
  • public: Является ли блок публичным (булево, опционально)

  • get_gist - Получить содержимое блока

  • gist_id: ID блока (строка, обязательна)

  • list_gists - Вывести список блоков

  • page: Номер страницы для постраничного вывода (мин. 1) (число, опционально)
  • perPage: Результатов на страницу для постраничного вывода (мин. 1, макс. 100) (число, опционально)
  • since: Только блоки, обновлённые после этого момента (метка времени ISO 8601) (строка, опционально)
  • username: Имя пользователя GitHub (опустите для блоков аутентифицированного пользователя) (строка, опционально)

  • update_gist - Обновить блок

  • Необходимые области доступа OAuth: gist
  • content: Содержимое файла (строка, обязательна)
  • description: Обновлённое описание блока (строка, опционально)
  • filename: Имя файла для обновления или создания (строка, обязательна)
  • gist_id: ID блока для обновления (строка, обязательна)

Git

  • get_repository_tree - Получить дерево репозитория
  • Необходимые области доступа OAuth: repo
  • owner: Владелец репозитория (имя пользователя или организации) (строка, обязательна)
  • path_filter: Опциональный префикс пути для фильтрации результатов дерева (например, 'src/', чтобы показать только файлы в директории src) (строка, опционально)
  • recursive: Если установить этот параметр в true, возвращаются объекты или поддеревья, на которые ссылается дерево. По умолчанию false (булево, опционально)
  • repo: Название репозитория (строка, обязательна)
  • tree_sha: SHA1 значение или имя ссылки (ветки или тега) дерева. По умолчанию используется ветка по умолчанию репозитория (строка, опционально)

Задачи (Issues)

  • add_issue_comment - Добавить комментарий к задаче или запросу на слияние (pull request)
  • Необходимые области доступа OAuth: repo
  • body: Содержимое комментария. Обязательно, если не предоставлен reaction. (строка, опционально)
  • comment_id: Числовой ID комментария задачи или запроса на слияние, на который нужно отреагировать. Используйте это для реакций на комментарии; опустите, чтобы отреагировать на саму задачу или запрос на слияние. Нельзя комбинировать с body. (число, опционально)
  • issue_number: Номер задачи или запроса на слияние, к которому добавляется комментарий или на который реагируют. (число, обязательна)
  • owner: Владелец репозитория (строка, обязательна)
  • reaction: Эмодзи-реакция для добавления. Обязательна, если не предоставлен body. (строка, опционально)
  • repo: Название репозитория (строка, обязательна)

  • get_label - Получить конкретную метку из репозитория

  • Необходимые области доступа OAuth: repo
  • name: Имя метки. (строка, обязательна)
  • owner: Владелец репозитория (имя пользователя или организации) (строка, обязательна)
  • repo: Название репозитория (строка, обязательна)

  • issue_read - Получить детали задачи

  • Необходимые области доступа OAuth: repo
  • issue_number: Номер задачи (число, обязательна)
  • method: Операция чтения для выполнения над одной задачей. Варианты:
  • get - Получить детали задачи. Также возвращает флаги иерархии по мере возможности (has_parent, has_children); parent и sub_issues_summary являются опциональными сводками связей.
  • get_comments - Получить комментарии задачи.
  • get_sub_issues - Получить подзадачи (дети) задачи.
  • get_parent - Получить родительскую задачу, если эта задача является подзадачей другой.
  • get_labels - Получить метки, назначенные задаче. (строка, обязательна)
  • owner: Владелец репозитория (строка, обязательна)
  • page: Номер страницы для постраничного вывода (мин. 1) (число, опционально)
  • perPage: Результатов на страницу для постраничного вывода (мин. 1, макс. 100) (число, опционально)
  • repo: Название репозитория (строка, обязательна)

  • issue_write - Создать или обновить задачу/запрос на слияние

  • Необходимые области доступа OAuth: repo
  • assignees: Имена пользователей для назначения на эту задачу (массив строк, опционально)
  • body: Содержимое тела задачи (строка, опционально)
  • duplicate_of: Номер задачи, дубликатом которой является эта задача. Используется только, если state_reason равен 'duplicate'. (число, опционально)
  • issue_fields: Значения полей задачи для установки или удаления. Каждый элемент требует field_name и ровно одного из: value, field_option_name или delete: true. (массив объектов, опционально)
  • issue_number: Номер задачи для обновления (число, опционально)
  • labels: Метки для применения к этой задаче (массив строк, опционально)
  • method: Операция записи для выполнения над одной задачей. Варианты:
  • 'create' - создаёт новую задачу.
  • 'update' - обновляет существующую задачу. (строка, обязательна)
  • milestone: Номер вехи (число, опционально)
  • owner: Владелец репозитория (строка, обязательна)
  • repo: Название репозитория (строка, обязательна)
  • state: Новое состояние (строка, опционально)
  • state_reason: Причина изменения состояния. Игнорируется, если состояние не изменяется. (строка, необязательно)
  • title: Заголовок проблемы (строка, необязательно)
  • type: Тип этой проблемы. Используйте только если типы проблем включены для этого репозитория. Используйте инструмент list_issue_types, чтобы получить допустимые значения типа для этого репозитория или его организации-владельца. Если репозиторий не поддерживает типы проблем, опустите этот параметр. (строка, необязательно)

  • list_issue_fields - Список полей проблем

  • Требуемые OAuth-области (любые из): repo, read:org
  • Принимаемые OAuth-области: admin:org, read:org, repo, write:org
  • owner: Владелец аккаунта репозитория или организации. Имя не чувствительно к регистру. (строка, обязательно)
  • repo: Имя репозитория. Если указано, возвращает поля для конкретного репозитория (унаследованные от его организации). Если не указано, возвращает напрямую поля уровня организации. (строка, необязательно)

  • list_issue_types - Список доступных типов проблем

  • Требуемые OAuth-области (любые из): repo, read:org
  • Принимаемые OAuth-области: admin:org, read:org, repo, write:org
  • owner: Владелец аккаунта репозитория или организации. (строка, обязательно)
  • repo: Имя репозитория. Если указано, возвращает типы проблем для конкретного репозитория. Если не указано, возвращает напрямую типы проблем уровня организации. (строка, необязательно)

  • list_issues - Список проблем

  • Требуемые OAuth-области: repo
  • after: Курсор для постраничной навигации. Используйте курсор из предыдущего ответа. (строка, необязательно)
  • direction: Направление сортировки. Если указано, также необходимо указать 'orderBy'. (строка, необязательно)
  • field_filters: Фильтрация по пользовательским значениям полей проблем. Каждая запись содержит field_name и value; сервер находит поле и приводит значение к его типу (имя опции выбора из одного варианта, текст, число или дата в формате YYYY-MM-DD). (массив объектов[], необязательно)
  • labels: Фильтрация по меткам (массив строк[], необязательно)
  • orderBy: Сортировка проблем по полю. Если указано, также необходимо указать 'direction'. (строка, необязательно)
  • owner: Владелец репозитория (строка, обязательно)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательно)
  • repo: Имя репозитория (строка, обязательно)
  • since: Фильтрация по дате (метка времени ISO 8601) (строка, необязательно)
  • state: Фильтрация по состоянию, по умолчанию возвращаются как открытые, так и закрытые проблемы, если не указано (строка, необязательно)

  • search_issues - Поиск проблем

  • Требуемые OAuth-области: repo
  • order: Порядок сортировки (строка, необязательно)
  • owner: Необязательный владелец репозитория. Если указан вместе с repo, перечисляются только проблемы этого репозитория. (строка, необязательно)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательно)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательно)
  • query: Поисковый запрос с использованием синтаксиса поиска проблем GitHub (строка, обязательно)
  • repo: Необязательное имя репозитория. Если указано вместе с owner, перечисляются только проблемы этого репозитория. (строка, необязательно)
  • sort: Поле для сортировки по количеству совпадений категорий, по умолчанию используется наилучшее соответствие (строка, необязательно)

  • sub_issue_write - Изменение подзадачи

  • Требуемые OAuth-области: repo
  • after_id: ID подзадачи, после которой должна быть приоритизируема текущая (нужно указать либо after_id, либо before_id) (число, необязательно)
  • before_id: ID подзадачи, перед которой должна быть приоритизируема текущая (нужно указать либо after_id, либо before_id) (число, необязательно)
  • issue_number: Номер родительской проблемы (число, обязательно)
  • method: Действие для выполнения над одной подзадачей Варианты:
  • 'add' - добавить подзадачу к родительской проблеме в репозитории GitHub.
  • 'remove' - удалить подзадачу из родительской проблемы в репозитории GitHub.
  • 'reprioritize' - изменить порядок подзадач в пределах родительской проблемы в репозитории GitHub. Используйте либо 'after_id', либо 'before_id' для указания новой позиции. Записывает иерархию проблем. Чтобы переместить подзадачу к новому родителю, используйте add с replace_parent=true; записываемого поля родителя не существует. (строка, обязательно)
  • owner: Владелец репозитория (строка, обязательно)
  • replace_parent: Если true, заменяет текущую родительскую проблему подзадачи. Используйте только с методом 'add'. (булево, необязательно)
  • repo: Имя репозитория (строка, обязательно)
  • sub_issue_id: ID добавляемой подзадачи. ID не совпадает с номером проблемы (число, обязательно)

Метки

  • get_label - Получить определенную метку из репозитория
  • Требуемые OAuth-области: repo
  • name: Имя метки. (строка, обязательно)
  • owner: Владелец репозитория (имя пользователя или организации) (строка, обязательно)
  • repo: Имя репозитория (строка, обязательно)

  • label_write - Операции записи с метками репозитория

  • Требуемые OAuth-области: repo
  • color: Цвет метки как 6-символьный шестнадцатеричный код без префикса '#' (например, 'f29513'). Обязательно для 'create', необязательно для 'update'. (строка, необязательно)
  • description: Текст описания метки. Необязательно для 'create' и 'update'. (строка, необязательно)
  • method: Выполняемая операция: 'create', 'update' или 'delete' (строка, обязательно)
  • name: Имя метки - обязательно для всех операций (строка, обязательно)
  • new_name: Новое имя для метки (используется только с методом 'update' для переименования) (строка, необязательно)
  • owner: Владелец репозитория (имя пользователя или организации) (строка, обязательно)
  • repo: Имя репозитория (строка, обязательно)

  • list_label - Список меток из репозитория

  • Требуемые OAuth-области: repo
  • owner: Владелец репозитория (имя пользователя или организации) - обязательно для всех операций (строка, обязательно)
  • repo: Имя репозитория - обязательно для всех операций (строка, обязательно)

Уведомления

  • dismiss_notification - Отклонить уведомление
  • Требуемые OAuth-области: notifications
  • state: Новое состояние уведомления (read/done) (строка, обязательно)
  • threadID: ID потока уведомлений (строка, обязательно)

  • get_notification_details - Получить подробности уведомления

  • Требуемые OAuth-области: notifications
  • notificationID: ID уведомления (строка, обязательно)

  • list_notifications - Список уведомлений

  • Требуемые OAuth-области: notifications
  • before: Показывать только уведомления, обновленные до указанного времени (в формате ISO 8601) (строка, необязательно)
  • filter: Фильтровать уведомления по, используйте значение по умолчанию, если не указано. Прочитанные уведомления - это те, которые уже были подтверждены пользователем. Уведомления об участии - это те, в которых пользователь напрямую участвует, например, проблемы или pull-запросы, в которых он комментировал или которые он создал. (строка, необязательно)
  • owner: Необязательный владелец репозитория. Если указан вместе с repo, перечисляются только уведомления для этого репозитория. (строка, необязательно)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательно)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательно)
  • repo: Необязательное имя репозитория. Если указано вместе с owner, перечисляются только уведомления для этого репозитория. (строка, необязательно)
  • since: Показывать только уведомления, обновленные после указанного времени (в формате ISO 8601) (строка, необязательно)

  • manage_notification_subscription - Управление подпиской на уведомления

  • Требуемые OAuth-области: notifications
  • action: Выполняемое действие: игнорировать, отслеживать или удалить подписку на уведомления. (строка, обязательно)
  • notificationID: ID потока уведомлений. (строка, обязательно)

  • manage_repository_notification_subscription - Управление подпиской на уведомления репозитория

  • Требуемые OAuth-области: notifications
  • action: Выполняемое действие: игнорировать, отслеживать или удалить подписку на уведомления репозитория. (строка, обязательно)
  • owner: Владелец аккаунта репозитория. (строка, обязательно)
  • repo: Имя репозитория. (строка, обязательно)

  • mark_all_notifications_read - Пометить все уведомления как прочитанные

  • Требуемые OAuth-области: notifications
  • lastReadAt: Описывает последний момент проверки уведомлений (необязательно). По умолчанию: Сейчас (строка, необязательно)
  • owner: Необязательный владелец репозитория. Если указан вместе с repo, будут помечены как прочитанные только уведомления для этого репозитория. (строка, необязательно)
  • repo: Необязательное имя репозитория. Если указано вместе с owner, будут помечены как прочитанные только уведомления для этого репозитория. (строка, необязательно)

Организации

  • search_orgs — Поиск организаций
  • Необходимые области OAuth: read:org
  • Принимаемые области OAuth: admin:org, read:org, write:org
  • order: Порядок сортировки (строка, необязательно)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательно)
  • perPage: Количество результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательно)
  • query: Запрос поиска организаций. Примеры: 'microsoft', 'location:california', 'created:>=2025-01-01'. Поиск автоматически ограничивается типом: org. (строка, обязательно)
  • sort: Поле для сортировки по категории (строка, необязательно)

Проекты

  • projects_get — Получение деталей ресурсов GitHub Projects
  • Необходимые области OAuth: read:project
  • Принимаемые области OAuth: project, read:project
  • field_id: Идентификатор поля. Обязательно для метода 'get_project_field'. (число, необязательно)
  • field_names: Конкретный список имен полей для включения в ответ при получении элемента проекта (например, ["Status", "Priority"]). Разрешается сервером в идентификаторы полей — передавайте это вместо 'fields', когда вы знаете только человекочитаемые имена. Взаимоисключающе с 'fields' — предоставьте одно, но не оба. Используется только для метода 'get_project_item'. (string[], необязательно)
  • fields: Конкретный список идентификаторов полей для включения в ответ при получении элемента проекта (например, ["102589", "985201", "169875"]). Если не указано ни 'fields', ни 'field_names', включается только поле заголовка. Взаимоисключающе с 'field_names' — предоставьте одно, но не оба. Используется только для метода 'get_project_item'. (string[], необязательно)
  • item_id: Идентификатор элемента. Обязательно для метода 'get_project_item'. (число, необязательно)
  • method: Метод для выполнения (строка, обязательно)
  • owner: Владелец (логин пользователя или организации). Имя не чувствительно к регистру. (строка, необязательно)
  • owner_type: Тип владельца (пользователь или организация). Если не указано, будет определено автоматически. (строка, необязательно)
  • project_number: Номер проекта. (число, необязательно)
  • status_update_id: Узловой идентификатор обновления статуса проекта. Обязательно для метода 'get_project_status_update'. (строка, необязательно)

  • projects_list — Список ресурсов GitHub Projects

  • Необходимые области OAuth: read:project
  • Принимаемые области OAuth: project, read:project
  • after: Курсор прямой постраничной навигации из предыдущего pageInfo.nextCursor. (строка, необязательно)
  • before: Курсор обратной постраничной навигации из предыдущего pageInfo.prevCursor (редко). (строка, необязательно)
  • field_names: Имена полей для включения при перечислении элементов проекта (например, ["Status", "Priority"]). Разрешается сервером в идентификаторы полей — передавайте это вместо 'fields', когда вы знаете только человекочитаемые имена. Имена, которые не удалось разрешить, возвращают структурированную ошибку. Взаимоисключающе с 'fields' — предоставьте одно, но не оба. Используется только для метода 'list_project_items'. (string[], необязательно)
  • fields: Идентификаторы полей для включения при перечислении элементов проекта (например, ["102589", "985201"]). ВАЖНО: Всегда указывайте, чтобы получить значения полей. Без этого (и без 'field_names') возвращаются только заголовки. Взаимоисключающе с 'field_names' — предоставьте одно, но не оба. Используется только для метода 'list_project_items'. (string[], необязательно)
  • method: Действие для выполнения (строка, обязательно)
  • owner: Владелец (логин пользователя или организации). Имя не чувствительно к регистру. (строка, обязательно)
  • owner_type: Тип владельца (пользователь или организация). Если не указано, будет автоматически попробовано и то, и другое. (строка, необязательно)
  • per_page: Результатов на страницу (макс. 50) (число, необязательно)
  • project_number: Номер проекта. Обязательно для методов 'list_project_fields', 'list_project_items' и 'list_project_status_updates'. (число, необязательно)
  • query: Строка фильтра/запроса. Для list_projects: фильтрация по тексту заголовка и состоянию (например, "roadmap is:open"). Для list_project_items: расширенная фильтрация с использованием синтаксиса фильтрации проектов GitHub. (строка, необязательно)

  • projects_write — Управление GitHub Projects

  • Необходимые области OAuth: project
  • body: Текст обновления статуса (в формате markdown). Используется для метода 'create_project_status_update'. (строка, необязательно)
  • field_name: Имя поля итерации (например, 'Sprint'). Обязательно для метода 'create_iteration_field'. (строка, необязательно)
  • issue_number: Номер issue. Обязательно для 'add_project_item', когда item_type равен 'issue'. Также принимается 'update_project_item' для определения элемента по номеру issue (в комбинации с item_owner и item_repo). (число, необязательно)
  • item_id: Идентификатор элемента проекта. Обязательно для 'delete_project_item'. Для 'update_project_item' предоставьте либо item_id, либо (item_owner + item_repo + issue_number) для определения элемента по issue. (число, необязательно)
  • item_owner: Владелец (пользователь или организация) репозитория, содержащего issue или pull request. Обязательно для метода 'add_project_item'. Также принимается 'update_project_item' при определении элемента по номеру issue. (строка, необязательно)
  • item_repo: Имя репозитория, содержащего issue или pull request. Обязательно для метода 'add_project_item'. Также принимается 'update_project_item' при определении элемента по номеру issue. (строка, необязательно)
  • item_type: Тип элемента: issue или pull_request. Обязательно для метода 'add_project_item'. (строка, необязательно)
  • iteration_duration: Длительность в днях для итераций поля (например, 7 для еженедельных, 14 для раз в две недели). Обязательно для метода 'create_iteration_field'. (число, необязательно)
  • iterations: Пользовательские итерации для метода 'create_iteration_field'. Устанавливайте это только тогда, когда вам нужны итерации с разной длительностью, перерывами между ними или специфическими названиями. В противном случае опустите это: GitHub автоматически создаст три итерации по 'iteration_duration' дней, начиная с 'start_date', что является правильным выбором для большинства случаев. (object[], необязательно)
  • method: Метод для выполнения (строка, обязательно)
  • owner: Владелец проекта (логин пользователя или организации). Имя не чувствительно к регистру. (строка, обязательно)
  • owner_type: Тип владельца (пользователь или организация). Обязательно для метода 'create_project'. Если не указано для других методов, будет определено автоматически. (строка, необязательно)
  • project_number: Номер проекта. Обязательно для всех методов, кроме 'create_project'. (число, необязательно)
  • pull_request_number: Номер pull request (используйте, когда item_type равен 'pull_request', для метода 'add_project_item'). Укажите либо issue_number, либо pull_request_number. (число, необязательно)
  • start_date: Дата начала в формате YYYY-MM-DD. Используется для методов 'create_project_status_update' и 'create_iteration_field'. (строка, необязательно)
  • status: Статус проекта. Используется для метода 'create_project_status_update'. (строка, необязательно)
  • target_date: Целевая дата обновления статуса в формате YYYY-MM-DD. Используется для метода 'create_project_status_update'. (строка, необязательно)
  • title: Название проекта. Обязательно для метода 'create_project'. (строка, необязательно)
  • updated_field: Объект, описывающий обновляемое поле и его новое значение. Обязательно для 'update_project_item'. Принимаются две формы: (1) по ID — {"id": 123456, "value": "..."}; (2) по имени — {"name": "Status", "value": "In Progress"}. Для полей с одним выбором разрешение имени опции требует формы по имени; для формы по ID передавайте ID опции. Установите значение в null, чтобы очистить поле. (object, необязательно)

Pull Requests

  • add_comment_to_pending_review — Добавить комментарий к незавершенному отзыву запрашивающего для последнего ожидающего отзыва pull request
  • Требуемые области OAuth: repo
  • body: Текст комментария к ревью (строка, обязательный)
  • line: Строка блоба в diff pull request, к которой относится комментарий. Для многострочных комментариев — последняя строка диапазона (число, необязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • path: Относительный путь к файлу, требующему комментария (строка, обязательный)
  • pullNumber: Номер pull request (число, обязательный)
  • repo: Название репозитория (строка, обязательный)
  • side: Сторна diff, к которой относится комментарий. LEFT обозначает предыдущее состояние, RIGHT — новое состояние (строка, необязательный)
  • startLine: Для многострочных комментариев — первая строка диапазона, к которому относится комментарий (число, необязательный)
  • startSide: Для многострочных комментариев — начальная сторна diff, к которому относится комментарий. LEFT обозначает предыдущее состояние, RIGHT — новое состояние (строка, необязательный)
  • subjectType: Уровень, на который нацелен комментарий (строка, обязательный)

  • add_reply_to_pull_request_comment — Добавить ответ на комментарий pull request

  • Требуемые области OAuth: repo
  • body: Текст ответа. Обязателен, если не указан reaction. (строка, необязательный)
  • commentId: Числовой ID комментария к ревью pull request, на который нужно ответить или на который нужно отреагировать. Используйте число из якоря #discussion_r..., а не н GraphQL-узел потока (PRRT_...). (число, обязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • pullNumber: Номер pull request. Обязателен, если указан body. (число, необязательный)
  • reaction: Эмодзи-реакция для добавления. Обязательна, если не указан body. (строка, необязательный)
  • repo: Название репозитория (строка, обязательный)

  • create_pull_request — Открыть новый pull request

  • Требуемые области OAuth: repo
  • base: Ветка для слияния (строка, обязательный)
  • body: Описание PR (строка, необязательный)
  • draft: Создать как черновик PR (булев, необязательный)
  • head: Ветка, содержащая изменения (строка, обязательный)
  • maintainer_can_modify: Разрешить редактирование мейнтейнерам (булев, необязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • repo: Название репозитория (строка, обязательный)
  • reviewers: Имена пользователей GitHub или ORG/team-slug группы ревьюеров для запроса ревью (string[], необязательный)
  • title: Заголовок PR (строка, обязательный)

  • list_pull_requests — Вывести список pull request'ов

  • Требуемые области OAuth: repo
  • base: Фильтр по базовой ветке (строка, необязательный)
  • direction: Направление сортировки (строка, необязательный)
  • head: Фильтр по пользователю/организации и ветке head (строка, необязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательный)
  • repo: Название репозитория (строка, обязательный)
  • sort: Сортировка по (строка, необязательный)
  • state: Фильтр по состоянию (строка, необязательный)

  • merge_pull_request — Слить pull request

  • Требуемые области OAuth: repo
  • commit_message: Дополнительные сведения для коммита слияния (строка, необязательный)
  • commit_title: Заголовок коммита слияния (строка, необязательный)
  • merge_method: Метод слияния (строка, необязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • pullNumber: Номер pull request (число, обязательный)
  • repo: Название репозитория (строка, обязательный)

  • pull_request_read — Получить подробности об отдельном pull request

  • Требуемые области OAuth: repo
  • after: Курсор для постраничной навигации, используется только методом get_review_comments. Передайте endCursor из PageInfo предыдущей страницы для получения следующей страницы. (строка, необязательный)
  • 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. Возвращает потоки с метаданными (isResolved, isOutdated, isCollapsed) и связанные с ними комментарии. Используйте курсорную постраничную навигацию (perPage, after) для управления результатами.
  • get_reviews — Получить ревью в pull request. Когда запрашиваются комментарии к ревью, используйте метод get_review_comments. Используйте с параметрами постраничной навигации для управления количеством возвращаемых результатов.
  • get_comments — Получить комментарии в pull request. Используйте этот метод, если пользователь не хочет специально комментарии к ревью. Используйте с параметрами постраничной навигации для управления количеством возвращаемых результатов.
  • get_check_runs — Получить проверки для коммита head в pull request. Проверки — это отдельные задачи CI/CD и проверки, которые выполняются в PR. (строка, обязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательный)
  • pullNumber: Номер pull request (число, обязательный)
  • repo: Название репозитория (строка, обязательный)

  • pull_request_review_write — Операции записи (создание, отправка, удаление) для ревью pull request

  • Требуемые области OAuth: repo
  • body: Текст комментария к ревью (строка, необязательный)
  • commitID: SHA коммита для ревью (строка, необязательный)
  • event: Действие ревью для выполнения. (строка, необязательный)
  • method: Операция записи для выполнения над ревью pull request. (строка, обязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • pullNumber: Номер pull request (число, обязательный)
  • repo: Название репозитория (строка, обязательный)
  • threadId: Node ID потока ревью (например, PRRT_kwDOxxx). Обязателен для методов resolve_thread и unresolve_thread. Получите ID потоков из pull_request_read с методом get_review_comments. (строка, необязательный)

  • search_pull_requests — Поиск pull request'ов

  • Требуемые области OAuth: repo
  • order: Порядок сортировки (строка, необязательный)
  • owner: Владелец репозитория (необязательный). Если указан вместе с repo, выводятся только pull request'ы этого репозитория. (строка, необязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательный)
  • query: Поисковый запрос с использованием синтаксиса поиска pull request'ов GitHub (строка, обязательный)
  • repo: Название репозитория (необязательный). Если указано вместе с owner, выводятся только pull request'ы этого репозитория. (строка, необязательный)
  • sort: Поле сортировки по количеству совпадений категорий, по умолчанию лучшее совпадение (строка, необязательный)

  • update_pull_request — Редактировать pull request

  • Требуемые области OAuth: repo
  • base: Новое имя базовой ветки (строка, необязательный)
  • body: Новое описание (строка, необязательный)
  • draft: Отметить pull request как черновик (true) или готовый к ревью (false) (булев, необязательный)
  • maintainer_can_modify: Разрешить редактирование мейнтейнерам (булев, необязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • pullNumber: Номер pull request для обновления (число, обязательный)
  • repo: Название репозитория (строка, обязательный)
  • reviewers: Имена пользователей GitHub или ORG/team-slug группы ревьюеров для запроса ревью (string[], необязательный)
  • state: Новое состояние (строка, необязательный)
  • title: Новый заголовок (строка, необязательный)

  • update_pull_request_branch — Обновить ветку pull request

  • Требуемые области OAuth: repo
  • expectedHeadSha: Ожидаемый SHA ссылки HEAD pull request (строка, необязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • pullNumber: Номер pull request (число, обязательный)
  • repo: Название репозитория (строка, обязательный)

Репозитории

  • create_branch — Создать ветку
  • Требуемые области OAuth: repo
  • branch: Имя новой ветки (строка, обязательный)
  • from_branch: Исходная ветка (по умолчанию ветка по умолчанию репозитория) (строка, необязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • repo: Название репозитория (строка, обязательный)

  • create_or_update_file — Создать или обновить файл

  • Требуемые области OAuth: repo
  • branch: Ветка, в которой создаётся/обновляется файл (строка, обязательный)
  • content: Содержимое файла (строка, обязательный)
  • message: Сообщение коммита (строка, обязательный)
  • owner: Владелец репозитория (имя пользователя или организация) (строка, обязательный)
  • create_repository - Создать репозиторий
  • Необходимые OAuth-области: repo
  • autoInit: Инициализировать с README (булево, необязательный)
  • description: Описание репозитория (строка, необязательный)
  • name: Имя репозитория (строка, обязательный)
  • organization: Организация для создания репозитория (если не указано, создаётся в личном аккаунте) (строка, необязательный)
  • private: Должен ли репозиторий быть приватным. По умолчанию true (приватный), если не указано. (булево, необязательный)

  • delete_file - Удалить файл

  • Необходимые OAuth-области: repo
  • branch: Ветка, из которой удаляется файл (строка, обязательный)
  • message: Сообщение коммита (строка, обязательный)
  • owner: Владелец репозитория (имя пользователя или организации) (строка, обязательный)
  • path: Путь к удаляемому файлу (строка, обязательный)
  • repo: Имя репозитория (строка, обязательный)

  • fork_repository - Форкнуть репозиторий

  • Необходимые OAuth-области: repo
  • organization: Организация для форка (строка, необязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • repo: Имя репозитория (строка, обязательный)

  • get_commit - Получить информацию о коммите

  • Необходимые OAuth-области: repo
  • detail: Уровень детализации для изменённых файлов. "none" полностью исключает статистику и файлы. "stats" (по умолчанию) включает метаданные для каждого файла: имя файла, статус и количество строк кода (добавлено, удалено, изменено), без содержимого патча. "full_patch" дополнительно включает объединённое содержимое диффа для каждого файла, что может быть очень объёмным. (строка, необязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательный)
  • repo: Имя репозитория (строка, обязательный)
  • sha: SHA коммита, имя ветки или имя тега (строка, обязательный)

  • get_file_contents - Получить содержимое файла или директории

  • Необходимые OAuth-области: repo
  • owner: Владелец репозитория (имя пользователя или организации) (строка, обязательный)
  • path: Путь к файлу/директории (строка, необязательный)
  • ref: Принимает необязательные git-ссылки, такие как refs/tags/{tag}, refs/heads/{branch} или refs/pull/{pr_number}/head (строка, необязательный)
  • repo: Имя репозитория (строка, обязательный)
  • sha: Принимает необязательный SHA коммита. Если указан, будет использоваться вместо ref (строка, необязательный)

  • get_latest_release - Получить последний релиз

  • Необходимые OAuth-области: repo
  • owner: Владелец репозитория (строка, обязательный)
  • repo: Имя репозитория (строка, обязательный)

  • get_release_by_tag - Получить релиз по имени тега

  • Необходимые OAuth-области: repo
  • owner: Владелец репозитория (строка, обязательный)
  • repo: Имя репозитория (строка, обязательный)
  • tag: Имя тега (например, 'v1.0.0') (строка, обязательный)

  • get_tag - Получить информацию о теге

  • Необходимые OAuth-области: repo
  • owner: Владелец репозитория (строка, обязательный)
  • repo: Имя репозитория (строка, обязательный)
  • tag: Имя тега (строка, обязательный)

  • list_branches - Список веток

  • Необходимые OAuth-области: repo
  • owner: Владелец репозитория (строка, обязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательный)
  • repo: Имя репозитория (строка, обязательный)

  • list_commits - Список коммитов

  • Необходимые OAuth-области: repo
  • author: Имя пользователя или адрес электронной почты автора для фильтрации коммитов (строка, необязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательный)
  • path: Будут возвращены только коммиты, содержащие этот путь к файлу (строка, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательный)
  • repo: Имя репозитория (строка, обязательный)
  • sha: SHA коммита, имя ветки или тега для списка коммитов. Если не указано, используется ветка по умолчанию в репозитории. Если указан SHA коммита, будут перечислены коммиты вплоть до этого SHA. (строка, необязательный)
  • since: Будут возвращены только коммиты после этой даты (формат ISO 8601: YYYY-MM-DDTHH:MM:SSZ или YYYY-MM-DD) (строка, необязательный)
  • until: Будут возвращены только коммиты до этой даты (формат ISO 8601: YYYY-MM-DDTHH:MM:SSZ или YYYY-MM-DD) (строка, необязательный)

  • list_releases - Список релизов

  • Необходимые OAuth-области: repo
  • owner: Владелец репозитория (строка, обязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательный)
  • repo: Имя репозитория (строка, обязательный)

  • list_repository_collaborators - Список соавторов репозитория

  • Необходимые OAuth-области: repo
  • affiliation: Фильтр по принадлежности. Может быть одним из: 'outside' (внешние соавторы), 'direct' (все, имеющие разрешения, независимо от членства в организации), 'all' (все соавторы). По умолчанию: 'all' (строка, необязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • page: Номер страницы для постраничной навигации (по умолчанию 1, мин. 1) (число, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (по умолчанию 30, мин. 1, макс. 100) (число, необязательный)
  • repo: Имя репозитория (строка, обязательный)

  • list_tags - Список тегов

  • Необходимые OAuth-области: repo
  • owner: Владелец репозитория (строка, обязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательный)
  • repo: Имя репозитория (строка, обязательный)

  • push_files - Отправить файлы в репозиторий

  • Необходимые OAuth-области: repo
  • branch: Ветка для отправки (строка, обязательный)
  • files: Массив объектов файлов для отправки, каждый объект содержит путь (строка) и содержимое (строка) (объект[], обязательный)
  • message: Сообщение коммита (строка, обязательный)
  • owner: Владелец репозитория (строка, обязательный)
  • repo: Имя репозитория (строка, обязательный)

  • search_code - Поиск кода

  • Необходимые OAuth-области: repo
  • order: Порядок сортировки результатов (строка, необязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательный)
  • query: Поисковый запрос (REST-поиск кода GitHub). Неявное AND между терминами; поддерживает OR, NOT и "phrase in quotes" для точного совпадения. Квалификаторы: 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. (строка, обязательный)
  • sort: Поле сортировки (только 'indexed') (строка, необязательный)

  • search_commits - Поиск коммитов

  • Необходимые OAuth-области: repo
  • order: Порядок сортировки (строка, необязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательный)
  • query: Поисковый запрос коммитов (REST-поиск коммитов GitHub). Ищет сообщения коммитов только в ветке по умолчанию. Ограничьте область поиска с помощью repo:owner/repo, org: или user: (запросы без квалификатора области ищут по всему GitHub и обычно не дают нужного результата). Другие квалификаторы: author:, committer:, author-name:, committer-name:, author-email:, committer-email:, author-date:, committer-date: (поддерживает операторы >, <, >=, <= и диапазоны YYYY-MM-DD..YYYY-MM-DD), merge:true|false, hash:, tree:, parent:, is:public. Примеры: repo:owner/repo fix panic; org:github author:defunkt committer-date:>=2024-01-01; "refactor cache" repo:o/r; hash:abc1234 repo:o/r. (строка, обязательный)
  • sort: Сортировать по дате автора или коммиттера (по умолчанию лучшее совпадение) (строка, необязательный)

  • search_repositories - Поиск репозиториев

  • Необходимые OAuth-области: repo
  • minimal_output: Возвращать минимальную информацию о репозитории (по умолчанию: true). Когда false, возвращает полные объекты репозитория из GitHub API. (булево, необязательный)
  • order: Порядок сортировки (строка, необязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, необязательный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, необязательный)
  • query: Поисковый запрос репозиториев. Примеры: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'. Поддерживает расширенный синтаксис поиска для точной фильтрации. (строка, обязательный)
  • sort: Сортировать репозитории по полю, по умолчанию лучшее совпадение (строка, необязательный)
shield-lock Защита секретов
  • get_secret_scanning_alert - Получить оповещение о сканировании секретов
  • Обязательные OAuth области: security_events
  • Допустимые OAuth области: repo, security_events
  • alertNumber: Номер оповещения. (число, обязательный)
  • owner: Владелец репозитория. (строка, обязательный)
  • repo: Имя репозитория. (строка, обязательный)

  • list_secret_scanning_alerts - Список оповещений о сканировании секретов

  • Обязательные OAuth области: security_events
  • Допустимые OAuth области: repo, security_events
  • owner: Владелец репозитория. (строка, обязательный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, опциональный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, опциональный)
  • repo: Имя репозитория. (строка, обязательный)
  • resolution: Фильтр по статусу решения (строка, опциональный)
  • secret_type: Список типов секретов через запятую для возврата. По умолчанию возвращаются все стандартные шаблоны секретов. Чтобы вернуть универсальные шаблоны, передайте имя токена(ов) в параметре. (строка, опциональный)
  • state: Фильтр по состоянию (строка, опциональный)

Советы по безопасности

  • get_global_security_advisory - Получить глобальный совет по безопасности
  • Обязательные OAuth области: security_events
  • Допустимые OAuth области: repo, security_events
  • ghsaId: Идентификатор Совета по безопасности GitHub (формат: GHSA-xxxx-xxxx-xxxx). (строка, обязательный)

  • list_global_security_advisories - Список глобальных советов по безопасности

  • Обязательные OAuth области: security_events
  • Допустимые OAuth области: repo, security_events
  • affects: Фильтр советов по затронутому пакету или версии (например, "package1,package2@1.0.0"). (строка, опциональный)
  • cveId: Фильтр по идентификатору CVE. (строка, опциональный)
  • cwes: Фильтр по идентификаторам Common Weakness Enumeration (например, ["79", "284", "22"]). (массив строк, опциональный)
  • ecosystem: Фильтр по экосистеме пакетов. (строка, опциональный)
  • ghsaId: Фильтр по идентификатору Совета по безопасности GitHub (формат: GHSA-xxxx-xxxx-xxxx). (строка, опциональный)
  • isWithdrawn: Возвращать только отозванные советы. (булевый, опциональный)
  • modified: Фильтр по дате публикации или обновления или диапазону дат (дата или диапазон в формате ISO 8601). (строка, опциональный)
  • published: Фильтр по дате публикации или диапазону дат (дата или диапазон в формате ISO 8601). (строка, опциональный)
  • severity: Фильтр по серьезности. (строка, опциональный)
  • type: Тип совета. (строка, опциональный)
  • updated: Фильтр по дате обновления или диапазону дат (дата или диапазон в формате ISO 8601). (строка, опциональный)

  • list_org_repository_security_advisories - Список советов по безопасности репозиториев организации

  • Обязательные OAuth области: security_events
  • Допустимые OAuth области: repo, security_events
  • direction: Направление сортировки. (строка, опциональный)
  • org: Имя для входа в организацию. (строка, обязательный)
  • sort: Поле сортировки. (строка, опциональный)
  • state: Фильтр по состоянию совета. (строка, опциональный)

  • list_repository_security_advisories - Список советов по безопасности репозитория

  • Обязательные OAuth области: security_events
  • Допустимые OAuth области: repo, security_events
  • direction: Направление сортировки. (строка, опциональный)
  • owner: Владелец репозитория. (строка, обязательный)
  • repo: Имя репозитория. (строка, обязательный)
  • sort: Поле сортировки. (строка, опциональный)
  • state: Фильтр по состоянию совета. (строка, опциональный)

Избранные

  • list_starred_repositories - Список избранных репозиториев
  • Обязательные OAuth области: repo
  • direction: Направление сортировки результатов. (строка, опциональный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, опциональный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, опциональный)
  • sort: Как сортировать результаты. Может быть 'created' (когда репозиторий был добавлен в избранное) или 'updated' (когда в репозиторий последний раз вносили изменения). (строка, опциональный)
  • username: Имя пользователя для списка его избранных репозиториев. По умолчанию — текущий аутентифицированный пользователь. (строка, опциональный)

  • star_repository - Добавить репозиторий в избранное

  • Обязательные OAuth области: repo
  • owner: Владелец репозитория (строка, обязательный)
  • repo: Имя репозитория (строка, обязательный)

  • unstar_repository - Убрать репозиторий из избранного

  • Обязательные OAuth области: repo
  • owner: Владелец репозитория (строка, обязательный)
  • repo: Имя репозитория (строка, обязательный)

Пользователи

  • search_users - Поиск пользователей
  • Обязательные OAuth области: repo
  • order: Порядок сортировки (строка, опциональный)
  • page: Номер страницы для постраничной навигации (мин. 1) (число, опциональный)
  • perPage: Результатов на страницу для постраничной навигации (мин. 1, макс. 100) (число, опциональный)
  • query: Запрос поиска пользователей. Примеры: 'john smith', 'location:seattle', 'followers:>100'. Поиск автоматически ограничивается типом: user. (строка, обязательный)
  • sort: Сортировка пользователей по количеству подписчиков или репозиториев, или по дате присоединения к GitHub. (строка, опциональный)

Дополнительные инструменты в удалённом GitHub MCP Server

Copilot

  • create_pull_request_with_copilot - Выполнить задачу с помощью агента кодирования GitHub Copilot
  • owner: Владелец репозитория. Вы можете предположить владельца, но подтвердите это у пользователя перед продолжением. (строка, обязательный)
  • repo: Имя репозитория. Вы можете предположить имя репозитория, но подтвердите это у пользователя перед продолжением. (строка, обязательный)
  • problem_statement: Подробное описание выполняемой задачи (например, 'Реализовать функцию, которая делает X', 'Исправить баг Y' и т.д.) (строка, обязательный)
  • title: Заголовок для создаваемого pull request (строка, обязательный)
  • base_ref: Git-ссылка (например, ветка), с которой агент начнёт свою работу. Если не указана, по умолчанию используется ветка по умолчанию репозитория (строка, опциональный)

Copilot Spaces

  • Примечание по аутентификации
  • Тонко настроенные PAT не скрываются фильтрацией областей классических PAT, поэтому эти инструменты могут отображаться, даже если токен не может их использовать.
  • Для пространств, принадлежащих организации, тонко настроенные PAT должны быть установлены в организации-владельце и включать organization_copilot_spaces: read.
  • Если пространство, принадлежащее организации, содержит ресурсы, привязанные к репозиторию, токен также должен иметь доступ ко всем указанным репозиториям, иначе пространство может быть расценено как не найденное.

  • get_copilot_space - Получить Copilot Space

  • owner: Владелец пространства. (строка, обязательный)
  • name: Имя пространства. (строка, обязательный)

  • list_copilot_spaces - Список Copilot Spaces

Поиск в документации GitHub Support

  • github_support_docs_search - Получение документации, релевантной для ответа на вопросы о продуктах и поддержке GitHub. Темы поддержки включают: GitHub Actions Workflows, Аутентификацию, Запросы в поддержку GitHub, Практики Pull Request, Обслуживание репозиториев, GitHub Pages, GitHub Packages, GitHub Discussions, Copilot Spaces
  • query: Ввод от пользователя с вопросом, на который нужно ответить. Это последнее неотредактированное сообщение пользователя. Вы ВСЕГДА должны оставлять сообщение пользователя как есть, вы НИКОГДА не должны его изменять. (строка, обязательный)

Режим «Только чтение»

Для запуска сервера в режиме «Только чтение» можно использовать флаг --read-only. В этом режиме будут доступны только инструменты для чтения, что предотвратит любые изменения репозиториев, задач, pull request и т.д.

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

При использовании Docker можно передать режим «Только чтение» в качестве переменной окружения:

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

Режим «Блокировка»

Режим изоляции ограничивает контент, который сервер выводит из публичных репозиториев. Если он включён, сервер проверяет, имеет ли автор каждого элемента доступ к записи в репозиторий. Приватные репозитории не затронуты, а collaborators сохраняют полный доступ к своему контенту.

./github-mcp-server --lockdown-mode

При запуске через Docker установите соответствующую переменную окружения:

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

Поведение режима изоляции зависит от вызываемого инструмента.

Следующие инструменты вернут ошибку, если у автора нет доступа к записи:

  • issue_read:get
  • pull_request_read:get

Следующие инструменты будут отфильтровывать контент от пользователей без доступа к записи:

  • 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 этого модуля в настоящее время следует считать нестабильным и подверженным ломающим изменениям. В будущем мы можем обеспечить стабильность; пожалуйста, создайте проблему, если существует конкретный случай использования, где это было бы ценно.

Участие в разработке

Приглашаем к участию. Перед созданием pull requestа, пожалуйста, прочитайте руководство по участию для получения инструкций по настройке, тестированию, проверке кода и генерации документации.

Поддержка

Для получения помощи по использованию GitHub MCP Server см. руководство поддержки. Если вы нашли ошибку или хотите запросить функционал, пожалуйста, сначала поискайте по существующим проблемам, прежде чем создавать новую.

Безопасность

Пожалуйста, не сообщайте об уязвимостях безопасности через публичные проблемы. Следуйте инструкциям в политике безопасности для ответственного отчёта об уязвимостях.

Лицензия

Проект лицензирован в соответствии с условиями открытой лицензии MIT. Пожалуйста, ознакомьтесь с MIT для получения полных условий.

Комментарии
Войдите, чтобы оставить комментарий