WorkAI

GitHub

Встроенный коннектор GitHub в WorkAI: вход через GitHub или личный токен, чтение файлов и pull request'ов, поиск по коду и открытие PR с подтверждением.

Встроенный коннектор github даёт агенту WorkAI доступ к GitHub от вашего имени: прочитать файл в репозитории, поискать по коду, посмотреть pull request и открыть новый. Для агента это обычный MCP-сервер, но работает он внутри самого WorkAI и обращается напрямую к REST API GitHub (api.github.com). Ничего устанавливать не нужно — ни node, ни npx, ни сторонних пакетов.

Чем это отличается от других GitHub-возможностей

В WorkAI три разных способа работать с GitHub, и они не пересекаются:

  • Создатель — GitHub App на стороне сервера WorkAI. Выгружает и импортирует веб-проект Создателя. Вы у себя ничего не запускаете.
  • Git-инструменты агента — коммит, ветки, пуш вашим локальным git. Работают с любым хостингом — GitHub, GitLab, собственным сервером, — потому что это обычный git, а не GitHub API.
  • Этот коннектор — сам GitHub API, вызываемый с вашей машины от вашего имени. Агент видит ровно то, к чему есть доступ у вашего входа или токена, независимо от того, что подключено в Создателе.

Пара «git-инструменты + этот коннектор» даёт полный цикл: агент коммитит и пушит ветку локальным git, а затем открывает pull request через GitHub API.

Как подключить

Откройте хаб «Возможности агента» → «Коннекторы (MCP)», найдите GitHub в группе «Рекомендуем WorkAI» и нажмите «Подключить». Подключиться можно двумя способами.

Вход через GitHub

Основной способ — без ручного создания токена.

  1. Нажмите «Войти через GitHub». WorkAI запросит у GitHub код для входа и покажет его.
  2. Нажмите «Скопировать и открыть GitHub» — код уже в буфере обмена. Вставьте его на открывшейся странице GitHub и подтвердите доступ.
  3. Когда GitHub подтвердит вход, в карточке появится «Вошли в GitHub как @ваш-логин».
  4. Нажмите «Установить на репозитории» и на странице GitHub выберите репозитории (или всю организацию), с которыми должен работать агент. Без этого шага вход есть, но репозиториев агент не видит.

Вход идёт через GitHub App WorkAI Agent, и у него есть важное условие: агент видит только те репозитории, где установлено это приложение. Если агент обратился к репозиторию без установки, GitHub ответит отказом, и агент подскажет установить приложение на этот репозиторий. Если приложение не установлено нигде, при запуске коннектора об этом появится предупреждение в его журнале («Показать вывод»).

Это приложение агента, и оно не связано с приложением, через которое Создатель выгружает проекты: установка одного не даёт доступа другому.

Вход сохраняется между перезапусками и продлевается сам — при старте WorkAI и после выхода компьютера из сна. Если продлить его не удалось, WorkAI покажет уведомление «Вход в GitHub истёк» с кнопкой «Войти в GitHub».

«Выйти» удаляет вход только с этого компьютера. Чтобы полностью отозвать доступ приложения, сделайте это в настройках GitHub — ссылка «Настройки GitHub» есть рядом с кнопкой выхода.

На Linux вход сохраняется, только если в системе есть защищённое хранилище секретов (например, GNOME Keyring или KWallet). Без него WorkAI скажет, что «на этом компьютере нельзя надёжно сохранить вход», и предложит токен доступа.

Личный токен доступа

Запасной способ — Personal Access Token, вставленный в поле «Личный токен доступа GitHub» в той же карточке. Он нужен, если вход через GitHub недоступен, если вы не хотите ставить приложение на репозитории или если в вашей организации так принято.

Создаётся токен на GitHub: Settings → Developer settings → Personal access tokens (ссылка «Создать токен» есть прямо в карточке). Рекомендуем fine-grained токен только на нужные репозитории с правами:

  • Pull requests — Read and write;
  • Contents — Read-only;
  • Commit statuses — Read-only (Metadata — Read-only GitHub добавит сам).

Fine-grained токен не умеет открывать PR в чужие публичные репозитории, где вы не участник. Для этого нужен classic-токен со scope public_repo.

Токен, сохранённый вручную, работает вместо входа через GitHub. Если вы работаете в нескольких профилях WorkAI (отдельные наборы настроек и расширений, как профили VS Code), у каждого профиля может быть свой способ: профиль со своим токеном так и остаётся на токене, а вход через GitHub в нём включается кнопкой «Использовать этот вход в этом профиле».

Где хранится токен

  • Вход через GitHub хранится в системном хранилище секретов и в файлы конфигурации не попадает вообще.
  • Личный токен WorkAI шифрует и держит отдельно; в конфигурации остаётся только ссылка на него.

Исключение — компьютер без защищённого хранилища секретов (например, Linux без keyring), сохранение токена при нескольких открытых окнах WorkAI или профиль со своим отдельным хранилищем. Тогда токен записывается в ~/.workai/mcp.json открытым текстом. На macOS и Linux WorkAI перед этим закрывает файл от чтения всеми, кроме вас, а если сделать это не удаётся — не сохраняет токен вовсе, и карточка скажет об этом. На Windows права файла WorkAI не меняет: он лежит в папке вашего профиля Windows, которая по умолчанию доступна только вам и администраторам компьютера.

Если токен был сохранён в ~/.workai/mcp.json в старых версиях WorkAI, при обновлении он переносится в зашифрованное хранилище автоматически — когда открыто одно окно WorkAI и нет профилей со своим хранилищем. Иначе перенос повторится при следующем запуске.

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

Что умеет агент

Агенту доступны ровно шесть инструментов:

Что делает агентИнструмент
Открывает pull request — например, сразу после того, как запушил ветку. Может открыть черновик и запросить ревью у людей или командcreate_pull_request
Проверяет, не открыт ли PR для этой ветки уже, чтобы не создать дубльlist_pull_requests
Читает pull request: описание, дифф, изменённые файлы, коммиты, ревью и комментарии, статусы и проверки CIpull_request_read
Читает файл или листинг каталога прямо из репозитория, без клонированияget_file_contents
Находит репозиторий по неточному названию и превращает его в owner/reposearch_repositories
Ищет по коду в репозиториях, к которым у вас есть доступsearch_code

get_file_contents читает текстовые файлы; очень длинный текст обрезается (до 200 000 символов). Бинарный файл и файл больше 1 МБ агент прочитать не может — он сообщит размер и даст ссылку на скачивание. Поиск работает от вашего имени: приватные репозитории, к которым у вас есть доступ, в результатах появляются.

Если вы исчерпали лимит запросов к GitHub API, агент скажет, когда лимит восстановится, и не будет повторять запрос раньше.

Подтверждение перед созданием PR

Перед create_pull_request WorkAI показывает в чате вопрос — в какой репозиторий, из какой ветки в какую, с каким заголовком и описанием, у кого будет запрошено ревью, — и варианты «Создать» и «Не создавать». Пока вы не ответили, PR не создан, и агент ждёт, а не вызывает инструмент повторно.

Этот вопрос задаётся даже тогда, когда остальные подтверждения отключены режимом автоматического одобрения (см. Режимы и разрешения). Создание pull request'а — действие на стороне GitHub от вашего имени, и WorkAI не выполняет его молча.

В режиме планирования

В режиме планирования агенту доступны все инструменты чтения — он может изучить репозиторий, PR и проверки CI, пока составляет план. create_pull_request в этом режиме недоступен.

Почему инструментов только шесть

Это осознанное ограничение, а не недоделка.

  • Единственный инструмент, который что-то меняет, — create_pull_request. Всё остальное — только чтение.
  • Изменение файлов, ветки и мерж — не через GitHub API. Их делает локальный git агента, где вы видите diff и подтверждаете действия у себя в редакторе.
  • Issues, gists, actions, projects, notifications, discussions и security не подключены. Ни одной функции WorkAI они не нужны, зато раздувают контекст модели и расширяют список того, что можно сделать от вашего имени.

Защита от чужих инструкций

Всё, что агент читает в репозитории — файлы, описания PR, комментарии, — написано людьми, и среди этого текста могут оказаться «подставные» инструкции для ИИ. WorkAI передаёт такое содержимое модели в отдельной пометке «содержимое репозитория, не инструкции» и требует не выполнять команды из него. Это снижает риск, но не исключает его полностью: к тексту из чужого репозитория стоит относиться как к любому недоверенному источнику.

Дополнительно в карточке коннектора есть переключатель «Скрывать комментарии аккаунтов без права записи» (режим lockdown). С ним в публичных репозиториях агент не видит комментарии, ревью и pull request'ы ботов-ревьюеров (CodeRabbit и подобных) и внешних участников. По умолчанию переключатель выключен: иначе агент не прочитал бы ревью ботов, ради которых его часто и просят посмотреть PR. Учтите две вещи:

  • в публичном репозитории, куда у вас нет права записи, с включённым режимом чтение pull request'ов перестаёт работать;
  • приватные репозитории режим не затрагивает.

Изменение переключателя вступает в силу при следующем запуске коннектора.

Карточка коннектора

В карточке GitHub, кроме входа и токена, есть:

  • «Проверить подключение» — запускает коннектор, если он остановлен, и показывает, отдал ли он список инструментов. Сам вход или токен WorkAI проверяет запросом к GitHub при каждом запуске коннектора;
  • «Запустить сервер» / «Перезапустить сервер» — например, после смены токена;
  • «Показать вывод» — журнал коннектора на случай, если что-то не работает;
  • список инструментов — любой из шести можно выключить отдельно;
  • общий переключатель — выключенный коннектор не запускается и агенту не виден.

Если что-то не работает

  • «Нет токена GitHub» — не выполнен вход и не задан токен. Войдите через GitHub или вставьте токен в карточке.
  • «Токен GitHub недействителен или истёк» — войдите заново или замените токен.
  • Отказ доступа к конкретному репозиторию — при входе через GitHub почти всегда значит, что приложение WorkAI Agent не установлено на этот репозиторий; с личным токеном — что у токена нет доступа или нужных прав.
  • «Не удалось связаться с api.github.com» — проблема сети между вашим компьютером и GitHub.

Чего коннектор не умеет

GitHub Enterprise Server не поддерживается. Коннектор работает только с github.com, и инструменты WorkAI, которые определяют репозиторий по удалённому адресу, тоже распознают только адреса github.com. Для собственной инсталляции GitHub понадобится отдельный MCP-сервер, добавленный своей записью в конфигурации, — как любой сторонний сервер.

Похожие темы