Thanks for your interest in contributing! Below is a quick guide to help you get started.
- Use descriptive branch names. Suggested patterns:
feature/<slug>(e.g.,feature/bulk-vulns)fix/<slug>(e.g.,fix/asset-list-pagination)chore/<slug>ordocs/<slug>for maintenance/docs
- If you want to enforce patterns in GitHub branch protection, use:
feature/**,fix/**,chore/**,docs/**
- Python 3.9+.
- Install deps:
pip install -r requirements.txt # if present - Create a
.envwithCONVISO_API_KEY=<your-key>(and optionallyCONVISO_API_TIMEOUT=30).
- CLI entrypoint:
python -m conviso.app --help - Use
--quietto silence info logs,--verboseto show per-page requests when paginating.
- Run lint/tests if configured (e.g.,
pytest,ruff,black). If not present, ensure code runs and commands work (list/create/update/delete/bulk).
- Raise
typer.Exit(code=1)on errors. - Use schemas for table output and keep enums validated where possible.
- Prefer clear help strings with expected enum values.
- Keep CSV bulk helpers consistent: dry-run first, confirm/apply,
--forceand--preview-only.
- Include a clear description of the change and how to test it.
- If adding commands or bulk flows, update README and samples if needed.
- If touching bulk, ensure
--show-templateoutput stays consistent.
- Provide command run, options used, expected vs. actual behavior, and any GraphQL errors returned.