A Python to Artifactory interface
Project description
Python interface library for Jfrog Artifactory
This module is intended to serve as a logical descendant of pathlib, a Python 3 module for object-oriented path manipulations. As such, it implements everything as closely as possible to the origin with few exceptions, such as stat().
Usage Examples
Walking Directory Tree
Getting directory listing:
from artifactory import ArtifactoryPath path = ArtifactoryPath( "http://repo.jfrog.org/artifactory/gradle-ivy-local") for p in path: print p
Find all .gz files in current dir, recursively:
from artifactory import ArtifactoryPath path = ArtifactoryPath( "http://repo.jfrog.org/artifactory/distributions/org/") for p in path.glob("**/*.gz"): print p
Downloading Artifacts
Download artifact to a local filesystem:
from artifactory import ArtifactoryPath path = ArtifactoryPath( "http://repo.jfrog.org/artifactory/distributions/org/apache/tomcat/apache-tomcat-7.0.11.tar.gz") with path.open() as fd: with open("tomcat.tar.gz", "wb") as out: out.write(fd.read())
Uploading Artifacts
Deploy a regular file myapp-1.0.tar.gz
from artifactory import ArtifactoryPath path = ArtifactoryPath( "http://my-artifactory/artifactory/libs-snapshot-local/myapp/1.0") path.mkdir() path.deploy_file('./myapp-1.0.tar.gz')
Deploy a debian package myapp-1.0.deb
from artifactory import ArtifactoryPath path = ArtifactoryPath( "http://my-artifactory/artifactory/ubuntu-local/pool") path.deploy_deb('./myapp-1.0.deb', distribution='trusty', component='main', architecture='amd64')
Authentication
To provide username and password to access restricted resources, you can pass auth parameter to ArtifactoryPath:
from artifactory import ArtifactoryPath path = ArtifactoryPath( "http://my-artifactory/artifactory/myrepo/restricted-path", auth=('admin', 'ilikerandompasswords')) path.touch()
SSL Cert Verification Options
See Requests - SSL verification for more details.
from artifactory import ArtifactoryPath path = ArtifactoryPath( "http://my-artifactory/artifactory/libs-snapshot-local/myapp/1.0")
… is the same as
from artifactory import ArtifactoryPath path = ArtifactoryPath( "http://my-artifactory/artifactory/libs-snapshot-local/myapp/1.0", verify=True)
Specify a local cert to use as client side certificate
from artifactory import ArtifactoryPath path = ArtifactoryPath( "http://my-artifactory/artifactory/libs-snapshot-local/myapp/1.0", cert="/path_to_file/server.pem")
Disable host cert verification
from artifactory import ArtifactoryPath path = ArtifactoryPath( "http://my-artifactory/artifactory/libs-snapshot-local/myapp/1.0", verify=False)
import requests.packages.urllib3 as urllib3 urllib3.disable_warnings()
Global Configuration File
Artifactory Python module also has a way to specify all connection-related settings in a central file, ~/.artifactory_python.cfg that is read upon the creation of first ArtifactoryPath object and is stored globally. For instance, you can specify per-instance settings of authentication tokens, so that you won’t need to explicitly pass auth parameter to ArtifactoryPath.
Example:
[http://artifactory-instance.com/artifactory] username = deployer password = ilikerandompasswords verify = false [another-artifactory-instance.com/artifactory] username = foo password = @dmin cert = ~/mycert
Whether or not you specify http:// or https:// prefix is not essential. The module will first try to locate the best match and then try to match URLs without prefixes. So if in the config you specify https://my-instance.local and call ArtifactoryPath with http://my-instance.local, it will still do the right thing.
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
File details
Details for the file artifactory-0.1.17.tar.gz
.
File metadata
- Download URL: artifactory-0.1.17.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d50a725b080a68adbba499d66fe2c1a54134cba22a4d3fd7ae978cfe933d5d6 |
|
MD5 | f792d46bc0c8bdf691cad1daef878c79 |
|
BLAKE2b-256 | 4a98c1cbe7276a2ffa2a69cd4b1310d6b142e9fbfb4991b441d4e4257273703f |