Thank you for your interest in contributing to AegisFlow. This document provides guidelines for contributing.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/aegisflow.git - Create a branch:
git checkout -b feature/your-feature - Make your changes
- Run tests:
make test - Run linting:
make lint - Commit and push
- Open a Pull Request
# Install Go 1.24+
brew install go
# Build
make build
# Run locally
make run
# Run tests
make test
# Run with Docker
make docker-up- Create
internal/provider/yourprovider.go - Implement the
Providerinterface (6 methods) - Add tests in
internal/provider/yourprovider_test.go - Register the type in
cmd/aegisflow/main.goinitProviders() - Add config support in
internal/config/config.go
- Create
internal/policy/filter_yourfilter.go - Implement the
Filterinterface (3 methods) - Add tests
- Register in
cmd/aegisflow/main.goinitPolicyEngine()
- Bug fixes
- Documentation improvements
- Performance optimizations
- Test coverage improvements
- Follow standard Go conventions
- All exported functions must have tests
- Run
gofmt -s -w .before committing - Run
golangci-lint run ./...and fix all issues - Keep packages small and focused
- Ensure all tests pass
- Update documentation if needed
- Keep PRs focused — one feature or fix per PR
- Write a clear description of what changed and why
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.