О требуемом доступе для GitHub Enterprise Importer
Для защиты данных GitHub применяет определенные требования к доступу для использования GitHub Enterprise Importer. Эти требования зависят от выполняемой задачи. Чтобы предотвратить ошибки, необходимо внимательно просмотреть эту статью и убедиться, что выполнены все требования для задачи, которую вы хотите завершить.
Чтобы перенести репозиторий из Bitbucket Server в GitHub, вам нужен достаточный доступ к источнику (экземпляру сервера Bitbucket) и назначению (организация на GitHub). Чтобы получить достаточный доступ, вам потребуется все перечисленные ниже действия.
- Требуемая роль в целевой организации на GitHub
- personal access token с доступом к целевой организации на GitHub
- Данные personal access token должны иметь все необходимые области, которые зависят от роли и задачи, которую вы хотите завершить.
- Если целевая организация использует единый вход SAML для GitHub, необходимо авторизовать personal access token для единого входа.
- На сервере Bitbucket необходимые разрешения и доступ SFTP или SMB
Кроме того, при использовании списков разрешенных IP-адресов в целевой организации может потребоваться настроить списки разрешений, чтобы разрешить доступ к данным GitHub Enterprise Importer.
Сведения о роли миграции
Обязательные роли для GitHub
Для целевой организации на GitHubдля разных задач требуются разные роли.
Обязательные области для personal access tokens
Для выполнения миграции требуется personal access token для доступа к целевой организации на GitHub.
Области, необходимые для ваших GitHub personal access token (classic) зависят от вашей роли и задачи, которую вы хотите завершить.
Note
Можно использовать только personal access token (classic), а не fine-grained personal access token. Это означает, что вы не можете использовать GitHub Enterprise Importer, если в вашей организации используется политика "Ограничить доступ к данным personal access tokens (classic)". Дополнительные сведения см. в разделе «Применение политик для персональных маркеров доступа в вашей организации».
Задача | Владелец организации | Средство переноса |
---|---|---|
Назначение роли миграции для миграций репозитория | admin:org | |
Выполнение миграции репозитория (целевая организация) | repo , , admin:org``workflow | repo , , read:org``workflow |
Скачивание журнала миграции | repo , , admin:org``workflow | repo , , read:org``workflow |
Восстановление манекенов | admin:org |
Необходимые разрешения для сервера Bitbucket
Чтобы выполнить миграцию с Bitbucket Server, вам потребуется:
- Имя пользователя и пароль учетной записи Сервера Bitbucket с разрешениями администратора или суперадминистратором
- Если экземпляры Bitbucket Server выполняются в Linux, SFTP-доступ к экземпляру сервера Bitbucket (см. раздел "Ключи SSH"). Как правило, если вы можете получить доступ к серверу через SSH, можно также использовать SFTP.
- Если экземпляр Сервера Bitbucket работает в Windows, доступ к экземпляру Сервера Bitbucket (SMB)
Ключи SSH
Если экземпляр Bitbucket Server работает в Linux, необходимо использовать ключ SSH, соответствующий следующим требованиям:
- Не имеет парольной фразы
- Использует один из следующих шифров
aes256-ctr
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
blowfish-cbc
twofish-cbc
twofish192-cbc
twofish128-cbc
twofish256-cbc
arcfour
arcfour128
arcfour256
cast128-cbc
aes128-ctr
aes192-ctr
Если при выполнении миграции возникает ошибка cipher name aes256-ctr for openssh key file is not supported
, закрытый ключ SSH использует неподдерживаемый шифр. Дополнительные сведения о создании совместимого закрытого ключа см. в разделе "Устранение неполадок миграции с помощью GitHub Enterprise Importer".
Предоставление роли миграции
Чтобы разрешить другим пользователям, кроме владелец организации выполнять миграцию или скачивать журналы миграции, вы можете предоставить роль миграции пользователю или группе. Дополнительные сведения см. в разделе "О роли миграции".
Вы можете предоставить роль миграции с помощью BBS2GH extension of the GitHub CLI или API GraphQL.
- "Предоставление роли миграции с помощью BBS2GH extension"
- Предоставление роли миграции с помощью API GraphQL
Предоставление роли миграции с помощью BBS2GH extension
Чтобы предоставить роль миграции с помощью ИНТЕРФЕЙСА командной строки, необходимо установить BBS2GH extension of the GitHub CLI. Дополнительные сведения см. в разделе «Перенос репозиториев из Bitbucket Server в GitHub Enterprise Cloud».
-
На GitHubсоздайте и запишите personal access token, которая соответствует всем требованиям для предоставления роли миграции. Дополнительные сведения см. в разделе "Создание personal access token для GitHub Enterprise Importer".
-
gh bbs2gh grant-migrator-role
Используйте команду, заменив организацию организацией, для которой вы хотите предоставить роль миграции, СУБЪЕКТу имя пользователя или команды и ТИП.USER
TEAM
Shell gh bbs2gh grant-migrator-role --github-org ORGANIZATION --actor ACTOR --actor-type TYPE
gh bbs2gh grant-migrator-role --github-org ORGANIZATION --actor ACTOR --actor-type TYPE
Предоставление роли миграции с помощью API GraphQL
Создание personal access token для GitHub Enterprise Importer
- Убедитесь, что у вас есть достаточная роль для задачи, которую вы хотите завершить. Дополнительные сведения см. в разделе "Обязательные роли".
- Создайте personal access token (classic), чтобы предоставить все область, необходимые для выполнения задачи. Можно использовать только personal access token (classic), а не fine-grained personal access token. Дополнительные сведения см. в разделе "Управление личными маркерами доступа" и "Обязательные область для personal access token".
- Если единый вход SAML применяется для организаций, к ним необходимо получить доступ, авторизуйте personal access token для единого входа. Дополнительные сведения см. в разделе Авторизация личного токена доступа для использования с документами единого входа SAML.
Настройка списков разрешений IP-адресов для миграций
Если назначение миграции использует список разрешенных IP-адресов (GitHubфункции списка разрешений IP-адресов или ip-адреса поставщика удостоверений (Поставщик удостоверений), необходимо настроить списки разрешений IP на GitHub.
- Если вы используете функцию списка разрешений IP-адресов GitHub, необходимо добавить диапазоны IP-адресов GitHub ниже в список разрешений для целевой организации.
- Если вы используете список разрешений поставщика удостоверений для ограничения доступа к вашей организации на GitHub, эти ограничения следует отключить в параметрах учетной записи предприятия до завершения миграции.
Дополнительные сведения см. в разделе "[AUTOTITLE" и "Управление разрешенными IP-адресами для организации](/enterprise-cloud@latest/admin/configuration/configuring-your-enterprise/restricting-network-traffic-to-your-enterprise-with-an-ip-allow-list)".
Диапазоны IP-адресов для GitHub.com
Вам потребуется добавить следующие диапазоны IP-адресов в список разрешений IP-адресов.
- 192.30.252.0/22
- 185.199.108.0/22
- 140.82.112.0/20
- 143.55.64.0/20
- 40.71.233.224/28
- 2a0a:a440::/29
- 2606:50c0::/32
- 20.125.12.8/29 (активно с 00:00 UTC 8 ноября 2023 г.)
Вы можете получить актуальный список диапазонов IP-адресов, используемых GitHub Enterprise Importer в любое время с помощью конечной точки "Получить метаданные GitHub" REST API.
Ключ github_enterprise_importer
в ответе содержит список диапазонов IP-адресов, используемых для миграции.
Дополнительные сведения см. в разделе «Конечные точки REST API для метаданных».
Диапазоны IP-адресов для GHE.com
Вам потребуется добавить следующие диапазоны IP-адресов в список разрешений IP-адресов.
- 192.30.252.0/22
- 185.199.108.0/22
- 140.82.112.0/20
- 143.55.64.0/20
- 2a0a:a440::/29
- 2606:50c0::/32
- 4.231.155.80/29
- 4.225.9.96/29
- 51.12.144.32/29
- 20.199.1.232/29
- 51.12.152.184/29
- 20.199.6.80/29
- 51.12.152.240/29
- 20.19.101.136/29
- 51.12.252.16/28
- 74.241.131.48/28
- 20.240.211.176/28
- 108.143.221.96/28
- 20.61.46.32/28
- 20.224.62.160/28
Кроме того, если вы используете учетную запись хранения BLOB-объектов с правилами брандмауэра:
- Необходимо разрешить доступ к диапазонам IP-адресов исходящего трафика для GHE.com. См. раздел "Сведения о сети для GHE.com".
- Если вы используете Хранилище BLOB-объектов Azure, может потребоваться выполнить дополнительную настройку. Обратитесь к Служба поддержки GitHub.