Workflow code_quality.yml pouští při každém PR a při pushi do main
kontroly, které se dosud dělaly ručně, ve čtyřech jobech:
- Lint a bezpečnost: check_sources.py, bandit, detect-secrets, flake8,
ruff. Bandit a detect-secrets jsou tytéž kontroly, které blokují
schválení na plugins.qgis.org.
- Kompatibilita s Qt6: pyqgis4-checker v dockeru. Skript končí kódem 0,
i když něco najde, výsledek je jen v logu; job proto ověřuje, že log
obsahuje pouze hlavičku.
- Smoke test: smoke_test.py v qgis/qgis:ltr (3.44, Qt5) i
qgis/qgis:stable (4.x, Qt6). Tagy se posouvají schválně, aby bylo
vidět, že plugin drží krok s aktuálním QGISem.
- Balíček pluginu: sestaví amcr_viewer.zip stejně jako release
workflow, ověří, že v něm je metadata.txt, __init__.py i .flake8
a nejsou v něm git soubory, a přiloží ho jako artefakt běhu.
Recenzent ho nainstaluje přes Install from ZIP bez ručního balení.
detect-secrets se pouští s --all-files. Bez toho prohledá jen soubory
sledované gitem a o nesledovaném souboru mlčí, což vypadá jako čistý
výsledek.
Verze nástrojů jsou napevno. Bez pinu by se výsledek měnil s každým
vydáním ruffu, které rozšíří výchozí sadu pravidel.
CodeQL a GitGuardian běží zvlášť, nastavené na úrovni organizace,
a schválně se tu neduplikují.
AGENTS.md popisuje, jak totéž pustit lokálně, a tři místa, kde kontroly
tiše lžou (výstupní kód pyqgis4-checkeru, detect-secrets bez
--all-files, umístění config souborů pro scanner).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WhQyc1uQFcpkezLwM8if6T
Reakce na CodeQL upozornění 'Unpinned tag for a non-immutable Action'.
Tag (v4/v2) může vlastník akce kdykoli přepsat na jiný commit; připnutí
na hash chrání release pipeline před podvržením závislosti.
Zároveň povýšeno na nejnovější verze: actions/checkout v6.0.3
a softprops/action-gh-release v3.0.0 (jen přechod na Node 24 runtime,
bez změn API; hashe ověřeny přes git ls-remote).
- metadata.txt: icon ukazoval na neexistující download.png – plugin se
ve správci zásuvných modulů zobrazoval bez ikony; nastaveno na akce.png.
- Workflow: actions/checkout v2→v4 (v2 je deprecated, Node 12)
a softprops/action-gh-release v1→v2.
- README: poznámka, že knihovna requests nemusí být na Linuxu součástí
systémové instalace QGIS.