entrygraph 0.1.25__tar.gz → 0.1.26__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {entrygraph-0.1.25 → entrygraph-0.1.26}/PKG-INFO +4 -2
- {entrygraph-0.1.25 → entrygraph-0.1.26}/README.md +3 -1
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/_version.py +2 -2
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/cli/main.py +8 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_cli.py +24 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/.github/workflows/ci.yml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/.github/workflows/release.yml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/.gitignore +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/LICENSE +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/RELEASING.md +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/pyproject.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/__init__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/__main__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/api.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/cli/__init__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/cli/render.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/data/sinks/csharp.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/data/sinks/go.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/data/sinks/java.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/data/sinks/javascript.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/data/sinks/lib_javascript.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/data/sinks/lib_python.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/data/sinks/php.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/data/sinks/python.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/data/sinks/ruby.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/data/sinks/rust.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/db/__init__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/db/engine.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/db/meta.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/db/models.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/db/queries.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/__init__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/entrypoints/__init__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/entrypoints/base.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/entrypoints/configs.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/entrypoints/csharp.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/entrypoints/golang.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/entrypoints/java.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/entrypoints/javascript.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/entrypoints/php.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/entrypoints/python.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/entrypoints/ruby.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/entrypoints/rust.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/frameworks.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/manifests.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/detect/taint.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/errors.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/extract/__init__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/extract/base.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/extract/csharp.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/extract/golang.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/extract/ir.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/extract/java.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/extract/javascript.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/extract/php.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/extract/python.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/extract/registry.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/extract/ruby.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/extract/rust.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/fs/__init__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/fs/hashing.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/fs/lang.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/fs/walker.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/graph/__init__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/graph/adjacency.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/graph/cte.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/graph/scoring.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/kinds.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/parsing/__init__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/parsing/parsers.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/parsing/queries.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/pipeline/__init__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/pipeline/scanner.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/pipeline/worker.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/pipeline/writer.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/py.typed +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/csharp/calls.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/csharp/definitions.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/csharp/imports.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/go/calls.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/go/definitions.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/go/imports.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/java/calls.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/java/definitions.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/java/imports.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/javascript/calls.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/javascript/definitions.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/javascript/imports.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/php/calls.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/php/definitions.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/php/imports.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/python/calls.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/python/definitions.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/python/imports.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/ruby/calls.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/ruby/definitions.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/ruby/imports.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/rust/calls.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/rust/definitions.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/queries/rust/imports.scm +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/resolve/__init__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/resolve/externals.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/resolve/hierarchy.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/resolve/resolver.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/resolve/symbol_table.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/src/entrygraph/results.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/conftest.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/csharp/aspnet_app/Controllers/ReportsController.cs +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/csharp/aspnet_app/Program.cs +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/csharp/aspnet_app/Services/ReportService.cs +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/csharp/aspnet_app/app.csproj +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/csharp/minimalapi_app/Program.cs +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/csharp/minimalapi_app/app.csproj +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/go/gin_app/go.mod +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/go/gin_app/main.go +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/go/gin_app/service.go +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/go/nethttp_app/go.mod +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/go/nethttp_app/main.go +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/java/methodref_app/pom.xml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/java/methodref_app/src/main/java/com/example/App.java +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/java/spring_app/pom.xml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/java/spring_app/src/main/java/com/example/Application.java +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/java/spring_app/src/main/java/com/example/ReportRunner.java +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/java/spring_app/src/main/java/com/example/ReportService.java +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/java/spring_app/src/main/java/com/example/UserController.java +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/javascript/commonjs_app/server.js +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/javascript/express_app/package.json +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/javascript/express_app/src/routes.js +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/javascript/express_app/src/services.js +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/php/laravel_app/app/Http/Controllers/ReportController.php +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/php/laravel_app/artisan +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/php/laravel_app/composer.json +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/php/laravel_app/routes/web.php +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/chained_sinks/app.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/flask_app/app/__init__.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/flask_app/app/db.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/flask_app/app/routes.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/flask_app/app/services.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/flask_app/cli.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/flask_app/requirements.txt +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/fuzzy_sink/app.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/heal_fidelity/caller.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/heal_fidelity/worker.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/may_continue/app.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/sanitizer/app.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/python/taint_source/handler.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/ruby/sinatra_app/Gemfile +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/ruby/sinatra_app/app.rb +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/ruby/sinatra_app/services/runner.rb +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/rust/axum_app/Cargo.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/rust/axum_app/src/handlers.rs +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/rust/axum_app/src/main.rs +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/rust/axum_callback_app/Cargo.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/rust/axum_callback_app/src/main.rs +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/rust/scoped_sink_app/Cargo.toml +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/rust/scoped_sink_app/src/main.rs +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_api.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_commonjs.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_csharp_callbacks.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_cte_bounds.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_engine_pragmas.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_entrypoint_expansion.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_entrypoints.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_extract_csharp.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_extract_go.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_extract_java.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_extract_javascript.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_extract_php.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_extract_python.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_extract_ruby.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_extract_rust.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_frameworks.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_fuzzy_sink.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_go_callbacks.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_hardening.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_heal_fidelity.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_incremental.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_indexer.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_java_callbacks.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_lang.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_manifests.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_may_continue.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_models.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_pool.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_reachability.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_registry_cache.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_render.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_resolver.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_rust_callbacks.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_rust_scoped_sinks.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_scoring.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_sink_catalog.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_taint.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_taint_sanitizers.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_taint_sources.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/tests/test_walker.py +0 -0
- {entrygraph-0.1.25 → entrygraph-0.1.26}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: entrygraph
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.26
|
|
4
4
|
Summary: Language-agnostic code graph: query symbols, entrypoints, and source-to-sink call paths from a SQLite index
|
|
5
5
|
Project-URL: Repository, https://github.com/brettbergin/entrygraph
|
|
6
6
|
Author-email: Brett Bergin <brettberginbc@yahoo.com>
|
|
@@ -202,7 +202,9 @@ entrygraph paths --source '*' --sink-category command_exec
|
|
|
202
202
|
`--source-category http_input` / `env`) — `entrygraph paths --source-category http_input --sink-category sql`. Combine with `--source` to union both.
|
|
203
203
|
- **Precision/recall dial**: by default only high-confidence edges are traversed.
|
|
204
204
|
Widen with `--include-unresolved` (wildcard `py:*.execute` sinks + dynamic
|
|
205
|
-
calls)
|
|
205
|
+
calls), `--include-fuzzy` (speculative class-hierarchy edges), or
|
|
206
|
+
`--include-callbacks` (function/method values passed as arguments — handler
|
|
207
|
+
registrations like `http.HandleFunc("/", handler)` or `this::handle`).
|
|
206
208
|
- **Sanitizers**: a registered sanitizer for the sink's category called on a
|
|
207
209
|
path (e.g. `shlex.quote`) *discounts* its risk score — heuristically, since
|
|
208
210
|
there is no dataflow, so it never zeroes the risk or hides the path.
|
|
@@ -151,7 +151,9 @@ entrygraph paths --source '*' --sink-category command_exec
|
|
|
151
151
|
`--source-category http_input` / `env`) — `entrygraph paths --source-category http_input --sink-category sql`. Combine with `--source` to union both.
|
|
152
152
|
- **Precision/recall dial**: by default only high-confidence edges are traversed.
|
|
153
153
|
Widen with `--include-unresolved` (wildcard `py:*.execute` sinks + dynamic
|
|
154
|
-
calls)
|
|
154
|
+
calls), `--include-fuzzy` (speculative class-hierarchy edges), or
|
|
155
|
+
`--include-callbacks` (function/method values passed as arguments — handler
|
|
156
|
+
registrations like `http.HandleFunc("/", handler)` or `this::handle`).
|
|
155
157
|
- **Sanitizers**: a registered sanitizer for the sink's category called on a
|
|
156
158
|
path (e.g. `shlex.quote`) *discounts* its risk score — heuristically, since
|
|
157
159
|
there is no dataflow, so it never zeroes the risk or hides the path.
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.1.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 1,
|
|
21
|
+
__version__ = version = '0.1.26'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 1, 26)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -274,6 +274,7 @@ def cmd_paths(args) -> int:
|
|
|
274
274
|
min_confidence=args.min_confidence,
|
|
275
275
|
include_fuzzy=args.include_fuzzy,
|
|
276
276
|
include_unresolved=args.include_unresolved,
|
|
277
|
+
include_callbacks=args.include_callbacks,
|
|
277
278
|
prune_sanitized=args.prune_sanitized,
|
|
278
279
|
)
|
|
279
280
|
if args.json:
|
|
@@ -411,6 +412,13 @@ def build_parser() -> argparse.ArgumentParser:
|
|
|
411
412
|
action="store_true",
|
|
412
413
|
help="also traverse unresolved wildcard-sink and dynamic-call edges",
|
|
413
414
|
)
|
|
415
|
+
p.add_argument(
|
|
416
|
+
"--include-callbacks",
|
|
417
|
+
dest="include_callbacks",
|
|
418
|
+
action="store_true",
|
|
419
|
+
help="also follow function/method values passed as arguments "
|
|
420
|
+
"(handler registrations, callbacks)",
|
|
421
|
+
)
|
|
414
422
|
p.add_argument(
|
|
415
423
|
"--prune-sanitized",
|
|
416
424
|
dest="prune_sanitized",
|
|
@@ -80,6 +80,30 @@ def test_paths_by_category(db, capsys):
|
|
|
80
80
|
assert paths and paths[0]["symbols"][-1] == "py:subprocess.run"
|
|
81
81
|
|
|
82
82
|
|
|
83
|
+
NETHTTP_APP = Path(__file__).parent / "fixtures" / "go" / "nethttp_app"
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def test_paths_include_callbacks(tmp_path, capsys):
|
|
87
|
+
# a handler passed to http.HandleFunc is severed unless callback edges are
|
|
88
|
+
# traversed; --include-callbacks flips the query from unreachable to reachable.
|
|
89
|
+
db = str(tmp_path / "go.db")
|
|
90
|
+
assert main(["index", str(NETHTTP_APP), "--db", db]) == 0
|
|
91
|
+
args = [
|
|
92
|
+
"paths",
|
|
93
|
+
"--db",
|
|
94
|
+
db,
|
|
95
|
+
"--source",
|
|
96
|
+
"_root.main",
|
|
97
|
+
"--sink-category",
|
|
98
|
+
"command_exec",
|
|
99
|
+
"--include-unresolved",
|
|
100
|
+
]
|
|
101
|
+
assert main(args) == 1 # handler severed -> no path
|
|
102
|
+
capsys.readouterr()
|
|
103
|
+
assert main([*args, "--include-callbacks"]) == 0 # reachable via the callback edge
|
|
104
|
+
assert "_root.handler" in capsys.readouterr().out
|
|
105
|
+
|
|
106
|
+
|
|
83
107
|
def test_callers(db, capsys):
|
|
84
108
|
assert main(["callers", "--db", db, "app.services.run_report"]) == 0
|
|
85
109
|
assert "app.routes.create_report" in capsys.readouterr().out
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/csharp/aspnet_app/Services/ReportService.cs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{entrygraph-0.1.25 → entrygraph-0.1.26}/tests/fixtures/javascript/express_app/src/services.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|