Welcome Contributors!
We welcome contributions from the community! Whether you’re fixing bugs, adding new features, improving documentation, or creating new POCs, your help is appreciated.Quick Links
GitHub Repository
View the source code and issues
Discussions
Ask questions and share ideas
Getting Started
Prerequisites
Before contributing, ensure you have:- Go 1.21.4+ - The project requires Go 1.21.4 or higher
- Git - For version control
- Basic Go knowledge - Understanding of Go programming
- Development environment - Linux, macOS, or Windows
Fork and Clone
- Fork the repository on GitHub
- Clone your fork locally:
- Add the upstream repository:
Building from Source
Basic Build
Build with Dependencies
Cross-Platform Builds
Development Workflow
1. Create a Branch
2. Make Your Changes
Follow the project structure and coding conventions:3. Test Your Changes
4. Commit Your Changes
Follow conventional commit messages:feat:- New featurefix:- Bug fixdocs:- Documentation changesrefactor:- Code refactoringtest:- Adding testschore:- Maintenance tasks
5. Push and Create Pull Request
Contribution Guidelines
Code Style
Go Code Style
Go Code Style
Follow standard Go conventions:
Package Organization
Package Organization
- Group related functionality in packages
- Use lowercase package names
- Keep packages focused on a single responsibility
- Export only necessary functions and types
Error Handling
Error Handling
Documentation
Documentation
Contributing POCs
Go POC Contribution
- Check if fingerprint exists in
pkg/fingerprint/localFingerData.go - Create POC file in appropriate directory under
pocs_go/ - Register POC in
pocs_go/go_poc_check.go - Test thoroughly against vulnerable and non-vulnerable targets
YAML POC Contribution
- Check fingerprint in
pkg/fingerprint/localFingerData.go - Create YAML file in
pocs_yml/ymlFiles/ - Name format:
<tech>-<vuln>-<type>.yml - Test with scan4all
Testing
Unit Tests
Integration Tests
Pull Request Process
Before Submitting
- Code builds without errors
- All tests pass
- Code follows project style guidelines
- Documentation is updated if needed
- Commit messages follow conventions
- Branch is up to date with main
PR Checklist
Review Process
- Submit PR with clear description
- Automated checks must pass
- Code review by maintainers
- Address feedback if requested
- Merge after approval
Community
Communication Channels
GitHub Issues
Report bugs and request features
Discussions
Ask questions and share ideas
WeChat/QQ
Join the community chat groups
Getting Help
If you need help:- Check the documentation
- Search existing issues
- Ask in discussions
- Join community chat groups
Recognition
Contributors
All contributors are recognized in:- GitHub contributors page
- Project README
- Release notes
Donors
Special thanks to project donors listed in the README.Code of Conduct
Our Standards
- Be respectful and inclusive
- Welcome newcomers
- Focus on constructive feedback
- Respect different viewpoints
- Prioritize community well-being
Unacceptable Behavior
- Harassment or discrimination
- Trolling or insulting comments
- Publishing private information
- Malicious or destructive contributions
Resources
Custom Modules
Learn to create custom scan modules
Custom POCs
Write custom POCs
API Integration
Integrate scan4all into your apps
GitHub Repo
View the source code