Inspiration
None of us ever really know when a PR is going to merge. We wanted something that could actually answer "when will this ship" using real data from the repo instead of a shrug.
What it does
GitStream connects to a GitHub repo, pulls its recent PR history, and estimates how long the next pull request will take to merge. Type in an owner and repo name and it looks at closed and merged PRs to work out median merge time, p75/p90 tail latency, and a risk level for what's currently open. It also lists every active PR with its own estimated remaining time based on that history.
How we built it
FastAPI backend, with a frontend served right off it so there's no separate deploy step, and PostgreSQL for storage. Under the hood there's a feature engineering pipeline that pulls stats out of PR events, feeding into a baseline predictor we built to slot into XGBoost or LightGBM later. Alembic handles migrations and everything runs through Docker Compose locally.
Challenges we ran into
Getting merge time stats to actually mean something was harder than expected. Repos with very few merged PRs give you a sample size problem, so early estimates could look confident when they really weren't.
Accomplishments that we're proud of
Getting it actually working: repo in, live estimate out, backed by an actual database and a security model instead of a demo hack. We're also proud of building the predictor as a swappable interface from day one so upgrading to a trained ML model later doesn't mean rewriting everything.
What we learned
Merge time data is messier than we expected. A couple of stale or abandoned PRs can throw off the whole picture, so estimates only get more useful the bigger the sample. We also spent a good chunk of time on the database side, getting tenant data properly isolated with Postgres row-level security and passing tenant identity through the session, which was new territory for a hackathon weekend.
What's next for GitStream
Integrate GitHub webhook ingestion and background queue Replace baseline predictor with trained LightGBM or XGBoost model Add auth integration (JWT from Supabase/Auth0/Okta) Add dashboards (React or Streamlit frontend) Add CI pipeline and migration tool (Alembic)
Built With
- developer-tools
- fastapi
- github
- ml
- postgresql
- predictive-engineering
Log in or sign up for Devpost to join the conversation.