Skip to content

Add CloudVulnDB importer for issue #1511#2217

Open
Tednoob17 wants to merge 3 commits intoaboutcode-org:mainfrom
Tednoob17:feat/cloudvulndb-importer
Open

Add CloudVulnDB importer for issue #1511#2217
Tednoob17 wants to merge 3 commits intoaboutcode-org:mainfrom
Tednoob17:feat/cloudvulndb-importer

Conversation

@Tednoob17
Copy link

Add a new v2 importer for CloudVulnDB from the public RSS feed.
Changes

  • add CloudVulnDB importe pipline
  • register the importer
  • add dedicated tests and fixture
  • ignore setup.py during pytest collection in Docker

Testing

  • dedicated CloudVulnDB tests passs in Docker
  • importer registration verified
  • Docker test collection no longer fails on setup.py

- add CloudVulnDB v2 importer pipeline
- register importer
- add tests and fixtures
- ignore setup.py in pytest collection
Copilot AI review requested due to automatic review settings March 15, 2026 00:34
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new v2 importer pipeline to ingest CloudVulnDB advisories from the project’s public RSS feed, along with fixtures/tests and a pytest configuration tweak to avoid collecting setup.py in Docker.

Changes:

  • Introduce CloudVulnDBImporterPipeline and RSS parsing helpers to produce AdvisoryDataV2.
  • Register the new importer in the central importer registry.
  • Add unit tests + RSS/XML and expected JSON fixtures; update pytest addopts to ignore setup.py during collection.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
vulnerabilities/pipelines/v2_importers/cloudvulndb_importer.py New CloudVulnDB RSS-based v2 importer implementation.
vulnerabilities/importers/init.py Registers the new v2 importer in the importers registry.
vulnerabilities/tests/test_cloudvulndb_importer.py Adds unit tests for RSS parsing and advisory ID derivation.
vulnerabilities/tests/test_data/cloudvulndb/cloudvulndb_rss_mock.xml Adds mocked RSS fixture for deterministic tests.
vulnerabilities/tests/test_data/cloudvulndb/expected_cloudvulndb_advisory_output1.json Adds expected AdvisoryDataV2 JSON output fixture.
pyproject.toml Updates pytest collection options to ignore setup.py.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

def get_feed_items(self):
if self._cached_items is None:
response = fetch_response(CLOUDVULNDB_RSS_URL)
self._cached_items = parse_rss_feed(response.text)
Comment on lines +61 to +69
def parse_rss_feed(xml_text: str) -> list:
"""
Parse CloudVulnDB RSS XML and return a list of item dictionaries.
Each dictionary has ``title``, ``link``, ``description``, ``pub_date`` and ``guid`` keys.
"""
try:
root = ElementTree.fromstring(xml_text)
except ElementTree.ParseError as e:
logger.error("Failed to parse CloudVulnDB RSS XML: %s", e)
# image. Without this, pytest (which uses python_files = "*.py") tries to
# collect setup.py as a test module and crashes with exit code 2.
"--ignore=setup.py",
"--ignore-glob=*/setup.py",
Tednoob17 and others added 2 commits March 15, 2026 00:39
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants