インポートしたデータを GitHub Enterprise Server に適用する
データを Enterprise に移行するには、事前にデータを準備し、競合を解決する必要があります。 詳細については、「Enterprise へのデータ移行の準備」を参照してく� さい。
データを準備して競合を解決したら、インポートしたデータを GitHub Enterprise Server に適用できます。
-
サイト管理者として、ターゲットの GitHub Enterprise Server インスタンスに SSH で接続します。
$ ssh -p 122 admin@HOSTNAME
-
ghe-migrator import
コマンドを使用して、インポート プロセスを開始します。 必要なものは次のとおりです。- 移行 GUID。 詳細については、「Enterprise へのデータ移行の準備」を参照してく� さい。
- 認証のための個人アクセストークン。 個人アクセストークンは、サイト管理者としての認証にのみ使用され、特定のスコープは必要ありません。 詳細については、個人アクセス トークンの作成に関する記事を参照してく� さい。
$ ghe-migrator import /home/admin/MIGRATION_GUID.tar.gz -g MIGRATION_GUID -u username -p TOKEN > Starting GitHub::Migrator > Import 100% complete /
- 移行ファイルをステージングする� �所を指定するには、
--staging-path=/full/staging/path
を使用してコマンドを追� します。 既定値は/data/user/tmp
です。
移行データのレビュー
既定では、ghe-migrator audit
はすべてのレコードを返します。 また、以下の条件でレコードをフィルタリングすることもできます。
- レコードのタイプ。
- レコードの状態。
レコードの種類は、移行されたデータで見つかったものと一致します。
レコードタイプのフィルタ
レコード タイプ | フィルター名 |
---|---|
ユーザー | user |
組織 | organization |
リポジトリ | repository |
Teams | team |
マイルストーン | milestone |
プロジェクトボード | project |
発行 | issue |
Issueのコメント | issue_comment |
Pull Request | pull_request |
プルリクエストのレビュー | pull_request_review |
コミットのコメント | commit_comment |
プルリクエストのレビューのコメント | pull_request_review_comment |
リリース | release |
プルリクエストあるいはIssueに対して行われたアクション | issue_event |
保護されたブランチ | protected_branch |
レコードの状態フィルタ
レコードの状態 | 説明 |
---|---|
export | レコードはエクスポートされます。 |
import | レコードはインポートされます。 |
map | レコードはマップされます。 |
rename | レコードの名前が変更されます。 |
merge | レコードはマージされます。 |
exported | レコードはエクスポートに成功しました。 |
imported | レコードはインポートに成功しました。 |
mapped | レコードはマップに成功しました。 |
renamed | レコードの名前の変更に成功しました。 |
merged | レコードはマージに成功しました。 |
failed_export | レコードはエクスポートに失敗しました。 |
failed_import | レコードはインポートに失敗しました。 |
failed_map | レコードはマップに失敗しました。 |
failed_rename | レコードの名前の変更に失敗しました。 |
failed_merge | レコードはマージに失敗しました。 |
監査されたレコードのフィルタリング
ghe-migrator audit
コマンドを使用すると、-m
フラグを使用してレコードの種類に基づいてフィルター処理できます。 同様に、-s
フラグを使用してインポート状態をフィルター処理できます。 次のようなコマンドです。
$ ghe-migrator audit -m RECORD_TYPE -s STATE -g MIGRATION_GUID
たとえば、インポートに成功したすべてのOrganizationとチー� を見るには以下のようにします。
$ ghe-migrator audit -m organization,team -s mapped,renamed -g MIGRATION_GUID
> model_name,source_url,target_url,state
> organization,https://gh.source/octo-org/,https://ghe.target/octo-org/,renamed
失敗したすべてのインポートを監査することを強くお勧めします。 これを行うには、次のように入力します。
$ ghe-migrator audit -s failed_import,failed_map,failed_rename,failed_merge -g MIGRATION_GUID
> model_name,source_url,target_url,state
> user,https://gh.source/octocat,https://gh.target/octocat,failed
> repository,https://gh.source/octo-org/octo-project,https://ghe.target/octo-org/octo-project,failed
失敗したインポートに関する懸念があるなら、GitHub Enterprise Supportに連絡してく� さい。
GitHub Enterprise Server でインポートを完了する
ターゲットインスタンスへの移行が適用され、その内容を確認したら、リポジトリのロックを解除して、ソースから削除します。 ソースデータを削除する前に、すべてが期待どおりに機能していることを確認するため2週間ほど待つことをおすすめします。
ターゲットインスタンス上でのリポジトリのアンロック
-
に SSH でアクセスします。 インスタンスが複数のノードで構成されている� �合は (高可用性や geo レプリケーションが構成されている� �合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する� �合は、任意のノードに SSH 接続できます。 SSH 接続について詳しくは、「管理シェル (SSH) にアクセスする」をご覧く� さい。
1. `ghe-migrator unlock` コマンドを使用して、インポートされたすべてのリポジトリのロックを解除します。 移行GUIDが必要になります。$ ssh -p 122 admin@HOSTNAME
$ ghe-migrator unlock -g MIGRATION_GUID > Unlocked octo-org/octo-project
ソース上でのリポジトリのアンロック
GitHub.com で Organization からリポジトリのロックを解除する
GitHub.com Organization のリポジトリのロックを解除するには、DELETE
要求を移行ロック解除エンドポイントに送信します。 必要なものは次のとおりです。
- 認証のためのアクセストークン
- 移行の一意の
id
- アンロックするリポジトリの名前
curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" -X DELETE \ -H "Accept: application/vnd.github.wyandotte-preview+json" \ https://api.github.com/orgs/orgname/migrations/id/repos/repo_name/lock
GitHub.com で Organization からリポジトリを削除する
GitHub.com Organization のリポジトリのロックを解除した後、リポジトリ削除エンドポイントを使用して以前に移行したすべてのリポジトリを削除する必要があります。 認証のためのアクセストークンが必要になります。
curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" -X DELETE \
https://api.github.com/repos/orgname/repo_name
GitHub Enterprise Server インスタンスからリポジトリをアンロックする
-
に SSH でアクセスします。 インスタンスが複数のノードで構成されている� �合は (高可用性や geo レプリケーションが構成されている� �合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する� �合は、任意のノードに SSH 接続できます。 SSH 接続について詳しくは、「管理シェル (SSH) にアクセスする」をご覧く� さい。
1. `ghe-migrator unlock` コマンドを使用して、インポートされたすべてのリポジトリのロックを解除します。 移行GUIDが必要になります。$ ssh -p 122 admin@HOSTNAME
$ ghe-migrator unlock -g MIGRATION_GUID > Unlocked octo-org/octo-project