{ "info": { "author": "Ken Dreyer", "author_email": "kdreyer@redhat.com", "bugtrack_url": null, "classifiers": [], "description": "``errata-tool``\n===============\n\n.. image:: https://travis-ci.org/red-hat-storage/errata-tool.svg?branch=master\n :target: https://travis-ci.org/red-hat-storage/errata-tool\n\n.. image:: https://badge.fury.io/py/errata-tool.svg\n :target: https://badge.fury.io/py/errata-tool\n\nModern Python API to Red Hat's Errata Tool.\n\npython-errata-tool is a Python library that wraps the Errata Tool's REST API.\nIt uses `requests_kerberos `_\nto authenticate and parses JSON responses into ``Erratum`` objects. You can\nuse it to create new advisories, or read and update existing advisories. The\n``ErratumConnector`` class also provides lower-level access to all of the\nErrata Tool's REST API.\n\nExample:\n\n.. code-block:: python\n\n from errata_tool import Erratum\n\n e = Erratum(errata_id=1234)\n\n print(e.errata_state)\n # prints \"NEW_FILES\"\n\n print(e.url())\n # prints \"https://errata.devel.redhat.com/advisory/1234\"\n\nCreating a new bugfix advisory:\n\n.. code-block:: python\n\n e = Erratum(product='RHCEPH',\n release='rhceph-2.1',\n #errata_type='RHBA' # Default; may be omitted\n synopsis='Red Hat Ceph Storage 2.1 bug fix update',\n topic='An update for Red Hat Ceph 2.1 is now available.',\n description='This update contains the following fixes ...',\n solution='Before applying this update...',\n qe_email='someone@redhat.com',\n qe_group='RHC (Ceph) QE',\n owner_email='kdreyer@redhat.com',\n manager_email='ohno@redhat.com',\n )\n e.commit()\n print(e.url())\n\nCreating a new enhancement (feature) advisory:\n\n.. code-block:: python\n\n e = Erratum(product='RHCEPH',\n release='rhceph-2.1',\n errata_type='RHEA', # Set to RHEA for RHEA\n synopsis='Red Hat Ceph Storage 2.1 enhancement update',\n topic='An update for Red Hat Ceph 2.1 is now available.',\n description='This update contains the following features ...',\n solution='Before applying this update...',\n qe_email='someone@redhat.com',\n qe_group='RHC (Ceph) QE',\n owner_email='kdreyer@redhat.com',\n manager_email='ohno@redhat.com',\n )\n e.commit()\n print(e.url())\n\nCreating a new security advisory. Note that RHSA (Security)\nadvisories are given one of four impacts (Low, Moderate,\nImportant, and Critical). See this link for more information:\nhttps://access.redhat.com/security/updates/classification\n\n.. code-block:: python\n\n e = Erratum(product='RHCEPH',\n release='rhceph-2.1',\n errata_type='RHSA', # Set to RHSA for RHSA\n security_impact='Moderate', # Required for RHSA\n synopsis='Red Hat Ceph Storage 2.1 security update',\n topic='An update for Red Hat Ceph 2.1 is now available.',\n description='This update contains the following fixes ...',\n solution='Before applying this update...',\n qe_email='someone@redhat.com',\n qe_group='RHC (Ceph) QE',\n owner_email='kdreyer@redhat.com',\n manager_email='ohno@redhat.com',\n )\n e.commit()\n print(e.url())\n\n\nerrata-tool command-line interface\n----------------------------------\n\nThe ``errata-tool`` CLI is a thin wrapper around the classes. You can use it to\nquery information from the Errata Tool or create new releases (releng)::\n\n errata-tool -h\n\n usage: errata-tool [-h] [--stage] [--dry-run] {advisory,product,release} ...\n\n positional arguments:\n {advisory,product,release}\n advisory Get or create an advisory\n product Get a product\n release Get or create a release (RCM)\n\n optional arguments:\n --stage use staging ET instance\n --dry-run show what would happen, but don't do it\n\n\n\nMore Python Examples\n--------------------\n\nGetting an erratum's name:\n\n.. code-block:: python\n\n e = Erratum(errata_id=22986)\n\n print(e.errata_name)\n # prints \"RH*A-YYYY:NNNNN\", for example \"RHBA-2018:12345\"\n\nAdding bugs:\n\n.. code-block:: python\n\n e = Erratum(errata_id=22986)\n\n e.addBugs([12345, 123678])\n\n e.commit()\n\nRemoving bugs:\n\n.. code-block:: python\n\n e = Erratum(errata_id=22986)\n\n e.removeBugs([12345, 123678])\n\n # You can simply call \"commit()\" without checking the return code, or check\n # it and use refresh() to refresh our local instance data for the errata\n # advisory.\n need_refresh = e.commit()\n\n if need_refresh:\n print('refreshing')\n e.refresh()\n\nChecking whether an advisory is embargoed:\n\n.. code-block:: python\n\n e = Erratum(errata_id=22986)\n\n if e.embargoed:\n # it's embargoed\n else:\n # it's not embargoed\n\nChecking whether an advisory is text-only:\n\n.. code-block:: python\n\n e = Erratum(errata_id=24075)\n\n if e.text_only:\n # it's text-only\n # If it's an RHSA, you may want to get/set e.text_only_cpe here.\n else:\n # it's not text-only\n\nAdding builds:\n\n.. code-block:: python\n\n e = Erratum(errata_id=24075)\n\n # For non-PDC advisories, the \"release\" kwarg is the Errata Tools's\n # \"product version\", in composedb, for example \"RHEL-7-CEPH-2\".\n # For PDC advisories, the \"release\" kwarg is the PDC identifier,\n # for example \"rhceph-2.4@rhel-7\".\n e.addBuilds(['ceph-10.2.3-17.el7cp'], release='RHEL-7-CEPH-2')\n\nAdding container builds:\n\n.. code-block:: python\n\n e = Erratum(errata_id=34279)\n\n # For non-RPM Brew builds, you must specify the file_types kwarg.\n # For container builds, this is \"tar\".\n e.addBuilds('rhceph-rhel7-container-3-9',\n release='RHEL-7-CEPH-3',\n file_types={'rhceph-rhel7-container-3-9': ['tar']})\n\nChanging state:\n\n.. code-block:: python\n\n e = Erratum(errata_id=24075)\n\n e.setState('QE')\n e.commit()\n\nChanging docs reviewer:\n\n.. code-block:: python\n\n e = Erratum(errata_id=24075)\n\n e.changeDocsReviewer('kdreyer@redhat.com')\n\nAdding someone to the CC list:\n\n.. code-block:: python\n\n e = Erratum(errata_id=24075)\n\n e.addCC('kdreyer@redhat.com')\n\nChanging an advisory type:\n\n.. code-block:: python\n\n e = Erratum(errata_id=33840)\n\n e.update(errata_type='RHBA')\n e.commit()\n\nReloading the all specific builds that lack product listings:\n\n.. code-block:: python\n\n e = Erratum(errata_id=24075)\n\n if e.missing_product_listings: # a (possibly-empty) list of build NVRs\n result = e.reloadBuilds(no_rpm_listing_only=True)\n # result is a dict for this job tracker\n\nDetermining if an advisory has RPMs or containers:\n\n.. code-block:: python\n\n e = Erratum(errata_id=24075)\n\n content_types = e.content_types\n # result is a list, like [\"rpm\"], or [\"docker\"]\n\nGet active RPMDiff results for an advisory:\n\n.. code-block:: python\n\n e = Erratum(errata_id=24075)\n\n bad = []\n for result in e.externalTests(test_type='rpmdiff'):\n if result['attributes']['status'] not in ('PASSED', 'WAIVED'):\n # See result['attributes']['external_id'] for the integer to pass\n # into RPMDiff's run API.\n bad.append(result)\n\n\nSet the CDN repos for a container advisory (only applies for advisories\ncontaining Docker images):\n\n.. code-block:: python\n\n e = Erratum(errata_id=24075)\n\n assert 'docker' in e.content_types\n e.metadataCdnRepos(enable='rhel-7-server-rhceph-3-mon-rpms__x86_64')\n\nSame thing, but for text-only advisories:\n\n.. code-block:: python\n\n e = Erratum(errata_id=24075)\n\n assert e.text_only\n e.textOnlyRepos(enable='rhel-7-server-rhceph-3-mon-rpms__x86_64')\n\n\nWorking with products\n---------------------\n\nThe ``errata_tool.product.Product`` class can look up existing products.\n\nLooking up a product:\n\n.. code-block:: python\n\n from errata_tool.product import Product\n\n p = Product('RHCEPH')\n print(p.id) # 104\n print(p.name) # \"RHCEPH\"\n print(p.description) # \"Red Hat Ceph Storage\"\n\n\nWorking with releases\n---------------------\n\nThe ``errata_tool.release.Release`` class can look up existing releases or\ncreate new release entries.\n\nLooking up a release:\n\n.. code-block:: python\n\n from errata_tool.release import Release\n\n r = Release(name='rhceph-2.4')\n print(r.id) # 792\n print(r.name) # \"rhceph-2.4\"\n print(r.description) # \"Red Hat Ceph Storage 2.4\"\n print(r.type) # \"QuarterlyUpdate\"\n print(r.is_active) # True\n print(r.enabled) # True\n print(r.blocker_flags) # ['ceph-2.y', 'pm_ack', 'devel_ack', 'qa_ack']\n print(r.edit_url) # https://errata.devel.redhat.com/release/edit/792\n\nFinding all \"NEW_FILES\" advisories for a release:\n\n.. code-block:: python\n\n from errata_tool.release import Release\n\n rel = Release(name='rhceph-3.0')\n\n advisories = rel.advisories()\n new_files = [a for a in advisories if a['status'] == 'NEW_FILES']\n print(new_files) # prints the list of advisories' data\n\nCreating a new release (this requires the \"releng\" role in the Errata Tool):\n\n.. code-block:: python\n\n from errata_tool.release import Release\n r = Release.create(\n name='rhceph-3.0',\n product='RHCEPH',\n product_versions=['RHEL-7-CEPH-3'],\n type='QuarterlyUpdate',\n program_manager='anharris',\n blocker_flags='ceph-3.0',\n default_brew_tag='ceph-3.0-rhel-7-candidate',\n )\n print('created new rhceph-3.0 release')\n print('visit %s to edit further' % r.edit_url)\n\n\nUsing the staging server\n------------------------\n\nTo use the staging Errata Tool environment without affecting production, set\nthe ``ErrataConnector._url`` member variable to the staging URL.\n\n.. code-block:: python\n\n from errata_tool import ErrataConnector, Erratum\n\n ErrataConnector._url = 'https://errata.stage.engineering.redhat.com/'\n # Now try something like creating an advisory, and it will not show up in\n # prod, or bother people with emails, etc.\n e = Erratum(product='RHCEPH',\n release='rhceph-2.1',\n synopsis='Red Hat Ceph Storage 2.1 bug fix update',\n ...\n )\n e.commit()\n\n\nDebugging many Errata Tool API calls\n------------------------------------\n\nMaybe your application makes many API calls (lots of advisories, builds, etc),\nWhen processing large numbers of errata from higher-level tools, it's helpful\nto understand where the time is spent to see if multiple calls can be avoided.\n\nSet ``ErrataConnector.debug = True``, and then your connector object will\nrecord information about each call it makes. Each GET/PUT/POST is recorded,\nalong with totals / mean / min / max.\n\nURL APIs are deduplicated based on their name, so two calls to different\nerrata on the same API is recorded as a single API.\n\nTo extract the information and print it, one might use PrettyTable:\n\n.. code-block:: python\n\n e = Erratum(errata_id=24075)\n pt = PrettyTable()\n for c in ErrataConnector.timings:\n for u in ErrataConnector.timings[c]:\n pt.add_row([c, u,\n ErrataConnector.timings[c][u]['count'],\n ErrataConnector.timings[c][u]['total'],\n ErrataConnector.timings[c][u]['mean'],\n ErrataConnector.timings[c][u]['min'],\n ErrataConnector.timings[c][u]['max']])\n print(pt.get_string())\n\n\nSSL errors\n----------\n\nThis library verifies the ET server's HTTPS certificate by default. This is\nmore of a python-requests thing, but if you receive an SSL verification error,\nit's probably because you don't have the Red Hat IT CA set up for your Python\nenvironment. Particularly if you're running this in a virtualenv, you'll want\nto set the following configuration variable::\n\n REQUESTS_CA_BUNDLE=/etc/pki/ca-trust/source/anchors/RH-IT-Root-CA.crt\n\nWhere \"RH-IT-Root-CA.crt\" is the public cert that signed the ET server's\nHTTPS certificate.\n\nWhen using RHEL 7's python-requests RPM, requests simply checks\n``/etc/pki/tls/certs/ca-bundle.crt``, so you'll need to add the IT CA cert to\nthat big bundle file.\n\nIf you've already added the Red Hat IT CA to your system-wide bundle, you can\nhave your Python code always use this file:\n\n.. code-block:: python\n\n if 'REQUESTS_CA_BUNDLE' not in os.environ:\n os.environ['REQUESTS_CA_BUNDLE'] = '/etc/pki/tls/certs/ca-bundle.crt'\n\nThis will make requests behave the same inside or outside your virtualenv. In\nother words, with this code, your program will always validate the Red Hat IT\nCA.\n\nBuilding RPMs\n-------------\n\nInstall fedpkg, then use the Makefile::\n\n $ make srpm\n\nYou can then upload the SRPM to Copr. Or, to build RPMs on your local\ncomputer, using mock::\n\n $ make rpm\n\n\nChangelog\n---------\nCheck out the `CHANGELOG`_.\n\n.. _CHANGELOG: CHANGELOG.rst", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/red-hat-storage/errata-tool", "keywords": "packaging,build", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "errata-tool", "package_url": "https://pypi.org/project/errata-tool/", "platform": "", "project_url": "https://pypi.org/project/errata-tool/", "project_urls": { "Homepage": "https://github.com/red-hat-storage/errata-tool" }, "release_url": "https://pypi.org/project/errata-tool/1.20.0/", "requires_dist": null, "requires_python": "", "summary": "Python API for Red Hat Errata Tool", "version": "1.20.0" }, "last_serial": 5278982, "releases": { "1.10.0": [ { "comment_text": "", "digests": { "md5": "88cbbd5cf974a46494fc4306ea1e6207", "sha256": "5b8bf6a78206a98caa759425dd764dd489f60cb52fda2419b3172f5058f8fca1" }, "downloads": -1, "filename": "errata-tool-1.10.0.tar.gz", "has_sig": true, "md5_digest": "88cbbd5cf974a46494fc4306ea1e6207", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67560, "upload_time": "2018-02-07T19:59:41", "url": "https://files.pythonhosted.org/packages/7e/2f/132884f2c4c60d4d2678f2f6e6fcec6cd9e1f6a22859df36584951daee4b/errata-tool-1.10.0.tar.gz" } ], "1.11.0": [ { "comment_text": "", "digests": { "md5": "e151fe759790aa6ccb3123a14ec2a88b", "sha256": "75dc7b368896276173d2ae79ea032213ed6a11f1c18ea6ef3d9dd949d62a0126" }, "downloads": -1, "filename": "errata-tool-1.11.0.tar.gz", "has_sig": true, "md5_digest": "e151fe759790aa6ccb3123a14ec2a88b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70412, "upload_time": "2018-04-04T20:32:38", "url": "https://files.pythonhosted.org/packages/76/00/a4bed698a33c80ea651aaa97ec1c393d55dd3ba0d192771f626cac2492c1/errata-tool-1.11.0.tar.gz" } ], "1.11.1": [ { "comment_text": "", "digests": { "md5": "fbc4ea008c76bf1836771c55e87dd003", "sha256": "20338a5ace5f3f92170793e3899a96c6b35784e33d7d1739553a267bf9afef76" }, "downloads": -1, "filename": "errata-tool-1.11.1.tar.gz", "has_sig": true, "md5_digest": "fbc4ea008c76bf1836771c55e87dd003", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52958, "upload_time": "2018-04-04T20:46:30", "url": "https://files.pythonhosted.org/packages/21/70/dc7f38745ab1746aec284547efaee3c82d598eb3c7069207e3e1ade96d57/errata-tool-1.11.1.tar.gz" } ], "1.11.2": [ { "comment_text": "", "digests": { "md5": "50822a6be9f838ab92b5aff9e8457d39", "sha256": "cc446696cc9776154c2b83bb0797b20c9d68bf213a95864453afda8bd3b34f9e" }, "downloads": -1, "filename": "errata-tool-1.11.2.tar.gz", "has_sig": true, "md5_digest": "50822a6be9f838ab92b5aff9e8457d39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54896, "upload_time": "2018-04-04T21:23:47", "url": "https://files.pythonhosted.org/packages/79/f8/f581850b68acee79466b141160ba540b1eb708cd8bc44df6920665a177d3/errata-tool-1.11.2.tar.gz" } ], "1.11.3": [ { "comment_text": "", "digests": { "md5": "e5ee3d6d084b94cc9b19670990ca5ba5", "sha256": "d6a22867b74f7ff36206bd0fd42282c0fb5bf5e52c01837dbafd650eaad92cfd" }, "downloads": -1, "filename": "errata-tool-1.11.3.tar.gz", "has_sig": true, "md5_digest": "e5ee3d6d084b94cc9b19670990ca5ba5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54870, "upload_time": "2018-04-04T22:09:29", "url": "https://files.pythonhosted.org/packages/0c/e8/849cbb4a5dd0d542d86860ae171ce3ae9d4f46ab2add4a06a7bd1c55e1b3/errata-tool-1.11.3.tar.gz" } ], "1.12.0": [ { "comment_text": "", "digests": { "md5": "3255f7b46d8976ac2616aaa173e1e06e", "sha256": "17316f890450eedecd46e1835b8889c3f24ee78c71d22cfecfbba66246518c96" }, "downloads": -1, "filename": "errata-tool-1.12.0.tar.gz", "has_sig": true, "md5_digest": "3255f7b46d8976ac2616aaa173e1e06e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56851, "upload_time": "2018-04-23T20:01:09", "url": "https://files.pythonhosted.org/packages/54/ed/357a9fa3d40056485d7b3e7b54756dc5dccf3c4a3483933fb18f8e8c0f0e/errata-tool-1.12.0.tar.gz" } ], "1.14.0": [ { "comment_text": "", "digests": { "md5": "0e19e2f5f47aba2a16c8d210116d2bf9", "sha256": "19b0667da484464a3bb20c87202b4a7f965c57b4d0be65ff3018506ed972ab0b" }, "downloads": -1, "filename": "errata-tool-1.14.0.tar.gz", "has_sig": true, "md5_digest": "0e19e2f5f47aba2a16c8d210116d2bf9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58303, "upload_time": "2018-07-12T17:47:28", "url": "https://files.pythonhosted.org/packages/06/b8/7cfc1563fb03149f6a95c144daa89553da7465ad5e044573653af8a474e6/errata-tool-1.14.0.tar.gz" } ], "1.15.0": [ { "comment_text": "", "digests": { "md5": "c359f2563a95815ab6089f8eb3a5b710", "sha256": "7a00fb8bcc43867ddad97b0796d0348d66fd3d828acdf15b77ad078d4fd459af" }, "downloads": -1, "filename": "errata-tool-1.15.0.tar.gz", "has_sig": true, "md5_digest": "c359f2563a95815ab6089f8eb3a5b710", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78667, "upload_time": "2018-07-24T16:04:28", "url": "https://files.pythonhosted.org/packages/31/24/7308b314ca2d620ad2c01c264178dfe4e3ce0e8144cce0c7284d9ab91030/errata-tool-1.15.0.tar.gz" } ], "1.16.0": [ { "comment_text": "", "digests": { "md5": "8dce02ce5e5afc59d8c1c1eaf7fae316", "sha256": "01c780ffba7f22081c702a0e56fe2a29fc035b7d11c99342512f3e3dbc7c6b04" }, "downloads": -1, "filename": "errata-tool-1.16.0.tar.gz", "has_sig": true, "md5_digest": "8dce02ce5e5afc59d8c1c1eaf7fae316", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88204, "upload_time": "2019-01-03T22:44:29", "url": "https://files.pythonhosted.org/packages/b1/f1/6a59bf9fa4a545c731bd36670ea9c8f7c7d58a635e1e9c1ad1d07d869d85/errata-tool-1.16.0.tar.gz" } ], "1.17.0": [ { "comment_text": "", "digests": { "md5": "41d70d2d5b3d8f30c55ef71bdbb90cde", "sha256": "f95bfcafca2bc3b2b858b19e9bdb42dea4eb5ba5abe73dd23543e89dff64f70a" }, "downloads": -1, "filename": "errata-tool-1.17.0.tar.gz", "has_sig": false, "md5_digest": "41d70d2d5b3d8f30c55ef71bdbb90cde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67548, "upload_time": "2019-01-14T16:51:18", "url": "https://files.pythonhosted.org/packages/82/f0/74aa81b31a6747ed4c3ad469327a71e611fc2fd979aae7210da421b2b7aa/errata-tool-1.17.0.tar.gz" } ], "1.18.0": [ { "comment_text": "", "digests": { "md5": "d85d5bef6b1f37980d7c30959aaf52ba", "sha256": "d5444bb011cffa4a9d271056c8cec46a703e9a2df0a40fb836449588d6118fee" }, "downloads": -1, "filename": "errata-tool-1.18.0.tar.gz", "has_sig": true, "md5_digest": "d85d5bef6b1f37980d7c30959aaf52ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88657, "upload_time": "2019-02-05T17:49:22", "url": "https://files.pythonhosted.org/packages/90/aa/c4023d6ede8aaa8b5b1146be04ef5cf0246277f5eb875290411d1d50a53e/errata-tool-1.18.0.tar.gz" } ], "1.19.0": [ { "comment_text": "", "digests": { "md5": "505be848050609fe9707cd1489243581", "sha256": "fb5607e97983c0bdb3e994426d5c021b242e174c2231524319a5ff35ec34a3e8" }, "downloads": -1, "filename": "errata-tool-1.19.0.tar.gz", "has_sig": false, "md5_digest": "505be848050609fe9707cd1489243581", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89332, "upload_time": "2019-04-29T23:08:18", "url": "https://files.pythonhosted.org/packages/53/b8/e3cbeedc211729ab53f8c95b9bf8a208210e07b868629bf858deb59b5bd4/errata-tool-1.19.0.tar.gz" } ], "1.20.0": [ { "comment_text": "", "digests": { "md5": "d53c18af635fab90635621020f136b83", "sha256": "b2f9fd0965c5ad2dbb0be20c587b8bc6577004b8bf06c1ca12e4fc9a451d9074" }, "downloads": -1, "filename": "errata-tool-1.20.0.tar.gz", "has_sig": true, "md5_digest": "d53c18af635fab90635621020f136b83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89062, "upload_time": "2019-05-16T19:48:16", "url": "https://files.pythonhosted.org/packages/30/5b/57135e1a0995b176dc579416521d7de1b0e191f150801d9de58c4d8b0638/errata-tool-1.20.0.tar.gz" } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "5fc518a8a9bd5c611a49d71454549ee5", "sha256": "a5e394e29e0a53e63f05bf789eb417a62d6c227657e0258e81285c07f5b9dda8" }, "downloads": -1, "filename": "errata-tool-1.8.0.tar.gz", "has_sig": true, "md5_digest": "5fc518a8a9bd5c611a49d71454549ee5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38532, "upload_time": "2017-05-30T20:43:42", "url": "https://files.pythonhosted.org/packages/d3/8e/d9f3aea16c9ab1a828a5c525003f131bb14c462ad4981863d3bb6052d771/errata-tool-1.8.0.tar.gz" } ], "1.8.1": [ { "comment_text": "", "digests": { "md5": "1d83be801eef4f186f11a780024e8045", "sha256": "d5bf695098a5596f25b3e7e6c1eefed84d10e09c3e5a4ccdef5dc5680e9b20a8" }, "downloads": -1, "filename": "errata-tool-1.8.1.tar.gz", "has_sig": true, "md5_digest": "1d83be801eef4f186f11a780024e8045", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38798, "upload_time": "2017-07-24T20:28:29", "url": "https://files.pythonhosted.org/packages/e2/89/e08dfee82de6b0eff6b6b0672e698c722e457f091a69f8b1c807a91557f9/errata-tool-1.8.1.tar.gz" } ], "1.8.2": [ { "comment_text": "", "digests": { "md5": "e3fc8c4099bc930aa251b9bb517f8d0f", "sha256": "f651ed529e023e297907cb8d1648f3e941dd70dfa735c7eb01eea6f2ae38ef24" }, "downloads": -1, "filename": "errata-tool-1.8.2.tar.gz", "has_sig": true, "md5_digest": "e3fc8c4099bc930aa251b9bb517f8d0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39057, "upload_time": "2017-08-23T18:58:08", "url": "https://files.pythonhosted.org/packages/11/57/b6a1af0c4aa4bb5f6e6ba2c2241a9d7fcf2f57ad187c3d1237d2fce4eade/errata-tool-1.8.2.tar.gz" } ], "1.9.0": [ { "comment_text": "", "digests": { "md5": "75d32becde30197b993dbe24edcf9845", "sha256": "e6c687c011ab98ffb145cc4705ea4137c38de0062bad2b814becbb665ec60374" }, "downloads": -1, "filename": "errata-tool-1.9.0.tar.gz", "has_sig": true, "md5_digest": "75d32becde30197b993dbe24edcf9845", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39744, "upload_time": "2017-10-05T20:21:29", "url": "https://files.pythonhosted.org/packages/6c/c7/77c4c079a847553160b6134afc5cebc0c5061bfdc23d05e01fb813afb3ce/errata-tool-1.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d53c18af635fab90635621020f136b83", "sha256": "b2f9fd0965c5ad2dbb0be20c587b8bc6577004b8bf06c1ca12e4fc9a451d9074" }, "downloads": -1, "filename": "errata-tool-1.20.0.tar.gz", "has_sig": true, "md5_digest": "d53c18af635fab90635621020f136b83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89062, "upload_time": "2019-05-16T19:48:16", "url": "https://files.pythonhosted.org/packages/30/5b/57135e1a0995b176dc579416521d7de1b0e191f150801d9de58c4d8b0638/errata-tool-1.20.0.tar.gz" } ] }