$ show cpuu/awesome-fuzzing
This repository is primarily an 'awesome list' curating fuzzing (fuzz testing) resources - books, talks, papers, tools - organized by venue and type. The core content lives in a single README.md file. What distinguishes it from a simple list is a set of well-engineered Python scripts (ndss.py, sp.py, usenix.py) that automatically scrape conference accepted-paper pages (NDSS, IEEE S&P, USENIX Security) and match titles containing 'fuzz'. For IEEE S&P, the sp.py script goes further by verifying bibliographic metadata via the Crossref API before proposing entries, ensuring only validated DOIs are suggested. These scripts are triggered manually via GitHub Actions workflows, generating pull requests rather than writing directly. The code exhibits careful HTML parsing with validation, idempotent update logic, comprehensive error handling, and extensive unit tests. While the repository's primary output is a static list, the supporting automation demonstrates production-quality data collection and proposal pipelines that could be reused for maintaining other curated lists.
The LLM identified 2 files worth highlighting for reuse:
Scrapes NDSS accepted papers page, parses HTML to extract paper titles and links, filters for titles containing 'fuzz', fetches detail pages to confirm cycle and PDF URL, and proposes an update to the README by inserting a new year block or appending to an existing one. The propose function is idempotent (preserves existing entries, only adds verified new ones) and validates that existing entries still exist in the source before accepting the update. Demonstrates robust HTML parsing with a custom HTMLParser subclass, explicit validation of URL structure and content types, and a clear separation of scraping, validation, and proposal logic.
Scrapes IEEE S&P accepted papers page, parses HTML to extract paper titles, authors, and cycle information, then cross-references each candidate with the Crossref API to verify the DOI, author list, venue, and publication year before proposing an entry. Automatically rejects entries that fail bibliographic verification (ambiguity, mismatch) and flags titles where 'fuzz' only appears as part of 'fuzzy' for manual scope review. The propose function maintains descending year order when backfilling. Exemplifies how to build a reliable, integrity-preserving pipeline for automated list maintenance using authoritative external APIs.