Python for DevOps: CI/CD for Python Projects
This repo contains the code for the CI/CD section of my Python for DevOps course.
It packages a small command-line tool, check-urls, that checks one or more URLs
and prints their HTTP status.
Workflow
What we will implement in this repository
- Implement the project (code files)
- Add a simple GHA workflow and make sure it runs until completion
- Add linting (ruff) and format checks (black)
- Add typing (mypy) and security checks (bandit)
- Add test automation
- Build our Python project
- Publish the project to both TestPyPI and PyPI when a new release is published
Installation
Install the package from PyPI:
pip install simple-http-checker-PedroLima
Install from TestPyPI:
pip install --index-url https://test.pypi.org/simple/ simple-http-checker-PedroLima
For local development, clone the repository and install it in editable mode:
git clone <repo-url>
cd python-devops-cicd-project
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
Usage
Check a single URL:
check-urls https://httpbin.org/status/200
Check multiple URLs:
check-urls https://httpbin.org/status/200 https://httpbin.org/status/404 https://httpbin.org/status/500
Set a custom timeout in seconds:
check-urls https://httpbin.org/delay/2 --timeout 5
Enable verbose logging:
check-urls https://httpbin.org/status/200 --verbose
Example output:
--- Results ---
https://httpbin.org/status/200 -> 200 OK
https://httpbin.org/status/404 -> 404 NOT FOUND
https://httpbin.org/status/500 -> 500 INTERNAL SERVER ERROR
Development
Install development dependencies:
pip install -e ".[dev]"
Run linting, formatting, typing, security checks, and tests:
ruff check .
black --check .
mypy src/
bandit -c pyproject.toml -r .
pytest
Package Info
- Package name:
simple-http-checker-PedroLima - CLI command:
check-urls - Python version:
3.9 <= version <= 3.12
Release files for simple-http-checker-PedroLima 1.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| simple_http_checker_pedrolima-1.3.1.tar.gz | 6.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simple_http_checker_pedrolima-1.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.2 kB
Release files / simple_http_checker_pedrolima-1.3.1.tar.gz
| Download URL | simple_http_checker_pedrolima-1.3.1.tar.gz |
|---|---|
| Size | 6.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0c68ee33b85320bf9aa64c58abc95c4cb585eb300c110578ca8d813f30f5a941
|
|
BLAKE2b-256 checksum How to use checksums |
718edb0b873ad3e5a1fb5ee3677563500534aaf9002610410d4f3f1fbc41141c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.
Transparency logRelease files / simple_http_checker_pedrolima-1.3.1-py3-none-any.whl
| Download URL | simple_http_checker_pedrolima-1.3.1-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2a51290ba2ade33c979ff4b4d20698a5bc0f1d425d789ee501cda1180f9e5849
|
|
BLAKE2b-256 checksum How to use checksums |
111e5670b1eb9deb1387e417db3881f215c29f9332cce6187564b19dc36ca023
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.
Transparency log