@qiwi/nexus-cli v2.5.0
@qiwi/nexus-cli
CLI for managing Nexus NPM repository contents. Deletes and downloads package components.
Installation
You can use this utility without installation, see Usage
yarn add @qiwi/nexus-clior
npm i @qiwi/nexus-cliUsage
You can call this utility without installing:
npx @qiwi/nexus-cli <arguments>Delete
nexus-cli --auth.username foo --auth.password bar --url baz --data.repo npm --data.name bat --data.group quz --data.range '<2.0.3' --action deleteDownload
For this action utility saves tarballs and prints metadata in given cwd
nexus-cli --auth.username foo --auth.password bar --url baz --data.repo npm --data.name foo --data.group qiwi --data.range '<1.0.0' --data.cwd nexus-downloads --action downloadOutput in nexus-downloads/nexus-cli-downloads-meta-2021-03-17T06:48:21.347Z.json:
[
{
"name": " @qiwi/foo",
"version": "0.2.0",
"filePath": "/Users/user/projects/platform/nexus/packages/cli/nexus-cli-downloads-2021-03-17T06:48:21.347Z/@qiwi%foo%2F-%foo-0.2.0.tgz"
},
{
"name": " @qiwi/foo",
"version": "0.6.0",
"filePath": "/Users/user/projects/platform/nexus/packages/cli/nexus-cli-downloads-2021-03-17T06:48:21.347Z/@qiwi%foo%2F-%foo-0.6.0.tgz"
}
]Compare
Options for this action should be given via config
nexus-cli --config compare-config.jsonUtility will write list of missing packages and list of extra packages for primary registry in comparison with secondary one.
Output in ${cwd}/missing.json
[
{
"group": "null",
"name": "buildstamp",
"version": "1.0.2"
},
{
"group": "null",
"name": "buildstamp",
"version": "1.2.2"
},
{
"group": "null",
"name": "buildstamp",
"version": "1.3.0"
}
]Output in ${cwd}/extra.json
[
{
"group": "null",
"name": "buildstamp",
"version": "1.0.1",
}
]With config file:
nexus-cli --config some/path/config.jsonWith config file and overriding
nexus-cli --config some/path/config.json --data.repo npm --data.name bat --data.group quz --data.range '<2.0.3'Options
Common
| Option | Description |
|---|---|
auth.username, auth.password | Nexus API credentials, optional if action is 'compare' |
url | Nexus API URL, optional if action is 'compare' |
batch.rateLimit | Components API deleteComponent method multiple call limit. If exists, limitation will be applied. See more at push-it-to-the-limit. |
config | path to config file |
action | one of delete, download |
By default batch.rateLimit is 3 requests per 1000 ms
Delete
| Option | Description |
|---|---|
data.no-prompt | disable destructive action confirmation (delete) |
data.repo | name of package repository |
data.name | package name |
data.group | package group. To get packages outside of any group (scope) pass null |
data.range | package versions range to be deleted |
Download
| Option | Description |
|---|---|
data.cwd | cwd path for saving meta and tarballs, by default process.cwd() |
data.npmBatch.access | make meta output as @qiwi/npm-batch-cli config with blank values & given access, one of public, restricted |
data.sortField | one of version, name, group, repository |
data.sortDirection | one of asc, desc |
data.repo | name of package repository |
data.name | package name |
data.group | package group. To get packages outside of any group (scope) pass null |
Compare
| Option | Description |
|---|---|
data.packages[].name | name of package to compare |
data.packages[].group | group of package to compare. To get packages outside of any group (scope) pass null |
data.primaryRegistry.url | url of primary repository to compare |
data.primaryRegistry.auth.username, data.primaryRegistry.auth.password | credentials of primary repository |
data.secondaryRegistry.url | url of secondary repository to compare |
data.secondaryRegistry.auth.username, data.secondaryRegistry.auth.password | credentials of secondary repository |
All options except --no-prompt must be set through the CLI flags or --config JSON data.
Options from config file can be overridden.
If you want to use --no-prompt option in a config file, add it as "prompt": false.
Config file
Delete
{
"url": "http://localhost",
"auth": {
"username": "foo",
"password": "bar"
},
"action": "delete",
"package": {
"group": "qiwi",
"name": "substrate",
"range": ">1.2.0",
"repo": "npm"
}
}Download
{
"url": "http://localhost",
"auth": {
"username": "foo",
"password": "bar"
},
"action": "download",
"package": {
"group": "qiwi",
"name": "substrate",
"range": ">1.2.0",
"repo": "npm",
"cwd": "nexus-downloads",
"npmBatch": {
"access": "public"
}
}
}Compare
{
"action": "compare",
"data": {
"cwd": "temp-compare",
"primaryRegistry": {
"url": "http://foo.qiwi.com:8081/repository/npm-foo",
"auth": {
"username": "username",
"password": "password"
}
},
"secondaryRegistry": {
"url": "https://bar.qiwi.com/repository/npm-foo",
"auth": {
"username": "username",
"password": "password"
}
},
"packages": [
{
"name": "baz",
"group": "qiwi-bar"
},
{
"name": "foo-bar",
"group": "qiwi"
},
{
"name": "common",
"group": "null"
}
]
}
}4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago