インポートしたデータを GitHub Enterprise Server に適用する
-
サイトアドミンとしてターゲットのGitHub Enterprise ServerインスタンスにSSHでアクセスしてください。
$ ssh -p 122 admin@HOSTNAME
-
ghe-migrator import
コマンドを使ってインポートのプロセスを開始してください。 以下が必要です:- 移行 GUID.
- Your personal access token for authentication. The personal access token that you use is only for authentication as a site administrator, and does not require any specific scope. 詳しい情報については、「個人アクセストークンを作成する」を参照してください。
$ 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
はすべてのレコードを返します。 また、以下の条件でレコードをフィルタリングすることもできます。
- レコードのタイプ。
- レコードの状態。
レコードタイプは移行データにあるものとマッチします。
レコードタイプのフィルタ
レコードタイプ | フィルタ名 |
---|---|
ユーザ | ユーザ |
Organization | Organization |
リポジトリ | リポジトリ |
Team | Team |
マイルストーン | マイルストーン |
プロジェクトボード | project |
問題 | Issue |
Issueのコメント | issue_comment |
プルリクエスト | pull_request |
プルリクエストのレビュー | pull_request_review |
コミットのコメント | commit_comment |
プルリクエストのレビューのコメント | pull_request_review_comment |
リリース | リリース |
プルリクエストあるいはIssueに対して行われたアクション | issue_event |
保護されたブランチ | protected_branch |
レコードの状態フィルタ
レコードの状態 | 説明 |
---|---|
export | レコードはエクスポートされます。 |
import | レコードはインポートされます。 |
map | レコードはマップされます。 |
rename | レコードの名前が変更されます。 |
マージ | レコードはマージされます。 |
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 Premium Supportに連絡してください。
GitHub Enterprise Server でインポートを完了する
After your migration is applied to your target instance and you have reviewed the migration, you''ll unlock the repositories and delete them off the source. ソースデータを削除する前に、すべてが期待どおりに機能していることを確認するため2週間ほど待つことをおすすめします。
ターゲットインスタンス上でのリポジトリのアンロック
- your GitHub Enterprise Server instanceにSSHでアクセスしてください。
$ ssh -p 122 admin@HOSTNAME
ghe-migrator unlock
コマンドでインポートされたすべてのリポジトリをアンロックしてください。 移行GUIDが必要になります。$ ghe-migrator unlock -g MIGRATION_GUID > Unlocked octo-org/octo-project
ソース上でのリポジトリのアンロック
GitHub.com で Organization からリポジトリのロックを解除する
GitHub.com Organization のリポジトリをアンロックするには、DELETE
リクエストを移行アンロックエンドポイントに送信します。 以下が必要です:
- 認証のためのアクセストークン
- 移行のユニーク
id
- アンロックするリポジトリの名前
curl -H "Authorization: token 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: token GITHUB_ACCESS_TOKEN" -X DELETE \
https://api.github.com/repos/orgname/repo_name
GitHub Enterprise Server インスタンスからリポジトリをアンロックする
- your GitHub Enterprise Server instanceにSSHでアクセスしてください。
$ ssh -p 122 admin@HOSTNAME
ghe-migrator unlock
コマンドでインポートされたすべてのリポジトリをアンロックしてください。 移行GUIDが必要になります。$ ghe-migrator unlock -g MIGRATION_GUID > Unlocked octo-org/octo-project