Skip to main content

CLI で Codespaces を使用する

CLI は、コンピューターのコマンド ラインから を使用するためのオープン ソース ツールです。 コマンドラインから作業しているときは、 CLI を使用して時間を節約し、コンテキストの切り替えを回避できます。詳しくは、「 CLI について」をご覧ください。

CLI 内の Codespaces を操作すると、次のことができます。

CLI のインストール手順については、 CLI リポジトリを参照してください。

まだの場合は、 アカウントで gh auth login を実行して認証を行います。

gh を Codespaces の操作に使用するには、gh codespace SUBCOMMAND またはそのエイリアス gh cs SUBCOMMAND を入力します。

Codespaces を操作するために使用できる一連のコマンドの例として、次の操作を行うことができます。

  • 現在の codespaces を一覧表示して、特定のリポジトリの codespace があるかどうかを確認します。
    gh codespace list
  • 必要なリポジトリ ブランチの新しい codespace を作成します。
    gh codespace create -r /docs -b main
  • 新しい codespace に SSH 接続します。
    gh codespace ssh -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq
  • ローカル コンピューターにポートを転送します。
    gh codespace ports forward 8000:8000 -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq

以下のセクションでは、使用可能な各操作のコマンドの例を示します。

各コマンドで使用可能なすべてのオプションの詳細を含む Codespaces の gh コマンドの完全なリファレンスについては、「gh codespace」の CLI オンライン ヘルプを参照してください。 または、コマンド ラインで gh codespace --help (一般的なヘルプ) または gh codespace SUBCOMMAND --help (特定のサブコマンドのヘルプ) を使用できます。

メモ

多数のコマンドで使用される -c CODESPACE_NAME フラグは省略可能です。 省略すると、選択できる codespaces の一覧が表示されます。

gh codespace list

リストには、他の gh codespace コマンドで使用できる各 codespace の一意の名前が含まれています。

codespace のブランチ名の末尾にあるアスタリスクは、その codespace にコミットされていない、またはプッシュされていない変更があることを示します。

gh codespace create -r OWNER/REPO_NAME [-b BRANCH]

詳しくは、「リポジトリの codespace を作成する」をご覧ください。

gh codespace view

このコマンドを実行すると、既存の codespace のいずれかを選択するように求められます。 その後、次の情報が表示されます。

  • codespace の名称
  • 状態 ("使用可能" や "シャットダウン" など)
  • リポジトリ
  • Git の状態
  • codespace の作成に使用される開発コンテナー構成ファイルへのパス
  • マシンの種類
  • アイドル タイムアウト
  • codespace が作成された日時
  • 保持期間

詳細については、 CLI リファレンスに関するページを参照してください。

gh codespace stop -c CODESPACE-NAME

詳しくは、「 Codespaces の詳細」をご覧ください。

gh codespace delete -c CODESPACE-NAME

詳しくは、「codespace を削除する」をご覧ください。

gh codespace edit -c CODESPACE-NAME -d 'DISPLAY-NAME'

詳しくは、「codespace の名前を変更する」をご覧ください。

gh codespace rebuild

完全なリビルドを実行するには、このコマンドの最後に --full を追加します。 詳しくは、「codespace でのコンテナーのリビルド」をご覧ください。

このコマンドを使用して codespace をリビルドすると、codespace のシステムに現在保存されている devcontainer.json ファイルが使用されます。 ファイルの現在の状態がソース管理に保存されているかどうかに関係なく、そのようになります。 詳しくは、「開発コンテナーの概要」をご覧ください。

リモート codespace コンピューターでコマンドを実行するには、ターミナルから codespace に SSH 接続できます。

gh codespace ssh -c CODESPACE-NAME

メモ

接続する codespace では、SSH サーバーを実行している必要があります。 既定の開発コンテナー イメージには、自動的に開始される SSH サーバーが含まれています。 codespaces が既定のイメージから作成されていない場合は、devcontainer.json ファイル内の features オブジェクトに次を追加することで、SSH サーバーをインストールして起動できます。

"features": {
// ...
"ghcr.io/devcontainers/features/sshd:1": {
"version": "latest"
},
// ...
}

devcontainer.json ファイルと既定のコンテナー イメージについて詳しくは、「開発コンテナーの概要」をご覧ください。

Codespaces では、シームレスな認証エクスペリエンスを提供するためにローカル SSH キーを自動的に作成します。 SSH 暗号化を使用した接続について詳しくは、「gh codespace ssh」を参照してください。

で codespace を開く

gh codespace code -c CODESPACE-NAME

ローカル コンピューターに VS Code がインストールされている必要があります。 詳しくは、「Visual Studio Code で Codespaces を使用する」をご覧ください。

gh codespace jupyter -c CODESPACE-NAME

JupyterLab アプリケーションは、開いている codespace にインストールされている必要があります。 既定の開発コンテナー イメージには JupyterLab が含まれているため、既定のイメージから作成された codespace には常に JupyterLab がインストールされます。 既定のイメージの詳細については、「開発コンテナーの概要」と devcontainers/images リポジトリを参照してください。 開発コンテナー構成で既定のイメージを使用していない場合は、devcontainer.json ファイルに ghcr.io/devcontainers/features/python 機能を追加して JupyterLab をインストールできます。 オプション "installJupyterlab": trueを含める必要があります。 詳しくは、devcontainers/features リポジトリにある python 機能の Readme をご覧ください。

gh codespace cp [-r] SOURCE(S) DESTINATION

ファイル名またはディレクトリ名のプレフィックス remote: を使用して、codespace 上にあることを示します。 UNIX cp コマンドと同様に、最初の引数はコピー元を指定し、最後の引数はコピー先を指定します。 コピー先がディレクトリの場合は、複数のコピー元を指定できます。 いずれかのコピー元がディレクトリの場合は、-r (再帰) フラグを使用します。

codespace 上のファイルとディレクトリの場所は、リモート ユーザーのホーム ディレクトリに対して相対的です。

  • ローカル コンピューターから codespace の $HOME ディレクトリにファイルをコピーします。

    gh codespace cp myfile.txt remote:

  • codespace でリポジトリがチェックアウトされているディレクトリにファイルをコピーします。

    gh codespace cp myfile.txt remote:/workspaces/REPOSITORY-NAME

  • codespace からローカル コンピューター上の現在のディレクトリにファイルをコピーします。

    gh codespace cp remote:myfile.txt .

  • 次の 3 つのローカル ファイルを codespace の $HOME/temp ディレクトリにコピーします。

    gh codespace cp a1.txt a2.txt a3.txt remote:temp

  • codespace からローカル コンピューター上の現在の作業ディレクトリに次の 3 つのファイルをコピーします。

    gh codespace cp remote:a1.txt remote:a2.txt remote:a3.txt .

  • 次のローカル ディレクトリを codespace の $HOME ディレクトリにコピーします。

    gh codespace cp -r mydir remote:

  • codespace からローカル コンピューターにディレクトリをコピーし、ディレクトリ名を変更します。

    gh codespace cp -r remote:mydir mydir-localcopy

使用できる追加フラグなど、gh codespace cp コマンドの詳細については、 CLI マニュアルを参照してください。

codespace 上のポートをローカル ポートに転送できます。 プロセスが実行されている限り、ポートは転送されたままです。 ポートの転送を停止するには、Control+C キーを押します。

gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME

転送されたポートの詳細を表示するには、gh codespace ports を入力して codespace を選択します。

転送されたポートの可視性を設定できます。 3 種類の可視性の設定があります。

  • private - 自分にのみ表示されます。 これはポートを転送するときの既定の設定です。
  • org - リポジトリを所有する組織のメンバーに表示されます。
  • public - URL とポート番号を知っているすべてのユーザーに表示されます。
gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME

1 つのコマンドを使用して、複数のポートの可視性を設定できます。 次に例を示します。

gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME

詳しくは、「codespace でのポートの転送」をご覧ください。

codespace の作成ログを確認できます。 このコマンドを入力すると、SSH キーのパスフレーズを入力するように求められます。

gh codespace logs -c CODESPACE-NAME

作成ログについて詳しくは、「 Codespaces ログ」をご覧ください。

CLI 拡張機能を使用すると、codespace とご自分のローカル コンピューターの間にブリッジを作成し、コンピューターからアクセスできるあらゆるリモート リソースに codespace がアクセスできるようにすることができます。 拡張機能の使用方法について詳しくは、 CLI を使用したリモート リソースへのアクセスに関する記事をご覧ください。

メモ

CLI 拡張情報は現在 パブリック プレビュー 段階であり、変更される可能性があります。

gh codespace edit -m MACHINE-TYPE-NAME

詳しくは、「codespace のマシンの種類を変更する」の「 CLI」タブをご覧ください。