リモートパッケージリポジトリからの移行
外部リポジトリ ( ソースリポジトリ ) でパッケージをホストしている場合、ある時点でパッケージを 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 migratepackages-maven migratepackages-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
関連ページ:
リモートリポジトリへのパッケージの公開
場合によっては、Space Packages リポジトリに保存されているパッケージをリモートリポジトリ (Maven Central など) に公開することが必要になることがあります。ローカルリポジトリごとに、関連するリモートリポジトリのリストを指定できます。この後、ローカルリポジトリからこれらのリモートリポジトリのいずれかにパッケージを公開できます。サポートされているリポジトリの種類:コンテナー、Maven、NuGet、ローカルリポジトリをリモートリポジトリに関連付ける:プロジェクトに移動...
Cargo スパースレジストリ
一般的に、Rust アプリケーションは依存関係を参照するために「Git 依存関係」アプローチを使用します。Rust パッケージがファイルで Git 依存関係を指定すると、Cargo は Git リポジトリを複製し、必要な依存関係の正確なバージョンを決定します。このようなアプローチの欠点 (依存関係の管理の複雑さの増加、ストレージ要件の増加など) に対処するために、Rust ではスパースレジストリと呼ばれる新しい実験的な機能が導入されました。このアプローチでは、別のレジストリが Git ではなく...