v3 roadmap #103
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The current action:
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-based configuration system powered by the github.com/projectdiscovery/goflags library. On first run, Nuclei auto-generates a default config file at
~/.config/nuclei/config.yamlcontaining all available CLI flags as commented entries with their descriptions and default values. Users can uncomment and customize any option to set persistent defaults.The config file format mirrors CLI flags directly. For example:
When using
configorconfig-filein this action, the same YAML format applies. This means any Nuclei CLI flag can be expressed in config form, and the action simply passes the config to Nuclei without transformation.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.