Shared CI scripts and workflow templates: readable lint reports and AI lint fixes (MegaLinter + local Qwen)
- Python 97.4%
- Shell 2.6%
| linters | ||
| workflow-templates | ||
| keep_eol.py | ||
| lint_ai_fix.py | ||
| lint_nightly.py | ||
| lint_setup.sh | ||
| lint_summary.py | ||
| mega-linter.base.yml | ||
| README.md | ||
kompas-ci
Shared CI pieces for the repositories on git.kreative-kompas.com. Jobs run on
soucouyant (runs-on: soucouyant), never on kireserver.
| File | What it does |
|---|---|
workflow-templates/megalinter.yml |
Lint check on every PR and push: MegaLinter, then one readable summary comment on the PR (updated on each push). Copy to .forgejo/workflows/lint.yml. |
workflow-templates/lint-fix.yml |
Nightly (02:30) or on demand: runs lint_nightly.py. One linter per night, up to 8 files: the linter's own fix mode, then the local AI (Qwen 3.5 on soucouyant) file by file. A change is kept only when the error count goes down. Opens lint-fix/<linter>; at most 3 wait for review at a time. Never merged automatically. |
mega-linter.base.yml |
Shared MegaLinter settings (disabled noisy linters, vendored folders excluded, cppcheck as C++, template folders skipped). Workflows load it with EXTENDS. |
linters/ |
Shared rule files (markdownlint, yamllint, hadolint, stylelint) with style-only rules off. A rule file in a repo's root wins. |
lint_setup.sh |
Downloads linters/ into .kk-linters/ of the checkout. |
lint_nightly.py |
The nightly fixer (baseline, pick a linter, fix, measure, PR). |
lint_summary.py |
Turns MegaLinter's JSON report into the PR comment. |
lint_ai_fix.py |
Sends files with linter errors and the messages to the local model, writes back sane answers. |
keep_eol.py |
Keeps CRLF files CRLF after formatters ran. |
Pick the MegaLinter flavour image per repo: megalinter-python, -javascript,
-java, -cupcake (C/C++), -go, -rust. The workflows download the scripts
from this public repo, so improving a script here improves every repo.