Skip to main content

プログラムによってリポジトリをインポートする

プログラムにより、リポジトリを GitHub.com にインポートできます。

リポジトリのプログラムによるインポートについて

次のガイドでは、Git リポジトリの「ソースと履歴」の移行をプログラムで GitHub.com に実行する方法について説明します。 リポジトリの格納場所に応じて、さまざまなオプションを使用できます。

「ソースと履歴」およびその他の種類の移行の詳細については、「GitHub への移行の計画」を参照してください。

「ソース リポジトリ」という用語はインポートするリポジトリを指し、「インポートされたリポジトリ」は作成する新しいリポジトリを指します。

ソース インポート REST API の非推奨について

ソースのインポートを管理するための REST API エンドポイントでは、インターネット経由でアクセスできるリポジトリをプログラムで GitHub.com にインポートできます。 詳しくは、REST API ドキュメントの「ソースのインポート」をご覧ください。

2024 年 4 月 12 日、GitHub は、REST API ドキュメントの「ソースのインポート」に記載されているすべてのエンドポイントを非推奨とします。 現在これらの操作を使用している場合は、コードを変更する必要があります。そうしないと、アプリケーションは 2024 年 4 月 12 日に動作を停止します。

フォークの使用

ソース リポジトリが GitHub.com にある場合は、リポジトリをインポートする代わりにフォークを使用できる場合があります。 フォークを使うと、オリジナルのリポジトリ ("上流の" リポジトリとも呼ばれます) に影響を与えることなくプロジェクトを変更できます。 リポジトリをフォークした後は、上流のリポジトリから更新をフェッチしてフォークを最新の状態に保つことができ、pull request を使ってフォークから上流のリポジトリに変更を提案できます。 詳細については、「フォークについて」を参照してください。

REST API を使用して、リポジトリをプログラムでフォークできます。 詳しくは、REST API ドキュメントの「フォーク」をご覧ください。

ユース ケースが次のいずれかの条件を満たしている場合、リポジトリを直接インポートする代わりにフォークを使用することはできません。

  • インポートされたリポジトリを、ソース リポジトリと同じユーザーまたは組織が所有する必要があります。
  • 1 人のユーザーまたは組織が同じソース リポジトリを複数回インポートできるようにする必要があります。

リポジトリテンプレートの使用

ソース リポジトリが GitHub.com にある場合は、リポジトリ テンプレートを使用できる場合があります。 既存のリポジトリからテンプレートを作成できます。 テンプレート リポジトリにアクセスできるユーザーは、同じディレクトリ構造、ブランチ、ファイルを持つテンプレートに基づいて新しいリポジトリを作成できます。 詳細については、「テンプレートリポジトリを作成する」を参照してください。

リポジトリ テンプレートを使用するには、テンプレートである既存のリポジトリへの読み取りアクセス権を持っているか、テンプレートを作成するためのアクセス権が必要です。

REST API を使用して、リポジトリ テンプレートからリポジトリをプログラムで作成できます。 詳しくは、REST API ドキュメントの「リポジトリ」をご覧ください。

GitHub Enterprise Importer の使用

ソース リポジトリが GitHub.com、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 clonegit push のようなコマンドを使用し、リポジトリを GitHub.com にインポートできます。

Git CLI の呼び出し方法は、コードの言語によって異なります。 たとえば、Node.js では child_process モジュールを使用でき、Ruby では open3 モジュールを 使用できます。 詳細については、Node.js ドキュメントの「子プロセス」、または GitHub.com の「ruby/open3 リポジトリ」を参照してください。

Git CLI を使用するには、アプリケーションをホストするシステムに Git をインストールするためのアクセス権が必要です。 詳細については、Git のドキュメントの「使用開始 - Git のインストール」に関するページを参照してください。

GitHub CLI の使用

ソース リポジトリが Git リポジトリの場合は、コードからプログラムで GitHub CLI を呼び出すことができます。 リポジトリの作成に gh repo create を使用できます。 詳しくは、「GitHub CLI について」を参照してください。

参考資料