{"id":19721497,"url":"https://github.com/steelph0enix/pythoncitemplate","last_synced_at":"2026-04-15T00:32:05.414Z","repository":{"id":138343255,"uuid":"568504681","full_name":"SteelPh0enix/PythonCITemplate","owner":"SteelPh0enix","description":"Python CI + coverage templatr project, using Coverage.py, PyTest and Poetry","archived":false,"fork":false,"pushed_at":"2022-11-22T22:05:35.000Z","size":69,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-28T00:22:05.620Z","etag":null,"topics":["ci","coverage","poetry","pytest","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SteelPh0enix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-20T18:33:26.000Z","updated_at":"2022-11-22T22:00:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"a7c6ba7a-af55-4615-9ff1-2ae191ab09b0","html_url":"https://github.com/SteelPh0enix/PythonCITemplate","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SteelPh0enix/PythonCITemplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SteelPh0enix%2FPythonCITemplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SteelPh0enix%2FPythonCITemplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SteelPh0enix%2FPythonCITemplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SteelPh0enix%2FPythonCITemplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SteelPh0enix","download_url":"https://codeload.github.com/SteelPh0enix/PythonCITemplate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SteelPh0enix%2FPythonCITemplate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31821486,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"ssl_error","status_checked_at":"2026-04-14T18:05:01.765Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ci","coverage","poetry","pytest","python"],"created_at":"2024-11-11T23:14:29.697Z","updated_at":"2026-04-15T00:32:05.406Z","avatar_url":"https://github.com/SteelPh0enix.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python 3 project template\n\nThis repository contains a simple template for Python 3 project with Github Actions for automatic test execution and coverage report/documentation deploy to Github Pages.\n\n## How does it work?\n\nIf you are familiar with Github Actions, take a peek into [workflows directory](.github/workflows/). If not, here's long description:\n\nThis project is managed by Poetry. Poetry is a tool for managing Python projects and virtual environments, it allows for easy creation of virtualenvs and dependency management. Everything that's related to project management - installing/removing packages, preparing virtual environment and running the code - is done via Poetry.\n\nFor development, you can simply go into Poetry shell using `poetry shell` command, and then work in virtualenv. For this repo's CI, we use `poetry run` to execute commands inside it.\n\nPoetry also generates a `pyproject.toml` file, which contains the metadata of project - including the list of packages this project's using. By looking into this file, Poetry sees what packages it needs to install in order to prepare the environment for our code, and we can use it in our CI for quick setup.\n\nPoetry is not a mandatory manager for this type of projects, you can use anything that either has it's own metadata format - like `pipenv` - or just generate `requirements.txt` file. The point is - CI needs to know what packages to install in order to run the tests and generate documentation.\n\nFor testing, this project uses [`PyTest`](https://docs.pytest.org/) framework. It's invoked via `poetry run pytest`.\nThere's also a code formatter ([`black`](https://github.com/psf/black)) and linter ([`flake8`](https://flake8.pycqa.org/en/latest/)) integrated into the CI. You can configure them to automatically check if the code sticks to your project's standard. `black` is currently not configured in CI, so it has to be run manually (`pipenv run black example_app/* tests/*`).\n\nFor coverage report generation, [`coverage.py`](https://coverage.readthedocs.io/en/latest/) is used, and for docs - [`sphinx`](https://www.sphinx-doc.org/en/master/).\n\nThis project uses Github Actions for automatic testing and docs deployment. Testing workflow is in [`python-app.yml`](.github/workflows/python-app.yml), and pages deployment in [`pages-deploy.yml`](.github/workflows/pages-deploy.yml).\n\nYou can check the state of recent workflows [here](https://github.com/SteelPh0enix/PythonCITemplate/actions).\n\nTesting workflow prepares Python environment and installs Poetry, then Poetry installs the project dependencies required for testing, checks the code with `flake8` and runs the tests. It does not install dependencies used only for docs generation, as `docs` group is defined as optional in [`pyproject.toml`](pyproject.toml) file.\n\nPage deployment workflow starts similarly to test workflow, however it does install `docs` group packages with Poetry. Then, it generates docs, coverage report, creates an artifact for Github Pages deployment and uploads it. That's it, that's the magic.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteelph0enix%2Fpythoncitemplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteelph0enix%2Fpythoncitemplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteelph0enix%2Fpythoncitemplate/lists"}