Shared CI scripts and workflow templates: readable lint reports and AI lint fixes (MegaLinter + local Qwen)
  • Python 97.4%
  • Shell 2.6%
Find a file
2026-10-04 15:02:38 +02:00
linters Shared MegaLinter config and rule files; nightly one-linter lint-fix PRs 2026-10-04 14:49:22 +02:00
workflow-templates Shared MegaLinter config and rule files; nightly one-linter lint-fix PRs 2026-10-04 14:49:22 +02:00
keep_eol.py AI fix reads WARNING logs too, keep CRLF, bandit medium+ 2026-10-04 04:09:24 +02:00
lint_ai_fix.py lint-fix AI: long files are fixed window by window around each finding 2026-10-04 14:56:52 +02:00
lint_nightly.py lint_nightly: give the model the message lines above each finding 2026-10-04 15:02:38 +02:00
lint_setup.sh Shared MegaLinter config and rule files; nightly one-linter lint-fix PRs 2026-10-04 14:49:22 +02:00
lint_summary.py Shared MegaLinter config and rule files; nightly one-linter lint-fix PRs 2026-10-04 14:49:22 +02:00
mega-linter.base.yml base: drop v8r (schema noise), cppcheck knows GoogleTest macros 2026-10-04 14:51:40 +02:00
README.md Shared MegaLinter config and rule files; nightly one-linter lint-fix PRs 2026-10-04 14:49:22 +02:00

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.