English · 简体中文 · 日本語 · 한국어 · Español
A self-hostable GitHub PR dashboard for finding failed checks, requested changes and merge conflicts across your contributions, with historical activity and background synchronization.
- Open Needs attention to find your PRs with failed checks, changes requested or merge conflicts.
- Browse contributions across repositories, search PRs, and inspect review activity.
- Connect GitHub once to start importing history automatically; follow progress and the last successful sync time. Background updates continue after you close the page.
- Review private-repository access and install your GitHub App on the repositories you want to include.
PR Desk currently centers on your authored contributions. It is not a complete inbox of every PR where someone requests your review.
- Copy
.env.exampleto.envand set a uniqueTOKEN_ENCRYPTION_KEYwithopenssl rand -hex 16. - Create a GitHub App and set its client ID, client secret and slug in
.env. Registerhttp://localhost:8080/api/v1/auth/github/callbackas its callback. For a hosted instance, register that instance's exact HTTPS callback instead. - Run
docker compose up -d --build, then openhttp://localhost:8080and connect GitHub. The first import may take several minutes.
Private PRs require installing the App on the relevant repositories with read access to pull requests, checks and commit statuses. See setup and operations, data handling, and security guidance. The Compose database credentials are local development examples; both published ports bind to loopback.
apps/
api/ Go API, PostgreSQL models and tests
web/ React/Vite frontend and tests
doc/ Translated README files
docs/ Development, operations and library decisions
scripts/ Backup and CI runner helpers
.github/workflows/ CI checks and gated image releases
Vite+ (vp) provides development, build, test, format and lint commands. Bun manages the JavaScript workspace from the root; Go dependencies remain in apps/api/go.mod. The application Docker build uses the repository root as its context.
vp install --frozen-lockfile
vp run dev # Web development server
make api # API (export the required environment first)
vp check # Format, lint and type checks
vp run test # Go tests, web tests and production build
make build # dist/pr-desk binary with embedded web assets
make production # One application container + PostgreSQLInstall the global vp CLI using the official Vite+ setup. Tool versions are pinned in package.json and .node-version; formatter/linter settings live in root vite.config.ts. Run vp fmt to format; line width uses Oxfmt’s maximum of 320.
Configure GitHub App authorization and .env before connecting. See development and operations for setup, ports, database backups and background synchronization.
PRs and main run web checks, Go race/integration tests with isolated PostgreSQL, and the embedded application Docker build on GitHub-hosted runners. Successful main CI publishes a GHCR application image and a GitHub Release.
See CI/CD for triggers, tags and image-based deployment, and library decisions for the implementation inventory.
See CONTRIBUTING.md for local checks and pull request guidance. Please report vulnerabilities through the private channel described in SECURITY.md.
View all contributors. Contributor avatars are provided by contrib.rocks and require a publicly accessible repository.
The chart and public repository badges become available once the repository is public. View stargazers on GitHub.
PR Desk is licensed under the Apache License, Version 2.0.