> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fullotto.app/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub

> Install the Otto GitHub App and choose which repositories Otto reviews.

Otto connects to GitHub through the Otto GitHub App. Once it's installed, Otto reviews pull requests in the repositories you grant it.

## Install the GitHub App

<Steps>
  <Step title="Start from Otto">
    In onboarding, or in **Settings → Integrations**, click **Connect GitHub**.
  </Step>

  <Step title="Choose an account and repositories">
    Install the app on your GitHub organization and pick the repositories Otto can access:

    * **All repositories**: Otto can review any current or future repository.
    * **Only select repositories**: Otto can review only the repositories you list.

    <Tip>Start with one or two repositories, check the reviews look right, then grant more.</Tip>
  </Step>

  <Step title="Return to Otto">
    GitHub sends you back to Otto, which verifies the installation. Reviews are enabled automatically for the repositories you granted.
  </Step>
</Steps>

## Change which repositories Otto reviews

* **Grant more repositories** from the Otto app's page in your GitHub organization settings (**Settings → GitHub Apps → Otto → Configure**).
* **Stop reviewing a repository** by pruning it in Otto's **Settings → Integrations**, or by removing it from the app's repository access on GitHub.
* **Change how one repository is reviewed** with an [`otto.yml`](/configuration/otto-yml) at its root.

## Permissions

The Otto GitHub App requests:

| Permission | Access | Why |
| - | - | - |
| **Contents** | Read | Read code and `otto.yml` to review changes in context. Ticket automation also needs write access to push branches. |
| **Pull requests** | Read & write | Read diffs, post reviews, and reply to comments |
| **Issues** | Read & write | Read and reply to PR conversation comments |
| **Checks** | Read & write | Post the Otto Review and Otto Approval checks |
| **Metadata** | Read | Required by GitHub for every app |
| **Email addresses** | Read | Account permission, used to sign you in |

## When Otto reviews a pull request

Otto starts an automatic review when:

* A pull request is opened, unless it's a draft. A draft is reviewed when it's marked ready for review.
* Someone requests a review from Otto.
* New commits are pushed to a pull request Otto has already reviewed or commented on. With the [Otto Approval check](/setup/merge-gates#the-otto-approval-check) on, Otto reviews every push to an open, non-draft PR.

A comment of `/otto review` or `/otto re-review` starts a review even when the repository's `otto.yml` turns automatic reviews off or a skip rule matches. See [Commands](/reviews/commands).

Otto doesn't review automatically when:

* Automatic PR reviews are turned off for the workspace in **Settings → Reviews**.
* The repository's `otto.yml` turns reviews off or a [skip rule](/configuration/skipping-reviews) matches.
* The PR changes more than 100 files. [Ignored files](/configuration/ignoring-files) don't count toward this limit.
* A bot pushed the commit (except allowlisted bots such as Dependabot and Renovate).

## Next steps

<CardGroup cols={2}>
  <Card title="Require Otto before merging" icon="shield-check" href="/setup/merge-gates">
    Add Otto's checks to branch protection.
  </Card>

  <Card title="Configure the repository" icon="file-code" href="/configuration/otto-yml">
    Add an `otto.yml` for per-path depth and instructions.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.