-
Notifications
You must be signed in to change notification settings - Fork 15
Contributing
gus edited this page Feb 27, 2026
·
1 revision
Contributions are welcome! This guide covers the development workflow for Aguara.
git clone https://github.com/garagon/aguara.git
cd aguara
make build
make testRequirements: Go 1.25+
| Target | Description |
|---|---|
make build |
Production binary |
make test |
Tests with race detector |
make lint |
golangci-lint |
make fmt |
gofmt |
make vet |
go vet |
make clean |
Remove binary |
See Architecture for the full breakdown.
Rules are YAML files in internal/rules/builtin/. See Custom Rules for the full schema.
- Choose a unique ID following the convention:
CATEGORY_NNN - Write the YAML with all required fields
- Include realistic
true_positiveandfalse_positiveexamples - Run
make testto validate self-tests - If the rule targets JSON configs, account for optional quotes:
["']?key["']? - Remember: Go
regexpdoes NOT support lookaheads/lookbehinds
- Create a new YAML file in
internal/rules/builtin/ - Add the category to
categoryDescriptionsin the dashboard (if applicable) - Update the rule count in README.md
# Full suite with race detector
make test
# Single package
go test -race -count=1 ./internal/rules/...
# Verbose
go test -race -count=1 -v ./internal/engine/pattern/...
# Integration tests (requires testdata/ directory)
go test -race -count=1 ./internal/scanner/...- Open an issue first to discuss the change
-
Fork and branch from
main - Write tests for new functionality
-
Ensure all checks pass:
make build && make test && make vet
-
Update CHANGELOG.md under the
[Unreleased]section - Submit a PR with a clear description
- Tests pass (
make test) - No lint issues (
make lint) - CHANGELOG updated
- No breaking changes (or clearly documented)
- Bugs: Bug report template
- Features: Feature request template
- Security: See SECURITY.md — report via GitHub Security Advisories, not public issues
GitHub | Releases | Aguara Watch | Go Docs
Getting Started
Usage
Rules
Developer
Reference