{"id":20314464,"url":"https://github.com/release-engineering/cloudpub","last_synced_at":"2025-04-11T17:17:24.989Z","repository":{"id":247776986,"uuid":"823194263","full_name":"release-engineering/cloudpub","owner":"release-engineering","description":"Services for publishing products in cloud environments","archived":false,"fork":false,"pushed_at":"2025-03-31T16:49:16.000Z","size":1164,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-03-31T17:47:42.834Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://release-engineering.github.io/cloudpub/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/release-engineering.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-02T15:01:36.000Z","updated_at":"2025-03-31T16:49:19.000Z","dependencies_parsed_at":"2024-07-10T15:05:26.739Z","dependency_job_id":"1ae054a1-39e3-4dc7-88a8-6943bc59ed56","html_url":"https://github.com/release-engineering/cloudpub","commit_stats":null,"previous_names":["release-engineering/cloudpub"],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/release-engineering%2Fcloudpub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/release-engineering%2Fcloudpub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/release-engineering%2Fcloudpub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/release-engineering%2Fcloudpub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/release-engineering","download_url":"https://codeload.github.com/release-engineering/cloudpub/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248447600,"owners_count":21105140,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T18:15:28.430Z","updated_at":"2025-04-11T17:17:24.970Z","avatar_url":"https://github.com/release-engineering.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CloudPub\n\nA library for publishing product listings on various clouds marketplaces\n\nused by [release-engineering](https://github.com/release-engineering) publishing tools.\n\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/release-engineering/cloudpub/tox-test.yml)\n![GitHub Release](https://img.shields.io/github/v/release/release-engineering/cloudpub)\n[![PyPI version](https://badge.fury.io/py/cloudpub.svg)](https://badge.fury.io/py/cloudpub)\n\n- [Source](https://github.com/release-engineering/cloudpub)\n- [Documentation](https://release-engineering.github.io/cloudpub/)\n\n\n## Overview\n\nThe `CloudPub` is a library to allow associating and publishing VM images into product listings on\ndifferent cloud marketplaces.\n\n\n### Objective\n\nThis library implements a small subset of Stratosphere Tooling actions which concerns only for\nassociating a VM Image with a product listing and publishing it.\n\nIt's not inteneded to replace the already existing Stratosphere Tooling but rather complement them\nby:\n\n1. Providing a very small and cohesive implementation of the required actions\n2. Using the minimal external dependencies as possible for better integration with Pub\n3. Following the same patterns from already existing Pub libraries\n4. Not implementing a CLI of any type as its intended to be used as a library only\n\n\n## Documentation\n\nThe documentation of `CloudPub` is [available here](https://release-engineering.github.io/cloudpub/).\n\n## Installation\n\nTo install this library go to the project's root directory and execute:\n\n```{bash}\n    pip install -r requirements.txt\n    pip install .\n```\n\n## Development\n\n### Prerequisites\n\nThe versions listed below are the one which were tested and work. Other versions can work as well.\n\n- Install or create a `virtualenv` for `python` \u003e= 3.8\n- Install `tox` \u003e= 3.25\n\n### Dependency Management\n\nTo manage dependencies, this project uses [pip-tools](https://github.com/jazzband/pip-tools) so that\nthe dependencies are pinned and their hashes are verified during installation.\n\nThe unpinned dependencies are recorded in **setup.py** and the **requirements.txt** are regenerated\neach time `tox` runs. Alternatively you can run `tox -e pip-compile` manually\nto achieve the same result. To upgrade a package, use the `-P` argument of the `pip-compile` command.\n\nWhen installing the dependencies use the command `pip install --no-deps --require-hashes -r requirements.txt`.\n\nTo ensure the pinned dependencies are not vulnerable, this project uses [safety](https://github.com/pyupio/safety),\nwhich runs on every pull-request or can be run manually by `tox -e security`.\n\n### Coding Standards\n\nThe codebase conforms to the style enforced by `flake8` with the following exceptions:\n\n- The maximum line length allowed is 100 characters instead of 80 characters\n\nIn addition to `flake8`, docstrings are also enforced by the plugin `flake8-docstrings` with\nthe following exemptions:\n\n- D100: Missing docstring in public module\n- D104: Missing docstring in public package\n- D105: Missing docstring in magic method\n\nAdditionally, `black` is used to enforce other coding standards.\n\nTo verify that your code meets these standards, you may run `tox -e lint`.\n\nTo automatically format your code you man run `tox -e autoformat`.\n\n### Unit tests\n\nTo run unit tests use `tox -e py38,py39,py310,py311`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frelease-engineering%2Fcloudpub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frelease-engineering%2Fcloudpub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frelease-engineering%2Fcloudpub/lists"}