What Fervio asks for
Signing in takes you to GitHub's consent screen. Using Fervio with private repositories means granting broad access — GitHub's own rules leave no narrower option — and this page explains why. Last updated 9 August 2026.
The part that will make you pause
GitHub's screen will say "Full control of private repositories." That is strong wording, and pausing there is the right instinct.
Those words are GitHub's, not Fervio's. GitHub offers no issues-only permission, so working with issues in a private repository means asking for the broad one. There is no narrower option to pick.
So what you can grant and what gets used are two different things. The next section spells out which part of that gap GitHub enforces, and which part is only a promise from the code.
The scope cannot be narrowed
The most misread part first. GitHub's repo is one
all-or-nothing scope. There is no mechanism on GitHub's side to hand over
"issues only" or "everything except code."
So the token you grant can technically read your source code. Fervio does not read it because the program never calls that API — not because GitHub is stopping it. That is a "does not," not a "cannot," and it is worth stating plainly.
There is a mechanism with fine-grained permissions (GitHub Apps), but it cannot reach Projects owned by a personal account (checked August 2026). Opening a personal Project leaves no other option than this one.
There is exactly one narrowing that GitHub itself enforces: signing in
with public repositories only (public_repo). On that path
Fervio cannot reach private repositories at all. That one is not a
promise — GitHub stops it.
Ways in, and what each hands over
What you hand over depends on which sign-in you use. The names in code are GitHub's own scopes, and the consent screen is organised around exactly these.
| Way in | Scopes granted | On the consent screen | What it can reach |
|---|---|---|---|
| Private repos included (default) | repo project
user:email |
"Full control of private repositories" appears | Public and private |
| Public repos only | public_repo project
user:email |
That line never appears | Public repositories only |
| Organization Projects too | Adds read:org |
Reading your org membership is added | Projects owned by an organization |
| Viewing a shared link | No sign-in at all | Nothing is read | The shared snapshot |
read:org is never asked of everyone up front.
It is requested at the moment you decide to open an organization Project.
user:email reads your verified email address, and nothing
else about your account. It is there so that signing in with GitHub, with Linear, or with
an email link all land on the same Fervio account. Fervio does not send you anything
except the sign-in link you ask for.
What it reads on GitHub
| When you | It reads | Needs |
|---|---|---|
| Pick a Project | The names of the Projects you own | project |
| Open a map | The Project's items, and the title, state, assignee, estimate, labels and sub-task progress of the issues on them | project and repo |
| Open a card | That issue's description, plus the assignees and labels you can pick from. One card at a time, fetched when you open it | repo |
| See release rows | The milestone on each issue | repo |
| Import issues | Repository names and the titles of open issues | repo |
| Pick an organization Project | The names of organizations you belong to | read:org |
If you signed in with public repositories only, every repo
above becomes public_repo, and only public issues are read.
What it writes on GitHub
Nothing is written unless you do something in the interface. Opening a map, or leaving it open, writes nothing. There is no background job.
| When you | It writes | Needs |
|---|---|---|
| Map a Project for the first time | Creates two fields, Journey and Step | project |
| Add a journey or a step | Adds one option to that field | project |
| Start using sprints | Creates one Iteration field with three two-week cycles | project |
| Move a card to another sprint | Changes that card's Iteration value | project |
| Move a card across the board | Changes that card's Status value | project |
| Move a card across columns | Changes that card's Journey / Step value | project |
| Move a card to another release row | Changes the milestone on the real issue | repo |
| Create a card | Creates one issue and puts it on the Project | repo and project |
| Import an existing issue | Puts that issue on the Project | project |
| Change a card's state | Changes that card's Status value | project |
| Change the assignee | Replaces who the issue is assigned to | repo |
| Change the estimate | Changes the value of the Project's estimate field | project |
| Add or remove labels | Replaces the labels on that issue | repo |
| Edit the description | Overwrites that issue's body | repo |
| Remove a card from the map | Removes the item from the Project. The issue itself is not deleted | project |
| Start from a new Project | Creates one Project | project |
| Delete a Project Fervio created | Deletes that Project, after you confirm. Only ones Fervio made | project |
Signing in with Linear
Linear asks for read, write and
issues:create. Linear has no repositories and no source code,
so there is no equivalent of the line above that makes people pause — the consent screen
says what it means. Fervio reads teams, projects, issues, cycles and labels, and writes
only issues and the labels that hold the map together.
What it reads on Linear
| To do this | It reads | Scope |
|---|---|---|
| Create a board | The names of the teams you belong to | read |
| Open a map | The team's projects, issues, cycles and labels, and each issue's title, state, assignee, estimate, due date, labels and sub-task progress | read |
| Show the journey bands | Initiative names, and the projects under them | read |
| Open a card | That issue's description. One card at a time, fetched when you open it | read |
What it writes on Linear
| When you | It writes | Scope |
|---|---|---|
| Move a card to another column | Changes the project that issue belongs to | write |
| Move a card to another sprint | Changes that issue's cycle | write |
| Move a card to another release row | Swaps the release label on that issue | write |
| Edit the description | Overwrites that issue's description | write |
| Create a card | Creates one issue | issues:create |
| Remove a card from the map | Archives that issue | write |
| Add a step | Creates one project | write |
| Add a journey | Creates one initiative and links projects to it | write |
| Add a release row | Creates one label that belongs to Fervio | write |
Changing a state, assignee, estimate or labels from the card panel works on GitHub only, for now. On Linear the card panel edits the description.
Nothing outside these two tables is ever written.
What it never touches
| Subject | Treatment |
|---|---|
| Source code | Never read. There is no call to any file-contents API anywhere in the program |
| Pull requests | Neither read nor written |
| Repository settings, webhooks, Actions | Never touched |
| Deleting issues | Never. Removing a card leaves the issue on GitHub |
Public repositories only
If you have no plans to touch private repositories, you can sign in with public access only. That path never shows "Full control of private repositories."
Issues in private repositories will not appear on the map. If you change your mind later, sign in again and the scopes are added.
Start with public repositories only
If you are still uneasy
- Revoke at any time. Under Settings → Applications on GitHub, revoking Fervio's access stops it reading or writing anything from that moment on. Your map layout stays on Fervio's side, but nothing on GitHub is touched.
- Try it on a throwaway account. A second GitHub account with one Project in it is the safest way to see what this actually does.
Organization Projects
Opening a Project owned by an organization asks for one extra permission — read:org, which reads the list of organizations you belong to — and only at the moment you choose the organization path. It is never requested up front.
Some organizations also require third-party apps to be approved. If yours does, the Projects will not appear until an organization owner approves Fervio under Settings → Third-party access.
When this changes
If Fervio ever asks for more, this page changes first. The privacy page lists what is stored in a form you can count. Questions go to [email protected].