{"id":28675820,"url":"https://github.com/pbexe/ci-plumber","last_synced_at":"2025-06-13T23:01:54.499Z","repository":{"id":37100551,"uuid":"393022448","full_name":"pbexe/ci-plumber","owner":"pbexe","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-20T07:23:52.000Z","size":620,"stargazers_count":2,"open_issues_count":5,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-10T04:23:46.394Z","etag":null,"topics":["azure","continuous-delivery","continuous-integration","gitlab","openshift","python"],"latest_commit_sha":null,"homepage":"https://milesbudden.com/ci-plumber/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pbexe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-05T11:49:33.000Z","updated_at":"2021-12-14T14:30:57.000Z","dependencies_parsed_at":"2023-02-12T00:31:06.772Z","dependency_job_id":null,"html_url":"https://github.com/pbexe/ci-plumber","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/pbexe/ci-plumber","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbexe%2Fci-plumber","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbexe%2Fci-plumber/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbexe%2Fci-plumber/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbexe%2Fci-plumber/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pbexe","download_url":"https://codeload.github.com/pbexe/ci-plumber/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbexe%2Fci-plumber/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259710750,"owners_count":22900003,"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":["azure","continuous-delivery","continuous-integration","gitlab","openshift","python"],"created_at":"2025-06-13T23:01:04.036Z","updated_at":"2025-06-13T23:01:54.450Z","avatar_url":"https://github.com/pbexe.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CI Plumber\n\n[![CodeFactor](https://www.codefactor.io/repository/github/pbexe/ci-plumber/badge)](https://www.codefactor.io/repository/github/pbexe/ci-plumber) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ci-plumber) ![PyPI](https://img.shields.io/pypi/v/ci-plumber) ![PyPI - Downloads](https://img.shields.io/pypi/dm/ci-plumber) [![python-app](https://github.com/pbexe/ci-plumber/actions/workflows/python-app.yml/badge.svg)](https://github.com/pbexe/ci-plumber/actions/workflows/python-app.yml) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5545987.svg)](https://doi.org/10.5281/zenodo.5545987)\n\n\nA tool to create and configure all of the stages of a CI/CD pipeline.\n\nCurrent integrations:\n- Gitlab\n- Gitlab pipelines\n- Azure App Service\n- Azure Image Registry\n- Azure MariaDB\n- Openshift\n- Openshift MariaDB\n\nFull documentation is available [here](https://milesbudden.com/ci-plumber/).\n\n## Installation\n\n```sh\npip install ci-plumber[all]\n```\n\n### Requirements\n\n- `oc` CLI tool\n- `az` CLI tool\n\n## Usage\n\n### GitLab\n```sh\n# Initialise the project\nci-plumber gitlab init\n```\n\n### OpenShift\n\n```sh\n# Deploy from the current docker registry to OpenShift\nci-plumber openshift deploy\n\n# Create a new DB and store the credentials in maria.env\nci-plumber openshift create-db\n```\n\n### Azure\n\n```sh\n# Log in to Azure\nci-plumber azure login\n\n# List your Azure subscriptions\nci-plumber azure list-subscriptions\n\n# Set the subscription to use\nci-plumber azure set-default-subscription\n\n# Create a docker registry\nci-plumber azure create-registry\n\n# Trigger a build and push\ngit add .\ngit commit -m \"Added Azure CI file\"\ngit tag -a v1.0.0 -m \"Version 1.0.0\"\ngit push --follow-tags\n\n# Deploy to Azure\nci-plumber azure create-app\n\n# Create a database and store the credentials in maria.env\nci-plumber azure create-db\n```\n\n## Developing\n\n### Installation\n```sh\n# Install dependencies\n$ poetry install\n$ poetry shell\n\n# Install git hooks\n$ pre-commit install\n$ pre-commit autoupdate\n$ pre-commit run --all-files\n\n# Symlink the plugins back to the main project\n$ ln -s ./plugins/example/ci_plumber_example/ ./ci_plumber_example\n$ ln -s ./plugins/gitlab/ci_plumber_gitlab/ ./ci_plumber_gitlab\n$ ln -s ./plugins/openshift/ci_plumber_openshift/ ./ci_plumber_openshift\n$ ln -s ./plugins/azure/ci_plumber_azure/ ./ci_plumber_azure\n```\n\n### Features\n\n- Runs checks on commit\n    - Flake8\n    - Black\n    - pre-commit-hooks checks\n    - mypy\n    - isort\n- Installable as a script\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbexe%2Fci-plumber","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpbexe%2Fci-plumber","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbexe%2Fci-plumber/lists"}