git clone https://github.com/get-skipper/skipper-python
cd skipper-python
make installmake test # unit tests only (no credentials required)
make lint # ruff check + format
make typecheck # mypy strictpackages/
skipper-core/ # shared resolver, client, cache
skipper-pytest/ # pytest plugin (pytest11 entry point)
skipper-unittest/ # unittest.TestCase mixin
skipper-playwright/ # Playwright base class
tests/ # unified test suite
Copy the service account JSON to the repo root (gitignored):
cp /path/to/service-account-skipper-bot.json .Then run in sync mode to verify the spreadsheet is updated:
SKIPPER_MODE=sync \
SKIPPER_SPREADSHEET_ID=<id> \
SKIPPER_SHEET_NAME=skipper-python \
SKIPPER_CREDENTIALS_FILE=./service-account-skipper-bot.json \
make test- Formatting and linting:
ruff(runmake lint-fixto auto-fix) - Type checking:
mypyin strict mode - Python minimum: 3.10
- Ensure
make test,make lint, andmake typecheckall pass - Add tests for new functionality
- Keep commits focused; one logical change per PR