Thanks for taking the time to contribute. This file is the short version; the detailed engineering documentation lives in the wiki.
- ffuf needs Go 1.20 or newer.
- Build:
go buildat the repo root produces theffufbinary. - Test:
go test -race ./.... The race detector is what CI gates on, so run it before you push.
The wiki Contributing section documents ffuf from the inside:
- Overview and architecture:
how the packages fit together (the
pkg/ffufkernel, thepkg/enginescan engine, the provider interfaces, and theassembly.BuildJobwiring seam). - Testing: the test layers (unit, property, characterization goldens, integration, end-to-end), how to run each, and which layer a new test belongs in.
- Flags and help declaration: read this before adding or changing any CLI flag.
Read the architecture and testing pages before a large change; read the flags page before touching a flag.
- Base your branch on the latest
master. - Keep each pull request to one logical change.
- Run
go test -race ./..., and make suregofmtandgo vetare clean. - If your change affects help, flag, or config output, regenerate the
characterization goldens and commit them:
go test -run Characterization -update-golden . - If this is your first contribution, add your name to
CONTRIBUTORS.md(the file is alphabetically ordered). - Add a short entry describing your change to
CHANGELOG.mdunder themastersection.
Please do not open a public issue for a security vulnerability in ffuf. Report it privately through the repository's security policy.
Thanks for contributing to ffuf :)