リモートパッケージリポジトリからの移行
外部リポジトリ ( ソースリポジトリ ) でパッケージをホストしている場合、ある時点でパッケージを Space のリポジトリ ( ターゲットリポジトリ ) に移動することができます。この目的のために、space
コマンドラインツールを使用できます。
サポートされているリポジトリの種類
リポジトリ全体をコピーする | 特定のパッケージのコピー | |
---|---|---|
Cargo (Rust) | | |
コンテナー | | |
Composer | | |
Dart | | |
Maven | | |
NuGet | | |
npm | | |
Python パッケージインデックス | | |
1. 「space」コマンドラインツールを入手する
space
ツールは Docker イメージとして提供されます。イメージを取得するには、次を実行します。
docker pull public.registry.jetbrains.space/p/space/containers/space-cli-jvm:latestツールの実行を簡素化するために、イメージを実行するためのエイリアス (例:
space
) を作成できます。docker tag public.registry.jetbrains.space/p/space/containers/space-cli-jvm:latest space
2. Space 認証トークンを取得する
パッケージを Space パッケージリポジトリにアップロードするには、space
ツールに Space 認証トークンが必要です。最も簡単な方法は、個人のアクセストークンを使用して、ツールがユーザーに代わって Space で動作できるようにすることです。
トークンを作成するには、プロファイル | 認証 | 個人トークンに移動し、新しい個人トークンを選択します。
トークンを作成するときは、可能な限り最小限のアクセス許可をトークンに提供します。
トークンのアクセス許可では、アクセスが制限されていますを選択します。
コンテキストの追加でプロジェクトを選択し、ターゲットパッケージリポジトリが属するプロジェクトを指定します。
対応して読み取りアクセスと書き込みアクセスを与えるために、パッケージリポジトリの読み取りとパッケージリポジトリの書き込みを追加します。
生成された永久トークンを安全な場所にコピーします。次にこのセクションでは、このトークンを
space_auth_token
と呼びます。
3. リモートリポジトリからパッケージをコピーする
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
内のディレクトリにバインドします。このようにして、コンテナー内に作成された構成ファイルはローカルに保存され、さらに再利用できます。リモートリポジトリからパッケージをコピーします。このツールは、サポートされているリポジトリ型に対応する次のコマンドをサポートしています。
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_tokennpm リポジトリから
packageA
とpackageB
のみをコピーするには: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
関連ページ:
![](https://resources.jetbrains.com/help/img/space/publishPackageToMirror.png)
リモートリポジトリへのパッケージの公開
場合によっては、Space Packages リポジトリに保存されているパッケージをリモートリポジトリ (Maven Central など) に公開することが必要になることがあります。ローカルリポジトリごとに、関連するリモートリポジトリのリストを指定できます。この後、ローカルリポジトリからこれらのリモートリポジトリのいずれかにパッケージを公開できます。サポートされているリポジトリの種類:コンテナー、Maven、NuGet、ローカルリポジトリをリモートリポジトリに関連付ける:プロジェクトに移動...
![](https://pleiades.io/icons/jetbrains_logo.png)
Cargo スパースレジストリ
一般的に、Rust アプリケーションは依存関係を参照するために「Git 依存関係」アプローチを使用します。Rust パッケージがファイルで Git 依存関係を指定すると、Cargo は Git リポジトリを複製し、必要な依存関係の正確なバージョンを決定します。このようなアプローチの欠点 (依存関係の管理の複雑さの増加、ストレージ要件の増加など) に対処するために、Rust ではスパースレジストリと呼ばれる新しい実験的な機能が導入されました。このアプローチでは、別のレジストリが Git ではなく...