Contributing
Thank you for your interest in contributing to the Pretorin CLI!
We welcome contributions to the CLI, MCP server, docs, scanners, developer workflows, and local tooling. This repository is open source under Apache-2.0, while Pretorin-hosted platform services, authenticated API access, and account-scoped data are governed separately by the applicable platform terms.
Scope
Good fits for this repository:
- CLI commands and output improvements
- MCP tools, prompts, and local agent integrations
- Scanner integrations and developer workflow automation
- Documentation, examples, and tests
Out of scope for public contributions:
- Customer data, exported platform data, or private operational runbooks
- Secrets, internal credentials, or private environment details
- Changes that imply trademark rights or suggest an unofficial fork is an official Pretorin service
For brand usage guidance, see Trademarks and Service Terms.
Getting Started
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/pretorin-cli.git cd pretorin-cli - Install development dependencies:
uv pip install -e ".[dev]"
Development Workflow
Running Tests
pytest
Integration tests require an API key and are marked with @pytest.mark.integration:
pytest -m integration
Integration tests require a valid API key tied to an account that has accepted the platform terms.
Type Checking
mypy src/pretorin
Linting
ruff check src/pretorin
ruff format src/pretorin
Full CI Check
Run the same checks as the CI pipeline:
ruff check src/pretorin && ruff format --check src/pretorin && mypy src/pretorin && pytest
Submitting Changes
- Create a feature branch from
main - Make your changes
- Ensure tests pass and code is properly formatted
- Add a sign-off to each commit with
git commit -s - Submit a pull request
By submitting a contribution, you certify that:
- You have the right to submit the code, docs, or other materials.
- Your contribution may be distributed under the Apache License, Version 2.0.
- You are not including confidential information, customer data, or material that is governed by separate platform terms.
Code Style
- Follow PEP 8 guidelines
- Use type hints for all function signatures
- Write docstrings for public functions and classes
- Keep functions focused and small
CI Pipeline
The CI pipeline runs on Python 3.10, 3.11, and 3.12:
- Lint — Ruff check + format
- Audit — pip-audit (dependency vulnerability scan)
- Type check — mypy strict mode
- Test — pytest
Legal and Platform Boundaries
- The source code in this repository is licensed under Apache-2.0.
- The Pretorin name, logos, and other brand assets remain subject to trademark rights and are not licensed for reuse except for nominative/reference use. See Trademarks and Service Terms.
- Access to Pretorin-hosted APIs, services, and account-scoped data is authenticated and governed by separate platform terms.
Reporting Issues
Use GitHub Issues to report bugs or request features. Include:
- Clear description of the issue
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- CLI version (
pretorin version)
Questions?
- API documentation: platform.pretorin.com/api/docs
- Platform: platform.pretorin.com