URLでリポジトリからプロジェクトをインポートする
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
Git URLを指定して、既存のリポジトリをインポートできます。この方法では、GitLabイシューとマージリクエストをインポートできません。他の方法では、より完全なインポート方法が提供されます。
リポジトリが大きすぎる場合、インポートがタイムアウトになる可能性があります。
次の方法でGitリポジトリをインポートできます:
前提要件
- リポジトリのURLからのインポート元を有効にする必要があります。有効になっていない場合は、GitLab管理者に有効にするように依頼してください。GitLab.comでは、リポジトリのURLからのインポート元はデフォルトで有効になっています。
- インポート先のGitLabグループに対する少なくともメンテナーロールが必要です。
- プライベートリポジトリをインポートする場合は、パスワードの代わりに、ソースリポジトリへの認証されたアクセスのためのアクセストークンが必要になる場合があります。
UIを使用してプロジェクトをインポートする
- 左側のサイドバーの上部で、新規作成( )を選択し、新規プロジェクト/リポジトリを選択します。
- プロジェクトのインポートを選択します。
- リポジトリのURLを選択します。
- GitリポジトリのURLを入力します。
- 残りのフィールドを入力します。プライベートリポジトリからインポートするには、ユーザー名とパスワード(またはアクセストークン)が必要です。
- プロジェクトを作成を選択します。
新しく作成されたプロジェクトが表示されます。
タイムアウトしたプロジェクトのインポート
大規模なリポジトリのインポートは、3時間後にタイムアウトする可能性があります。タイムアウトしたプロジェクトをインポートするには、次のようにします:
リポジトリのクローンを作成します。
git clone --mirror https://example.com/group/project.git--mirrorオプションを指定すると、すべてのブランチ、タグ、およびrefsがコピーされます。新しいリモートリポジトリを追加します。
cd repository.git git remote add new-origin https://gitlab.com/group/project.gitすべてを新しいリモートリポジトリにプッシュします。
git push --mirror new-origin
APIを使用してプロジェクトをインポートする
Projects APIを使用して、Gitリポジトリをインポートできます:
curl --location "https://gitlab.example.com/api/v4/projects/" \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <your-token>' \
--data-raw '{
"description": "New project description",
"path": "new_project_path",
"import_url": "https://username:password@example.com/group/project.git"
}'一部のプロバイダーではパスワードが許可されておらず、代わりにアクセストークンが必要です。