Skip to main content

Python interface library for Jfrog Artifactory

Build Status

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)
Note: If host cert verification is disabled urllib3 will throw a InsecureRequestWarning.
To disable these warning, one needs to call urllib3.disable_warnings().
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.

Metadata

Release files for artifactory 0.1.17

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for artifactory 0.1.17
File Size Uploaded
artifactory-0.1.17.tar.gz 14.5 kB Details

Release files / artifactory-0.1.17.tar.gz

Download URL artifactory-0.1.17.tar.gz
Size 14.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7d50a725b080a68adbba499d66fe2c1a54134cba22a4d3fd7ae978cfe933d5d6
BLAKE2b-256 checksum
How to use checksums
4a98c1cbe7276a2ffa2a69cd4b1310d6b142e9fbfb4991b441d4e4257273703f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.17 This release

1 release file

0.1.16

1 release file

0.1.15

1 release file

0.1.14

0.1.13

1 release file

0.1.12

1 release file

0.1.11

1 release file

0.1.10

1 release file

0.1.9

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page