First off, thanks for taking the time to contribute!
ops-engine is an open-source framework designed to abstract away the complexity of building rate-limited, generic webhook queues for GitHub and Forgejo.
Before submitting code, please understand our core philosophy:
- No Business Logic:
ops-engineMUST NOT contain organization-specific logic (e.g., "if repo is X, assign user Y"). - Config-Driven: All feature flags, thresholds (like
days_until_stale), and target repositories must be configurable via the Pydantic models inconfig_loader.py. - Abstract Adapters: Direct HTTP calls should be abstracted behind
ForgeAdapterimplementations.
- Fork the repo and create your branch from
master. - Install dependencies:
pip install -e . - We use
hatchfor builds. - Ensure your code is properly formatted (PEP 8 standard).
- Keep it small: Focus on a single feature or bug fix.
- Test your code: Ensure the webhook handlers and async queues don't block the event loop.
- Update documentation: If you add a config option, update the
README.md.
By contributing, you agree that your contributions will be licensed under its Apache 2.0 License.