Analytics / Outils pour développeurs

PRWise - Plateforme d'analyse des révisions de PR

Python Django DRF PostgreSQL pgvector Redis Celery React TypeScript Vite Tailwind CSS Three.js d3-force-3d ECharts Docker Render Google OAuth GitHub App Resend pytest Vitest Playwright
Visiter le site →
PRWise - Plateforme d'analyse des révisions de PR

Aperçu

PRWise extrait les données des PR GitHub et les transforme en scènes 3D pilotées par la physique qui répondent à quatre questions — combien de temps avant que quelqu'un regarde une PR, ce qui est bloqué et a besoin d'un coup de pouce, qui porte la charge de révision, et si les merges respectent réellement les règles de protection de branche. Chaque rapport est une scène, pas un graphique. Des particules circulent dans les pipelines, les réviseurs apparaissent comme des puits gravitationnels avec des PR en orbite, les violations de conformité franchissent les barrières. Les contraintes de confidentialité sont intégrées à l'architecture: pas de classement, pseudonymes par défaut, et l'affichage des vrais noms nécessite d'activer un toggle — avec journal d'audit.

Le défi

Les équipes d'ingénierie génèrent des milliers de PRs et de révisions, mais les schémas importants restent invisibles. La charge de révision s'accumule-t-elle sur deux personnes pendant que les autres regardent? Les règles de protection de branche sont-elles contournées? Combien de temps les PRs attendent-elles avant que quelqu'un les regarde? Les tableaux de bord GitHub ne répondent pas à ces questions. Les outils existants déversent des données brutes sans structure, ou créent des classements qui poussent à jouer avec les chiffres et détruisent la confiance. Les managers ont besoin de voir la santé du processus de révision sans que cela devienne un outil de surveillance.

La solution

Un backend Django communique avec GitHub via un seul client API. Les webhooks se déclenchent sur les événements de PR, mais au lieu de faire confiance au payload, ils récupèrent l'état actuel de la PR via GraphQL — upserts idempotents, le replay est inoffensif. Un backfill reprenable couvre l'historique avec persistance du curseur. Chaque nuit, un balayage de réconciliation rattrape ce que les webhooks ont manqué. Les définitions de métriques vivent dans un seul module derive en tant que fonctions pures: une PR entre, un ensemble de faits calculés sort. Les rapports agrègent à partir de ces lignes, ils ne peuvent donc pas se contredire. Le frontend est React avec Three.js et d3-force-3d pour les scènes 3D, avec un fallback HTML statique pour les utilisateurs en reduced motion. PostgreSQL 17 avec pgvector pour la recherche vectorielle. Redis 7, Celery, Docker Compose. Le système de rôles applique les pseudonymes au niveau member, les vrais noms au niveau manager avec infobulle d'accompagnement, et chaque révélation de nom est enregistrée dans le journal d'audit.

Points forts

4
Scènes 3D avec physique pour les rapports
Multi-tenant
Confidentialité avec rôles et journal d'audit
GitHub
Pipeline d'ingestion Webhook + GraphQL
No ranking
Classement individuel désactivé par conception

Ready to scale your engineering team?

Tell us about your project and we'll get back to you within 24 hours.

Start a conversation