gitextract_5cor20ar/ ├── .dockerignore ├── .github/ │ ├── actions/ │ │ └── complain/ │ │ └── action.yml │ └── workflows/ │ ├── chai-api.ci.yml │ ├── ci.yml │ └── deploy.yml ├── .gitignore ├── .python-version ├── LICENSE ├── README.md ├── alembic/ │ ├── .pkgx.yaml │ ├── Dockerfile │ ├── README.md │ ├── alembic.ini │ ├── env.py │ ├── init-script.sql │ ├── load-values.sql │ ├── run_migrations.sh │ ├── script.py.mako │ └── versions/ │ ├── 20241028_1217-base_migration.py │ ├── 20250312_0045-add_legacy_dependency_table.py │ ├── 20250312_2244-canons.py │ ├── 20250416_0223-add_ranks.py │ ├── 20250422_0940-add_unique_package_to_canon_packages.py │ ├── 20250508_1752-add_trgm_indexes.py │ ├── 20250529_2341-rename_canons_table_and_recreate.py │ └── 20250529_2345-recreate_canon_foreign_keys.py ├── api/ │ ├── .dockerignore │ ├── .gitignore │ ├── Cargo.toml │ ├── Dockerfile │ ├── README.md │ └── src/ │ ├── app_state.rs │ ├── db.rs │ ├── handlers.rs │ ├── logging.rs │ ├── main.rs │ └── utils.rs ├── core/ │ ├── README.md │ ├── config.py │ ├── db.py │ ├── fetcher.py │ ├── logger.py │ ├── models/ │ │ └── __init__.py │ ├── requirements.txt │ ├── scheduler.py │ ├── structs.py │ ├── test.json │ ├── transformer.py │ └── utils.py ├── db/ │ ├── README.md │ └── queries.md ├── docker-compose.yml ├── examples/ │ ├── sbom-meta/ │ │ ├── README.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ └── visualizer/ │ ├── README.md │ ├── main.py │ └── monitor.py ├── package_managers/ │ ├── crates/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── db.py │ │ ├── diff.py │ │ ├── main.py │ │ ├── structs.py │ │ └── transformer.py │ ├── debian/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── db.py │ │ ├── debian_sources.py │ │ ├── diff.py │ │ ├── main.py │ │ ├── parser.py │ │ ├── scripts/ │ │ │ ├── investigate_sources.py │ │ │ └── test_investigate_sources.py │ │ └── structs.py │ ├── homebrew/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── db.py │ │ ├── diff.py │ │ ├── formulae.py │ │ ├── main.py │ │ └── structs.py │ └── pkgx/ │ ├── Dockerfile │ ├── db.py │ ├── diff.py │ ├── loader.py │ ├── main.py │ ├── parser.py │ └── url.py ├── pkgx.yaml ├── pyproject.toml ├── ranker/ │ ├── .dockerignore │ ├── .gitignore │ ├── Dockerfile │ ├── README.md │ ├── config.py │ ├── db.py │ ├── dedupe.py │ ├── main.py │ ├── naming.py │ ├── requirements.txt │ ├── rx_graph.py │ └── utils/ │ ├── analyze_ranks.py │ └── parse_log.py ├── scripts/ │ ├── chai-legacy-loader/ │ │ ├── README.md │ │ ├── add_package_fields.py │ │ ├── batch_insert_package_urls.py │ │ ├── batch_insert_urls.py │ │ ├── copy_dependencies_no_thread.py │ │ ├── pkgx.yaml │ │ └── sql/ │ │ ├── dependencies.sql │ │ ├── packages.sql │ │ └── urls.sql │ ├── npm-singleton/ │ │ ├── README.md │ │ ├── pkgx.yaml │ │ └── single.py │ ├── package_to_package/ │ │ └── package_dependencies.py │ └── upgrade_canons/ │ ├── .gitignore │ ├── README.md │ ├── create_deleted_canons.py │ ├── db.py │ ├── delete_non_canonical_urls.py │ ├── main.py │ ├── registered_projects.py │ └── structs.py └── tests/ ├── README.md ├── conftest.py ├── package_managers/ │ ├── crates/ │ │ ├── conftest.py │ │ └── test_crates_diff_deps.py │ ├── debian/ │ │ ├── conftest.py │ │ ├── test_debian_diff.py │ │ ├── test_debian_parser.py │ │ └── test_debian_sources.py │ ├── homebrew/ │ │ ├── conftest.py │ │ └── test_homebrew_diff_deps.py │ └── pkgx/ │ ├── test_pkgx_diff.py │ └── test_special_case.py ├── ranker/ │ ├── test_compute_canon_name.py │ ├── test_dedupe.py │ └── test_rx_graph.py └── scripts/ └── upgrade_canons/ └── test_analyze_packages_needing_canonicalization.py