Skip to content

Latest commit

 

History

History
69 lines (46 loc) · 1.56 KB

File metadata and controls

69 lines (46 loc) · 1.56 KB

Contributing to OpsPortal

Thank you for your interest in contributing to OpsPortal! This guide covers everything you need to get started.

Development Setup

Clone all repositories into a shared parent directory:

mkdir opsportal-dev && cd opsportal-dev
git clone https://github.com/polprog-tech/OpsPortal.git
git clone https://github.com/polprog-tech/ReleasePilot.git
git clone https://github.com/polprog-tech/ReleaseBoard.git

pip3 install -e "./ReleasePilot[all]"
pip3 install -e ./ReleaseBoard
pip3 install -e ./OpsPortal

Verify the installation:

opsportal version

Pre-commit hook

cd OpsPortal
cp scripts/pre-commit .git/hooks/pre-commit && chmod +x .git/hooks/pre-commit

Running Tests

pytest                                    # all tests
pytest -v                                 # verbose
pytest tests/test_security.py             # specific file
pytest tests/test_security.py::TestCSP    # specific class

Tests follow the GIVEN/WHEN/THEN docstring pattern (see existing tests for examples).

Code Quality

ruff check src/ tests/

How to Contribute

Reporting Bugs

Include: expected vs actual behavior, opsportal.yaml (redacted), Python/OS version, steps to reproduce.

Pull Requests

  1. Branch from main
  2. Make changes + add tests
  3. Run pytest and ruff check src/ tests/
  4. Open PR with clear description

Commit Convention

Conventional Commits: feat:, fix:, docs:, test:, refactor:, chore:

License

See LICENSE.