Skip to content

feat: add detection for 15 new Dependabot package ecosystems#519

Draft
zkoppert wants to merge 4 commits intomainfrom
feat/expand-supported-ecosystems
Draft

feat: add detection for 15 new Dependabot package ecosystems#519
zkoppert wants to merge 4 commits intomainfrom
feat/expand-supported-ecosystems

Conversation

@zkoppert
Copy link
Collaborator

Summary

Adds file-based detection for 15 new Dependabot-supported package ecosystems, expanding coverage from 14 to 29 ecosystems.

New ecosystems

Ecosystem YAML value Manifest files
Bazel bazel MODULE.bazel, WORKSPACE, WORKSPACE.bazel
Bun bun bun.lock
Conda conda environment.yml, conda.yaml
Docker Compose docker-compose docker-compose.yml, compose.yaml
.NET SDK dotnet-sdk global.json
Elm elm elm.json
Git submodule gitsubmodule .gitmodules
Helm helm Chart.yaml
Julia julia Project.toml
pre-commit pre-commit .pre-commit-config.yaml
Pub (Dart) pub pubspec.yaml
Rust toolchain rust-toolchain rust-toolchain.toml
Swift swift Package.swift
uv uv uv.lock
vcpkg vcpkg vcpkg.json

Files changed

  • dependabot_file.py: Added new ecosystems to package_managers_found and package_managers dicts
  • env.py: Added all 15 ecosystems to SUPPORTED_PACKAGE_ECOSYSTEMS (now 29 total)
  • test_dependabot_file.py: Added parameterized subTest covering all 15 new ecosystems
  • README.md: Updated EXEMPT_ECOSYSTEMS docs to list all 29 supported ecosystems

Not included

OpenTofu is deferred - it shares .tf files with terraform, so detection overlap needs separate design consideration.

Closes #515

Testing

  • All 158 tests + 15 subtests pass
  • 99% code coverage (above 80% threshold)
  • make lint passes clean (pylint 10/10)

Add file-based detection for bazel, bun, conda, docker-compose,
dotnet-sdk, elm, gitsubmodule, helm, julia, pre-commit, pub,
rust-toolchain, swift, uv, and vcpkg ecosystems.

Changes:
- dependabot_file.py: add new ecosystems to package_managers_found
  and package_managers dicts with their manifest files
- env.py: add all 15 ecosystems to SUPPORTED_PACKAGE_ECOSYSTEMS
- test_dependabot_file.py: add parameterized subTest covering all
  15 new ecosystems
- README.md: update EXEMPT_ECOSYSTEMS docs to list all 29 ecosystems

OpenTofu is deferred due to .tf file overlap with terraform.

Closes #515

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@zkoppert zkoppert self-assigned this Mar 27, 2026
zkoppert and others added 3 commits March 26, 2026 21:08
- conda: replace conda.yaml with environment.yaml (per dependabot-core)
- docker-compose: add docker-compose.yaml and compose.yml variants
- rust-toolchain: add extensionless rust-toolchain file

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Pre-existing inconsistency where these ecosystems were detected but
not initialized in the package_managers_found dict. Works due to
Python dict behavior but inconsistent with all other ecosystems.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- pre-commit: add .pre-commit-config.yml, .pre-commit.yaml,
  .pre-commit.yml per dependabot-core CONFIG_FILE_PATTERN regex
- vcpkg: add vcpkg-configuration.json per dependabot-core file fetcher

Verified against dependabot-core source:
- pre_commit/lib/dependabot/pre_commit/file_fetcher.rb
- vcpkg/lib/dependabot/vcpkg/file_fetcher.rb

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: expand supported ecosystems to match Dependabot's full list

1 participant