A python-based CLI for Sonatype Nexus OSS 3
Project description
nexus3-cli
A python-based command-line interface and API client for Sonatype's Nexus OSS 3.
Features
- Compatible with Nexus 3 OSS
- Python API and command-line support
- Artefact management: list, upload, download, delete.
- Repository management:
- Create hosted and proxy.
- Create bower, maven, npm, nuget, pypi, raw, rubygems, yum.
- Content type validation, version and write policy.
- Delete.
- Groovy script management: list, upload, delete, run.
The actions above are performed using the Nexus REST API if the endpoint is available, otherwise a groovy script is used.
Please note that some Nexus 3 features are not currently supporter. Assistance implementing missing support is very welcome. Please have a look at the issues and contribution guidelines.
Installation
The nexus3-cli package is available on PyPi. You can install using pip/pip3:
pip install nexus3-cli
Usage
Command line
For a quick start, use the sonatype/nexus3 Docker image:
docker run -d --rm -p 8081:8081 sonatype/nexus3
Nexus will take a little while to start-up the first time you run it. You can tell when it's available by looking at the Docker instance logs or browsing to http://localhost:8081.
If you haven't changed the default Nexus credentials, you can use it straight away; here's the list of default repositories:
$ nexus3 repo list
Name Format Type URL
---- ------ ---- ---
maven-snapshots maven2 hosted http://localhost:8081/repository/maven-snapshots
maven-central maven2 proxy http://localhost:8081/repository/maven-central
nuget-group nuget group http://localhost:8081/repository/nuget-group
nuget.org-proxy nuget proxy http://localhost:8081/repository/nuget.org-proxy
maven-releases maven2 hosted http://localhost:8081/repository/maven-releases
nuget-hosted nuget hosted http://localhost:8081/repository/nuget-hosted
maven-public maven2 group http://localhost:8081/repository/maven-public
The login
command will store the service URL and your credentials in
~/.nexus-cli
(warning: restrictive file permissions are set but the contents
are saved in plain-text).
$ nexus3 login
Nexus OSS URL (http://localhost:8081):
Nexus admin username (admin):
Nexus admin password (admin123):
Create a Yum repository with read-only access:
$ nexus3 repo create hosted yum my-yum-repository --write=deny
Created repository: my-yum-repository
The CLI output can be filtered using standard *nix tools, e.g. using grep
:
$ nexus3 repo list | grep my-yum-repository
Name Format Type URL
---- ------ ---- ---
my-yum-repository yum hosted http://localhost:8081/repository/my-yum-repository
For all commands and options, run nexus3 -h
.
API
See API documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nexus3_cli-1.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7086752b0f938f69bd048af2a35ebe30f38aa88e6d0f43052d52ad5173f5273d |
|
MD5 | 1b37b6e643b45242f3648635fd52b7e8 |
|
BLAKE2b-256 | 3bfabfce7333e4e2872a42f729c19834770da5384d8eadf46acf26914bc0c83c |