JetBrains Space ヘルプ

リモートパッケージリポジトリからの移行

外部リポジトリ ( ソースリポジトリ ) でパッケージをホストしている場合、ある時点でパッケージを Space のリポジトリ ( ターゲットリポジトリ ) に移動することができます。この目的のために、space コマンドラインツールを使用できます。

サポートされているリポジトリの種類

リポジトリ全体をコピーする

特定のパッケージのコピー

Cargo (Rust)

Not supported

Not supported

コンテナー

Not supported

Not supported

Composer

Not supported

Not supported

Dart

Not supported

Supported

Maven

Supported

Supported

NuGet

Not supported

Supported

npm

Supported (特定の範囲のみ)

Supported

Python パッケージインデックス

Supported

Supported

1. 「space」コマンドラインツールを入手する

  1. space ツールは Docker イメージとして提供されます。

    イメージを取得するには、次を実行します。

    docker pull public.registry.jetbrains.space/p/space/containers/space-cli-jvm:latest
  2. ツールの実行を簡素化するために、イメージを実行するためのエイリアス (例: space) を作成できます。

    docker tag public.registry.jetbrains.space/p/space/containers/space-cli-jvm:latest space

2. Space 認証トークンを取得する

パッケージを Space パッケージリポジトリにアップロードするには、space ツールに Space 認証トークンが必要です。最も簡単な方法は、個人のアクセストークンを使用して、ツールがユーザーに代わって Space で動作できるようにすることです。

  1. トークンを作成するには、プロファイル | 認証 | 個人トークンに移動し、新しい個人トークンを選択します。

  2. トークンを作成するときは、可能な限り最小限のアクセス許可をトークンに提供します。

    • トークンのアクセス許可では、アクセスが制限されていますを選択します。

    • コンテキストの追加プロジェクトを選択し、ターゲットパッケージリポジトリが属するプロジェクトを指定します。

    • 対応して読み取りアクセスと書き込みアクセスを与えるために、パッケージリポジトリの読み取りパッケージリポジトリの書き込みを追加します。

  3. 生成された永久トークンを安全な場所にコピーします。次にこのセクションでは、このトークンを space_auth_token と呼びます。

3. リモートリポジトリからパッケージをコピーする

  1. space ツールを構成します。

    構成は ~/.space/client-config ファイルに保存され、Space アクセストークンと Space インスタンスの URL が含まれます。ファイルを作成するには、次を実行します。

    docker run -v ~/.space:/root/.space space configure https://mycompany.jetbrains.space space_auth_token
    ここでは、ローカルマシン ~/.space 上のディレクトリをコンテナー /root/.space 内のディレクトリにバインドします。このようにして、コンテナー内に作成された構成ファイルはローカルに保存され、さらに再利用できます。

  2. リモートリポジトリからパッケージをコピーします。このツールは、サポートされているリポジトリ型に対応する次のコマンドをサポートしています。

    • packages-npm migrate

    • packages-maven migrate

    • packages-pypi migrate

    例:

    • リポジトリ全体をコピーするには:

      docker run -v ~/.space:/root/.space space packages-maven migrate \ --target-repo-url https://maven.pkg.jetbrains.space/mycompany/p/projectkey/my-maven-repo \ --source-repo-url https://somemavenrepo.url \ --source-repo-token source_repo_token

      ここで、--target-repo-url はターゲット Space リポジトリの URL を指定し、--source-repo-url はソースリポジトリの URL を指定します。--source-repo-token は、ソースリポジトリでの承認用のベアラートークンを指定します。あるいは、--source-repo-login および --source-repo-password を使用してツールを認証できます。

    • Space は npm のリポジトリ全体の移行をサポートしていないことに注意してください。特定のスコープに属するパッケージのみをコピーできます。例: @somescope からすべてのパッケージをコピーするには:

      docker run -v ~/.space:/root/.space space packages-npm migrate \ --package-scope @somescope \ --target-repo-url https://npm.pkg.jetbrains.space/mycompany/p/projectkey/mynpm \ --source-repo-url https://somerepo.url \ --source-repo-token source_repo_token

    • npm リポジトリから packageApackageB のみをコピーするには:

      docker run -v ~/.space:/root/.space space packages-npm migrate \ --package-names packageA,packageB \ --target-repo-url https://npm.pkg.jetbrains.space/mycompany/p/projectkey/mynpm \ --source-repo-url https://somerepo.url \ --source-repo-token source_repo_token
    • 考えられるすべての移行オプションに関するヘルプを得るには、--help を使用します。例:

      docker run space packages-npm migrate --help
    設定をファイルとして提供する

    移行設定をテキストファイルで指定し、ファイルへのパスを引数として指定できます。--config-file /root/.space/config.txt ここで、/root/.space/config.txt は Docker コンテナー内のパスです。

    このファイルの内容は次のようになります。

    packageNames=packageA,packageB sourceRepoUrl=https://somerepo.url targetRepoUrl=https://npm.pkg.jetbrains.space/mycompany/p/projectkey/mynpm latestOnly=false