GitHub Check Run
Koalr automatically posts deploy risk scores as a GitHub check run on every pull request — no CI workflow changes required.
When you install the Koalr GitHub App, deploy risk scores appear directly in the GitHub pull request UI as a native check run — no workflow file needed.
Plan requirements
Check run functionality varies by plan. All plans are priced per contributor (any developer who opens or pushes to a pull request in a connected repository).
| Plan | Check run behavior |
|---|---|
| Free | Check runs are not posted to GitHub. Use the Koalr dashboard for deploy risk scoring (limited to 10 PRs per week). |
| Growth | Check runs post a risk score (0--100) and a signal breakdown table on every PR automatically. |
| Business | Everything in Growth, plus AI-powered plain-English risk explanations and the autonomous code reviewer that suggests mitigations inline. |
To upgrade your plan, go to Settings → Billing in the Koalr dashboard.
How it works
- A developer opens or pushes to a pull request
- GitHub sends a
pull_requestwebhook event to Koalr - Koalr computes the risk score in the background (typically within 5–15 seconds)
- A check run named Koalr Deploy Risk appears under the PR's Checks tab
The check run shows:
| Score | Check status |
|---|---|
| 0–39 (Low) | ✅ Passed |
| 40–69 (Medium) | ✅ Passed |
| 70–84 (High) | ⚠️ Neutral |
| 85–100 (Critical) | ❌ Failed |
| DDL migration detected | ❌ Failed (hard gate) |
High-risk and critical scores link to the full risk breakdown on the Koalr dashboard.
Setup
1. Install the GitHub App
Go to Integrations → GitHub settings and click Connect GitHub. Authorize Koalr on the repositories you want scored.
The GitHub App requires these permissions:
| Permission | Reason |
|---|---|
pull_requests: read | Read PR metadata and changed files |
checks: write | Post the check run result |
contents: read | Fetch file contents for entropy analysis |
2. Open a pull request
That's it. Koalr posts the check run automatically on every opened and synchronize event. No secrets, no workflow files, no additional configuration.
What the check run contains
The check run summary shows:
Koalr Deploy Risk — Score: 72 / 100 HIGH RISK
Key risk factors:
• Change entropy: high (files rarely modified together)
• Author file expertise: 3 of 12 files are familiar to this author
• Minor contributors: 41% of file authors are minor contributors
• Schema migration: DDL detected in db/migrations/
View full breakdown → https://app.koalr.com/deploy-risk?pr=…
Hard gates and branch protection
To block high-risk merges, combine Koalr's check run with GitHub's branch protection rules:
- In your repository, go to Settings → Branches
- Edit the protection rule for your default branch
- Under Require status checks to pass before merging, add
Koalr Deploy Risk
When a PR scores Critical or triggers a DDL hard gate, the check run fails and GitHub prevents merge until the score improves or an admin overrides.
Configuring thresholds
Adjust the pass/fail thresholds for your organization on the Deploy Risk page:
| Setting | Default |
|---|---|
| High risk threshold (neutral) | 70 |
| Critical threshold (fail) | 85 |
| DDL hard gate | Always fail |
Difference from the GitHub Action
| Check Run (GitHub App) | GitHub Action | |
|---|---|---|
| Setup | Install App once | Add workflow file per repo |
| Score posted as | Native check run | PR comment |
| Branch protection | Yes (required status check) | No |
| Works without CI | Yes | Yes |
| Requires secrets in repo | No | Yes (KOALR_API_KEY) |
| Best for | Most teams | Teams that prefer workflow control |
Both approaches compute the same risk score. The check run is the recommended default for new installations.
Troubleshooting
Check run not appearing:
- Confirm the GitHub App is installed and has access to the repository
- Check that the repo is visible under Integrations → GitHub settings → Connected Repositories
- Review webhook delivery logs in the GitHub OAuth App settings (GitHub → Settings → Developer settings → OAuth Apps → Koalr)
Score is 0:
- The PR was not matched to a known repository in Koalr. Verify the repository is connected.
Check run stuck in "queued":
- This can happen if the Koalr API is temporarily unavailable. GitHub will retry the webhook. Check status.koalr.com for outages.