Spaces:
Runtime error
Runtime error
Contributing to IntelliScan
Thank you for your interest in contributing to IntelliScan! This document outlines the process and guidelines for contributing.
Code of Conduct
- Be respectful and constructive in all interactions
- Focus on what is best for the community and the project
- Show empathy towards other community members
How to Contribute
Reporting Bugs
Before submitting a bug report:
- Search existing issues to avoid duplicates
- Verify reproduction on the latest version
- Test against DVWA in Docker to isolate from environment issues
When opening a bug report, include:
- Python version and OS
- Full stack trace if applicable
- Minimal reproduction steps
- Expected vs actual behavior
Suggesting Features
Feature requests are welcome! Please:
- Check the Roadmap first
- Open an issue with the
enhancementlabel - Describe the use case and motivation
- If possible, sketch the API or behavior
Submitting Pull Requests
Fork the repo and create a feature branch:
git checkout -b feature/my-featureSet up the dev environment:
pip install -r requirements-dev.txt pre-commit installMake your changes with:
- Clear, focused commits
- Type hints where applicable
- Docstrings for public functions/classes
- Tests for new functionality
Run the test suite:
pytest tests/ --cov=intelliscan black intelliscan/ ruff check intelliscan/Submit the PR with:
- A clear title and description
- Reference to any related issue
- Screenshots/output examples if UI-related
Coding Standards
Python Style
- Formatter: Black (default settings)
- Linter: Ruff (config in
pyproject.toml) - Type hints: required for public APIs, recommended elsewhere
- Docstrings: required for modules, classes, and public functions (numpy style)
- Line length: 100 characters
Module Structure
Every module should:
- Start with a docstring describing its purpose
- Use absolute imports
- Define a clear public API via
__all__if non-trivial - Include a CLI entry point (
if __name__ == "__main__":) if usable standalone
Tests
- Place tests in
tests/test_<module>.py - Use pytest fixtures from
conftest.py - Aim for >80% coverage on new code
- Mock network calls in unit tests; integration tests can use DVWA
Adding a New Vulnerability Type
To add support for a new vulnerability class (e.g., CSRF, SSRF):
- Add payloads in
payloads/<vuln_type>.txt - Update
config.py:- Add to
PAYLOAD_FILES - Add to
DVWA_FORMS(target endpoint) - Add to
SEVERITY - Add detection signatures if applicable
- Add to
- Update
analyzer.py:- Add a
_detect_<vuln_type>static method - Wire it into
_classify
- Add a
- Add tests in
tests/test_analyzer.py - Update README comparison tables and documentation
Releasing
(For maintainers)
- Update version in
intelliscan/__init__.pyandsetup.py - Update
CHANGELOG.md - Tag the release:
git tag v1.x.y && git push --tags - GitHub Actions will publish the Docker image
Questions?
Open a GitHub Discussion or reach out via the contact info in the README.