ProPR is a self-hosted AI code reviewer for Azure DevOps, GitHub, GitLab and Forgejo. You run it, you bring your own model provider, and your code goes only where you point it.
Every page below has one job. Each fact lives on exactly one page, so if a page names something without explaining it, the link next to it goes where it is explained. Words this product invented are defined once in the glossary.
Start here
Read these five in order to get from nothing to a deployment you would keep.
- Quickstart - clone the example stack, sign in, configure one client, get one review posted on a real pull request.
- How it works - what you just deployed, how a review gets triggered, and what ProCursor adds.
- SCM platforms - the support matrix, then the page for the host you actually use, then webhooks so reviews start by themselves.
- AI providers - which model providers ProPR can call, then credentials, models and purposes.
- Deploying - the evaluation stack is not a deployment. This is what to change.
Common questions
Questions, not symptoms. If something is broken rather than unclear, start at troubleshooting, which routes by symptom.
| Question | Page |
|---|---|
| Is my SCM host supported? | SCM platforms |
| Can ProPR use the model provider I already pay for? | AI providers |
| Which model does the actual reviewing, and how do I change it? | Purposes, effort and protocol |
| Why does the review configuration never name a provider? | Purposes and logical models |
| Why was a finding not posted on the pull request? | Reviews |
| What can I change about how strict a review is? | Reviews |
| How do I keep ProPR out of generated files, or tell it our conventions? | Configuring ProPR from your repository |
| How do I make reviews cheaper? | Control what a review costs |
| Can I run reviews without posting anything? | Run reviews without posting them |
| Where does our code actually go, and how do I constrain it? | Restrict where your code goes |
| Can I install this with no route to the internet? | Run ProPR without internet access |
| What does this environment variable do? | Environment variable reference |
| What do I back up, and how do I upgrade? | Upgrades and backups |
| Which probe do I point my orchestrator at? | Observability |
| How do I automate all of this? | API reference - ProPR backend |
| Does this need a commercial license? | Editions and licensed features |
| What does increment, lens or logical model mean? | Glossary |
Every page
Getting started
| Page | Reach for it when |
|---|---|
| Quickstart | You want ProPR running on one machine, with one review posted on a real pull request |
Concepts
| Page | Reach for it when |
|---|---|
| How ProPR works | You want the component inventory, the ways a review is triggered, and what ProCursor is for |
| Reviews | You want what happens inside one review, and the settings that change what it publishes |
| Configuring ProPR from your repository | You want to exclude files from review, or hand the reviewer conventions that live with the code |
| Purposes and logical models | You want the one idea behind AI purposes and logical models before you configure them |
Platforms
| Page | Reach for it when |
|---|---|
| SCM platforms | You need the support matrix, how to enable a provider family, and the fields every connection shares |
| Azure DevOps | You are connecting Azure DevOps Services or a self-hosted Azure DevOps Server |
| GitHub | You are connecting GitHub Cloud or Enterprise, by personal access token or App installation |
| GitLab | You are connecting GitLab.com or a self-managed GitLab |
| Forgejo | You are connecting a Forgejo host |
| Webhooks | You want your SCM host to start reviews, or a delivery arrived and produced no review |
AI providers and models
| Page | Reach for it when |
|---|---|
| AI providers | You are choosing a provider family, or deciding between a native family and a gateway |
| AI connection credentials | You are creating one AI connection and need to know exactly what goes in the credential field |
| Models, the catalog and prices | You are attaching models, or a model has no context window or the wrong price |
| Purposes, effort and protocol | You are mapping purposes to logical models, or setting reasoning effort and protocol mode |
| Tenant compliance | You must restrict which AI provider families and endpoint hosts a tenant may reach |
Operating
| Page | Reach for it when |
|---|---|
| Deploying ProPR | You are past evaluation and need ingress, published images, worker sizing and a persistent workspace |
| Environment variable reference | You want a variable’s name, default, accepted range, and whether the example stack forwards it |
| Upgrades and backups | You are rolling forward to a new release, or deciding what a restorable backup contains |
| Observability | You are wiring probes, metrics, traces and logs, or reading what a health check means |
| Troubleshooting | You have a symptom and want the page that diagnoses it |
Guides
Each guide is an ordered path through settings that already have their own pages, plus the judgement about which one to reach for first.
| Page | Reach for it when |
|---|---|
| Control what a review costs | Reviews work but cost more than you want them to |
| Run reviews without posting them | You want to trial ProPR on live pull requests without anything reaching them |
| Restrict where your code goes | You have to constrain where code may be sent, and prove it |
| Run ProPR without internet access | You are installing on an isolated network and need to know what still crosses a boundary |
Reference
| Page | Reach for it when |
|---|---|
| API reference - ProPR backend | You are scripting setup, or triggering reviews from CI |
| Security | You are reviewing the boundaries: where code goes, what is stored, secrets, sessions, access control |
| Editions and licensed features | Something is refused and you suspect it needs a commercial license |
| reference/source-license-map.md | You need the generated list of commercial-only source files |
| Glossary | A page used a term this product invented |
Outside these docs
- LICENSE, LICENSING.md and COMMERCIAL.md - the legal terms; Editions and licensed features describes runtime behaviour only.
- SECURITY.md - reporting a vulnerability.
openapi.jsonat the repository root - the committed API contract.example/docker-compose/andexample/azure/.azure/- the two deployment examples that ship.