GitHub MCP

официальный

Официальный MCP-сервер GitHub для поиска репозиториев, задач, запросов на включение изменений, контекста кода и рабочих процессов GitHub в MCP-совместимых AI-клиентах.

Что можно делать с Git Hub MCP?

  • Просматривайте и ищите репозитории — Попросите вашего ассистента найти файлы, прочитать код или проанализировать историю коммитов с помощью инструментов из набора repos.
  • Управляйте задачами и запросами на слияние — Создавайте, обновляйте и сортируйте задачи или PR с помощью инструментов из наборов issues и pull_requests.
  • Отслеживайте CI/CD рабочие процессы — Проверяйте статус выполнения GitHub Actions, расследуйте сбои сборок и управляйте релизами через набор инструментов actions.
  • Проверяйте оповещения о безопасности кода — Изучайте результаты сканирования кода, оповещения Dependabot и результаты сканирования секретов с помощью наборов инструментов code_security, dependabot и secret_protection.
  • Сотрудничайте в обсуждениях и проектах — Получайте доступ к командным обсуждениям, управляйте досками проектов и обрабатывайте уведомления через наборы инструментов discussions, projects и notifications.

Документация

Go Report Card

GitHub MCP Server

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

Варианты использования

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

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


Удаленный GitHub MCP Server

Install in VS Code Install in VS Code Insiders Install in Visual Studio

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

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

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

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

Install with Docker in VS Code Install with Docker in VS Code Insiders Install with Docker in 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 App (требуется для GitHub Enterprise Server и ghe.com).

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

Безопасное обращение с PAT

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

Чтобы сохранить ваш GitHub PAT в безопасности и повторно использовать в разных MCP-хостах:

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

    export GITHUB_PAT=your_token_here
    

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

    GITHUB_PAT=your_token_here
    
  2. Защитите ваш файл .env

    # Add to .gitignore to prevent accidental commits
    echo ".env" >> .gitignore
    
  3. Укажите токен в конфигурациях

    # 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 добавьте к имени хоста префикс схемы 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

Для быстрой установки используйте одну из кнопок установки в один клик выше. После завершения этого процесса переключите режим Agent (находится рядом с полем ввода текста 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 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 Server. Однако конкретный процесс настройки, синтаксис и стабильность интеграции будут зависеть от хост-приложения. Хотя многие могут следовать формату, аналогичному приведенным выше примерам, это не гарантируется. Пожалуйста, обратитесь к документации вашего хост-приложения для получения правильного синтаксиса конфигурации 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 включает несколько подкоманд CLI, полезных для отладки и исследования сервера.

  • github-mcp-server tool-search "<query>" выполняет поиск инструментов по имени, описанию и именам входных параметров. Используйте --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 доступны вашим инструментам ИИ. Включение только необходимых наборов инструментов может помочь LLM с выбором инструментов и уменьшить размер контекста.

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

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

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

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

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

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

    github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security
    
  2. Использование переменной окружения:

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

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

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

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

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

    github-mcp-server --tools get_file_contents,issue_read,create_pull_request
    
  2. Использование переменной окружения:

    GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" ./github-mcp-server
    
  3. Комбинирование с наборами инструментов (аддитивно):

    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

Режим инсайдера

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

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

    ./github-mcp-server --insiders
    
  2. Использование переменной окружения:

    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

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

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

Набор инструментовОписание
personcontextНастоятельно рекомендуется: Инструменты, предоставляющие контекст о текущем пользователе и среде GitHub, в которой вы работаете
workflowactionsРабочие процессы GitHub Actions и операции CI/CD
code-squarecode_qualityИнструменты, связанные с качеством кода GitHub
codescancode_securityИнструменты, связанные с безопасностью кода, такие как GitHub Code Scanning
copilotcopilotИнструменты, связанные с Copilot
dependabotdependabotИнструменты Dependabot
comment-discussiondiscussionsИнструменты, связанные с GitHub Discussions
logo-gistgistsИнструменты, связанные с GitHub Gist
git-branchgitИнструменты, связанные с GitHub Git API для низкоуровневых операций Git
issue-openedissuesИнструменты, связанные с GitHub Issues
taglabelsИнструменты, связанные с GitHub Labels
bellnotificationsИнструменты, связанные с GitHub Notifications
organizationorgsИнструменты, связанные с GitHub Organization
projectprojectsИнструменты, связанные с GitHub Projects
git-pull-requestpull_requestsИнструменты, связанные с GitHub Pull Request
reporeposИнструменты, связанные с GitHub Repository
shield-locksecret_protectionИнструменты, связанные с защитой секретов, такие как GitHub Secret Scanning
shieldsecurity_advisoriesИнструменты, связанные с рекомендациями по безопасности
starstargazersИнструменты, связанные с GitHub Stargazers
peopleusersИнструменты, связанные с GitHub User

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

Набор инструментовОписание
copilotИнструменты, связанные с Copilot (например, Copilot Coding Agent)
copilot_spacesИнструменты, связанные с Copilot Spaces
github_support_docs_searchПоиск документации для ответа на вопросы о продуктах и поддержке GitHub

Инструменты

workflow Actions
  • actions_get - Получение деталей ресурсов GitHub Actions (рабочие процессы, запуски рабочих процессов, задания и артефакты)

    • Необходимые области OAuth: repo
    • method: Метод для выполнения (строка, обязательно)
    • owner: Владелец репозитория (строка, обязательно)
    • repo: Имя репозитория (строка, обязательно)
    • resource_id: Уникальный идентификатор ресурса. Он будет варьироваться в зависимости от предоставленного "метода", поэтому убедитесь, что вы указали правильный ID:
      • Укажите ID рабочего процесса или имя файла рабочего процесса (например, ci.yaml) для метода 'get_workflow'.
      • Укажите ID запуска рабочего процесса для методов 'get_workflow_run', 'get_workflow_run_usage' и 'get_workflow_run_logs_url'.
      • Укажите ID артефакта для метода 'download_workflow_run_artifact'.
      • Укажите ID задания для метода 'get_workflow_job'. (строка, обязательно)
  • actions_list - Список рабочих процессов GitHub Actions в репозитории

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

    • Необходимые области OAuth: repo
    • inputs: Входные данные, принимаемые рабочим процессом. Используется только для метода 'run_workflow'. (объект, необязательно)
    • method: Метод для выполнения (строка, обязательно)
    • owner: Владелец репозитория (строка, обязательно)
    • ref: Ссылка git для рабочего процесса. Ссылкой может быть имя ветки или тега. Обязательно для метода 'run_workflow'. (строка, необязательно)
    • repo: Имя репозитория (строка, обязательно)
    • run_id: ID запуска рабочего процесса. Обязательно для всех методов, кроме 'run_workflow'. (число, необязательно)
    • workflow_id: ID рабочего процесса (числовой) или имя файла рабочего процесса (например, 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: Количество строк, возвращаемых из конца журнала (число, необязательно)
code-square Code Quality - **get_code_quality_finding** - Получить результат проверки качества кода - **Необходимые области OAuth**: `repo` - `findingNumber`: Номер результата. (число, обязательно) - `owner`: Владелец репозитория. (строка, обязательно) - `repo`: Название репозитория. (строка, обязательно)
codescan Безопасность кода
  • 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: Название инструмента, использованного для сканирования кода. (строка, необязательно)
person Контекст
  • 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 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: Номер запроса на вытягивание (число, обязательно)
    • repo: Название репозитория (строка, обязательно)
dependabot 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 (строка, необязательно)
comment-discussion Обсуждения
  • 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' — отмечает комментарий обсуждения как ответ (только для Q&A).
      • 'unmark_answer' — снимает отметку ответа с комментария обсуждения (только для Q&A). (строка, обязательно)
    • 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: Название репозитория. Если не указано, обсуждения будут запрошены на уровне организации. (строка, необязательно)
logo-gist Gists
  • create_gist - Создать Gist

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

    • gist_id: ID gist (строка, обязательно)
  • list_gists - Список Gists

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

    • Необходимые области OAuth: gist
    • content: Содержимое файла (строка, обязательно)
    • description: Обновленное описание gist (строка, необязательно)
    • filename: Имя файла для обновления или создания (строка, обязательно)
    • gist_id: ID gist для обновления (строка, обязательно)
git-branch Git
  • get_repository_tree - Получить дерево репозитория
    • Необходимые области OAuth: repo
    • owner: Владелец репозитория (имя пользователя или организация) (строка, обязательно)
    • path_filter: Дополнительный префикс пути для фильтрации результатов дерева (например, 'src/', чтобы показать только файлы в директории src) (строка, необязательно)
    • recursive: Установка этого параметра в true возвращает объекты или поддеревья, на которые ссылается дерево. По умолчанию false (логическое, необязательно)
    • repo: Название репозитория (строка, обязательно)
    • tree_sha: Значение SHA1 или имя ссылки (ветки или тега) дерева. По умолчанию используется ветка репозитория по умолчанию (строка, необязательно)
issue-opened Задачи
  • add_issue_comment - Добавить комментарий к задаче или запросу на вытягивание

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

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

    • Требуемые области OAuth: repo
    • issue_number: Номер задачи (число, обязательно)
    • method: Операция чтения, выполняемая над одной задачей. Варианты:
      1. get — Получить сведения о задаче. Также возвращает флаги иерархии по лучшей возможности (has_parent, has_children); parent и sub_issues_summary — необязательные сводки связей.
      2. get_comments — Получить комментарии к задаче.
      3. get_sub_issues — Получить подзадачи (дочерние) этой задачи.
      4. get_parent — Получить родительскую задачу, если эта задача является подзадачей другой.
      5. 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; сервер ищет поле и приводит значение к его типу (имя опции с единственным выбором, текст, число или дата ГГГГ-ММ-ДД). (объект[], необязательно)
    • 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: Идентификатор подзадачи, после которой нужно разместить (должен быть указан либо after_id, либо before_id) (число, необязательно)
    • before_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 не совпадает с номером задачи (число, обязательно)
tag Метки
  • 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: Название репозитория — обязательно для всех операций (строка, обязательно)
bell Уведомления
  • dismiss_notification — Закрыть уведомление

    • Требуемые области OAuth: notifications
    • state: Новое состояние уведомления (read/done) (строка, обязательно)
    • threadID: Идентификатор цепочки уведомлений (строка, обязательно)
  • get_notification_details — Получить сведения об уведомлении

    • Требуемые области OAuth: notifications
    • notificationID: Идентификатор уведомления (строка, обязательно)
  • list_notifications — Вывести список уведомлений

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

    • Требуемые области OAuth: notifications
    • action: Действие для выполнения: ignore, watch или delete подписки на уведомления. (строка, обязательно)
    • notificationID: Идентификатор цепочки уведомлений. (строка, обязательно)
  • manage_repository_notification_subscription — Управление подпиской на уведомления репозитория

    • Требуемые области OAuth: notifications
    • action: Действие для выполнения: ignore, watch или delete подписки на уведомления репозитория. (строка, обязательно)
    • owner: Владелец аккаунта репозитория. (строка, обязательно)
    • repo: Название репозитория. (строка, обязательно)
  • mark_all_notifications_read — Отметить все уведомления как прочитанные

    • Требуемые области OAuth: notifications
    • lastReadAt: Описывает последний момент проверки уведомлений (необязательно). По умолчанию: Сейчас (строка, необязательно)
    • owner: Необязательный владелец репозитория. Если указан вместе с repo, только уведомления для этого репозитория отмечаются как прочитанные. (строка, необязательно)
    • repo: Необязательное название репозитория. Если указано вместе с owner, только уведомления для этого репозитория отмечаются как прочитанные. (строка, необязательно)
organization Организации
  • 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: Поле сортировки по категории (строка, необязательно)
project Проекты
  • 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'. (массив строк, необязательно)
    • fields: Конкретный список идентификаторов полей для включения в ответ при получении элемента проекта (например, ["102589", "985201", "169875"]). Если ни 'fields', ни 'field_names' не указаны, включается только поле заголовка. Взаимоисключающий с 'field_names' — укажите что-то одно. Используется только для метода 'get_project_item'. (массив строк, необязательно)
    • item_id: Идентификатор элемента. Требуется для метода 'get_project_item'. (число, необязательно)
    • method: Выполняемый метод (строка, обязательно)
    • owner: Владелец (логин пользователя или организации). Имя нечувствительно к регистру. (строка, необязательно)
    • owner_type: Тип владельца (user или org). Если не указан, будет определен автоматически. (строка, необязательно)
    • 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'. (массив строк, необязательно)
    • fields: Идентификаторы полей для включения при перечислении элементов проекта (например, ["102589", "985201"]). КРИТИЧНО: Всегда указывайте для получения значений полей. Без этого (и без 'field_names') возвращаются только заголовки. Взаимоисключающий с 'field_names' — укажите что-то одно. Используется только для метода 'list_project_items'. (массив строк, необязательно)
    • method: Выполняемое действие (строка, обязательно)
    • owner: Владелец (логин пользователя или организации). Имя нечувствительно к регистру. (строка, обязательно)
    • owner_type: Тип владельца (user или org). Если не указан, будет автоматически опробован оба варианта. (строка, необязательно)
    • 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: Номер задачи. Требуется для 'add_project_item', когда item_type равен 'issue'. Также принимается 'update_project_item' для разрешения элемента по номеру задачи (в сочетании с item_owner и item_repo). (число, необязательно)
    • item_id: Идентификатор элемента проекта. Требуется для 'delete_project_item'. Для 'update_project_item' укажите либо item_id, либо (item_owner + item_repo + issue_number) для разрешения элемента по задаче. (число, необязательно)
    • item_owner: Владелец (пользователь или организация) репозитория, содержащего задачу или запрос на вытягивание. Требуется для метода 'add_project_item'. Также принимается 'update_project_item' при разрешении элемента по номеру задачи. (строка, необязательно)
    • item_repo: Имя репозитория, содержащего задачу или запрос на вытягивание. Требуется для метода 'add_project_item'. Также принимается 'update_project_item' при разрешении элемента по номеру задачи. (строка, необязательно)
    • item_type: Тип элемента: issue или pull_request. Требуется для метода 'add_project_item'. (строка, необязательно)
    • iteration_duration: Длительность в днях для итераций поля (например, 7 для еженедельных, 14 для двухнедельных). Требуется для метода 'create_iteration_field'. (число, необязательно)
    • iterations: Пользовательские итерации для метода 'create_iteration_field'. Устанавливайте это только тогда, когда вам нужны итерации с разной длительностью, перерывами между ними или особыми заголовками. В противном случае опустите: GitHub автоматически создает три итерации длительностью 'iteration_duration' дней, начиная с 'start_date', что подходит для большинства случаев. (массив объектов, необязательно)
    • method: Выполняемый метод (строка, обязательно)
    • owner: Владелец проекта (логин пользователя или организации). Имя нечувствительно к регистру. (строка, обязательно)
    • owner_type: Тип владельца (user или org). Требуется для метода 'create_project'. Если не указан для других методов, будет определен автоматически. (строка, необязательно)
    • project_number: Номер проекта. Требуется для всех методов, кроме 'create_project'. (число, необязательно)
    • pull_request_number: Номер запроса на вытягивание (используйте, когда item_type равен 'pull_request' для метода 'add_project_item'). Укажите либо issue_number, либо pull_request_number. (число, необязательно)
    • start_date: Дата начала в формате ГГГГ-ММ-ДД. Используется для методов 'create_project_status_update' и 'create_iteration_field'. (строка, необязательно)
    • status: Статус проекта. Используется для метода 'create_project_status_update'. (строка, необязательно)
    • target_date: Целевая дата обновления статуса в формате ГГГГ-ММ-ДД. Используется для метода '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, чтобы очистить поле. (объект, необязательно)
git-pull-request Запросы на вытягивание
  • add_comment_to_pending_review - Добавить комментарий рецензии к последнему ожидающему рассмотрению запросу на вытягивание запрашивающего

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

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

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

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

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

    • Необходимые области OAuth: repo
    • after: Курсор для пагинации, используется только методом get_review_comments. Передайте endCursor из PageInfo предыдущей страницы для получения следующей. (строка, необязательно)
    • method: Действие, указывающее, какие данные pull request нужно получить из GitHub. Возможные варианты:
      1. get — Получить информацию о конкретном pull request.
      2. get_diff — Получить diff pull request.
      3. get_status — Получить объединённый статус коммита головной ветки в pull request.
      4. get_files — Получить список файлов, изменённых в pull request. Используйте с параметрами пагинации для управления количеством возвращаемых результатов.
      5. get_commits — Получить список коммитов в pull request. Используйте с параметрами пагинации для управления количеством возвращаемых результатов.
      6. get_review_comments — Получить цепочки обсуждений ревью в pull request. Каждая цепочка содержит логически сгруппированные комментарии ревью, сделанные к одному и тому же участку кода в процессе ревью. Возвращает цепочки с метаданными (isResolved, isOutdated, isCollapsed) и связанными комментариями. Используйте курсорную пагинацию (perPage, after) для управления результатами.
      7. get_reviews — Получить ревью pull request. Если запрашиваются комментарии ревью, используйте метод get_review_comments. Используйте с параметрами пагинации для управления количеством возвращаемых результатов.
      8. get_comments — Получить комментарии к pull request. Используйте, если пользователю не нужны именно комментарии ревью. Используйте с параметрами пагинации для управления количеством возвращаемых результатов.
      9. get_check_runs — Получить запуски проверок для головного коммита 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: Идентификатор узла цепочки ревью (например, PRRT_kwDOxxx). Обязателен для методов resolve_thread и unresolve_thread. Получите идентификаторы цепочек из 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 для запроса ревью (массив строк, необязательно)
    • state: Новое состояние (строка, необязательно)
    • title: Новый заголовок (строка, необязательно)
  • update_pull_request_branch — Обновить ветку pull request

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

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

    • Необходимые области OAuth: repo
    • branch: Ветка, в которой создать/обновить файл (строка, обязательно)
    • content: Содержимое файла (строка, обязательно)
    • message: Сообщение коммита (строка, обязательно)
    • owner: Владелец репозитория (имя пользователя или организация) (строка, обязательно)
    • path: Путь для создания/обновления файла (строка, обязательно)
    • repo: Имя репозитория (строка, обязательно)
    • sha: Blob SHA заменяемого файла. Обязателен, если файл уже существует. (строка, необязательно)
  • 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" дополнительно включает unified diff для каждого файла и может быть очень большим. (строка, необязательно)
    • 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: Имя пользователя или email автора для фильтрации коммитов (строка, необязательно)
    • 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: Массив объектов файлов для отправки, каждый объект содержит путь (строка) и содержимое (строка) (object[], обязательно)
    • message: Сообщение коммита (строка, обязательно)
    • owner: Владелец репозитория (строка, обязательно)
    • repo: Имя репозитория (строка, обязательно)
  • search_code — Поиск кода

    • Требуемые области OAuth: repo
    • order: Порядок сортировки результатов (строка, необязательно)
    • page: Номер страницы для пагинации (мин. 1) (число, необязательно)
    • perPage: Результатов на странице для пагинации (мин. 1, макс. 100) (число, необязательно)
    • query: Поисковый запрос (REST API поиска кода GitHub). Неявное И между терминами; поддерживает 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. (строка, обязательно)
    • sort: Поле сортировки (только 'indexed') (строка, необязательно)
  • search_commits — Поиск коммитов

    • Требуемые области OAuth: repo
    • order: Порядок сортировки (строка, необязательно)
    • page: Номер страницы для пагинации (мин. 1) (число, необязательно)
    • perPage: Результатов на странице для пагинации (мин. 1, макс. 100) (число, необязательно)
    • query: Поисковый запрос коммитов (REST API поиска коммитов 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, возвращаются полные объекты репозиториев API GitHub. (логическое, необязательно)
    • 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: Фильтр по состоянию (строка, необязательно)
shield Рекомендации по безопасности
  • get_global_security_advisory — Получить глобальную рекомендацию по безопасности

    • Требуемые области OAuth: security_events
    • Допустимые области OAuth: repo, security_events
    • ghsaId: Идентификатор рекомендации GitHub Security Advisory (формат: 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"]). (string[], необязательно)
    • ecosystem: Фильтр по экосистеме пакетов. (строка, необязательно)
    • ghsaId: Фильтр по идентификатору рекомендации GitHub Security Advisory (формат: 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: Фильтр по состоянию рекомендации. (строка, необязательно)
star Звездочеты
  • 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: Имя репозитория (строка, обязательно)
people Пользователи
  • search_users — Поиск пользователей
    • Требуемые области OAuth: repo
    • order: Порядок сортировки (строка, необязательно)
    • page: Номер страницы для пагинации (мин. 1) (число, необязательно)
    • perPage: Результатов на странице для пагинации (мин. 1, макс. 100) (число, необязательно)
    • query: Поисковый запрос пользователей. Примеры: 'john smith', 'location:seattle', 'followers:>100'. Поиск автоматически ограничивается типом type: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 - **github_support_docs_search** — Получение документации, релевантной для ответа на вопросы о продуктах и поддержке GitHub. Поддерживаемые темы: рабочие процессы GitHub Actions, аутентификация, запросы в поддержку GitHub, практики работы с pull request, обслуживание репозитория, GitHub Pages, GitHub Packages, GitHub Discussions, Copilot Spaces - `query`: Ввод от пользователя с вопросом, на который требуется ответ. Это последнее необработанное сообщение пользователя без изменений. ВСЕГДА оставляйте сообщение пользователя как есть, никогда не изменяйте его. (строка, обязательно)

Режим только для чтения

Чтобы запустить сервер в режиме только для чтения, используйте флаг --read-only. При этом будут доступны только инструменты чтения, что предотвращает любые изменения в репозиториях, issues, 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

Режим блокировки

Режим блокировки ограничивает контент, который сервер будет извлекать из публичных репозиториев. Когда он включен, сервер проверяет, имеет ли автор каждого элемента push-доступ к репозиторию. Приватные репозитории не затрагиваются, и соавторы сохраняют полный доступ к своему контенту.

./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

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

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

  • issue_read:get
  • pull_request_read:get

Следующие инструменты отфильтруют контент от пользователей, не имеющих 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_NAMEGITHUB_MCP_SERVER_NAMEgithub-mcp-server
SERVER_TITLEGITHUB_MCP_SERVER_TITLEGitHub 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.