О необходимом доступе для GitHub Enterprise Importer
Для защиты данных GitHub применяет определенные требования к доступу для использования GitHub Enterprise Importer. Эти требования зависят от выполняемой задачи. Чтобы предотвратить ошибки, необходимо внимательно просмотреть эту статью и убедиться, что выполнены все требования для задачи, которую вы хотите завершить.
Чтобы мигрировать репозиторий с Bitbucket Server на GitHub, необходим достаточный доступ как к исходнику (ваш экземпляр Bitbucket Server), так и к назначению (организации на GitHub). Чтобы получить достаточный доступ, вам потребуется все перечисленные ниже действия.
- Обязательная роль в организации назначения на GitHub
- A personal access token , которая может получить доступ к целевой организации на GitHub
- Они должны иметь все необходимые диапазоны, которые зависят от вашей роли и задачи, которую personal access token вы хотите выполнить.
- Если целевая организация использует SAML single sign-on для GitHub, вы должны авторизовать personal access token SSO.
- На сервере Bitbucket необходимые разрешения и доступ SFTP или SMB
Кроме того, если вы используете списки разрешения IP в целевой организации, возможно, потребуется настроить списки разрешений на доступ через GitHub Enterprise Importer.
Сведения о роли миграции
Чтобы удалить необходимость завершения миграции владелец организации, GitHub включает отдельную роль для использования GitHub Enterprise Importer.
Предоставление роли миграции позволяет назначать другие команды или отдельные лица для обработки миграций.
- Роль миграции для организации можно предоставить только в GitHub.com или GHE.com.
- Вы можете предоставить роль миграции отдельному пользователю или группе. Настоятельно рекомендуется назначить роль миграции команде. Затем можно дополнительно настроить, кто может запустить миграцию, изменив членство в команде. См[. раздел AUTOTITLE или Добавление участников организации в команду](/organizations/organizing-members-into-teams/removing-organization-members-from-a-team).
- Миграция должна использовать personal access token, которая соответствует всем требованиям для выполнения миграции.
Предупреждение
При предоставлении роли миграции в организации пользователю или команде вы предоставляете им возможность импортировать или экспортировать любой репозиторий в этой организации.
Чтобы предоставить роль миграции, см. статью "Предоставление роли миграции".
Обязательные роли для GitHub
Для организации назначения на GitHub, для разных задач требуются разные роли.
В следующей таблице перечислены задачи, которые могут выполняться с помощью какой роли.
| Задача | Владелец организации | Средство переноса |
|---|---|---|
| Назначение роли миграции для миграций репозитория | ||
| Выполнение миграции репозитория | ||
| Скачивание журнала миграции | ||
| Восстановление манекенов |
Требуемые области для personal access tokens
Для запуска миграции нужен , personal access token который может получить доступ к целевой организации на GitHub.
Области, необходимые для ваших GitHub personal access token (classic) зависят от вашей роли и задачи, которую вы хотите завершить.
Примечание.
Можно использовать только 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 выполняются в Linux, SFTP-доступ к экземпляру сервера Bitbucket (см . ключи SSH). Как правило, если вы можете получить доступ к серверу через SSH, можно также использовать SFTP.
- Если экземпляр Сервера Bitbucket работает в Windows, доступ к экземпляру Сервера Bitbucket (SMB)
Ключи SSH
Если экземпляр Bitbucket Server работает в Linux, необходимо использовать ключ SSH, соответствующий следующим требованиям:
- Не имеет парольной фразы
- Использует один из следующих шифров
aes256-ctr3des-cbcaes128-cbcaes192-cbcaes256-cbcblowfish-cbctwofish-cbctwofish192-cbctwofish128-cbctwofish256-cbcarcfourarcfour128arcfour256cast128-cbcaes128-ctraes192-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
Чтобы предоставить роль мигратора с помощью CLI, необходимо установить BBS2GH extension of the GitHub CLI. Дополнительные сведения см. в разделе Перенос репозиториев из Bitbucket Server в GitHub Enterprise Cloud.
-
На GitHub, создайте и запишите а personal access token , которая соответствует всем требованиям для предоставления роли мигратора. Для получения дополнительной информации см. Создание personal access token для GitHub Enterprise Importer.
-
Задайте для personal access token в качестве переменной среды, заменив TOKEN в командах ниже personal access token, записанных выше.
-
Если вы используете терминал, используйте
exportкоманду.Shell export GH_PAT="TOKEN"
export GH_PAT="TOKEN" -
Если вы используете PowerShell, используйте
$envкоманду.Shell $env:GH_PAT="TOKEN"
$env:GH_PAT="TOKEN"
-
-
gh bbs2gh grant-migrator-roleИспользуйте команду, заменив организацию организацией, для которой вы хотите предоставить роль миграции, СУБЪЕКТу имя пользователя или команды и ТИП.USER``TEAMShell 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Примечание.
Если вы предоставляете роль миграции для GHE.com, необходимо также включить URL-адрес целевого API для поддомена вашего предприятия. Например:
--target-api-url https://api.octocorp.ghe.com.
Предоставление роли миграции с помощью API GraphQL
Вы можете использовать мутацию grantMigratorRole GraphQL для назначения роли миграции и revokeMigratorRole изменения для отзыва роли миграции.
Необходимо использовать personal access token (PAT), удовлетворяющий всем требованиям к доступу. Дополнительные сведения см. в разделе "Обязательные области" для personal access tokens.
grantMigratorRole мутация
Эта мутация GraphQL задает роль миграции.
mutation grantMigratorRole (
$organizationId: ID!,
$actor: String!,
$actor_type: ActorType!
) {
grantMigratorRole( input: {
organizationId: $organizationId,
actor: $actor,
actorType: $actor_type
})
{ success }
}
| Переменная запроса | Description |
|---|---|
organizationId | Идентификатор ownerId (или идентификатор организации) для вашей GetOrgInfo организации из запроса. |
actor | Команда или имя пользователя, которым требуется назначить роль миграции. |
actor_type | Укажите, является USER ли миграция или TEAM. |
revokeMigratorRole мутация
Эта мутация удаляет роль миграции.
mutation revokeMigratorRole (
$organizationId: ID!,
$actor: String!,
$actor_type: ActorType!
) {
revokeMigratorRole( input: {
organizationId: $organizationId,
actor: $actor,
actorType: $actor_type
})
{ success }
}
Создание для personal access tokenGitHub Enterprise Importer
- Убедитесь, что у вас есть достаточная роль для задачи, которую вы хотите завершить. Дополнительные сведения см. в разделе "Обязательные роли".
- Создайте personal access token (classic), обязательно предоставив все необходимые задачи для выполнения задачи. Можно использовать только personal access token (classic), а не fine-grained personal access token. Для получения дополнительной информации — AUTOTITLE и Required scopes for personal access token.
- Если для организаций, к которым вам нужен доступ, применяется SAML single signon, personal access token авторизуйте их для SSO. Дополнительные сведения см. в разделе Авторизация личного маркера доступа для использования с единым входом.
Настройка списков разрешений IP-адресов для миграций
Если пункт назначения вашей миграции использует список разрешений IP (либо GitHubфункция списка разрешений IP, либо ограничения списка разрешений вашего идентификатора (IdP)), вам нужно настроить списки разрешений IP на GitHub.
- Если вы используете GitHubфункцию IP-разрешения в списке, необходимо добавить следующие GitHub диапазоны IP в список разрешений для организации-получателя.
- Если вы используете список разрешений IP-адреса вашего IDP для ограничения доступа к вашему предприятию GitHub, вы должны отключить эти ограничения в настройках корпоративной учетной записи до завершения миграции.
Дополнительные сведения см. в разделе [AUTOTITLE и Управление разрешенными IP-адресами для организации](/enterprise-cloud@latest/admin/configuring-settings/hardening-security-for-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
- 135.234.59.224/28 (добавлено 28 июля 2025 года)
- 2a0a:a440::/29
- 2606:50c0::/32
- 20.99.172.64/28 (добавлено 28 июля 2025 года)
Вы можете получить список GitHub Enterprise Importer IP-диапазонов up-toв любое время с помощью конечной точки «Получить GitHub мета-информацию» в REST API.
Ключ github_enterprise_importer в ответе содержит список диапазонов IP-адресов, используемых для миграции.
Дополнительные сведения см. в разделе Конечные точки REST API для метаданных.
Virtual network firewall rules for Хранилище BLOB-объектов Azure forGitHub.com
Клиенты с Хранилище BLOB-объектов Azure, настроенные для хранения данных репозитория для миграции, должны добавить правила брандмауэра виртуальной сети в учетные записи хранения, чтобы разрешить GEI получать доступ к данным репозитория. Для этого требуется использование Azure CLI или PowerShell, так как добавление этих правил брандмауэра виртуальной сети на портале Azure в настоящее время не поддерживается. Следующие идентификаторы подсети виртуальной сети должны быть добавлены в правила брандмауэра виртуальной сети для учетной записи хранения:
/subscriptions/cdf1c65c-e6f4-43b3-945f-c5280f104f9c/resourceGroups/ghr-network-service-1a72ec6f-45b6-44be-a4bd-f0fe50079c9f-5-westus2/providers/Microsoft.Network/virtualNetworks/1a72ec6f-45b6-44be-a4bd-f0fe50079c9f-5/subnets/1a72ec6f-45b6-44be-a4bd-f0fe50079c9f-5/subscriptions/173ad082-b20d-4d44-8257-7fbf34959bed/resourceGroups/ghr-network-service-1a72ec6f-45b6-44be-a4bd-f0fe50079c9f-5-westus3/providers/Microsoft.Network/virtualNetworks/1a72ec6f-45b6-44be-a4bd-f0fe50079c9f-5/subnets/1a72ec6f-45b6-44be-a4bd-f0fe50079c9f-5
Чтобы добавить правила брандмауэра виртуальной сети в учетную запись служба хранилища Azure, выполните шаг 5 в документации по созданию правила виртуальной сети для служба хранилища Azure с помощью идентификаторов подсети сети, указанных выше. Обязательно укажите --subscription аргумент с идентификатором подписки, привязанным к учетной записи хранения.
IP-диапазоны для GHE.com
Необходимо разрешить:
- Диапазоны, необходимые для всех
- Дополнительные диапазоны, зависящие от региона расположения данных
Дополнительные диапазоны см. в разделе Сведения о сети для GHE.com.
Кроме того, если вы используете учетную запись хранения BLOB-объектов с правилами брандмауэра:
- Необходимо разрешить доступ к диапазонам IP-адресов исходящего трафика для GHE.com. См . раздел AUTOTITLE.
- Если вы используете Хранилище BLOB-объектов Azure может потребоваться выполнить дополнительную конфигурацию сети. Это может произойти, если Хранилище BLOB-объектов Azure находится в том же регионе, что и вычисление службы GitHub Enterprise Importer. Обратитесь к Служба поддержки GitHub.