depgate


Namedepgate JSON
Version 0.1.2 PyPI version JSON
download
home_pageNone
SummaryDepGate detects and prevents dependency confusion and supply-chain risks. (Hard fork of Apiiro's Dependency Combobulator)
upload_time2025-09-04 13:52:11
maintainerNone
docs_urlNone
authorcognitivegears
requires_python>=3.8
licenseApache-2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DepGate — Dependency Supply‑Chain Risk & Confusion Checker

DepGate is a modular CLI that detects dependency confusion and related supply‑chain risks across npm, Maven, and PyPI projects. It analyzes dependencies from manifests, checks public registries, and flags potential risks with a simple, scriptable interface.

DepGate is a fork of Apiiro’s “Dependency Combobulator”, maintained going forward by cognitivegears. See Credits & Attribution below.

## Features

- Pluggable analysis: compare vs. heuristics levels (`compare/comp`, `heuristics/heur`).
- Multiple ecosystems: npm (`package.json`), Maven (`pom.xml`), PyPI (`requirements.txt`).
- Flexible inputs: single package, manifest scan, or list from file.
- Structured outputs: human‑readable logs plus CSV/JSON exports for CI.
- Designed for automation: predictable exit codes and quiet/log options.

## Requirements

- Python 3.8+
- Network access for registry lookups when running analysis

## Install

Using uv (development):

- `uv venv && source .venv/bin/activate`
- `uv sync`

From PyPI (after publishing):

- pip: `pip install depgate`
- pipx: `pipx install depgate`
- uvx: `uvx depgate --help`

## Quick Start

- Single package (npm): `depgate -t npm -p left-pad`
- Scan a repo (Maven): `depgate -t maven -d ./tests`
- Heuristics + JSON: `depgate -t pypi -a heur -j out.json`

With uv during development:

- `uv run depgate -t npm -d ./tests`
- `uv run depgate -t pypi -a heur -j out.json`

## Inputs and Scanning

- `-p, --package <name>`: single package name
  - npm: package name (e.g., `left-pad`)
  - PyPI: project name (e.g., `requests`)
  - Maven: not used (see below)
- `-d, --directory <path>`: scan local source
  - npm: finds `package.json` (and `devDependencies`)
  - Maven: finds `pom.xml`, emits `groupId:artifactId`
  - PyPI: finds `requirements.txt`
- `-l, --load_list <file>`: newline‑delimited identifiers
  - npm/PyPI: package names per line
  - Maven: `groupId:artifactId` per line

## Analysis Levels

- `compare` or `comp`: presence/metadata checks against public registries
- `heuristics` or `heur`: adds scoring, version count, age signals

## Output

- Default: logs to stdout (respecting `--loglevel` and `--quiet`)
- CSV: `-c, --csv <path>`
  - Columns: `Package Name, Package Type, Exists on External, Org/Group ID, Score, Version Count, Timestamp, Risk: Missing, Risk: Low Score, Risk: Min Versions, Risk: Too New, Risk: Any Risks`
- JSON: `-j, --json <path)`
  - Array of objects with keys: `packageName, orgId, packageType, exists, score, versionCount, createdTimestamp, risk.{hasRisk,isMissing,hasLowScore,minVersions,isNew}`

## CLI Options (summary)

- `-t, --type {npm,pypi,maven}`: package manager
- `-p/‑d/‑l`: input source (mutually exclusive)
- `-a, --analysis {compare,comp,heuristics,heur}`: analysis level
- `-c/‑j`: CSV/JSON export paths
- Logging: `--loglevel {DEBUG,INFO,WARNING,ERROR,CRITICAL}`, `--logfile <path>`, `-q, --quiet`
- Scanning: `-r, --recursive` (for `--directory` scans)
- CI: `--error-on-warnings` (non‑zero exit if risks detected)

## Exit Codes

- `0`: success (no risks or informational only)
- `1`: file/IO error
- `2`: connection error
- `3`: risks found and `--error-on-warnings` set

## Contributing

- See `AGENTS.md` for repo layout, dev commands, and linting.
- Lint: `uv run pylint src`

## Credits & Attribution

- DepGate is a fork of “Dependency Combobulator” originally developed by Apiiro and its contributors: https://github.com/apiiro/combobulator - see `CONTRIBUTORS.md`.
- Licensed under the Apache License 2.0. See `LICENSE` and `NOTICE`.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "depgate",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "cognitivegears",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/b2/bb/294a6f67455b2baa01695292248eeb773ae4856ca189ada81688b22785f6/depgate-0.1.2.tar.gz",
    "platform": null,
    "description": "# DepGate \u2014 Dependency Supply\u2011Chain Risk & Confusion Checker\n\nDepGate is a modular CLI that detects dependency confusion and related supply\u2011chain risks across npm, Maven, and PyPI projects. It analyzes dependencies from manifests, checks public registries, and flags potential risks with a simple, scriptable interface.\n\nDepGate is a fork of Apiiro\u2019s \u201cDependency Combobulator\u201d, maintained going forward by cognitivegears. See Credits & Attribution below.\n\n## Features\n\n- Pluggable analysis: compare vs. heuristics levels (`compare/comp`, `heuristics/heur`).\n- Multiple ecosystems: npm (`package.json`), Maven (`pom.xml`), PyPI (`requirements.txt`).\n- Flexible inputs: single package, manifest scan, or list from file.\n- Structured outputs: human\u2011readable logs plus CSV/JSON exports for CI.\n- Designed for automation: predictable exit codes and quiet/log options.\n\n## Requirements\n\n- Python 3.8+\n- Network access for registry lookups when running analysis\n\n## Install\n\nUsing uv (development):\n\n- `uv venv && source .venv/bin/activate`\n- `uv sync`\n\nFrom PyPI (after publishing):\n\n- pip: `pip install depgate`\n- pipx: `pipx install depgate`\n- uvx: `uvx depgate --help`\n\n## Quick Start\n\n- Single package (npm): `depgate -t npm -p left-pad`\n- Scan a repo (Maven): `depgate -t maven -d ./tests`\n- Heuristics + JSON: `depgate -t pypi -a heur -j out.json`\n\nWith uv during development:\n\n- `uv run depgate -t npm -d ./tests`\n- `uv run depgate -t pypi -a heur -j out.json`\n\n## Inputs and Scanning\n\n- `-p, --package <name>`: single package name\n  - npm: package name (e.g., `left-pad`)\n  - PyPI: project name (e.g., `requests`)\n  - Maven: not used (see below)\n- `-d, --directory <path>`: scan local source\n  - npm: finds `package.json` (and `devDependencies`)\n  - Maven: finds `pom.xml`, emits `groupId:artifactId`\n  - PyPI: finds `requirements.txt`\n- `-l, --load_list <file>`: newline\u2011delimited identifiers\n  - npm/PyPI: package names per line\n  - Maven: `groupId:artifactId` per line\n\n## Analysis Levels\n\n- `compare` or `comp`: presence/metadata checks against public registries\n- `heuristics` or `heur`: adds scoring, version count, age signals\n\n## Output\n\n- Default: logs to stdout (respecting `--loglevel` and `--quiet`)\n- CSV: `-c, --csv <path>`\n  - Columns: `Package Name, Package Type, Exists on External, Org/Group ID, Score, Version Count, Timestamp, Risk: Missing, Risk: Low Score, Risk: Min Versions, Risk: Too New, Risk: Any Risks`\n- JSON: `-j, --json <path)`\n  - Array of objects with keys: `packageName, orgId, packageType, exists, score, versionCount, createdTimestamp, risk.{hasRisk,isMissing,hasLowScore,minVersions,isNew}`\n\n## CLI Options (summary)\n\n- `-t, --type {npm,pypi,maven}`: package manager\n- `-p/\u2011d/\u2011l`: input source (mutually exclusive)\n- `-a, --analysis {compare,comp,heuristics,heur}`: analysis level\n- `-c/\u2011j`: CSV/JSON export paths\n- Logging: `--loglevel {DEBUG,INFO,WARNING,ERROR,CRITICAL}`, `--logfile <path>`, `-q, --quiet`\n- Scanning: `-r, --recursive` (for `--directory` scans)\n- CI: `--error-on-warnings` (non\u2011zero exit if risks detected)\n\n## Exit Codes\n\n- `0`: success (no risks or informational only)\n- `1`: file/IO error\n- `2`: connection error\n- `3`: risks found and `--error-on-warnings` set\n\n## Contributing\n\n- See `AGENTS.md` for repo layout, dev commands, and linting.\n- Lint: `uv run pylint src`\n\n## Credits & Attribution\n\n- DepGate is a fork of \u201cDependency Combobulator\u201d originally developed by Apiiro and its contributors: https://github.com/apiiro/combobulator - see `CONTRIBUTORS.md`.\n- Licensed under the Apache License 2.0. See `LICENSE` and `NOTICE`.\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "DepGate detects and prevents dependency confusion and supply-chain risks. (Hard fork of Apiiro's Dependency Combobulator)",
    "version": "0.1.2",
    "project_urls": {
        "Bug Tracker": "https://github.com/cognitivegears/depgate/issues",
        "Homepage": "https://github.com/cognitivegears/depgate",
        "Upstream": "https://github.com/apiiro/combobulator"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "371a5a5f71c03eb6afc5b389f2f8c744bffb57ae0d12807367f5b8c5f575ff65",
                "md5": "10ff152eb6d537c49fa8a47d90f51ec2",
                "sha256": "4567588060f663d0fdaf16e6d8e8d7fe1073ade55060aec3b823f5dc7e0980ee"
            },
            "downloads": -1,
            "filename": "depgate-0.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "10ff152eb6d537c49fa8a47d90f51ec2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 21138,
            "upload_time": "2025-09-04T13:52:09",
            "upload_time_iso_8601": "2025-09-04T13:52:09.993827Z",
            "url": "https://files.pythonhosted.org/packages/37/1a/5a5f71c03eb6afc5b389f2f8c744bffb57ae0d12807367f5b8c5f575ff65/depgate-0.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b2bb294a6f67455b2baa01695292248eeb773ae4856ca189ada81688b22785f6",
                "md5": "db165808c75866bdd7ee64e817ffbbba",
                "sha256": "abdf92efedf02dea9ce0c4fd09eb894903e754f708012a76fa7e055de52dc11a"
            },
            "downloads": -1,
            "filename": "depgate-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "db165808c75866bdd7ee64e817ffbbba",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 16891,
            "upload_time": "2025-09-04T13:52:11",
            "upload_time_iso_8601": "2025-09-04T13:52:11.444912Z",
            "url": "https://files.pythonhosted.org/packages/b2/bb/294a6f67455b2baa01695292248eeb773ae4856ca189ada81688b22785f6/depgate-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-04 13:52:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cognitivegears",
    "github_project": "depgate",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "depgate"
}
        
Elapsed time: 1.72935s