Skip to content

Latest commit

 

History

History
49 lines (35 loc) · 1.79 KB

File metadata and controls

49 lines (35 loc) · 1.79 KB

Contributing to E8CR Squad

Thanks for your interest. Contributions are welcome — bugs, improvements, new features, and documentation fixes.

Ground rules

  • Scope discipline — Only touch what you're changing. Don't refactor adjacent code as a side effect.
  • No secrets — Never commit credentials, tokens, or real tenant data. Use env vars only.
  • Safe by default — Any script that can make changes must respect E8CR_ENABLE_CHANGES. Read-only/audit actions never need this flag.
  • Test with demo mode first — All scripts should work with --demo or synthetic data before touching a real tenant.

How to contribute

  1. Fork the repo
  2. Create a branch: git checkout -b fix/my-thing
  3. Make changes, test locally with demo data
  4. Run the test suite: pytest tests/ -v
  5. Open a PR with a clear description of what changed and why

Running locally

# Install dev dependencies
pip install -r requirements-dev.txt

# Run all bots with synthetic data
python3 run_all.py --demo --output ./test-output

# Run the test suite
pytest tests/ -v

# Or individual bots:
python3 e8cr-vmpm/scripts/demo_generate.py --output demo/vmpm --full-pipeline
python3 e8cr-identity/scripts/demo_generate.py --output demo/identity --full-pipeline
python3 e8cr-appcontrol/scripts/demo_generate.py --output demo/appcontrol --full-pipeline
python3 e8cr-backup/scripts/demo_generate.py --output demo/backup --full-pipeline

What needs the most help

  • Additional backup provider adapters (currently: Veeam + Azure Backup)
  • MDVM to Greenbone result normalisation improvements
  • Better inactive admin detection (signInActivity requires beta Graph API)
  • Maturity scorer refinement (more granular ML2 criteria mapping)
  • Phishing-resistant MFA deployment tracking

Questions

Open an issue. Happy to discuss.