À propos du projet
Lintro est un outil en ligne de commande qui unifie un vaste ensemble d'outils de formatage de code, de linting, de vérification de types et de sécurité derrière une interface unique. Il est publié sous licence MIT et nécessite Python 3.11 ou une version ultérieure pour le package Python, bien qu'un package Node autonome soit également proposé.
Le démarrage rapide s'articule autour de deux commandes : "lintro check" (alias "chk") pour trouver les problèmes et "lintro format" (alias "fmt") pour les corriger. Les commandes supplémentaires incluent "lintro badge" pour un badge de comptage de problèmes shields.io, "lintro list-tools" pour afficher les outils disponibles, "lintro init" et "lintro doctor" pour la configuration et les vérifications de santé, et "lintro install --profile recommended" pour le provisionnement des outils. Les résultats peuvent être rendus dans plusieurs formats : grid, JSON, HTML, CSV et Markdown, avec des options telles que --output-format grid, --group-by file, --tools pour sélectionner des outils spécifiques, --exclude pour les répertoires, --auto-install pour les outils basés sur Node, et --diff pour limiter les vérifications aux fichiers modifiés par rapport à une référence git.
Le README liste une large matrice d'outils regroupés en linters, formateurs, outils faisant les deux, vérificateurs de types, scanners de sécurité et outils d'IA. Les exemples incluent Actionlint, Clippy, commitlint, Cppcheck, golangci-lint, Hadolint, html-validate, Markdownlint-cli2, Vale, Oxlint, pylint, ShellCheck, Spectral et Yamllint pour le linting ; Black, Oxfmt, Prettier, shfmt et rustfmt pour le formatage ; Ruff, SQLFluff, Taplo, dotenv-linter, Stylelint et typos pour le linting et le formatage ; Astro, Mypy, svelte-check, TypeScript et vue-tsc pour la vérification de types ; et Bandit, Checkov, Gitleaks, cargo-audit, cargo-deny, OSV-Scanner, pip-audit, Semgrep et TruffleHog pour la sécurité. Les outils Python tels que ruff, black, mypy, bandit, import-linter, pydoclint, pylint et yamllint peuvent être regroupés via l'extra "full", ils ne nécessitent donc aucune installation séparée.
La configuration vise à éviter le travail de migration : les configurations natives existantes telles que .prettierrc, pyproject.toml [tool.ruff] ou .yamllint sont détectées et respectées, tandis que des paramètres partagés peuvent être appliqués de manière cohérente et des valeurs par défaut judicieuses utilisées lorsqu'aucune configuration native n'existe. La documentation décrit un système de configuration à cinq niveaux. Les outils Node.js suivent un ordre de résolution établi : d'abord node_modules/.bin du projet cible, puis un binaire sur le PATH, puis une récupération bunx/npx avec version épinglée.
Les options d'installation incluent uv pip ou pip install (léger ou avec l'extra full), un tap Homebrew, un package global bun/npm, et des images Docker depuis GHCR, avec des images distinctes "tools" et "base". Le dépôt documente également l'intégration CI/CD et pre-commit dans son dossier docs.
Les fonctionnalités d'IA sont optionnelles et désactivées par défaut, nécessitant une clé API fournie par l'utilisateur d'Anthropic Claude ou d'OpenAI GPT. Elles sont installées via l'extra ai et peuvent fournir un résumé de haut niveau avec analyse de motifs, des suggestions de correction interactives avec classification des risques, et un résumé post-correction. Le reste de la documentation couvre la prise en main, la configuration, l'utilisation de Docker, l'intégration GitHub, pre-commit, la contribution, le dépannage, ainsi que l'analyse avancée des outils, l'architecture et le matériel de sécurité.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.