v3 roadmap #104
Unanswered
dwisiswant0
asked this question in
Ideas
v3 roadmap
#104
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The current action:
nuclei-versionto pin version #70)v3 addresses this by:
Design Goals
Inputs
versionlatestorvX.Y.Z)argsconfigconfig-fileDefaults
version:latestInput Rules
Mutual Exclusivity
configandconfig-filemust not be set together.Precedence Rules
argsalways take precedence overconfigorconfig-file.config/config-fileact as base configuration.How Configuration Works
Nuclei uses a YAML config file so you can set options once and avoid repeating them every time you run a scan.
On first run, Nuclei creates a default config file.
$XDG_CONFIG_HOME/nuclei/config.yamlor$HOME/.config/nuclei/config.yamlon Unix systems,$HOME/Library/Application Support/nuclei/config.yamlon Darwin (macOS),%AppData%\nuclei\config.yamlon Windows, and$home/lib/nuclei/config.yamlon Plan 9.That file contains every supported CLI flag as a commented entry, including descriptions and default values. Uncommenting an option enables it globally for future runs.
The configuration format is a direct representation of CLI flags. There is no abstraction layer, mapping, or translation, so there's nothing new to learn.
Example:
When this action uses
configorconfig-file, it simply forwards the file to Nuclei as-is. This makes configs portable, predictable, and easy to version-control in CI.Execution Model
latest: install latest stable releasevX.Y.Z: install specified versionconfigandconfig-fileare set.config: written to a temporary file.config-file: used directly.-config <resolved-config>if provided.argslast to enforce precedence.No config merging or mutation is performed.
Usage Examples
1. Default setup (latest Nuclei)
2. Pin a specific Nuclei version
3. Inline configuration with SARIF output
4. Repo-managed config with targeted overrides
5. Reporting via
report-configExample issue-tracker-config.yaml (repository file):
Refer to https://github.com/projectdiscovery/nuclei/blob/dev/cmd/nuclei/issue-tracker-config.yaml.
How This Resolves Input Maintenance
Problem (Current Model)
v3 Solution
argsconfig/config-fileThis keeps the action aligned with Nuclei without chasing every release.
Versioning & Reproducibility
latestvX.Y.Zfor:This matches best practices used by other GitHub Actions.
Compatibility & Migration
v3args, orNon-Goals
Design Rationale
The v3 design is inspired by mature, widely adopted GitHub Actions such as
golangci/golangci-lint-action,goreleaser/goreleaser-action,aquasecurity/trivy-action, andgithub/codeql-action. These actions follow a common pattern: they act as thin, versioned wrappers around their respective CLIs, delegate configuration to native config files or raw arguments, and rely on standard CLI precedence rules rather than introducing action-specific abstractions.By avoiding per-flag inputs and instead exposing generic mechanisms (
args, inline config, config files, and explicit version pinning), these actions remain easier to maintain, immediately compatible with new upstream features, and predictable for users already familiar with the underlying tools. The proposednuclei-actionv3 adopts the same philosophy to reduce input sprawl, improve long-term maintainability, and preserve full access to Nuclei’s feature set without coupling the action to Nuclei’s release cadence.Conclusion
With explicit version control and a minimal input surface,
nuclei-action v3becomes:Feedback welcome.
Beta Was this translation helpful? Give feedback.
All reactions