Skip to content

Latest commit

 

History

History
77 lines (58 loc) · 2.53 KB

File metadata and controls

77 lines (58 loc) · 2.53 KB

Contributing to CloudStrikeX

Thanks for your interest in improving CloudStrikeX. This guide covers how to set up a development environment and the conventions used in this project.

Ground Rules

  • CloudStrikeX is for authorized security testing only. Do not contribute code intended to facilitate unauthorized access or illegal activity.
  • Be respectful and constructive in issues and pull requests.

Development Setup

git clone https://github.com/infosec-lab/CloudStrikeX.git
cd CloudStrikeX
python -m venv venv
# Windows:  venv\Scripts\activate
# Linux/macOS: source venv/bin/activate
pip install -r requirements.txt

Requirements:

  • Python 3.8+
  • Tkinter (bundled with most Python builds; on Debian/Ubuntu: apt install python3-tk)
  • The nmap binary on PATH for network-scanning features

Run the application:

python CloudStrikeX.py

Project Layout

Path Purpose
CloudStrikeX.py Main application and GUI
tools/ Cloud, web, network, and OSINT modules
config/ Default configuration
data/ Sample input files
docs/ Documentation and screenshots
requirements.txt Python dependencies

Branching & Pull Requests

  1. Create a feature branch from main (e.g. fix/..., feat/...).
  2. Keep changes focused; one logical change per pull request.
  3. Ensure the project still imports and launches before opening a PR:
    python -m py_compile CloudStrikeX.py
    python -c "import importlib, pathlib; [importlib.import_module(f'tools.{p.stem}') for p in pathlib.Path('tools').glob('*.py') if p.stem != '__init__']"
  4. Open a pull request against main with a clear description of what changed and why.

Coding Conventions

  • Follow the style of the surrounding code (naming, structure, comment density).
  • Prefer clear, readable code over cleverness.
  • Network/optional dependencies should be imported lazily and guarded with try/except so the application still launches when they are absent.
  • Do not hardcode credentials, tokens, or real target data.

Dependencies

  • Only add a dependency if it is actually imported by the code.
  • Pin a sensible minimum version in requirements.txt.
  • Optional, platform-specific, or feature-gated dependencies should use markers (e.g. ; sys_platform == "win32") or be documented as optional.

Reporting Issues

Use GitHub issues for bugs and feature requests. For security vulnerabilities in CloudStrikeX itself, follow SECURITY.md instead of opening a public issue.