From d47b1d686726afca0ca9c33fac26f5fa98fa5302 Mon Sep 17 00:00:00 2001 From: Gareth Jones <3151613+G-Rath@users.noreply.github.com> Date: Tue, 29 Jul 2025 17:03:35 +1200 Subject: [PATCH 1/3] feat: add support for the Drupal ecosystem --- osv/ecosystems/_ecosystems.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/osv/ecosystems/_ecosystems.py b/osv/ecosystems/_ecosystems.py index 0be08474db3..9bfed9dbe68 100644 --- a/osv/ecosystems/_ecosystems.py +++ b/osv/ecosystems/_ecosystems.py @@ -57,6 +57,7 @@ 'Maven': Maven(), 'MinimOS': MinimOS(), 'NuGet': NuGet(), + 'Drupal': Packagist(), 'Packagist': Packagist(), 'Pub': Pub(), 'PyPI': PyPI(), @@ -154,6 +155,9 @@ def get(name: str) -> Ecosystem: if name.startswith('SUSE'): return SUSE() + if name.startswith('Drupal'): + return Drupal() + return _ecosystems.get(normalize(name)) From 0e982f1f07a248b08dbde4b0a75532b61ecbfa4e Mon Sep 17 00:00:00 2001 From: Gareth Jones <3151613+G-Rath@users.noreply.github.com> Date: Tue, 29 Jul 2025 17:07:17 +1200 Subject: [PATCH 2/3] refactor: remove unneeded check --- osv/ecosystems/_ecosystems.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/osv/ecosystems/_ecosystems.py b/osv/ecosystems/_ecosystems.py index 9bfed9dbe68..71165b2384f 100644 --- a/osv/ecosystems/_ecosystems.py +++ b/osv/ecosystems/_ecosystems.py @@ -155,9 +155,6 @@ def get(name: str) -> Ecosystem: if name.startswith('SUSE'): return SUSE() - if name.startswith('Drupal'): - return Drupal() - return _ecosystems.get(normalize(name)) From 4eaebf897d134d4eb55906bd26a8a4fa485d45ad Mon Sep 17 00:00:00 2001 From: Gareth Jones <3151613+G-Rath@users.noreply.github.com> Date: Tue, 29 Jul 2025 17:11:00 +1200 Subject: [PATCH 3/3] feat: add drupal to PURL helper --- osv/purl_helpers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/osv/purl_helpers.py b/osv/purl_helpers.py index 392fed2f52f..8f34b8a1ea2 100644 --- a/osv/purl_helpers.py +++ b/osv/purl_helpers.py @@ -72,6 +72,8 @@ EcosystemPURL('generic', None), 'Packagist': EcosystemPURL('composer', None), + 'Drupal': + EcosystemPURL('drupal', None), # Photon OS 'Pub': EcosystemPURL('pub', None),