FeaturesDeploy Risk

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).

PlanCheck run behavior
FreeCheck runs are not posted to GitHub. Use the Koalr dashboard for deploy risk scoring (limited to 10 PRs per week).
GrowthCheck runs post a risk score (0--100) and a signal breakdown table on every PR automatically.
BusinessEverything 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

  1. A developer opens or pushes to a pull request
  2. GitHub sends a pull_request webhook event to Koalr
  3. Koalr computes the risk score in the background (typically within 5–15 seconds)
  4. A check run named Koalr Deploy Risk appears under the PR's Checks tab

The check run shows:

ScoreCheck 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:

PermissionReason
pull_requests: readRead PR metadata and changed files
checks: writePost the check run result
contents: readFetch 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:

  1. In your repository, go to Settings → Branches
  2. Edit the protection rule for your default branch
  3. 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:

SettingDefault
High risk threshold (neutral)70
Critical threshold (fail)85
DDL hard gateAlways fail

Difference from the GitHub Action

Check Run (GitHub App)GitHub Action
SetupInstall App onceAdd workflow file per repo
Score posted asNative check runPR comment
Branch protectionYes (required status check)No
Works without CIYesYes
Requires secrets in repoNoYes (KOALR_API_KEY)
Best forMost teamsTeams 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.