---
title: "GitHub"
description: "Install the Fredrin GitHub App to get pull requests opened from tickets, CI status on the board, and tickets that complete themselves when their PR merges."
url: "https://www.fredrin.com/docs/github"
updated: "2026-08-11"
---

# GitHub

Tickets are GitHub-shaped. A ticket has a branch, usually a pull request, and CI status flowing back onto its card. Merging the PR completes the ticket.

## What the integration gives you

- **Pull requests opened from tickets**, with the branch and body already right.
- **CI status on the board**, so a red build is visible without opening GitHub.
- **Auto-complete on merge**: a merged pull request moves its ticket to Completed by webhook.
- **Conflict handling** before a push, rather than after GitHub rejects it.

## Installing the App

Install the Fredrin GitHub App on the account or organisation that owns your repositories, and grant it access to the repositories you want on a board.

Fredrin resolves which installation covers a project's repository, keeps the mapping current, and mints short-lived tokens per operation rather than holding a long-lived personal token.

You can grant access to selected repositories rather than all of them. Fredrin only needs the ones you intend to run tickets against.

## Without the App

The GitHub CLI is optional. If `gh` is not installed, Fredrin opens pull requests over the REST API instead, so a missing CLI is not a blocker.

What you lose without the App installed is the webhook: ticket auto-completion on merge depends on GitHub telling Fredrin the pull request merged. Without it, complete the ticket by hand.

## What flows back

| Signal | Effect on the board |
|---|---|
| Pull request opened | The card links it. |
| Check run completed | CI status appears on the card. |
| Review submitted | Visible in ticket activity. |
| Pull request merged | The ticket moves to Completed. |
| Pull request closed unmerged | The ticket stays where it is, for you to decide. |

## Branch protection and required reviews

Fredrin respects your repository's own rules. If a branch requires reviews or passing checks, Fredrin's merge path is subject to them exactly as a human's would be.

If you want an approval requirement enforced *inside* Fredrin as well, before a Worker is even dispatched, use [approval gates](https://www.fredrin.com/docs/board/review#approval-gates). The two compose: a plan gate in Fredrin and a required review on GitHub cover different ends of the same work.

## Permissions

The App asks for what it needs to do the job and no more: read your repository contents, write branches and pull requests, and read check runs. It does not need admin, and it does not need access to repositories you have not selected.

## Troubleshooting

**Pull requests are not opening.** Check that the App has access to that specific repository, and that the branch pushed successfully.

**Tickets are not completing on merge.** The webhook is the mechanism. Confirm the App is installed on the repository's owner rather than only on another organisation.

**Clone failures on a new project.** Fredrin inherits your `gh` configuration's git protocol. If `gh` is configured for SSH and this machine has no known-hosts entry for GitHub, the clone fails before authentication is even attempted.

## Next steps

- [Review and merge](https://www.fredrin.com/docs/board/review) - the human half.
- [Branches and worktrees](https://www.fredrin.com/docs/board/worktrees) - what gets pushed and from where.
- [Automations](https://www.fredrin.com/docs/workers/automations) - webhook triggers.
