Umgebungen trennen¶
Aktuelle Best-Practices trennen zwischen verschiedenen Umgebungen, je nachdem, was in dieser Umgebung gemacht werden soll. So wird z. B. in unserer cusy.tasks-Anwendungen folgende Umgebungen unterschieden:
[project]
dependencies = [
"rich",
"tinydb",
"typer",
]
[dependency-groups]
dev = [
"pre-commit",
"reuse",
"tox-uv",
"watchgha",
{ include-group = "docs" },
{ include-group = "tests" },
]
docs = [
"furo",
"interrogate",
"matplotlib",
"sphinx-copybutton",
"sphinx-inline-tabs",
"sphinxcontrib-napoleon",
"sphinxext-opengraph",
]
tests = [
"coverage[toml]",
"faker",
"pytest",
"pytest-cov",
]
So können beim Betrieb der Anwendung nur die dafür benötigten Abhängigkeiten installiert werden, Nur beim Testen oder beim Deployment der Dokumentation werden jeweils dort benötigte Abhängigkeiten zusätzlich installiert. Lediglich die Entwicklungsumgebung enthält alle Abhängigkeiten.
So wie eure Python-Umgebung mit unveränderbaren Referenzen aktuell gehalten werden sollte, sollten auch eure prek-Checks und GitHub Actions regelmäßig aktualisiert werden.
In der .pre-commit-config.yaml sollten die Versionen der Checks mit
ihren Hashes regelmäßig aktualisiert werden, z. B. mit:
$ uv run prek update --freeze --cooldown-days 7
https://github.com/pre-commit/pre-commit-hooks
updating rev `v6.0.0` -> `3e8a8703264a2f4a69428a0aa4dcb512790b2c8c` (frozen: v6.0.0)
Siehe auch
Überprüft eure GitHub-Actions¶
Für GitHub Actions könnt ihr pinact verwenden, z. B. mit:
$ pinact run -u --min-age 7
zizmor ist ein Tool zur statischen Analyse, das
Sicherheitslücken in GitHub-Actions-Workflows aufspürt – darunter
Template-Injection, nicht fixierte Aktionen, übermäßige Berechtigungen, das
Offenlegen von Anmeldedaten sowie mehr als 30 weitere Prüfregeln. zizmor erkennt Schwachstellen wie
diejenigen, die durch token-exfiltration ausgenutzt wurden.
Siehe auch