This file contains guidance for AI coding assistants working on this project.
A collection of Java clients to access various vulnerability data sources available on the internet, including:
- NVD (National Vulnerability Database)
- GitHub Security Advisory Database
- EPSS (Exploit Prediction Scoring System)
- CISA Known Exploited Vulnerabilities Catalog
./gradlew buildThis runs the full build including compilation, tests, and Spotless code formatting checks.
./gradlew test./gradlew spotlessApplyAutomatically formats code to match the project's Spotless configuration.
Note: The build command includes Spotless checks, so code must be properly formatted to pass the build. When writing or modifying code, prefer following the existing coding style standards rather than running spotlessApply.
./gradlew spotbugsMainRuns SpotBugs static analysis.
- Java Version: Java 11 (source and target compatibility)
- Formatting: Code formatting is enforced via Spotless using Eclipse formatter configuration at
src/main/config/spotless.eclipseformat.xml - License Headers: All Java files must include the license header defined in
src/main/config/java.license - Follow existing patterns: When modifying code, match the style and patterns used in surrounding code
src/main/java/- Main source code- Client implementations for various vulnerability data sources
src/test/java/- Test codesrc/main/resources/- Resource files including Mustache templates for GraphQL queriessrc/main/config/- Configuration files for code quality tools (Spotless, SpotBugs)
Key dependencies:
- Apache HttpClient 5 (HTTP client with caching)
- Jackson (JSON processing)
- JMustache (templating for GraphQL queries)
- JUnit 5 (testing)
- SpotBugs annotations (static analysis)
- Uses JUnit 5 (Jupiter)
- Run tests with
./gradlew test - Some tests may require API keys (e.g.,
GITHUB_TOKENenvironment variable)
This project publishes to Maven Central. Publishing tasks are configured but must only be run by maintainers.