GitHub
Как подключить GitHub к проекту Создателя WorkAI: права приложения, выгрузка кода в репозиторий одним коммитом, импорт репозитория и отключение доступа.
Эта интеграция относится к режиму Создатель (Builder Web) — конструктору, который генерирует веб-проект по вашему описанию. Приложение GitHub здесь решает одну конкретную задачу: перенести готовый проект из Создателя в ваш репозиторий и, при необходимости, забрать код в обратную сторону. Подключение занимает пару шагов и не создаёт на GitHub ни новых репозиториев, ни веток, ни автоматических подписок на события.
Если вы имеете в виду работу с git из десктопного агента WorkAI (клонирование, коммиты, ветки в терминале) — это не эта страница. Агент работает с git локально обычными командами, отдельного подключения к GitHub для этого не требуется. Ревью пул-реквестов, комментариев в issues и запусков проверок на стороне GitHub интеграция не делает — если вы ждёте этого по опыту других редакторов, здесь такого нет.
Что делает интеграция
Есть два направления:
- Выгрузка (экспорт). Вы привязываете проект Создателя к репозиторию, и по кнопке «Синхронизировать» WorkAI собирает файлы последней версии проекта и записывает их одним коммитом в ветку репозитория по умолчанию.
- Импорт. Существующий репозиторий можно импортировать — из него создаётся новый проект Создателя. Текущий открытый проект при этом не меняется.
Чего интеграция не делает: не открывает pull request'ы, не читает issues, не создаёт отдельных веток и не подписывается на события в репозитории. Обмен всегда начинается с вашего действия в WorkAI.
Как подключить репозиторий
- В открытом проекте Создателя откройте меню «Ещё» и выберите «Подключить GitHub» (в компактной раскладке меню тот же пункт подписан «Экспорт в GitHub»).
- WorkAI откроет страницу установки приложения на github.com. Там вы выбираете аккаунт или организацию и решаете, каким репозиториям дать доступ — всем или только выбранным.
- После подтверждения GitHub вернёт вас обратно в проект.
- Если репозиторий с правом записи ровно один, WorkAI сразу привяжет его и выполнит первую выгрузку.
- Если их несколько — откроется список «Выберите репозиторий», где вы указываете нужный.
- После привязки в шапке проекта появляется имя репозитория и кнопки «Синхронизировать» и «Отключить».
Ссылка на установку живёт 10 минут. Если вернуться с GitHub позже, подключение не состоится: браузер откроет список проектов Создателя без объяснения. Откройте проект и начните с первого шага заново.
Подключать репозиторий, синхронизировать и отключать его может только владелец проекта: у участника с ролью ниже эти действия недоступны.
Какие права запрашивает приложение
| Право | Зачем |
|---|---|
| Чтение и запись содержимого репозитория | Записывать файлы проекта при выгрузке и скачивать содержимое при импорте |
| Чтение метаданных репозитория | Получать список репозиториев, их видимость и ветку по умолчанию |
Больше приложение ничего не запрашивает: доступа к issues, pull request'ам, Actions, настройкам репозитория и участникам у него нет.
Отдельно при подключении вы проходите обычную авторизацию GitHub. Она нужна, чтобы WorkAI видел ровно тот срез репозиториев, к которому есть доступ у вас лично, а не всё, что видит установленное приложение. В организации это важно: приватные репозитории, к которым вас не добавили, в списке не появятся. Список прав доступа перепроверяется при каждой операции — если доступ отозвали на стороне GitHub, выгрузка не пройдёт, а не отработает вслепую.
Что происходит при первой выгрузке
WorkAI берёт файлы последней версии проекта и создаёт один коммит в ветке репозитория по умолчанию — той, что указана в настройках самого репозитория. Отдельная ветка не создаётся, pull request не открывается.
- Репозиторий пустой. Ветка инициализируется первым файлом проекта, дальше коммит собирается обычным образом.
- В репозитории уже есть код. Новый коммит ложится поверх текущего состояния ветки: файлы проекта добавляются и перезаписываются по совпадающим путям. Построчного слияния нет — файл с тем же путём заменяется целиком версией из Создателя.
- Файлы, которых нет в проекте, не удаляются. Если раньше вы выгрузили файл, а потом он исчез из проекта, в репозитории он останется.
Сообщение коммита — WorkAI export: v<номер версии>, по нему видно, какой версии проекта соответствует выгрузка.
Кроме исходников в коммит попадают служебные файлы проекта — Dockerfile, nginx-default.conf, workai-template.json. Это часть проекта на стороне WorkAI: по ним платформа собирает и публикует сайт. Править в репозитории их — как и любые другие файлы проекта — смысла нет: следующая выгрузка вернёт версию из Создателя.
Как выгружать изменения дальше
Выгрузка не происходит сама после каждой генерации — её запускает кнопка «Синхронизировать» в шапке проекта. Рядом всегда видно имя привязанного репозитория и результат последней попытки: при неудаче появляется пометка «— ошибка синка», а текст ошибки показывается подсказкой. Провал никогда не выглядит как успех.
Ограничение по размеру: один файл проекта не должен превышать 50 МБ — файл больше этого лимита выгрузку останавливает с явной ошибкой.
Можно ли выгружать проект сразу в несколько репозиториев
Нет: у проекта в каждый момент ровно один привязанный репозиторий. Если подключить GitHub заново и выбрать другой репозиторий, привязка не добавится, а заменит прежнюю — дальше выгрузки пойдут только в новый. Коммиты, уже сделанные в старом репозитории, остаются на месте, но обновляться перестанут.
Обратное ограничение платформа не проверяет: в один и тот же репозиторий может выгружаться несколько разных проектов Создателя — и они будут перезаписывать файлы друг друга, потому что каждая выгрузка кладёт поверх ветки снимок своего проекта. Держите один репозиторий на проект.
Как импортировать существующий репозиторий
В меню «Ещё» есть отдельное действие «Из GitHub» (в компактной раскладке — «Импортировать из GitHub») — оно создаёт из репозитория новый проект Создателя. Порядок тот же: установка приложения (если ещё не установлено), выбор репозитория в окне «Импортировать репозиторий», затем WorkAI скачивает содержимое ветки по умолчанию и собирает из него проект.
Импортированный проект сразу привязывается к тому же репозиторию, поэтому обратная выгрузка работает без дополнительных шагов. По завершении показывается экран с итогом: сколько файлов приехало, что было пропущено и какие есть предупреждения.
Такой же импорт доступен из GitLab.com — он тоже создаёт новый проект, но обратной выгрузки в GitLab нет.
Импорт — это разовый снимок содержимого. Он не подписывается на изменения в репозитории: новые коммиты, сделанные вами в GitHub после импорта, в проект Создателя не подтягиваются.
Какие проекты импорт не принимает
Создатель публикует собранную статику, поэтому проекты, которым в продакшене нужен собственный серверный процесс, отклоняются сразу — с объяснением, а не «импортируются» и потом молча не собираются.
| Что в репозитории | Результат импорта |
|---|---|
| Vite | Принимается, сборка npm run build |
| Create React App | Принимается, каталог сборки build/ |
Готовая статика с index.html в корне | Принимается как есть, без сборки |
| Другой инструмент сборки | Принимается, но платформа ждёт результат в dist/ — иначе страница будет пустой |
| Next.js, Nuxt, Remix, SvelteKit, Astro, Angular CLI | Отклоняется: это другой контур публикации |
Нет ни package.json, ни index.html в корне | Отклоняется: непонятно, как собирать |
Импорт также откажет, если в package.json нет команды сборки и при этом нет собранного index.html в корне.
Что не попадёт в импортированный проект
Импорт берёт исходники и осознанно отбрасывает остальное. Всё пропущенное перечисляется на экране результата — сгруппированно, с причиной.
| Что пропускается | Почему |
|---|---|
.env, ключи, учётные данные | Секретам не место в платформе |
node_modules, dist, build, .git и подобные каталоги | Это не исходники, а результат сборки и зависимости |
| Картинки, шрифты, архивы и другие двоичные файлы | Импорт работает с текстовыми файлами |
| Файлы больше 256 КБ | Ограничение на отдельный файл |
Кроме того, действуют потолки: не более 800 файлов и 8 МБ исходников суммарно. Их превышение не отменяет импорт: лишние файлы просто не приезжают, попадают в список пропущенных и на экране результата появляется предупреждение, что часть файлов осталась за бортом. Проверьте состав проекта, прежде чем публиковать его.
А вот скачиваемый архив репозитория ограничен 12 МБ (в сжатом виде; на распакованный объём и число записей действуют свои внутренние потолки), и это уже отказ: импорт не начнётся и предложит убрать зависимости, результаты сборки и крупные файлы. Ещё один отказ — если после фильтрации не осталось ни одного текстового файла с исходниками.
После импорта картинки и шрифты придётся загрузить в проект заново.
Что означают предупреждения на экране результата импорта
Предупреждения не отменяют импорт: проект создан, открыть его можно сразу. Они говорят о том, где результат может разойтись с ожиданием.
| Предупреждение | Что оно значит |
|---|---|
| Живое превью не поднимется: есть пакеты вне предустановленного набора | Превью запускается на заранее подготовленном наборе библиотек, а публикация ставит зависимости проекта по-настоящему. Опубликованный сайт соберётся, а вот превью до публикации может остаться пустым |
Живое превью может отличаться от публикации: в vite.config заданы алиасы или плагины | Превью использует совместимый конфиг платформы, а не ваш. На публикацию это не влияет |
Инструмент сборки не распознан — результат ожидается в dist/ | Сборка запустится, но если она кладёт файлы в другой каталог, опубликованная страница будет пустой |
В package.json нет команды сборки — проект опубликуется как есть | Импортирована готовая статика, шага сборки не будет |
| Архив больше лимитов импорта — часть файлов не приехала | Проект неполный, проверьте состав файлов до публикации |
В импортированный проект добавляются служебные файлы платформы — Dockerfile, nginx-default.conf, workai-template.json. Если одноимённые файлы были в репозитории, они заменяются платформенными: по ним собирается публикация.
Как отключить репозиторий и отозвать доступ
Это два разных действия:
- «Отключить» в шапке проекта разрывает связь проекта с репозиторием. Кнопка синхронизации пропадает, но приложение остаётся установленным в вашем GitHub-аккаунте, и другой проект можно привязать к репозиторию заново.
- Полный отзыв доступа делается на стороне GitHub: в настройках аккаунта или организации, в разделе установленных приложений, удалите установку приложения WorkAI. После этого пропадает и доступ к репозиториям, и возможность выгружать в них проекты — при попытке синхронизации WorkAI покажет, что доступ не подтверждён.
Ни отключение, ни отзыв доступа не удаляют уже сделанные коммиты — выгруженный код остаётся в репозитории.
Если что-то не работает
Нужного репозитория нет в списке. Проверьте, что при установке приложения вы дали доступ именно ему (в GitHub можно выбрать «только выбранные репозитории» и потом добавить ещё). В списке показываются только репозитории, где у вас есть право записи, и только те, что доступны лично вам, а не всей организации.
«Не удалось подключить GitHub». Это общий текст для двух случаев. Первый и самый частый — в выбранной установке нет ни одного репозитория, где у вас есть право записи; в организации установку приложения может потребоваться подтвердить её владельцу. Второй — пока вы были на GitHub, проект перешёл к другому владельцу: подключать репозиторий может только текущий владелец проекта.
Возврат с GitHub привёл на список проектов, и ничего не произошло. Так выглядит просроченная ссылка на подключение (прошло больше 10 минут) или возврат без нужных параметров — сообщения на этом экране не будет. Откройте проект и запустите подключение заново; если повторяется, попробуйте в окне без расширений, блокирующих переходы.
«Текущий доступ GitHub к этому репозиторию не подтверждён». Права проверяются заново перед каждой операцией. Сообщение появляется, если доступ приложения к репозиторию сузили или отозвали на стороне GitHub, а также если репозиторий переименовали или перенесли. Подключите GitHub заново и выберите репозиторий ещё раз.
«Установка GitHub App принадлежит другому аккаунту». Общий текст для сбоя обмена с GitHub при возврате. Чаще всего вы авторизовались в WorkAI под одним аккаунтом GitHub, а установку выбрали в другом: выйдите из лишнего аккаунта в браузере и повторите. Если аккаунт один, попробуйте ещё раз — GitHub мог не ответить на запрос списка репозиториев.
Синхронизация падает. Проверьте, что доступ приложения к репозиторию не отозван на стороне GitHub и что ни один файл проекта не превышает 50 МБ. Текст последней ошибки виден в подсказке рядом с именем репозитория.
Импорт отклонён. Сообщение всегда содержит причину — чаще всего это фреймворк со своим серверным процессом или слишком объёмный архив репозитория. См. разделы выше.
Похожие темы
- Создатель (Builder Web) — как устроен режим, из которого выгружается проект.
- Быстрый старт — установка десктоп-клиента и первая правка кода.
- Модели и цены — сколько стоит генерация и как считаются WorkCoins.