リポジトリのプログラムによるインポートについて
次のガイドでは、Git リポジトリの「ソースと履歴」の移行をプログラムで GitHub に実行する方法について説明します。 リポジトリの格納場所に応じて、さまざまなオプションを使用できます。
「ソースと履歴」およびその他の種類の移行の詳細については、「GitHub への移行の計画」を参照してください。
「ソース リポジトリ」という用語はインポートするリポジトリを指し、「インポートされたリポジトリ」は作成する新しいリポジトリを指します。
フォークの使用
ソース リポジトリが GitHub にある場合は、リポジトリをインポートする代わりにフォークを使用できる場合があります。 フォークを使うと、オリジナルのリポジトリ ("上流の" リポジトリとも呼ばれます) に影響を与えることなくプロジェクトを変更できます。 リポジトリをフォークした後は、上流のリポジトリから更新をフェッチしてフォークを最新の状態に保つことができ、pull request を使ってフォークから上流のリポジトリに変更を提案できます。 詳細については、「フォークについて」を参照してください。
REST API を使用して、リポジトリをプログラムでフォークできます。 詳しくは、「フォーク用の REST API エンドポイント」を参照してください。
ユース ケースが次のいずれかの条件を満たしている場合、リポジトリを直接インポートする代わりにフォークを使用することはできません。
- インポートされたリポジトリを、ソース リポジトリと同じユーザーまたは組織が所有する必要があります。
- 1 人のユーザーまたは組織が同じソース リポジトリを複数回インポートできるようにする必要があります。
リポジトリテンプレートの使用
ソース リポジトリが GitHub にある場合は、リポジトリ テンプレートを使用できる場合があります。 既存のリポジトリからテンプレートを作成できます。 テンプレート リポジトリにアクセスできるユーザーは、同じディレクトリ構造、ブランチ、ファイルを持つテンプレートに基づいて新しいリポジトリを作成できます。 詳細については、「テンプレートリポジトリを作成する」を参照してください。
リポジトリ テンプレートを使用するには、テンプレートである既存のリポジトリへの読み取りアクセス権を持っているか、テンプレートを作成するためのアクセス権が必要です。
REST API を使用して、リポジトリ テンプレートからリポジトリをプログラムで作成できます。 詳しくは、「リポジトリの REST API エンドポイント」を参照してください。
GitHub Enterprise Importer の使用
ソース リポジトリが GitHub、GitHub Enterprise Server、Azure DevOps Services、Bitbucket Server、または Bitbucket データ センターでホストされている場合は、GitHub Enterprise Importer を使用してリポジトリをインポートできます。 詳しくは、「GitHub Enterprise Importer について」を参照してください。
ソースとバージョン コントロールの履歴に加えて、GitHub Enterprise Importer は、問題点、プル リクエスト、設定などを移行します。
GitHub Enterprise Importer を使用するには、ソース リポジトリへの管理者アクセス権が必要です。
GraphQL API を使用して、GitHub Enterprise Importer をもつリポジトリをプログラムでインポートできます。
Git CLI の使用
ソース リポジトリが Git リポジトリの場合は、コードから Git CLI をプログラムで呼び出すことができます。 プログラムにより、GitHub の REST API を使用してリポジトリを作成し、git clone
と git push
のようなコマンドを使用し、リポジトリを GitHub にインポートできます。
Git CLI の呼び出し方法は、コードの言語によって異なります。 たとえば、Node.js では child_process
モジュールを使用でき、Ruby では open3
モジュールを 使用できます。 詳細については、Node.js ドキュメントの「子プロセス」、または GitHub の「ruby/open3 リポジトリ」をご覧ください。
Git CLI を使用するには、アプリケーションをホストするシステムに Git をインストールするためのアクセス権が必要です。 詳細については、Git のドキュメントの「使用開始 - Git のインストール」に関するページを参照してください。
GitHub CLI の使用
ソース リポジトリが Git リポジトリの場合は、コードからプログラムで GitHub CLI を呼び出すことができます。 リポジトリの作成に gh repo create
を使用できます。 詳しくは、「GitHub CLI について」を参照してください。