Saltar para o conteúdoistheinternetok

O teu repo está bem?

Verifica se um repo do GitHub tem dependências vulneráveis

Cola um repo público do GitHub. Lemos cada lockfile no seu último commit, comparamos cada versão fixada com todas as falhas conhecidas e dizemos-te o que atualizar primeiro. Grátis, sem conta, nada para instalar.

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

O que lê

30 formatos de lockfile e 7 formatos de manifesto, em 14 ecossistemas. Cada pasta conta, monorepos e workspaces incluídos. Quando um projeto não tem lockfile, lemos as versões exatas que os seus manifestos fixam. Um lockfile que não sabemos verificar, como o do CocoaPods ou o do Conan, é indicado na página do repo, nunca ignorado em silêncio.

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

Com contorno tracejado: os manifestos, lidos só onde nenhum lockfile os cobre.

Quanto lê de facto

97 a 100%

das versões fixadas que o próprio grafo de dependências do GitHub lista, em npm, PyPI, Cargo, Go, Pub e Swift. Medido em 77 repos grandes.

Para já, menos em Packagist (95%), RubyGems (92%), NuGet (84%) e Maven (62%).

Como funciona

  1. Lê os lockfiles no último commit

    Cada lockfile de cada pasta, lido no GitHub no commit exato: cada pacote na versão que fixa, e se só ferramentas de programação o usam. O teu código-fonte nunca é lido.

  2. Compara cada versão com todas as falhas conhecidas

    Cada versão é procurada no OSV, que reúne as bases públicas de avisos de segurança (a do GitHub, a do PyPI, a RustSec, a do Go e outras), e na lista da CISA das falhas que os atacantes já usam.

  3. Diz-te o que atualizar primeiro

    O que toca os teus utilizadores vem primeiro, o mais grave no topo: o pacote a atualizar, muitas vezes a dependência direta que traz a falha, e a versão que a corrige. Testes, exemplos, documentação e ferramentas de programação ficam listados à parte e nunca contam.

  4. Diz o que uma falha pode fazer, não que o faz

    Não verifica se o teu código chama a parte vulnerável de um pacote. Uma falha na página é uma versão a atualizar, não a prova de que o projeto pode ser atacado.

  5. Sempre atualizado

    Um commit novo é lido na visita seguinte. Um aviso novo chega a cada repo que afeta poucos minutos depois de o OSV o publicar.

Um selo para o teu README

A página de cada repo dá-te um selo que mostra a sua resposta e muda com ela. Põe o teu repo no lugar de owner/repo:

[![owner/repo está bem?](https://istheinternetok.com/r/owner/repo/badge.svg)](https://istheinternetok.com/r/owner/repo/)

Para agentes e scripts

A mesma resposta em JSON, sem chave, em /v1/repos/owner/repo. Ou como ferramenta MCP, check_repo, em https://istheinternetok.com/mcp. Tudo o que um agente precisa de saber está em /skill.md.

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

Perguntas

Consegue verificar um repo privado?

Não. Só lê repos públicos do GitHub, tal como qualquer pessoa os vê. Nunca pede nada privado.

Guardam o meu código?

Não. Nunca lê o código-fonte, só os lockfiles e os manifestos. Guarda a lista de pacotes e versões que fixam, e a resposta, para voltar a verificar o repo quando sair uma falha nova.

Quanto custa?

Nada. Sem conta nem chave: a página, o selo, a API e a ferramenta MCP são grátis.

Qual é a diferença para o npm audit ou o Dependabot?

Faz o mesmo tipo de pesquisa a partir de um link, sem instalar nada, e em todos os ecossistemas ao mesmo tempo, não só npm. Os alertas do Dependabot só os administradores do repo os veem; esta página qualquer pessoa pode ler e partilhar. Também põe à parte o que só os testes e as ferramentas de programação usam.

Uma falha na página quer dizer que o meu projeto foi atacado?

Não. Quer dizer que uma versão fixada pelo projeto tem uma falha conhecida, e diz o que essa falha pode permitir. Não verifica se o teu código chega à parte vulnerável: atualiza primeiro e depois vê com mais atenção se precisares.