Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
|Build Status|
This module is intended to serve as a logical descendant of
pathlib <https://docs.python.org/3/library/pathlib.html>
__, 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().
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
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())
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')
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()
See Requests - SSL verification <http://docs.python-requests.org/en/latest/user/advanced/#ssl-cert-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 <https://urllib3.readthedocs.org/en/latest/security.html#insecurerequestwarning>
__.
| To disable these warning, one needs to call
urllib3.disable_warnings().
::
import requests.packages.urllib3 as urllib3
urllib3.disable_warnings()
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.
.. |Build Status| image:: https://travis-ci.org/Parallels/artifactory.svg?branch=develop :target: https://travis-ci.org/Parallels/artifactory
FAQs
A Python to Artifactory interface
We found that artifactory demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.