Skip to main content
Note: Approvability is currently in beta. If you would like to use this feature, please contact us at [email protected].
Approvability

How It Works

When a PR is opened or updated, Macroscope runs a new “Approvability” check. Approvability requires the changes in the PR to clear two hurdles: eligibility and correctness. If both hurdles are cleared, Macroscope will approve the PR automatically. Approvability The Approvability check appears as Macroscope - Approvability Check in two places on your PR:
  1. Checks Tab: Click the “Checks” tab at the top of your PR to see the full check run with detailed results for each check
  2. PR Conversation: Macroscope will post a comment in the PR conversation with the results of the Approvability check.
Approvability

The Two Checks

1. Eligibility ✅

Macroscope looks at all the changes made by the PR, evaluating whether it’s a good candidate for auto-approval. In addition to the changes, Macroscope also considers factors such as code ownership, git blame history and the author’s role.
  • If your repo has a CODEOWNERS file, Macroscope will consider the author’s relationship to the changed files — for example, a trivial formatting change to a file owned by someone else is very different from a logic change in a sensitive module.
  • When no CODEOWNERS file exists, Macroscope still considers signals like the author’s role and blame history for the most important changed files.
  • Macroscope applies eligibility guidelines by default.
  • You can optionally add a macroscope_approvability.md file in your repo root to define custom eligibility rules. When present, custom eligibility rules are treated as the highest priority and applied on top of the default guidelines.

Default Eligibility Guidelines

Below are some of the eligibility guidelines that Macroscope uses by default when assessing a PR’s eligibility for auto-approval.
Some examples of PRs that are typically good candidates for auto-approval:
- Changes that don’t impact runtime behavior (e.g. documentation, unit tests, code behind a feature flag).
- Simple, low-risk, self-contained changes (e.g. updating copy, adding a small endpoint)
- Straightforward bug fixes (clear intent, limited scope, obvious resolution).

Some clear signs a PR is **not** eligible for auto-approval:
- High complexity (large or difficult-to-review change)
- Schema impact (e.g. major database or API changes)
- Significant runtime behavior changes (outside small, self-contained bug fixes)
- Major side effects (breaking changes or wide-reaching behavior changes)
- Major refactors
- Production deployment or significant infrastructure changes
- Any security, billing, authentication, or other sensitive-data changes

Example Custom Eligibility Rules

If you want to add custom eligibility rules on top of the default eligibility guidelines, you can do so by creating a macroscope_approvability.md file and defining your own rules. Below are examples of some of the custom eligibility rules that we have defined for our own use in our macroscope_approvability.md file.
If a PR changes files in any of the following paths, DO NOT auto-approve:
- services/auth
- services/billing
- targets/auth
FAQ: What if I don’t have a macroscope_approvability.md file?No worries. If no macroscope_approvability.md file exists, Macroscope’s analysis will rely on its own default eligibility guidelines for determining eligibility.

2. Correctness ✅

Confirms the PR passed Macroscope’s code review Correctness check with zero issues.
  • Waits for the Correctness check run to complete.
  • If any issues were flagged, this check fails.

Setting Up Approvability

  1. (Recommended) Add a CODEOWNERS file to your repository. Even without one, Macroscope uses blame history and author role as alternative signals for ownership.
  2. (Optional) Create a macroscope_approvability.md file in your repo root defining your eligibility criteria. If no file is provided, Macroscope’s analysis will rely on its own standard judgment for determining eligibility.

Notes

  • Macroscope cannot approve its own PRs (self-approval prevention).
  • Both checks must pass: a single failed check (for whatever reason) blocks auto-approval.
  • Code ownership is evaluated as part of eligibility. If no CODEOWNERS file exists, Macroscope uses the author’s role and blame history as alternative signals.
  • Check results include detailed reasoning so authors understand any failures.
FAQ: What happens if the Approvability check fails?The PR won’t be auto-approved, but you can still get manual approval as usual.