Перейти к содержимому

Сохраните проект на GitHub

КраткоПодключите GitHub одним нажатием через GitHub App от MonstarX (токен не нужен — репозитории вы выбираете сами), затем нажмите GitHub на верхней панели проекта, чтобы создать новый репозиторий или связать существующий. MonstarX отправляет туда весь проект, затем коммитит каждое своё изменение и забирает то, что вы закоммитили на GitHub. Импортированные приложения синхронизируются с веткой monstarx, так что ваша собственная ветка никогда не сдвигается.

GitHub — это место, где разработчики хранят код вместе с историей всех изменений. Свяжите проект MonstarX с репозиторием GitHub (папкой проекта на GitHub), и они будут синхронизироваться в обе стороны: всё, что создаёт MonstarX, попадает туда коммитами, а то, что коммитите вы или разработчик, возвращается в MonstarX.

Это удобно, если разработчик хочет работать с кодом в своём редакторе, если в вашей компании весь код хранится на GitHub или если вы разворачиваете приложение из GitHub — так делает, например, Railway.

GitHub подключается один раз для всего аккаунта MonstarX — в разделе НастройкиИнтеграции или через кнопку GitHub в любом проекте. Проще всего через GitHub App от MonstarX: не нужно создавать и вставлять токен, и вы сами решаете, к каким именно репозиториям у MonstarX будет доступ.

  1. Нажмите Подключить личный аккаунт GitHub.

  2. Откроется GitHub и спросит, куда установить приложение. Выберите свой личный аккаунт (не организацию).

  3. Выберите, какими репозиториями может пользоваться MonstarX: All repositories (все) или Only select repositories (только выбранные) — и отметьте нужные. Позже это можно изменить на GitHub.

  4. Нажмите Install, а затем Authorize, когда GitHub попросит подтвердить.

  5. Вы вернётесь в MonstarX. На карточке будет написано Подключено · GitHub App.

Что важно знать о GitHub App:

  • Одобрение организации не нужно. Приложение устанавливается только в личный аккаунт. Если вы по ошибке выберете организацию, MonstarX попросит установить его в личный аккаунт и попробовать ещё раз.
  • Новые репозитории создаются в вашем личном аккаунте. К репозиторию, который создал MonstarX, у него всегда есть доступ, даже если вы выбрали Only select repositories.
  • Доступ ограничен выбранными репозиториями. Связать можно только тот существующий репозиторий, к которому вы дали приложению доступ. Добавить другие можно в настройках установленных приложений на GitHub.
  • Доступ выдаётся ненадолго и продлевается автоматически, а хранится в зашифрованном виде. В ваш браузер он никогда не передаётся.

Если удобнее, есть ещё два способа:

СпособКогда подходит
Личный репозиторий с ограниченным доступом (в настройках: Подключить личный репозиторий с ограниченным доступом)Вы хотите дать MonstarX доступ ровно к одному репозиторию с помощью токена личного доступа (personal access token — пароля, который вы создаёте на GitHub для одной задачи). Создайте токен типа fine-grained, где владелец ресурса — ваш личный аккаунт, доступ только к этому репозиторию и разрешение Contents: read and write. Репозиторий сначала создайте на GitHub: такой токен не может создавать новые.
Использовать авторизацию GitHubВы хотите отправлять код в репозитории организаций, в которых состоите. Обычный экран входа GitHub может включать доступ к этим организациям, поэтому проверьте его, прежде чем разрешать.

После подключения карточка показывает способ (GitHub App, Выполнен вход с помощью GitHub или Токен личного доступа) и перечисляет все репозитории, которые MonstarX поддерживает в актуальном состоянии: когда каждый синхронизировался в последний раз и в каком режиме: Автоматический или Вручную. Если позже подключиться другим способом, он заменит старое подключение; связанные репозитории останутся связанными.

  1. Откройте проект и нажмите GitHub на верхней панели. (Эта функция есть и в разделе проекта НастройкиЭкспорт, в блоке Хранить в GitHub.)

  2. Если аккаунт ещё не подключён, подключите его прямо здесь.

  3. Выберите Новый репозиторий или Существующий репозиторий:

    • Новый репозиторий — выберите владельца в поле Владелец (вы или одна из ваших организаций), введите Имя репозитория, оставьте отмеченным Закрытый репозиторий, если не хотите, чтобы код видели все, и нажмите Создать репозиторий и отправить код.
    • Существующий репозиторий — введите owner/repository или вставьте адрес на github.com, при желании укажите ветку в поле Ветка (если пусто — ветка по умолчанию) и нажмите Связать и синхронизировать. У вашего аккаунта должно быть право отправлять в этот репозиторий изменения.
  4. MonstarX отправит весь проект в виде репозитория, готового к развёртыванию. Когда синхронизация в порядке, на кнопке GitHub горит зелёная точка.

Новый репозиторий начинается с одного коммита — «Initial commit from MonstarX». В существующем репозитории проект коммитится поверх ветки, а файлы, которыми MonstarX не управляет, — LICENSE, рабочие процессы CI, документация, — никогда не затрагиваются.

Всё, что даёт экспорт: код приложения, файлы фреймворка MonstarX, конфигурация для запуска и развёртывания, миграции базы данных, список имён секретов, которые нужны приложению (без значений), и README.

Кое-что на GitHub никогда не попадает:

  • Значения секретов, а также строки базы данных и загруженные файлы приложения остаются в MonstarX.
  • Строки, импортированные из таблицы, никогда не отправляются: репозиторий может быть публичным, а это данные ваших клиентов.
  • Двоичные файлы и файлы больше 1 МБ пропускаются и перечисляются в журнале синхронизации.

Пока включено Отправлять каждое изменение автоматически (по умолчанию так и есть), MonstarX синхронизирует проект:

  • после каждого запроса, который изменил файлы приложения, — сообщением коммита становится ваш запрос;
  • после автоисправления по итогам QA;
  • после восстановления версии;
  • после сохранения или удаления файла на вкладке Код.

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

Что происходит, если кто-то правит код на GitHub?

Заголовок раздела «Что происходит, если кто-то правит код на GitHub?»

Коммитьте на GitHub как обычно. При следующей синхронизации MonstarX заберёт изменения в проект:

  • Изменения собственных файлов приложения (src/, public/, migrations/ и README.md) попадают в MonstarX. Предпросмотр обновляется, новые миграции базы данных выполняются, а в меню Версии появляется версия с названием Из GitHub: и темой коммита.
  • Карточка в чате, например «Получено из GitHub: 3 файла», перечисляет файлы, чтобы и вы, и конструктор MonstarX знали, что изменилось.
  • Изменения файлов фреймворка MonstarX, например package.json или конфигурации, остаются на GitHub, пока MonstarX сам в следующий раз не изменит этот файл.
  • Если один и тот же файл изменился с обеих сторон, MonstarX оставляет свою версию, а ваша сохраняется в истории GitHub. Карточка отмечает такой файл: «изменено с обеих сторон — сохранена версия MonstarX».

Что показывает меню GitHub после связывания?

Заголовок раздела «Что показывает меню GitHub после связывания?»
  • Репозиторий, его ветку и тип — Закрытый или Открытый.
  • Когда была последняя синхронизация (Синхронизировано несколько минут назад) или Последняя синхронизация не удалась с причиной.
  • Синхронизировать сейчас и Открыть репозиторий.
  • Отправлять каждое изменение автоматически.
  • Недавние синхронизации — последние пять, у каждой свой коммит.
  • Отсоединить репозиторий — синхронизация прекращается. Репозиторий остаётся на GitHub.
  • Отключить — отключает ваш аккаунт GitHub. Пока вы не подключитесь снова, ничего отправляться не будет.

А что с приложением, импортированным из GitHub?

Заголовок раздела «А что с приложением, импортированным из GitHub?»

Когда вы импортируете приложение из репозитория, в который у вас есть право отправлять изменения, проект остаётся с ним связан — в новой ветке monstarx, начатой от импортированного коммита. Ваша собственная ветка никогда не сдвигается. Когда изменения MonstarX вас устроят, кнопка Открыть пул-реквест в меню GitHub перенесёт вас на GitHub, чтобы их слить.

Нужен ли токен GitHub?

Нет. Подключить личный аккаунт GitHub устанавливает GitHub App от MonstarX: вы входите на GitHub, выбираете репозитории — и готово. Токен личного доступа — лишь альтернатива для тех, кто хочет так ограничить MonstarX одним репозиторием.

Есть ли у GitHub App доступ к организации моей компании?

Нет: приложение устанавливается только в личный аккаунт и там же создаёт новые репозитории. Чтобы отправлять код в репозиторий организации, подключитесь через Использовать авторизацию GitHub или попросите организацию добавить вас, чтобы связать репозиторий из своего аккаунта.

Как позже дать MonstarX доступ к другому репозиторию?

На GitHub откройте настройки установленных GitHub Apps, выберите MonstarX и добавьте репозиторий (или переключитесь на All repositories). Затем свяжите его через меню GitHub в проекте.

Мой репозиторий закрытый?

Новый репозиторий по умолчанию закрытый. Снимайте отметку Закрытый репозиторий, только если хотите сделать код публичным. Значения секретов и данные приложения MonstarX никогда не отправляет.

Можно ли связать репозиторий, который принадлежит организации моей компании?

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

Что будет, если отсоединить репозиторий?

MonstarX перестанет синхронизировать проект. Репозиторий со всей историей останется на GitHub, и позже его можно связать снова.

Разработчик изменил package.json на GitHub. Почему это не вернулось в проект?

Файлами фреймворка, такими как package.json и конфигурация, управляет MonstarX. Правки в них остаются на GitHub, пока MonstarX в следующий раз не изменит этот файл; последующие синхронизации никогда не отменяют их молча.

Можно ли разворачивать приложение из репозитория?

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

Что будет со связью, если передать проект?

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