JevPR
September 20, 2026 ยท View on GitHub
JevPR is a GitHub App that routes pull-request review work using Jev By TypeSafe as the decision engine.
When a pull request is opened or updated, the app ingests the GitHub webhook, normalizes the pull request context, sends it to Jev, and receives a structured decision such as LOW, NORMAL, or SPECIALIST. A deterministic policy layer then maps that decision to an action like auto-approval, a request for review, or a check-run update.
Architecture
api/exposes FastAPI endpoints for health and webhook ingestion.providers/isolates Jev behind a provider boundary.decisions/contains the normalized context model, decision result model, and routing policy.services/coordinates webhook handling and evaluation.workers/contains Celery worker wiring for asynchronous GitHub work.db/contains SQLAlchemy models and repository helpers.
Configuration
Runtime settings are loaded from environment variables and an optional YAML file at .github/jevpr.yml in the repository. If the YAML file is not present, a default policy is used.
The YAML file controls both the action mapping and the GitHub reviewers that may be assigned by policy.
Example:
reviewers:
- username: alice
github_id: 1001
actions:
LOW:
action: approve
NORMAL:
action: request_review
reviewers:
- alice
Local Development
- Create a virtual environment.
- Install the package in editable mode with dev dependencies.
- Start the API with
uvicorn JevPR.main:app --reload.
IT IS HIGHLY RECOMMENDED TO DEPLOY WITH DOCKER
Docker
Use docker compose up -d --build to start the API, worker, PostgreSQL, and Redis.
Port rules in Docker mode:
API_PORTcontrols the host port for the FastAPI service. The container still listens on8000.POSTGRES_PORTcontrols the host port mapped to the Postgres container. Inside Compose, other services reach it atdb:5432.REDIS_PORTcontrols the host port mapped to the Redis container. Inside Compose, other services reach it atredis:6379.
In Docker mode, the app container uses DATABASE_URL=postgresql+psycopg://jevpr:jevpr@db:5432/jevpr and REDIS_URL=redis://redis:6379/0. The localhost versions in .env are for running on your machine outside Docker.
Permissions required for the GitHub App:
- Checks: Read & Write
- Contents: Read
- Issues: Read & Write
- Merge queues: Read & Write
- Pull requests: Read & Write
License: Apache-2.0
Don't forget to leave a Star!
This Project is Under Development and can contain bugs. Additionally Jev is an AI model, and can make mistakes.