RepositoryはCloneすれば簡単に複製できるが、IssuesのチケットやMilestones、Wikiなども複製したい時はProjectのExport機能を使うのが手っ取り早い。
この記事はGitLabのExport・Import機能を利用してProjectを複製する方法の備忘録である。
オフィシャルの説明ページはこちらとなる。
Exportされるもの・されないもの
Exportされるものは以下となる。
- Wiki
- Repository
- Projectの設定(Avatarとか)
- IssuesやMerge Request(コメント含む)
- Milestone、Snippet、Board
- その他いくつか
逆にExportされないものは以下となる。
- Project名(Import時に自分でつける)
- CI/CDのVariables
- Jobのログとアーティファクト
- Pipeline triggers
- Token
- Webhook
- コンテナイメージ
CI/CD周りの設定のバックアップには使えなさそうなので、そういう用途で考えていた人は注意が必要そう。
事前準備
Download用のURLがメールで飛んでくるので、ログインアカウントのメール設定を適当にしている人は見直しておく。
ユーザアイコンをクリックし、"Edit profile"から"Main settings"の"Email"から変更できる。
ProjectのExport
プロジェクトを開いた状態で、左のサイドバーの"Settings"から"General"を選択し、一番下の"Advanced"の横のExpandをクリックする。
クリックした後、"Export project"のところにある、Exportをクリックする。
クリックしてしばらくすると、以下のような文面のメールが届く。
Project xxx was exported successfully.
The project export can be downloaded from: Firstname Lastname / xxx export
The download link will expire in 24 hours.
メール内にリンクがあるので、クリックするとブラウザが開いて2022-09-01_21-45-247_name_xxx_export.tar.gz
といった名前のファイルがダウンロードされる。
これでExportは完了。
ProjectのImport
ダウンロードしたファイルはプロジェクト作成時に利用して復元することが出来る。
"Menu"->"Projects"->"Create new project"からプロジェクトの新規作成画面を開き、"Import project"を選択する。
"GitLab export"を選択し、遷移後の画面で"Choose File"をクリックしてExportしたファイルを選択し、Project name, Project URL, Project slugを好きなように入力してImport ProjectをクリックすればExportしたProjectが復元できる。