Aller au contenuistheinternetok

Ton dépôt va bien ?

Vérifie si un dépôt GitHub a des dépendances vulnérables

Colle un dépôt GitHub public. On lit chaque lockfile à son dernier commit, on vérifie chaque version épinglée contre toutes les failles connues, et on te dit quoi mettre à jour d'abord. Gratuit, sans compte, rien à installer.

Essaie :vercel/next.jsJavaScriptpallets/flaskPythonastral-sh/ruffRustkubernetes/kubernetesGorails/railsRubybitwarden/server.NETphoenixframework/phoenixElixirimmich-app/immichDart, TypeScript

Ce qu'on lit

30 formats de lockfile et 7 formats de manifeste, dans 14 écosystèmes. Chaque dossier compte, monorepos et workspaces compris. Quand un projet n'a pas de lockfile, on lit les versions exactes que ses manifestes épinglent. Un lockfile qu'on ne sait pas vérifier, comme celui de CocoaPods ou de Conan, est nommé sur la page du dépôt, jamais ignoré en silence.

JavaScript, TypeScriptnpm
package-lock.jsonnpm-shrinkwrap.jsonpnpm-lock.yamlyarn.lockbun.lockdeno.lockpackage.json
PythonPyPI
uv.lockpoetry.lockPipfile.lockpdm.lockpylock.tomlrequirements.txtrequirements.lockpixi.lockconda-lock.ymlpyproject.toml
Rustcrates.io
Cargo.lockCargo.toml
GoGo modules
go.mod
Java, KotlinMaven
gradle.lockfilemaven_install.jsonpom.xmllibs.versions.toml
.NETNuGet
packages.lock.jsonpackages.configpaket.lock.csproj.fsproj.vbprojDirectory.Packages.props
RubyRubyGems
Gemfile.lockgems.locked
PHPPackagist
composer.lock
Dart, FlutterPub
pubspec.lock
SwiftSwiftPM
Package.resolved
Elixir, ErlangHex
mix.lockrebar.lock
HaskellHackage
cabal.project.freeze
RCRAN
renv.lock
JuliaJulia
Manifest.toml

En pointillés : les manifestes, lus seulement là où aucun lockfile ne les couvre.

Ce qu'on lit vraiment

97 à 100 %

des versions épinglées que liste le graphe de dépendances de GitHub lui-même, en npm, PyPI, Cargo, Go, Pub et Swift. Mesuré sur 77 gros dépôts.

Moins pour l'instant en Packagist (95 %), RubyGems (92 %), NuGet (84 %) et Maven (62 %).

Comment ça marche

  1. On lit les lockfiles au dernier commit

    Chaque lockfile de chaque dossier, lu sur GitHub au commit exact : chaque paquet à la version qu'il épingle, et si seuls des outils de dev s'en servent. Ton code source n'est jamais lu.

  2. On vérifie chaque version contre toutes les failles connues

    Chaque version est cherchée dans OSV, qui rassemble les bases publiques d'avis de sécurité (celles de GitHub, de PyPI, RustSec, celle de Go et d'autres), et dans la liste de la CISA des failles que des attaquants exploitent déjà.

  3. On te dit quoi mettre à jour d'abord

    Ce qui touche tes utilisateurs passe en premier, le plus grave en haut : le paquet à mettre à jour, souvent la dépendance directe qui amène la faille, et la version qui la corrige. Tests, exemples, docs et outils de dev sont listés à part et ne comptent jamais.

  4. On dit ce qu'une faille peut faire, pas qu'elle le fait

    On ne vérifie pas si ton code appelle la partie vulnérable d'un paquet. Une faille sur la page, c'est une version à mettre à jour, pas la preuve que le projet est attaquable.

  5. Toujours à jour

    Un nouveau commit est lu à la visite suivante. Un nouvel avis atteint chaque dépôt qu'il touche quelques minutes après sa publication dans OSV.

Un badge pour ton README

La page de chaque dépôt te donne un badge qui affiche sa réponse et change avec elle. Mets ton dépôt à la place de owner/repo :

[![owner/repo va bien ?](https://istheinternetok.com/r/owner/repo/badge.svg)](https://istheinternetok.com/r/owner/repo/)

Pour les agents et les scripts

La même réponse en JSON, sans clé, sur /v1/repos/owner/repo. Ou en outil MCP, check_repo, sur https://istheinternetok.com/mcp. Tout ce qu'un agent doit savoir est dans /skill.md.

curl -s https://istheinternetok.com/v1/repos/vercel/next.js

Questions

Ça marche avec un dépôt privé ?

Non. On ne lit que les dépôts GitHub publics, tels que tout le monde les voit. Rien de privé n'est jamais demandé.

Vous gardez mon code ?

Non. On ne lit jamais le code source, seulement les lockfiles et les manifestes. On garde la liste des paquets et des versions qu'ils épinglent, et la réponse, pour revérifier le dépôt quand une nouvelle faille sort.

Combien ça coûte ?

Rien. Ni compte ni clé : la page, le badge, l'API et l'outil MCP sont gratuits.

Quelle différence avec npm audit ou Dependabot ?

Le même genre de recherche, à partir d'un lien, sans rien installer, et pour tous les écosystèmes à la fois, pas seulement npm. Les alertes de Dependabot ne sont visibles que par les admins du dépôt ; cette page, tout le monde peut la lire et la partager. Elle met aussi à part ce que seuls les tests et les outils de dev utilisent.

Une faille sur la page, ça veut dire que mon projet est piraté ?

Non. Ça veut dire qu'une version épinglée par le projet a une faille connue, et ce que cette faille peut permettre. On ne vérifie pas si ton code atteint la partie vulnérable : mets à jour d'abord, puis regarde de plus près si besoin.