{ "info": { "author": "Ananias CARVALHO", "author_email": "carvalhoananias@hotmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Python Artifactory\n\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/8b22b5118d67471f81b4de2feefc5763)](https://app.codacy.com/app/Ananias/python-artifactory?utm_source=github.com&utm_medium=referral&utm_content=anancarv/python-artifactory&utm_campaign=Badge_Grade_Dashboard)\n[![Build Status](https://travis-ci.org/anancarv/python-artifactory.svg?branch=master)](https://travis-ci.org/anancarv/python-artifactory)\n\n`python-artifactory` is a Python library to access the [Artifactory REST API](https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API). \n\nThis library enables you to manage Artifactory resources such as users, groups, permissions, repositories & artifacts in your applications.\nIt requires at least Python 3.6\n\n## Table of contents\n\n\n* [Usage](#Usage)\n * [Authentication](#Authentication)\n * [SSL Cert Verification Options](#SSL-Cert-Verification-Options)\n * [Admin objects](#Admin-objects)\n * [User](#User)\n * [Group](#Group)\n * [Security](#Security)\n * [Repository](#Repository)\n * [Permission](#Permission)\n * [Artifacts & Builds](#Artifacts-&-Builds)\n * [Artifacts](#Artifacts)\n \n## Usage\n\n### Authentication\n\n```python\nfrom pyartifactory import Artifactory\nart = Artifactory(url=\"ARTIFACTORY_URL\", auth=('USERNAME','PASSORD_OR_API_KEY'))\n```\n\n### SSL Cert Verification Options\nSpecify a local cert to use as client side certificate\n\n```python\nfrom pyartifactory import Artifactory\nart = Artifactory(url=\"ARTIFACTORY_URL\", auth=('USERNAME','PASSORD_OR_API_KEY'), cert=\"/path_to_file/server.pem\")\n```\n\nDisable host cert verification\n\n```python\nfrom pyartifactory import Artifactory\nart = Artifactory(url=\"ARTIFACTORY_URL\", auth=('USERNAME','PASSORD_OR_API_KEY'), verify=False)\n```\n\n### Admin objects\n\n#### User\n\nFirst, you need to create a new Artifactory object.\n```python\nfrom pyartifactory import Artifactory\nart = Artifactory(url=\"ARTIFACTORY_URL\", auth=('USERNAME','PASSORD_OR_API_KEY'))\n```\n\nGet the list of users:\n```python\nusers = art.users.list()\n```\n\nGet a single user:\n```python\nusers = art.users.get(\"test_user\")\n```\n\nCreate/Update a user:\n```python\nfrom pyartifactory.models.User import NewUser\n\n# Create User\nuser = NewUser(name=\"test_user\", password=\"test_password\", email=\"user@user.com\")\nnew_user = art.users.create(user)\n\n# Update user\nuser.email = \"test@test.com\"\nupdated_user = art.users.update(user)\n```\n\nDelete a user:\n```python\nart.users.delete(\"test_user\")\n```\n\n#### Group\n\nGet the list of groups:\n```python\nusers = art.groups.list()\n```\n\nGet a single group:\n```python\nusers = art.groups.get(\"group_name\")\n```\n\nCreate/Update a group:\n```python\nfrom pyartifactory.models.Group import Group\n\n# Create a Group\ngroup = Group(name=\"test_group\", description=\"test_group\")\nnew_group = art.groups.create(group)\n\n# Update user\ngroup.description = \"test_group_2\"\nupdated_group = art.groups.update(group)\n```\n\nDelete a group:\n```python\nart.groups.delete(\"test_group\")\n```\n\n\n#### Security\n\nA set of methods for performing operations on apiKeys, passwords ...\n```python\n>>> art.security.\nart.security.create_api_key( art.security.get_encrypted_password( art.security.revoke_api_key(\nart.security.get_api_key( art.security.regenerate_api_key( art.security.revoke_user_api_key(\n```\n\n\n### Repository\n\nGet the list of repositories:\n```python\nrepositories = art.repositories.list()\n```\n\nGet a single repository (Local, Virtual or Remote):\n```python\nlocal_repo = art.groups.get_local_repo(\"local_repo_name\")\nvirtual_repo = art.groups.get_virtual_repo(\"virtual_repo_name\")\nremote_repo = art.groups.get_remote_repo(\"remote_repo_name\")\n```\n\nCreate/Update a repository:\n```python\nfrom pyartifactory.models.Repository import LocalRepository, VirtualRepository, RemoteRepository\n\n# Create a repository\nlocal_repo = LocalRepository(key=\"test_local_repo\")\nnew_local_repo = art.repositories.create_local_repo(local_repo)\n\n# Update a repository\nlocal_repo.description = \"test_local_repo\"\nupdated_local_repo = art.repositories.update_local_repo(local_repo)\n\n# Same process for Virtual and Remote repositories\n```\n\nDelete a repository:\n```python\nart.repositories.delete(\"test_local_repo\")\n```\n\n\n#### Permission\nGet the list of permissions:\n```python\npermissions = art.permissions.list()\n```\n\nGet a single permission:\n```python\nusers = art.permissions.get(\"test_permission\")\n```\n\nCreate/Update a permission:\n```python\nfrom pyartifactory.models.Permission import Permission\n\n# Create a permission\npermission = Permission(\n **{\n \"name\": \"test_permission\",\n \"repositories\": [\"test_repository\"],\n \"principals\": {\n \"users\": {\"test_user\": [\"r\", \"w\", \"n\", \"d\"]},\n \"groups\": {\"developers\": [\"r\"]},\n },\n }\n)\nperm = art.permissions.create(permission)\n\n# Update permission\npermission.repositories = [\"test_repository_2\"]\nupdated_permission = art.permissions.update(permission)\n```\n\nDelete a permission:\n```python\nart.permissions.delete(\"test_permission\")\n```\n\n### Artifacts & Builds\n\n#### Artifacts\nTBD\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/anancarv/python-artifactory", "keywords": "artifactory", "license": "MIT", "maintainer": "Ananias CARVALHO", "maintainer_email": "carvalhoananias@hotmail.com", "name": "pyartifactory", "package_url": "https://pypi.org/project/pyartifactory/", "platform": "", "project_url": "https://pypi.org/project/pyartifactory/", "project_urls": { "Documentation": "https://github.com/anancarv/python-artifactory", "Homepage": "https://github.com/anancarv/python-artifactory", "Repository": "https://github.com/anancarv/python-artifactory" }, "release_url": "https://pypi.org/project/pyartifactory/1.0.2/", "requires_dist": [ "pydantic (>=0.23.0,<0.24.0)", "requests (>=2.21,<3.0)", "email_validator (>=1.0,<2.0)" ], "requires_python": ">=3.6,<4.0", "summary": "Typed interactions with the Jfrog Artifactory REST API", "version": "1.0.2" }, "last_serial": 5556473, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "41080f6309401cc55e0adc267ebd6396", "sha256": "cc88069272835fd6188e9d8ce6725cb152345c8a027e0bf7aa18d027bc9d03c7" }, "downloads": -1, "filename": "PyArtifactory-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "41080f6309401cc55e0adc267ebd6396", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 9450, "upload_time": "2019-07-19T11:57:08", "url": "https://files.pythonhosted.org/packages/ea/cb/2acdfe85c5ec6d9fa7115c2f7ccb989d782383d4f86a9dd4d2ff9dd29156/PyArtifactory-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "119916d264f487bb408f18c7c33982ef", "sha256": "7e9e30a38bf3cde65dd657b0cfbd387005f7f3aa5dbc39f563e7dc3865fa3656" }, "downloads": -1, "filename": "PyArtifactory-1.0.1.tar.gz", "has_sig": false, "md5_digest": "119916d264f487bb408f18c7c33982ef", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 7313, "upload_time": "2019-07-19T11:57:10", "url": "https://files.pythonhosted.org/packages/eb/c5/b49eb3b8978ba636e9b69b55f3a36eed3d7f9b5abf4d185ad711c2372dd1/PyArtifactory-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "dd0cbbacd258e41eabab2ee0a9599635", "sha256": "8127fa3bf948b6872ab18e9b29ffa3e889c2fc0fa1763bc8ec29959ced05f6df" }, "downloads": -1, "filename": "PyArtifactory-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "dd0cbbacd258e41eabab2ee0a9599635", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 11082, "upload_time": "2019-07-19T12:26:48", "url": "https://files.pythonhosted.org/packages/39/e3/6a8ddcefd9768a01f3ff4030c523b72f02b8cf52fd092ef5e184f4e2243b/PyArtifactory-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b61924f7aa4c9ae86ada34faf6f86aa", "sha256": "cdead928457577a2a35db5527e25c44eff7beb3b8d4282ceabf0cbee07347f18" }, "downloads": -1, "filename": "PyArtifactory-1.0.2.tar.gz", "has_sig": false, "md5_digest": "0b61924f7aa4c9ae86ada34faf6f86aa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10915, "upload_time": "2019-07-19T12:26:49", "url": "https://files.pythonhosted.org/packages/5f/b8/f9b50decad20e8304921812124b09de764b4b2bcc00dec42fbd5f343206e/PyArtifactory-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dd0cbbacd258e41eabab2ee0a9599635", "sha256": "8127fa3bf948b6872ab18e9b29ffa3e889c2fc0fa1763bc8ec29959ced05f6df" }, "downloads": -1, "filename": "PyArtifactory-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "dd0cbbacd258e41eabab2ee0a9599635", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 11082, "upload_time": "2019-07-19T12:26:48", "url": "https://files.pythonhosted.org/packages/39/e3/6a8ddcefd9768a01f3ff4030c523b72f02b8cf52fd092ef5e184f4e2243b/PyArtifactory-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b61924f7aa4c9ae86ada34faf6f86aa", "sha256": "cdead928457577a2a35db5527e25c44eff7beb3b8d4282ceabf0cbee07347f18" }, "downloads": -1, "filename": "PyArtifactory-1.0.2.tar.gz", "has_sig": false, "md5_digest": "0b61924f7aa4c9ae86ada34faf6f86aa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 10915, "upload_time": "2019-07-19T12:26:49", "url": "https://files.pythonhosted.org/packages/5f/b8/f9b50decad20e8304921812124b09de764b4b2bcc00dec42fbd5f343206e/PyArtifactory-1.0.2.tar.gz" } ] }