---
metadata:
  - name: generator
    content: Diplodoc Platform v5.57.3
alternate:
  - https://sourcecraft.dev/portal/docs/en/sourcecraft/operations/migration.md
  - https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/migration.md
  - href: ru/sourcecraft/operations/migration.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://sourcecraft.dev/portal/docs/ru/llms.txt

# Импортировать, зеркалировать или синхронизировать репозиторий в SourceCraft

<!-- source: ru/_includes/sourcecraft/migration-intro.md -->
Вы можете _импортировать_ или _зеркалировать_ в SourceCraft репозиторий с исходным кодом, размещенный в другой системе управления IT-проектами для [git](https://git-scm.com/).

Зеркалирование позволяет автоматически синхронизировать содержимое определенных веток исходного репозитория и репозитория в SourceCraft. Автоматическая синхронизация выполняется каждые **два часа**. Время последней и предстоящей синхронизаций указывается на обзорной странице репозитория. Также вы можете [запустить](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/migration.md#sync-manually) синхронизацию вручную.

{% note warning %}

Количество зеркалируемых репозиториев [ограничено](https://sourcecraft.dev/portal/docs/ru/sourcecraft/pricing.md#tariff-differences) и зависит от выбранного тарифного плана. Также действуют [лимиты](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/limits.md) на количество синхронизаций за 24 часа.

{% endnote %}

Простой импорт кода (история коммитов, все существующие ветки и теги) поддерживается для любых публичных репозиториев с любых git-хостингов.

При переносе репозитория с [GitHub](https://github.com) также опционально импортируются:
* предложения изменений (pull requests);
* задачи (issues) ;
* комментарии.

<!-- source: ru/_includes/sourcecraft/mirroring-gh-resources-note.md -->
{% note warning %}

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

{% endnote %}
<!-- endsource: ru/_includes/sourcecraft/mirroring-gh-resources-note.md -->
<!-- endsource: ru/_includes/sourcecraft/migration-intro.md -->

## Импортировать или зеркалировать репозиторий {#import-mirror}

1. Откройте [главную страницу](https://sourcecraft.dev) SourceCraft.
1. На панели слева нажмите ![image](../../_assets/console-icons/plus.svg) **Создать репозиторий**.
1. В открывшемся окне перейдите на вкладку ![image](../../_assets/console-icons/folder-arrow-up.svg) **Перенести существующие**.
1. В блоке **Сведения об исходном репозитории** выберите источник репозитория:

    {% list tabs group=source %}

    - GitHub {#github}

      1. Нажмите ![image](../../_assets/overview/solution-library-icon.svg) **GitHub**.
      1. Создайте [персональный токен доступа GitHub](https://github.com/settings/tokens/new) (Personal Access Token, PAT) со следующими правами:

          * `repo` — для отображения списка ваших публичных и приватных репозиториев, доступных для импорта.
          * `read:org` — для импорта коллабораторов из репозиториев GitHub или если проект содержит файлы Git LFS (опционально).

          Подробнее в [документации GitHub](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

          {% note info %}

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

          {% endnote %}

      1. В поле **Персональный токен доступа GitHub** вставьте созданный токен и нажмите **Аутентифицировать**.
      1. В поле **Владелец** выберите владельца исходного репозитория.
      1. В поле **Репозиторий** выберите репозиторий, который вы хотите импортировать.

    - Репозиторий по URL {#url}

      1. Нажмите ![image](../../_assets/console-icons/link.svg) **Репозиторий по URL**.
      1. В поле **URL репозитория** укажите ссылку на репозиторий, размещенный в другой системе управления IT-проектами.
      1. Введите **Личный токен доступа**.

    {% endlist %}

1. В блоке **Сведения о новом репозитории**:
    * В поле **Владелец** выберите владельца создаваемого репозитория — вашу учетную запись или организацию.
    * В поле **Название** укажите название репозитория, создаваемого в SourceCraft. Название репозитория может содержать следующие [ASCII-символы](https://ru.wikipedia.org/wiki/ASCII): строчные и заглавные буквы латинского алфавита, цифры, запятые, дефисы и подчеркивания.

1. (опционально) В блоке **Что перенести** выберите сущности, которые нужно перенести из исходного репозитория:

    {% list tabs group=source %}

    - GitHub {#github}

      * **Код** — исходный код, ветки, коммиты и полная история репозитория. Эта сущность переносится всегда и недоступна для отключения.
      * **Pull requests** — предложения изменений, ревью и связанные с ними метаданные и метки. Чтобы перенести только предложения изменений со статусом `open`, включите опцию **Только открытые pull requests**.
      * **Issues** — задачи и связанные с ними метаданные и метки. Чтобы перенести только задачи со статусом `open`, включите опцию **Только открытые issues**.
      * **Комментарии** — комментарии к предложениям изменений и задачам.

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

    - Репозиторий по URL

      Для репозиториев не из GitHub доступен только перенос исходного кода, веток, коммитов и полной истории. Эта сущность переносится всегда и недоступна для отключения.

    {% endlist %}

1. В блоке **Видимость** выберите тип доступа к создаваемому репозиторию:
    * **Публичный** — любой пользователь сможет просматривать репозиторий. Вы сможете выбрать, кто сможет вносить изменения.
    * **Внутренний** — доступ к репозиторию будет только у пользователей организации-владельца.
    * **Приватный** — вы сами выберете, кто сможет просматривать репозиторий и вносить в него изменения.

1. (опционально) Если вы хотите зеркалировать репозиторий, в блоке **Синхронизация** включите опцию **Включить синхронизацию** и в поле **Ветки для синхронизации** укажите ветки, которые вы хотите автоматически обновлять из исходного репозитория. Вы можете использовать шаблоны, например: `main`, `feature/*`, `release/*`.

    <!-- source: ru/_includes/sourcecraft/mirroring-gh-resources-note.md -->
    {% note warning %}

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

    {% endnote %}
    <!-- endsource: ru/_includes/sourcecraft/mirroring-gh-resources-note.md -->

    <!-- source: ru/_includes/sourcecraft/mirroring-restrictions.md -->
    На зеркалируемые ветки в репозитории SourceCraft накладываются защитные правила [политики веток](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/branch-policies.md). Их нельзя изменить в SourceCraft, они обновляются только при синхронизации с исходным репозиторием. 

    Если политика веток будет отключена, или пользователь с [ролью](https://sourcecraft.dev/portal/docs/ru/sourcecraft/security/index.md#src-repositories-admin) `Администратор репозитория` обойдет ее, то при очередной синхронизации репозиториев история коммитов в SourceCraft будет переписана (`force push`).
    <!-- endsource: ru/_includes/sourcecraft/mirroring-restrictions.md -->

1. SourceCraft автоматически проверит доступность исходного репозитория и возможность создать в SourceCraft репозиторий с указанным вами именем.

    Если все проверки пройдены успешно, появится сообщение ![image](../../_assets/console-icons/circle-check.svg) **Всё готово к перемещению. Пристегните ремни безопасности и давайте взлетать!**

    Нажмите кнопку **Начать миграцию**.

Откроется окно со списком ваших репозиториев в SourceCraft. Напротив репозитория, который вы импортируете, будет отображаться статус миграции. Чтобы посмотреть подробности, нажмите на статус.

После завершения миграции вы сможете работать с перенесенным репозиторием в SourceCraft.

## Синхронизировать репозиторий вручную {#sync-manually}

Автоматическая синхронизация выполняется каждые **два часа**. Время последней и предстоящей синхронизаций указывается на обзорной странице репозитория.

Чтобы синхронизировать зеркалируемый репозиторий вручную:
1. Откройте [главную страницу](https://sourcecraft.dev) SourceCraft.
1. На вкладке ![image](../../_assets/console-icons/house.svg) **Домой** в секции ![image](../../_assets/console-icons/layout-tabs.svg) **Ваша мастерская** перейдите в раздел ![image](../../_assets/console-icons/archive.svg) **Репозитории**.
1. Выберите зеркалируемый репозиторий.
1. На обзорной странице репозитория в блоке с информацией о синхронизации ![image](../../_assets/console-icons/thunderbolt.svg) нажмите **Синхронизировать сейчас**.

    {% note info %}

    Действуют [лимиты](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/limits.md) на количество синхронизаций за 24 часа.

    {% endnote %}

#### Полезные ссылки {#see-also}

* [Как начать работать с SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/quickstart.md)
* [Взаимосвязь ресурсов SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md)
