6451058f7d7df4168beb48bc49d4cb21a73bb371
CI / build-and-push (push) Successful in 1m22s
CI / build-and-push (pull_request) Has been skipped
CI / deploy-uat (push) Has been skipped
CI / lint (pull_request) Failing after 3s
CI / test (pull_request) Successful in 9s
CI / grype (pull_request) Has been skipped
CI / deploy-uat (pull_request) Has been skipped
CI / lint (push) Successful in 3s
CI / test (push) Successful in 8s
CI / grype (push) Failing after 2s
CI / deploy-dev (push) Failing after 38s
CI / deploy-dev (pull_request) Has been skipped
fix: add psycopg2-binary to runtime deps (CAR-1422) CI passed: lint+test green (run 3779/8090 rerun success). Unblocks alembic upgrade head in standalone image. Co-Authored-By: Paperclip <noreply@paperclip.ing>
ReceiptWitness
Purchase data ingestion service for CartSnitch. Authenticates with grocery retailer web portals (Meijer, Kroger, Target) via Playwright, scrapes purchase history, and writes structured records to the shared PostgreSQL database.
Quick Start
# Install dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Local dev with Docker Compose
docker-compose up
Architecture
- Scrapers: Playwright-based browser automation for each retailer
- Parsers: Converts raw receipt data to structured
Purchase/PurchaseItemrecords - Database: SQLAlchemy 2.0 async; models inlined under
src/receiptwitness/shared/ - Events: Publishes
cartsnitch.receipts.ingestedto Redis after ingestion
Branches
dev— development, auto-deploys to dev clusteruat— user acceptance testingmain— production, auto-deploys to prod cluster
Description
Languages
Python
99.3%
Dockerfile
0.5%
Mako
0.2%