Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
29995d5
Bump commons-io:commons-io from 2.10.0 to 2.14.0 in /tests
dependabot[bot] Nov 19, 2024
bbf1bf4
Bump requests from 2.12.1 to 2.32.2
dependabot[bot] Nov 19, 2024
a2b5958
Merge pull request #1 from cognitivegears/dependabot/maven/tests/comm…
cognitivegears Nov 19, 2024
3fe4f10
Merge pull request #2 from cognitivegears/dependabot/pip/requests-2.32.2
cognitivegears Nov 19, 2024
109788d
Fix multiline string formatting in main function
cognitivegears Nov 19, 2024
4a89de0
Handle 404 status code and improve error handling in recv_pkg_info fu…
cognitivegears Nov 19, 2024
ccff951
Add PyPI scanner and update requirements for requirements-parser
cognitivegears Nov 19, 2024
0f9b594
Refactor file path handling in Maven and NPM scanners to use os.path.…
cognitivegears Nov 19, 2024
1fdb1fc
Fix argument parsing and improve error handling in package functions
cognitivegears Nov 20, 2024
8ddbc6a
Refactor package manager handling and error codes; introduce constant…
cognitivegears Nov 20, 2024
a81e6c9
Add logging functionality and improve error handling across package r…
cognitivegears Nov 20, 2024
9a82db0
Add recursive scanning option for package managers and enhance error …
cognitivegears Nov 20, 2024
8d100be
Remove duplicate entries in dependency lists across Maven, NPM, and P…
cognitivegears Nov 20, 2024
bebd71f
Changed packages not exist to a warning
cognitivegears Nov 20, 2024
98aa05d
Add error handling for warnings and new exit code for package not found
cognitivegears Nov 20, 2024
3455502
Update project configuration and dependencies
cognitivegears Nov 20, 2024
05a0c23
Enhance package analysis with detailed docstrings and logging improve…
cognitivegears Nov 20, 2024
b277998
Add request timeout handling and constant for HTTP requests
cognitivegears Nov 20, 2024
11460d6
Moved argument parsing for Combobulator
cognitivegears Nov 20, 2024
f8a39b2
Remove currently unused GitHub token argument
cognitivegears Nov 20, 2024
60dc060
Update README to include 'pypi' as a supported package manager type a…
cognitivegears Nov 20, 2024
5a52358
Possible fix/workaround for old scan issue
cognitivegears Nov 22, 2024
6bdbfcb
Version count conditional backwards
cognitivegears Nov 22, 2024
5593b01
Added rate limiting, added additional npm info for heuristics, and ad…
cognitivegears Nov 22, 2024
2976da0
Remove unused imports from combobulator.py
cognitivegears Nov 22, 2024
ae5c7d7
Add JSON export functionality and update README with new argument
cognitivegears Nov 22, 2024
e12bfa2
Refactor heuristics scoring logic to use default thresholds from Defa…
cognitivegears Nov 22, 2024
e665ccb
Add risk assessment properties and update heuristics logic for packag…
cognitivegears Nov 22, 2024
68ec38d
Add risk assessment check and update export functions to include risk…
cognitivegears Nov 22, 2024
f9a2ea9
Update risk handling in combobulator.py to log identified risks and a…
cognitivegears Nov 22, 2024
65e6d1d
Add quiet mode option to suppress console output and adjust logging c…
cognitivegears Nov 22, 2024
d220fbd
Added CONTRIBUTERS.md file
cognitivegears Nov 24, 2024
676c0a5
Bump requests from 2.32.2 to 2.32.4
dependabot[bot] Jun 10, 2025
e61e19d
Bump org.apache.commons:commons-lang3 from 3.10 to 3.18.0 in /tests
dependabot[bot] Jul 12, 2025
6a8b963
Merge pull request #3 from cognitivegears/dependabot/pip/requests-2.32.4
cognitivegears Sep 3, 2025
37b7f70
Merge pull request #4 from cognitivegears/dependabot/maven/tests/org.…
cognitivegears Sep 3, 2025
ea0a833
Moved to uv
cognitivegears Sep 3, 2025
da2cf7c
Renamed to depgate
cognitivegears Sep 3, 2025
cf8709e
Updates for release
cognitivegears Sep 3, 2025
2d3c6a1
Updated README
cognitivegears Sep 4, 2025
19b3bc3
Bump actions/checkout from 4 to 5
dependabot[bot] Sep 4, 2025
f8e04b1
Update requests requirement from <2.32.5,>=2.32.4 to >=2.32.4,<2.32.6
dependabot[bot] Sep 4, 2025
904f163
Bump actions/download-artifact from 4 to 5
dependabot[bot] Sep 4, 2025
b6729ea
Merge pull request #5 from cognitivegears/dependabot/github_actions/a…
cognitivegears Sep 4, 2025
5e3ebaa
Merge pull request #6 from cognitivegears/dependabot/pip/requests-gte…
cognitivegears Sep 4, 2025
eb81f98
Merge pull request #7 from cognitivegears/dependabot/github_actions/a…
cognitivegears Sep 4, 2025
5a63e28
Small visual improvements
cognitivegears Sep 4, 2025
15e569a
Fixed some pylint warnings
cognitivegears Sep 7, 2025
1c6dd78
Added e2e tests
cognitivegears Sep 7, 2025
993168a
Added github action
cognitivegears Sep 7, 2025
70f259d
refactor(cli): extract helpers to reduce branches; keep lazy imports …
cognitivegears Sep 8, 2025
065f1d1
lint: add targeted pylint disables for data-holder classes; document …
cognitivegears Sep 8, 2025
bbac403
Changes for gitignore
cognitivegears Sep 8, 2025
38ff25d
Initial version of source code repository integration
cognitivegears Sep 8, 2025
346cb27
Modified to reduce duplicate code
cognitivegears Sep 8, 2025
f16666c
Extracted common code and moved
cognitivegears Sep 8, 2025
0b93293
Bump actions/setup-python from 5 to 6
dependabot[bot] Sep 8, 2025
e91dbe8
Bump actions/checkout from 4 to 5
dependabot[bot] Sep 8, 2025
be2b4a1
Added logging
cognitivegears Sep 9, 2025
9e56fc3
Added debug logging
cognitivegears Sep 9, 2025
73acbf2
Fixed lookup of npm repo information
cognitivegears Sep 9, 2025
bf9f95d
Matched version checking fixed
cognitivegears Sep 9, 2025
0d582af
Small change to wording
cognitivegears Sep 9, 2025
12e4657
Setting version information
cognitivegears Sep 9, 2025
95ae5c8
Fixed version lookup
cognitivegears Sep 9, 2025
6d27239
Fixed npm resolution for latest
cognitivegears Sep 9, 2025
abd8b82
Improved release and tag comparisons
cognitivegears Sep 10, 2025
3dffc03
Added tests for recent changes
cognitivegears Sep 10, 2025
ac013f3
General cleanup
cognitivegears Sep 10, 2025
4545380
Enhanced config file
cognitivegears Sep 10, 2025
c9d36a4
Added http rate limiting and retry support
cognitivegears Sep 10, 2025
7bec27f
updated example
cognitivegears Sep 10, 2025
ffadbf1
Initial version of policy based scans
cognitivegears Sep 10, 2025
6d6086e
Changed command line arguments
cognitivegears Sep 10, 2025
25a352d
Fixed pypi license checking
cognitivegears Sep 11, 2025
affbe69
Fixed npm license checking
cognitivegears Sep 11, 2025
02ffa8f
Fixed small bug with maven lookup
cognitivegears Sep 11, 2025
a5abc74
Added depsdev for further enrichment
cognitivegears Sep 11, 2025
5cd1532
Fixes scanning lock files
cognitivegears Sep 11, 2025
7f7735f
Added dev and test dep detection, transitive and direct
cognitivegears Sep 11, 2025
d49ca6f
Fixed regression in npm
cognitivegears Sep 11, 2025
851f8b4
Fixed bug with npm naming
cognitivegears Sep 12, 2025
0ac25b6
Refactoring
cognitivegears Sep 12, 2025
fd8eb39
Added new linked mode to validate package linkage
cognitivegears Sep 12, 2025
a916748
Updated to use scan semantics
cognitivegears Sep 12, 2025
4bdbe42
Updated version
cognitivegears Sep 12, 2025
c5a94fe
Added linked policy type
cognitivegears Sep 12, 2025
93a23b1
Added partial match support
cognitivegears Sep 16, 2025
1ba0c19
Merge pull request #8 from cognitivegears/dependabot/github_actions/a…
cognitivegears Sep 16, 2025
5815d8b
Merge pull request #9 from cognitivegears/dependabot/github_actions/a…
cognitivegears Sep 16, 2025
362e6b5
Initial version of MCP
cognitivegears Oct 18, 2025
878d5f1
Fixed pylint issues
cognitivegears Oct 18, 2025
41a188b
Bump actions/upload-artifact from 4 to 5
dependabot[bot] Oct 27, 2025
3c6742b
Bump actions/download-artifact from 5 to 6
dependabot[bot] Oct 27, 2025
f6813b3
Landed MCP support for Depgate
cognitivegears Nov 5, 2025
beeb516
Merge pull request #10 from cognitivegears/dependabot/github_actions/…
cognitivegears Nov 5, 2025
81b8f14
Merge pull request #11 from cognitivegears/dependabot/github_actions/…
cognitivegears Nov 5, 2025
675e2f9
Code review changes
cognitivegears Nov 5, 2025
9881774
Additional code improvements
cognitivegears Nov 5, 2025
ec9e64c
Additional code cleanup
cognitivegears Nov 5, 2025
7700f1e
Merge pull request #12 from cognitivegears/feature/mcp
cognitivegears Nov 5, 2025
007b190
Added fix for hanging
cognitivegears Nov 6, 2025
a082ed9
Changes to make warnings more obvious
cognitivegears Nov 6, 2025
b0c1d46
Additional code review changes
cognitivegears Nov 6, 2025
88f1f8f
Code review security changes
cognitivegears Nov 6, 2025
f73cb2a
Code review changes
cognitivegears Nov 6, 2025
dd92f25
Merge pull request #13 from cognitivegears/bugfix/mcp_hanging
cognitivegears Nov 6, 2025
21ec675
Bug fix for warnings
cognitivegears Nov 6, 2025
822f110
Merge pull request #14 from cognitivegears/bugfix/version_warning
cognitivegears Nov 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Renamed to depgate
  • Loading branch information
cognitivegears committed Sep 3, 2025
commit da2cf7ca5b0abdb9dbda1ccf4e49f393878bd9c2
9 changes: 6 additions & 3 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# Contributors

## Organizations
- [APIIRO](https://github.com/apiiro) - Project sponsor and maintainer
## Current Maintainers
- cognitivegears — DepGate hard fork maintainer

## Original Project
- [APIIRO](https://github.com/apiiro) — Original project sponsor and maintainer of Dependency Combobulator


## Individual Contributors
Expand All @@ -24,4 +27,4 @@ Contributions are welcome! The project is designed to be extensible for:
- Improving documentation and examples

## License
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
This project is licensed under the Apache License 2.0 see the [LICENSE](LICENSE) and [NOTICE](NOTICE) files for details and attribution.
17 changes: 17 additions & 0 deletions NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
DepGate
Copyright (c) 2025 cognitivegears

This product includes software originally developed by Apiiro and
contributors as "Dependency Combobulator" (https://github.com/apiiro/combobulator).

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Dependency Combobulator
# DepGate (hard fork of Dependency Combobulator)
![BHEU BADGE](docs/bheu21.svg) ![python](https://img.shields.io/badge/Python-14354C) ![maintained](https://img.shields.io/badge/Maintained%3F-yes-green.svg)

Dependency Combobulator is an Open-Source, modular and extensible framework to detect and prevent dependency confusion leakage and potential attacks. This facilitates a holistic approach for ensuring secure application releases that can be evaluated against different sources (e.g., GitHub Packages, JFrog Artifactory) and many package management schemes (e.g., npm, maven).
DepGate is an open-source, modular and extensible framework to detect and prevent dependency confusion and related supply‑chain risks. It supports multiple sources (e.g., GitHub Packages, JFrog Artifactory) and package managers (e.g., npm, maven, PyPI).

### Intended Audiences

Expand All @@ -21,7 +21,7 @@ The project is putting practicionar's ability to extend and fit the toolkit to h

## Installation

Dependency Combobulator is ready to work with as it is — just `git clone` or download the package from https://github.com/apiiro/combobulator
Clone this repository and install dependencies with uv:

Use uv to create a local environment and install dependencies:

Expand Down Expand Up @@ -52,7 +52,7 @@ uv sync
-q, --quiet Suppress console output
--error-on-warning Exit with error code if warnings are found

Apiiro <Heart> Community
Hard fork of Apiiro/combobulator by cognitivegears
```
Supported package types (-t, --t): npm, maven, pypi

Expand All @@ -61,7 +61,7 @@ Supported source dependency assessment:
- By analyzing the appropriate repo's software bill-of-materials (e.g. package.json, pom.xml) (-d, --directory)
- Naming a single identifier (-p, --package)

Analysis level is customizable as you can build your own preferred analysis profile in seconds. Dependency Combobulator does come with several analysis levels out-of-the-box, selected by -a, --analysis
Analysis level is customizable as you can build your own preferred analysis profile in seconds. DepGate ships with several analysis levels out-of-the-box, selected by -a, --analysis.

Supported output format:
- Screen stdout (default)
Expand All @@ -72,8 +72,8 @@ Supported output format:
https://user-images.githubusercontent.com/90651458/140915800-c267034b-90c9-42d1-b12a-83e12f70d44e.mp4


## Credits
## Credits & Attribution

The project is maintained and sponsored by Apiiro with 💜
DepGate is a hard fork of "Dependency Combobulator" originally developed by Apiiro and its contributors: https://github.com/apiiro/combobulator

We honor great developers & AppSec practitioners with a passion for change 🙏
This fork is maintained by cognitivegears. The original authors and contributors are credited in CONTRIBUTORS.md. The project continues under the Apache License 2.0, preserving the original license and attribution.
21 changes: 11 additions & 10 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ requires = ["setuptools>=61", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "combobulator-moshe-apiiro"
version = "0.1"
description = "Dependency Combobulator detects and prevents dependency confusion risks."
name = "depgate"
version = "0.1.0"
description = "DepGate detects and prevents dependency confusion and supply-chain risks. (Hard fork of Apiiro's Dependency Combobulator)"
readme = "README.md"
requires-python = ">=3.8"
license = { text = "MIT" }
license = { text = "Apache-2.0" }
authors = [
{ name = "Moshe Zioni", email = "[email protected]" }
{ name = "cognitivegears" }
]
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
]
dependencies = [
Expand All @@ -25,15 +25,16 @@ dependencies = [
]

[project.urls]
Homepage = "https://github.com/apiiro/combobulator"
"Bug Tracker" = "https://github.com/apiiro/combobulator/issues"
Homepage = "https://github.com/cognitivegears/depgate"
"Bug Tracker" = "https://github.com/cognitivegears/depgate/issues"
Upstream = "https://github.com/apiiro/combobulator"

[project.scripts]
combobulator = "combobulator:main"
depgate = "depgate:main"

[tool.setuptools]
package-dir = {"" = "src"}
py-modules = ["combobulator", "args", "constants", "metapackage"]
py-modules = ["depgate", "args", "constants", "metapackage"]

[tool.setuptools.packages.find]
where = ["src"]
Expand Down
10 changes: 5 additions & 5 deletions src/args.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
"""Argument parsing functionality for Combobulator."""
"""Argument parsing functionality for DepGate (hard fork)."""

import argparse
from constants import Constants

def parse_args():
"""Parses the arguments passed to the program."""
parser = argparse.ArgumentParser(
prog="combobulator.py",
description="Dependency Combobulator - Dependency Confusion Checker",
epilog='Apiiro <Heart> Community',
prog="depgate.py",
description="DepGate - Dependency supply-chain risk and confusion checker (hard fork of Apiiro's Dependency Combobulator)",
epilog='Hard fork of Apiiro/combobulator by cognitivegears',
add_help=True)

parser.add_argument("-t", "--type",
Expand Down Expand Up @@ -74,4 +74,4 @@ def parse_args():
help="Do not output to console.",
action="store_true")

return parser.parse_args()
return parser.parse_args()
20 changes: 0 additions & 20 deletions src/combobulator_moshe_apiiro.egg-info/SOURCES.txt

This file was deleted.

2 changes: 0 additions & 2 deletions src/combobulator_moshe_apiiro.egg-info/entry_points.txt

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
Metadata-Version: 2.4
Name: combobulator-moshe-apiiro
Version: 0.1
Summary: Dependency Combobulator detects and prevents dependency confusion risks.
Home-page: https://github.com/apiiro/combobulator
Author: Moshe Zioni
Author-email: Moshe Zioni <[email protected]>
License: MIT
Project-URL: Homepage, https://github.com/apiiro/combobulator
Project-URL: Bug Tracker, https://github.com/apiiro/combobulator/issues
Name: depgate
Version: 0.1.0
Summary: DepGate detects and prevents dependency confusion and supply-chain risks. (Hard fork of Apiiro's Dependency Combobulator)
Author: cognitivegears
License: Apache-2.0
Project-URL: Homepage, https://github.com/cognitivegears/depgate
Project-URL: Bug Tracker, https://github.com/cognitivegears/depgate/issues
Project-URL: Upstream, https://github.com/apiiro/combobulator
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: requests<2.32.5,>=2.32.4
Requires-Dist: gql>=3.5.0
Requires-Dist: python-dotenv>=0.19.2
Requires-Dist: requirements-parser>=0.11.0
Dynamic: license-file

# Dependency Combobulator
# DepGate (hard fork of Dependency Combobulator)
![BHEU BADGE](docs/bheu21.svg) ![python](https://img.shields.io/badge/Python-14354C) ![maintained](https://img.shields.io/badge/Maintained%3F-yes-green.svg)

Dependency Combobulator is an Open-Source, modular and extensible framework to detect and prevent dependency confusion leakage and potential attacks. This facilitates a holistic approach for ensuring secure application releases that can be evaluated against different sources (e.g., GitHub Packages, JFrog Artifactory) and many package management schemes (e.g., npm, maven).
DepGate is an open-source, modular and extensible framework to detect and prevent dependency confusion and related supply‑chain risks. It supports multiple sources (e.g., GitHub Packages, JFrog Artifactory) and package managers (e.g., npm, maven, PyPI).

### Intended Audiences

Expand All @@ -43,11 +43,15 @@ The project is putting practicionar's ability to extend and fit the toolkit to h

## Installation

Dependency Combobulator is ready to work with as it is - just `git clone` or download the package from https://github.com/apiiro/combobulator
Clone this repository and install dependencies with uv:

Make sure to install required dependencies by running:
Use uv to create a local environment and install dependencies:

`pip install -r requirements.txt`
```
uv venv
source .venv/bin/activate
uv sync
```

## Arguments (--help)
```
Expand All @@ -70,7 +74,7 @@ Make sure to install required dependencies by running:
-q, --quiet Suppress console output
--error-on-warning Exit with error code if warnings are found

Apiiro <Heart> Community
Hard fork of Apiiro/combobulator by cognitivegears
```
Supported package types (-t, --t): npm, maven, pypi

Expand All @@ -79,7 +83,7 @@ Supported source dependency assessment:
- By analyzing the appropriate repo's software bill-of-materials (e.g. package.json, pom.xml) (-d, --directory)
- Naming a single identifier (-p, --package)

Analysis level is customizable as you can build your own preferred analysis profile in seconds. Dependency Combobulator does come with several analysis levels out-of-the-box, selected by -a, --analysis
Analysis level is customizable as you can build your own preferred analysis profile in seconds. DepGate ships with several analysis levels out-of-the-box, selected by -a, --analysis.

Supported output format:
- Screen stdout (default)
Expand All @@ -90,8 +94,8 @@ Supported output format:
https://user-images.githubusercontent.com/90651458/140915800-c267034b-90c9-42d1-b12a-83e12f70d44e.mp4


## Credits
## Credits & Attribution

The project is maintained and sponsored by Apiiro with 💜
DepGate is a hard fork of "Dependency Combobulator" originally developed by Apiiro and its contributors: https://github.com/apiiro/combobulator

We honor great developers & AppSec practitioners with a passion for change 🙏
This fork is maintained by cognitivegears. The original authors and contributors are credited in CONTRIBUTORS.md. The project continues under the Apache License 2.0, preserving the original license and attribution.
20 changes: 20 additions & 0 deletions src/depgate.egg-info/SOURCES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
LICENSE
NOTICE
README.md
pyproject.toml
src/args.py
src/constants.py
src/depgate.py
src/metapackage.py
src/analysis/__init__.py
src/analysis/heuristics.py
src/depgate.egg-info/PKG-INFO
src/depgate.egg-info/SOURCES.txt
src/depgate.egg-info/dependency_links.txt
src/depgate.egg-info/entry_points.txt
src/depgate.egg-info/requires.txt
src/depgate.egg-info/top_level.txt
src/registry/__init__.py
src/registry/maven.py
src/registry/npm.py
src/registry/pypi.py
2 changes: 2 additions & 0 deletions src/depgate.egg-info/entry_points.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[console_scripts]
depgate = depgate:main
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
analysis
args
combobulator
constants
depgate
metapackage
registry
Loading