Skip to main content

Tools for working with artifact repositories

Project description

CI Build Fundraising

Python API and command-line interface for working with Sonatype Nexus

How to install

pip install repositorytools

Some command line examples

Preparing env. variables

export REPOSITORY_URL=https://repo.example.com
export REPOSITORY_USER=admin
export REPOSITORY_PASSWORD=mysecretpassword

Uploading an artifact

artifact upload foo-1.2.3.ext releases com.fooware

Resolving artifact’s URL

artifact resolve com.fooware:foo:latest

Deleting artifacts

# by url
artifact delete https://repo.example.com/content/repositories/releases/com/fooware/foo/1.2.3/foo-1.2.3.ext

# by coordinates
artifact resolve com.fooware:foo:latest | xargs artifact delete

Working with staging repositories

Nexus Professional only

repo create -h
repo close -h
repo release -h
repo drop -h
repo list -h

Working with custom maven metadata

Nexus Professional only

artifact get-metadata -h
artifact set-metadata -h

Some library examples

For most of methods the same env. variables as above have to be exported or specified in call of repository_client_factory()

Uploading artifacts

import repositorytools

artifact = repositorytools.LocalArtifact(local_path='~/foo-1.2.3.jar', group='com.fooware')
client = repositorytools.repository_client_factory(user='admin', password='myS3cr3tPasswOrd')
remote_artifacts = client.upload_artifacts(local_artifacts=[artifact], repo_id='releases')
print(remote_artifacts)

Resolving artifacts

Works even without authentication.

import repositorytools

artifact = repositorytools.RemoteArtifact.from_repo_id_and_coordinates('test', 'com.fooware:foo:1.2.3')
client = repositorytools.repository_client_factory()
client.resolve_artifact(artifact)
print(artifact.url)

Deleting artifacts

import repositorytools

artifact = repositorytools.RemoteArtifact.from_repo_id_and_coordinates('test', 'com.fooware:foo:1.2.3')
client = repositorytools.repository_client_factory(user='admin', password='myS3cr3tPasswOrd')
client.resolve_artifact(artifact)
client.delete_artifact(artifact.url)

Documentation

is on http://repositorytools.readthedocs.org/en/latest/

Support

You can support my effort many ways:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repositorytools-4.2.5.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

repositorytools-4.2.5-py2.py3-none-any.whl (17.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file repositorytools-4.2.5.tar.gz.

File metadata

File hashes

Hashes for repositorytools-4.2.5.tar.gz
Algorithm Hash digest
SHA256 174dd2de1e1913e430aadad414f5cd0f5aaa21c8b525b99a762f5bdcdbe94ecc
MD5 73f4e68ede39a1ed148f77e0008f2b5c
BLAKE2b-256 42a723858fc48ae971faef714d89b56bcf19e1bf1e370e039724862f3250c938

See more details on using hashes here.

File details

Details for the file repositorytools-4.2.5-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for repositorytools-4.2.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 16ab1afd6c14730d426e4116be1eaa2c3b62629a2c9fc56401b7321e2e193517
MD5 cbe0f3ac8e2678d4e580b972ab712b11
BLAKE2b-256 899f170c0fb4ef0b8ff1945b6b0f6e8d2c175e43004d04ce1a8b97dc637e4d5e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page