Thanks for your interest in contributing to GeM BidPlus Automation!
- Fork the repository
- Clone your fork and create a feature branch:
git clone https://github.com/YOUR_USERNAME/gem-automation.git
cd gem-automation
git checkout -b feature/your-feature- Set up the development environment:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install ruff
patchright install chromium- Copy
.env.exampleto.envand fill in test credentials
We use Ruff for formatting and linting. Please run it before committing:
# Format code
ruff format .
# Check for lint errors
ruff check .CI will reject pull requests that fail the formatting or lint check.
- Follow the existing code style and project structure
- All flows inherit from
BaseFlowand implementrun(page, **kwargs) - Selectors and timeouts go in
config.yaml, not hardcoded in Python - Secrets must come from environment variables, never from code or config files
- Run
ruff format .andruff check .before pushing - Make sure your changes work end-to-end
- Keep commits focused — one logical change per commit
- Write clear commit messages
- Push to your fork and open a pull request against
main
- Use GitHub Issues
- Include the error traceback, your Python version, and OS
- If possible, include a screenshot or the debug HTML/HAR from
debug_logs/
Be respectful and constructive. We're all here to build something useful together.