diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-05 09:14:27 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-05 09:14:27 +0000 |
| commit | b3cd3781fc296aaf15b80b0a3e12ba0b77cdf7cb (patch) | |
| tree | 6c55ed2c005115b8ed25c20d3c8639396ff6d36b /python-nexus3-cli.spec | |
| parent | 75de0235571e038dcb74770df0f4484e383f1765 (diff) | |
automatic import of python-nexus3-cliopeneuler20.03
Diffstat (limited to 'python-nexus3-cli.spec')
| -rw-r--r-- | python-nexus3-cli.spec | 591 |
1 files changed, 591 insertions, 0 deletions
diff --git a/python-nexus3-cli.spec b/python-nexus3-cli.spec new file mode 100644 index 0000000..7122033 --- /dev/null +++ b/python-nexus3-cli.spec @@ -0,0 +1,591 @@ +%global _empty_manifest_terminate_build 0 +Name: python-nexus3-cli +Version: 4.1.8 +Release: 1 +Summary: A python-based CLI for Sonatype Nexus OSS 3 +License: MIT +URL: https://gitlab.com/thiagocsf/nexus3-cli +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/7d/c2/aa4ff27f198b89ac87a5e6f768b27745c5d604eaeac81c7b632eba0c25ca/nexus3-cli-4.1.8.tar.gz +BuildArch: noarch + +Requires: python3-click +Requires: python3-click-aliases +Requires: python3-clint +Requires: python3-inflect +Requires: python3-requests[security] +Requires: python3-semver +Requires: python3-texttable +Requires: python3-twine +Requires: python3-codecov +Requires: python3-flake8 +Requires: python3-pytest +Requires: python3-pytest-cov +Requires: python3-pytest-helpers-namespace +Requires: python3-pytest-mock +Requires: python3-pytest-faker + +%description +# nexus3-cli + +A python-based command-line interface and API client for Sonatype's [Nexus +OSS 3](https://www.sonatype.com/download-oss-sonatype). + +## Features + +1. Compatible with [Nexus 3 OSS](https://www.sonatype.com/download-oss-sonatype) + 1. [Nexus versions tested](https://gitlab.com/thiagocsf/nexus3-cli/-/blob/master/.gitlab-ci.yml#L103-116) +1. Python API and command-line support. +1. Artefact management: list, delete, bulk upload and download. +1. Repository management: + 1. Create hosted and proxy. + 1. Create apt, bower, docker, maven, npm, nuget, pypi, raw, rubygems, yum. + 1. Content type validation, version and write policy. + 1. Delete. +1. Groovy script management: list, upload, delete, run. +1. Clean-up policy management: create, list. +1. Task management: list, run, show stop. +1. Security management: realms. +1. Blob store management: list, show, create, delete, update (API only). + +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 supported. Assistance +implementing missing support is very welcome. Please have a look at the +[issues](https://gitlab.com/thiagocsf/nexus3-cli/-/issues) +and [contribution guidelines](https://gitlab.com/thiagocsf/nexus3-cli/-/blob/master/CONTRIBUTING.md). + +## Installation + +The nexus3-cli package is available on PyPi. You can install using pip/pip3: + +```bash +pip install nexus3-cli +``` + +There's also a [docker image with nexus3-cli +pre-installed](https://gitlab.com/thiagocsf/docker-nexus3-cli). + +### Enable Groovy scripts + +Some of the functionality in this client was written before the Nexus REST API +exposed the necessary endpoints. For this reason, you may need to enable Groovy +script execution in your instance. + +See the [FAQ in this blog post](https://support.sonatype.com/hc/en-us/articles/360045220393-Scripting-Nexus-Repository-Manager-3) +and the [example `nexus.properties`](https://gitlab.com/thiagocsf/nexus3-cli/-/blob/master/tests/fixtures/nexus-data/etc/nexus.properties) in this project. + +If you decide to leave groovy scripts disabled in your Nexus 3 instance, you need to disable its +use in this client. This can be done by editing the `~/.nexus-cli` configuration and changing +`groovy_enabled` to `false`. Alternatively, you can export the `NEXUS3_GROOVY_ENABLED=false` +environment variable. + +## Usage + +### Command line + +For a quick start, use the [sonatype/nexus3 Docker image](https://hub.docker.com/r/sonatype/nexus3/): + +```bash +docker run -d --rm -p 127.0.0.1:8081:8081 --name nexus 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](http://localhost:8081). + +On older versions of the nexus3 Docker image, the default `admin` password is +`admin123`; on newer versions it's automatically generated and you can find it +by running `docker exec nexus cat /nexus-data/admin.password`. + +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). + +Setup CLI credentials: + +```bash +$ nexus3 login +Nexus OSS URL (http://localhost:8081): +Nexus admin username (admin): +Nexus admin password (admin123): +Verify server certificate (True): + +Configuration saved to /Users/thiago/.nexus-cli +``` + +List repositories: + +```bash +$ nexus3 repository 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 +``` + +Create a repository: + +```bash +nexus3 repository create hosted raw reponame +``` + +Do a recursive directory upload: + +```bash +$ mkdir -p /tmp/some/deep/test/path +$ touch /tmp/some/deep/test/file.txt /tmp/some/deep/test/path/other.txt +$ cd /tmp; nexus3 up some/ reponame/path/ +Uploading some/ to reponame/path/ +[################################] 2/2 - 00:00:00 +Uploaded 2 files to reponame/path/ +``` + +Nota Bene: nexus3-cli interprets a path ending in `/` as a directory. + +List repository contents: + +```bash +$ nexus3 ls reponame/path/ +path/some/deep/test/path/other.txt +path/some/deep/test/file.txt +``` + +For all commands, subcommands and options, run `nexus3 -h`. +[CLI documentation](https://nexus3-cli.readthedocs.io/en/latest/cli.html) + +### API + +See [API documentation](https://nexus3-cli.readthedocs.io/en/latest/api.html). + +## Development + +The automated tests are configured in `.gitlab-ci.yml`. To run tests locally, +install the package with test dependencies and run pytest: + +```bash +pip install [--user] -e .[test] +pip install [--user] pytest faker +pytest -m 'not integration' +``` + +Integration tests require a local Nexus instance listening on 8081 or as +configured in `~/.nexus-cli`. The configuration file can be created using +[nexus3 login](https://nexus3-cli.readthedocs.io/en/latest/cli.html#nexus3-login). + +```bash +docker run -d --rm -p 127.0.0.1:8081:8081 --name nexus sonatype/nexus3 +./tests/wait-for-nexus.sh # the Nexus instance takes a while to be ready +# use the random admin password generated by the Nexus container to login +./tests/nexus-login $(docker exec nexus cat /nexus-data/admin.password) +pytest -m integration +docker kill nexus +``` + +Nota Bene: if you re-run integration tests without re-creating or cleaning-up the +dev Nexus instance, test will fail because some objects created during tests will +already exist. + +Pull requests are welcome; please see [CONTRIBUTING.md](CONTRIBUTING.md). + + + + +%package -n python3-nexus3-cli +Summary: A python-based CLI for Sonatype Nexus OSS 3 +Provides: python-nexus3-cli +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-nexus3-cli +# nexus3-cli + +A python-based command-line interface and API client for Sonatype's [Nexus +OSS 3](https://www.sonatype.com/download-oss-sonatype). + +## Features + +1. Compatible with [Nexus 3 OSS](https://www.sonatype.com/download-oss-sonatype) + 1. [Nexus versions tested](https://gitlab.com/thiagocsf/nexus3-cli/-/blob/master/.gitlab-ci.yml#L103-116) +1. Python API and command-line support. +1. Artefact management: list, delete, bulk upload and download. +1. Repository management: + 1. Create hosted and proxy. + 1. Create apt, bower, docker, maven, npm, nuget, pypi, raw, rubygems, yum. + 1. Content type validation, version and write policy. + 1. Delete. +1. Groovy script management: list, upload, delete, run. +1. Clean-up policy management: create, list. +1. Task management: list, run, show stop. +1. Security management: realms. +1. Blob store management: list, show, create, delete, update (API only). + +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 supported. Assistance +implementing missing support is very welcome. Please have a look at the +[issues](https://gitlab.com/thiagocsf/nexus3-cli/-/issues) +and [contribution guidelines](https://gitlab.com/thiagocsf/nexus3-cli/-/blob/master/CONTRIBUTING.md). + +## Installation + +The nexus3-cli package is available on PyPi. You can install using pip/pip3: + +```bash +pip install nexus3-cli +``` + +There's also a [docker image with nexus3-cli +pre-installed](https://gitlab.com/thiagocsf/docker-nexus3-cli). + +### Enable Groovy scripts + +Some of the functionality in this client was written before the Nexus REST API +exposed the necessary endpoints. For this reason, you may need to enable Groovy +script execution in your instance. + +See the [FAQ in this blog post](https://support.sonatype.com/hc/en-us/articles/360045220393-Scripting-Nexus-Repository-Manager-3) +and the [example `nexus.properties`](https://gitlab.com/thiagocsf/nexus3-cli/-/blob/master/tests/fixtures/nexus-data/etc/nexus.properties) in this project. + +If you decide to leave groovy scripts disabled in your Nexus 3 instance, you need to disable its +use in this client. This can be done by editing the `~/.nexus-cli` configuration and changing +`groovy_enabled` to `false`. Alternatively, you can export the `NEXUS3_GROOVY_ENABLED=false` +environment variable. + +## Usage + +### Command line + +For a quick start, use the [sonatype/nexus3 Docker image](https://hub.docker.com/r/sonatype/nexus3/): + +```bash +docker run -d --rm -p 127.0.0.1:8081:8081 --name nexus 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](http://localhost:8081). + +On older versions of the nexus3 Docker image, the default `admin` password is +`admin123`; on newer versions it's automatically generated and you can find it +by running `docker exec nexus cat /nexus-data/admin.password`. + +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). + +Setup CLI credentials: + +```bash +$ nexus3 login +Nexus OSS URL (http://localhost:8081): +Nexus admin username (admin): +Nexus admin password (admin123): +Verify server certificate (True): + +Configuration saved to /Users/thiago/.nexus-cli +``` + +List repositories: + +```bash +$ nexus3 repository 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 +``` + +Create a repository: + +```bash +nexus3 repository create hosted raw reponame +``` + +Do a recursive directory upload: + +```bash +$ mkdir -p /tmp/some/deep/test/path +$ touch /tmp/some/deep/test/file.txt /tmp/some/deep/test/path/other.txt +$ cd /tmp; nexus3 up some/ reponame/path/ +Uploading some/ to reponame/path/ +[################################] 2/2 - 00:00:00 +Uploaded 2 files to reponame/path/ +``` + +Nota Bene: nexus3-cli interprets a path ending in `/` as a directory. + +List repository contents: + +```bash +$ nexus3 ls reponame/path/ +path/some/deep/test/path/other.txt +path/some/deep/test/file.txt +``` + +For all commands, subcommands and options, run `nexus3 -h`. +[CLI documentation](https://nexus3-cli.readthedocs.io/en/latest/cli.html) + +### API + +See [API documentation](https://nexus3-cli.readthedocs.io/en/latest/api.html). + +## Development + +The automated tests are configured in `.gitlab-ci.yml`. To run tests locally, +install the package with test dependencies and run pytest: + +```bash +pip install [--user] -e .[test] +pip install [--user] pytest faker +pytest -m 'not integration' +``` + +Integration tests require a local Nexus instance listening on 8081 or as +configured in `~/.nexus-cli`. The configuration file can be created using +[nexus3 login](https://nexus3-cli.readthedocs.io/en/latest/cli.html#nexus3-login). + +```bash +docker run -d --rm -p 127.0.0.1:8081:8081 --name nexus sonatype/nexus3 +./tests/wait-for-nexus.sh # the Nexus instance takes a while to be ready +# use the random admin password generated by the Nexus container to login +./tests/nexus-login $(docker exec nexus cat /nexus-data/admin.password) +pytest -m integration +docker kill nexus +``` + +Nota Bene: if you re-run integration tests without re-creating or cleaning-up the +dev Nexus instance, test will fail because some objects created during tests will +already exist. + +Pull requests are welcome; please see [CONTRIBUTING.md](CONTRIBUTING.md). + + + + +%package help +Summary: Development documents and examples for nexus3-cli +Provides: python3-nexus3-cli-doc +%description help +# nexus3-cli + +A python-based command-line interface and API client for Sonatype's [Nexus +OSS 3](https://www.sonatype.com/download-oss-sonatype). + +## Features + +1. Compatible with [Nexus 3 OSS](https://www.sonatype.com/download-oss-sonatype) + 1. [Nexus versions tested](https://gitlab.com/thiagocsf/nexus3-cli/-/blob/master/.gitlab-ci.yml#L103-116) +1. Python API and command-line support. +1. Artefact management: list, delete, bulk upload and download. +1. Repository management: + 1. Create hosted and proxy. + 1. Create apt, bower, docker, maven, npm, nuget, pypi, raw, rubygems, yum. + 1. Content type validation, version and write policy. + 1. Delete. +1. Groovy script management: list, upload, delete, run. +1. Clean-up policy management: create, list. +1. Task management: list, run, show stop. +1. Security management: realms. +1. Blob store management: list, show, create, delete, update (API only). + +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 supported. Assistance +implementing missing support is very welcome. Please have a look at the +[issues](https://gitlab.com/thiagocsf/nexus3-cli/-/issues) +and [contribution guidelines](https://gitlab.com/thiagocsf/nexus3-cli/-/blob/master/CONTRIBUTING.md). + +## Installation + +The nexus3-cli package is available on PyPi. You can install using pip/pip3: + +```bash +pip install nexus3-cli +``` + +There's also a [docker image with nexus3-cli +pre-installed](https://gitlab.com/thiagocsf/docker-nexus3-cli). + +### Enable Groovy scripts + +Some of the functionality in this client was written before the Nexus REST API +exposed the necessary endpoints. For this reason, you may need to enable Groovy +script execution in your instance. + +See the [FAQ in this blog post](https://support.sonatype.com/hc/en-us/articles/360045220393-Scripting-Nexus-Repository-Manager-3) +and the [example `nexus.properties`](https://gitlab.com/thiagocsf/nexus3-cli/-/blob/master/tests/fixtures/nexus-data/etc/nexus.properties) in this project. + +If you decide to leave groovy scripts disabled in your Nexus 3 instance, you need to disable its +use in this client. This can be done by editing the `~/.nexus-cli` configuration and changing +`groovy_enabled` to `false`. Alternatively, you can export the `NEXUS3_GROOVY_ENABLED=false` +environment variable. + +## Usage + +### Command line + +For a quick start, use the [sonatype/nexus3 Docker image](https://hub.docker.com/r/sonatype/nexus3/): + +```bash +docker run -d --rm -p 127.0.0.1:8081:8081 --name nexus 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](http://localhost:8081). + +On older versions of the nexus3 Docker image, the default `admin` password is +`admin123`; on newer versions it's automatically generated and you can find it +by running `docker exec nexus cat /nexus-data/admin.password`. + +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). + +Setup CLI credentials: + +```bash +$ nexus3 login +Nexus OSS URL (http://localhost:8081): +Nexus admin username (admin): +Nexus admin password (admin123): +Verify server certificate (True): + +Configuration saved to /Users/thiago/.nexus-cli +``` + +List repositories: + +```bash +$ nexus3 repository 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 +``` + +Create a repository: + +```bash +nexus3 repository create hosted raw reponame +``` + +Do a recursive directory upload: + +```bash +$ mkdir -p /tmp/some/deep/test/path +$ touch /tmp/some/deep/test/file.txt /tmp/some/deep/test/path/other.txt +$ cd /tmp; nexus3 up some/ reponame/path/ +Uploading some/ to reponame/path/ +[################################] 2/2 - 00:00:00 +Uploaded 2 files to reponame/path/ +``` + +Nota Bene: nexus3-cli interprets a path ending in `/` as a directory. + +List repository contents: + +```bash +$ nexus3 ls reponame/path/ +path/some/deep/test/path/other.txt +path/some/deep/test/file.txt +``` + +For all commands, subcommands and options, run `nexus3 -h`. +[CLI documentation](https://nexus3-cli.readthedocs.io/en/latest/cli.html) + +### API + +See [API documentation](https://nexus3-cli.readthedocs.io/en/latest/api.html). + +## Development + +The automated tests are configured in `.gitlab-ci.yml`. To run tests locally, +install the package with test dependencies and run pytest: + +```bash +pip install [--user] -e .[test] +pip install [--user] pytest faker +pytest -m 'not integration' +``` + +Integration tests require a local Nexus instance listening on 8081 or as +configured in `~/.nexus-cli`. The configuration file can be created using +[nexus3 login](https://nexus3-cli.readthedocs.io/en/latest/cli.html#nexus3-login). + +```bash +docker run -d --rm -p 127.0.0.1:8081:8081 --name nexus sonatype/nexus3 +./tests/wait-for-nexus.sh # the Nexus instance takes a while to be ready +# use the random admin password generated by the Nexus container to login +./tests/nexus-login $(docker exec nexus cat /nexus-data/admin.password) +pytest -m integration +docker kill nexus +``` + +Nota Bene: if you re-run integration tests without re-creating or cleaning-up the +dev Nexus instance, test will fail because some objects created during tests will +already exist. + +Pull requests are welcome; please see [CONTRIBUTING.md](CONTRIBUTING.md). + + + + +%prep +%autosetup -n nexus3-cli-4.1.8 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-nexus3-cli -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 4.1.8-1 +- Package Spec generated |
