CLI open source de CI/CD
quoll
Une CLI qui écrit et maintient la CI, le Dockerfile, la livraison et le chart Helm d'un projet, sur GitHub Actions ou GitLab CI. Elle lit le dépôt au lieu de poser des questions.
On ne décrit pas son projet à quoll : il le lit, propose ce qui lui correspond, et ne demande que ce qu'il ne peut pas déduire (seuil de couverture, matrice de versions). Les choix sont écrits dans quoll.toml ; la CI, le Dockerfile et la livraison sont générés depuis ce fichier, donc ne peuvent pas se contredire.
Ce que j'ai construit
- Détection du projet à partir de ses fichiers : langage, framework, gestionnaire de paquets, version du runtime, outils de lint et de test. Neuf langages pris en charge, de Python et Node.js à Go, Rust, Java, PHP, Ruby, .NET et C/C++.
- Pipeline généré pour GitHub Actions ou GitLab CI : lint, tests en matrice avec seuil de couverture, audit des dépendances, recherche de secrets (gitleaks), Semgrep, SBOM et contrôle des licences, build, scan Trivy de l'image.
- Dockerfiles multi-étapes et sans root, adaptés à chaque framework ; une livraison qui scanne l'image avant de la publier, puis la signe avec Sigstore ; un chart Helm par projet.
- Un seul fichier, quoll.toml, comme source de vérité : une commande régénère les fichiers en montrant le diff, une autre échoue en CI si le pipeline ne lui correspond plus.
- « quoll new » crée un dépôt complet (front Angular, back Express, services) dont le pipeline passe au premier push, branche principale protégée.
Points forts
- Chaque workflow généré est validé par actionlint, et chaque pipeline GitLab par son schéma, dans les tests de l'outil.
- La CI de quoll est elle-même générée par quoll.
- Chaîne d'approvisionnement soignée par défaut : actions épinglées par SHA de commit, images des outils épinglées par version, permissions minimales.