Skip to main content

Управление доступом к миграции между продуктами GitHub

Прежде чем использовать GitHub Enterprise Importer, убедитесь, что у вас есть соответствующий доступ к источнику и назначению миграции.

О требуемом доступе для GitHub Enterprise Importer

Для защиты данных GitHub применяет определенные требования к доступу для использования GitHub Enterprise Importer. Эти требования зависят от выполняемой задачи. Чтобы предотвратить ошибки, необходимо внимательно просмотреть эту статью и убедиться, что выполнены все требования для задачи, которую вы хотите завершить.

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

Что такое источник и назначение?

Источником является организация на GitHub.com или GitHub Enterprise Server, из которых требуется перенести данные.

Назначение может быть следующим:

  • Учетная запись организации в GitHub.com или GHE.com, если выполняется перенос репозиториев
  • Корпоративная **** учетная запись для GitHub.com или GHE.com, если выполняется миграция всей организации

Какой доступ мне нужен?

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

  • Требуемая роль в организации или корпоративной учетной записи
  • personal access token с доступом к учетной записи организации или корпоративной учетной записи
    • Данные personal access token должны иметь все необходимые области, которые зависят от роли и задачи, которую вы хотите завершить.
    • Если источник или назначение использует единый вход SAML для GitHub.com, необходимо авторизовать personal access token для единого входа.

Кроме того, если вы используете списки разрешений IP с источником или назначением, может потребоваться настроить списки разрешений, чтобы разрешить доступ по GitHub Enterprise Importer.

Если вы впервые переносите данные GitHub Enterprise Server 3.8 или более поздней версии, вам также нужен пользователь с доступом к Консоль управления для настройки хранилища BLOB-объектов для экземпляр GitHub Enterprise Server.

Сведения о роли миграции

Note

  • Если вы переносите репозиторий между двумя организациями, вы можете предоставить роль миграции одному и тому же лицу или команде для обеих организаций, но необходимо предоставить каждый из них отдельно.
  • Вы не можете предоставить роль миграции для корпоративных учетных записей. Таким образом, миграцию организации можно выполнить только в том случае, если вы являетесь владельцем целевого предприятия. Однако вы можете предоставить роль миграции владельцу предприятия для исходной организации.
  • GitHub CLI не поддерживает предоставление роли миграции для организаций на GitHub Enterprise Server, поэтому необходимо быть владелец организации исходной организации для переноса репозиториев из GitHub Enterprise Server.

Обязательные роли

Для источника и назначения миграции для различных задач требуются разные роли.

Исходная организация

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

ЗадачаВладелец организацииСредство переноса
Выполнение миграции
Назначение роли миграции для миграций репозитория

Целевая организация или предприятие

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

ЗадачаВладелец предприятияВладелец организацииСредство переноса
Перенос организаций на предприятие
Назначение роли миграции для миграций репозитория
Перенос репозиториев в организацию
Скачивание журнала миграции
Восстановление манекенов

Обязательные области для personal access tokens

Для выполнения миграции требуется personal access token для доступа к целевой организации (для миграции репозитория) или корпоративной учетной записи (для миграции организации). Кроме того, вам потребуется еще один personal access token, который может получить доступ к исходной организации.

Для других задач, таких как скачивание журнала миграции, требуется только один personal access token, который может получить доступ к целевому объекту операции.

Области, необходимые для ваших 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``workflowrepo, , read:org``workflow
Скачивание журнала миграцииrepo, , admin:org``workflowrepo, , read:org``workflow
Восстановление манекеновadmin:org
Выполнение миграции (исходная организация)admin:org, repoadmin:org, repo
Выполнение миграции организации (целевое предприятие)read:enterprise, , admin:org``repo``workflow

Предоставление роли миграции

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

Роль миграции можно предоставить с помощью GEI extension of the GitHub CLI или API GraphQL.

Предоставление роли миграции с помощью GEI extension

Чтобы предоставить роль миграции с помощью интерфейса командной строки, необходимо установить GEI extension of the GitHub CLI. Дополнительные сведения см. в разделе Перенос репозиториев из GitHub.com в GitHub Enterprise Cloud.

  1. На GitHub.comсоздайте и запишите personal access token, которая соответствует всем требованиям для предоставления роли миграции. Дополнительные сведения см. в статье "Создание personal access token для GitHub Enterprise Importer.

  2. gh gei grant-migrator-role Используйте команду, заменив организацию организацией, для которой вы хотите предоставить роль миграции, СУБЪЕКТу имя пользователя или команды и ТИП.USER TEAM

    Shell
    gh gei grant-migrator-role --github-org ORGANIZATION --actor ACTOR --actor-type TYPE
    

Предоставление роли миграции с помощью API GraphQL

Создание personal access token для GitHub Enterprise Importer

  1. Убедитесь, что у вас есть достаточная роль для задачи, которую вы хотите завершить. Дополнительные сведения см. в разделе "Обязательные роли".
  2. Создайте personal access token (classic), чтобы предоставить все область, необходимые для выполнения задачи. Можно использовать только personal access token (classic), а не fine-grained personal access token. Дополнительные сведения см. в разделе "Управление личными маркерами доступа" и "Обязательные область для personal access token".
  3. Если единый вход SAML применяется для организаций, к ним необходимо получить доступ, авторизуйте personal access token для единого входа. Дополнительные сведения см. в разделе Авторизация личного токена доступа для использования с документами единого входа SAML.

Настройка списков разрешений IP-адресов для миграций

Если источником миграции является GitHub Enterprise Server, вам не нужно добавлять диапазоны IP-адресов GitHub в конфигурацию брандмауэра или список разрешений IP-адресов в экземпляр GitHub Enterprise Server. Однако в зависимости от настройки поставщика хранилища BLOB-объектов может потребоваться обновить конфигурацию поставщика хранилища BLOB-объектов, чтобы разрешить доступ к диапазонам IP-адресов GitHub ниже.

Диапазоны 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

Кроме того, если вы переносите данные GitHub Enterprise Server и используете учетную запись хранения BLOB-объектов с правилами брандмауэра:

  • Необходимо разрешить доступ к диапазонам IP-адресов исходящего трафика для GHE.com. См. раздел "Сведения о сети для GHE.com".
  • Если вы используете Хранилище BLOB-объектов Azure, может потребоваться выполнить дополнительную настройку. Обратитесь к Служба поддержки GitHub.

Дополнительные материалы