Skip to main content
Help us improve Python packaging – donate today!

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)

Support

You can support my effort many ways:

Release history Release notifications

This version
History Node

4.2.5

History Node

4.2.4

History Node

4.2.3

History Node

4.2.2

History Node

4.2.1

History Node

4.2.0

History Node

4.1.0

History Node

4.0.2

History Node

4.0.1

History Node

3.0.52

History Node

0.0.0

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
repositorytools-4.2.5-py2.py3-none-any.whl (17.7 kB) Copy SHA256 hash SHA256 Wheel py2.py3 Feb 1, 2018
repositorytools-4.2.5.tar.gz (12.8 kB) Copy SHA256 hash SHA256 Source None Feb 1, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page