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 werdenn.
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
GitHub Actions könnt ihr pinact verwenden, z. B. mit:
$ pinact run -u --min-age 7
Überprüft eure GitHub-Actions¶
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.