CI/CD hardening: lint, secret scan, coverage gate, auto CVE-fix PRs, GHCR + GitHub mirror publishing (#32)
CI / build-and-scan (push) Successful in 1m37s

- release changelog: commits rendered as description (link), divider lines dropped
- gitleaks secret scan and hadolint on every push/PR
- ruff lint/format gate (Python repos) with a pytest --cov-fail-under gate
- scheduled CRITICAL Trivy failures attempt an apk upgrade rebuild and open a follow-up PR if it clears the finding, instead of just failing red
- images also published to ghcr.io/djeex/<repo>
- a matching GitHub Release is created on the GitHub mirror, with a notice pointing back to this repo as the source of truth
This commit was merged in pull request #32.
This commit is contained in:
2026-08-26 15:43:40 +02:00
parent b3ed21eec2
commit 5a7a60d299
10 changed files with 356 additions and 135 deletions
+13
View File
@@ -0,0 +1,13 @@
line-length = 100
[lint]
select = ["E", "F", "I", "UP", "B"]
# E501: handled by the formatter. B905: zip() without strict= in env_config.py —
# app-logic change, left for the user to decide (see feedback-no-app-logic-changes).
ignore = ["E501", "B905"]
[lint.isort]
# Pinned explicitly: auto-detection of first-party modules differs between the
# host (app/ subdir + .git present) and the Docker lint stage (flattened to /app,
# no .git) — without this, import-sort results silently diverge between the two.
known-first-party = ["env_config", "gpu_checker", "notifier", "main"]