GitHub の権限について
サインインの途中で、GitHub の許可画面が開きます。Fervio で非公開リポジトリを扱うには、GitHub 側のルールでどうしても広いアクセス権限を与える必要があり、その理由を説明します。最終更新 2026 年 8 月 9 日。
許可画面に出るアラート
GitHub の許可画面には、「Full control of private repositories」(非公開リポジトリへのフルアクセス) と表示されます。心配になる表示のため、ここで手が止まると思います。
この文言を決めているのは GitHub であって、Fervio ではありません。GitHub の許可には「課題だけを扱う」という選択肢がなく、非公開リポジトリの課題を読み書きするには、この広い許可を求めるしかないためです。
ただし、渡すことになる権限の広さと、Fervio が実際に使う範囲は、同じではありません。その差が「GitHub に止められているから」なのか「Fervio がしないだけ」なのかは、次の節で書き分けます。
渡す権限は、狭められません
先に、いちばん誤解されやすいところを書きます。GitHub の repo は、まとめて 1 つの権限です。「課題だけ」「コードは除く」のように一部だけを渡す仕組みが、GitHub 側にありません。
つまり、渡したトークンは技術的にはソースコードも読めます。Fervio が読まないのは、GitHub がそれを止めているからではなく、Fervio のプログラムがその API を一度も呼んでいないからです。ここは「できない」ではなく「しない」であり、区別して書いておきます。
権限を細かく指定できる仕組み (GitHub App) もありますが、個人アカウントが持つ Projects を扱えません (2026 年 8 月に確認)。個人の Project を開けるようにするには、この方式を使うしかありません。
GitHub の側で確実に狭められるのは、1 か所だけです。公開リポジトリだけで入ること (public_repo) です。この入り方なら、非公開リポジトリには Fervio がそもそも到達できません。約束ではなく、GitHub が止めます。
サインインの入り方と、渡す権限
サインインの入口によって、GitHub に渡す権限が変わります。かっこの中は GitHub が使っている権限の名前で、許可画面にもこの単位で出ます。
| 入り方 | 渡す権限 | 許可画面の表示 | 扱える範囲 |
|---|---|---|---|
| 非公開も含める (既定) | repo project |
「非公開リポジトリへのフルアクセス」が出ます | 公開・非公開の両方 |
| 公開リポジトリだけ | public_repo project |
その表示は出ません | 公開リポジトリだけ |
| 組織の Project も使う | 上に read:org を追加 | 所属組織の読み取りが加わります | 組織が持つ Project も |
| 共有リンクで閲覧する | サインイン自体が不要です | 何も読みません | 共有されたスナップショットの閲覧 |
組織の read:org は、最初から全員には求めません。組織の Project を使うと決めた人に、その場で追加の許可をお願いします。
読むもの
| したいこと | GitHub から読むもの | 要る権限 |
|---|---|---|
| Project を選ぶ | 自分が持っている Projects の名前 | project |
| マップを開く | Project の項目と、そこに載っている課題の題名・状態・担当者 | project と repo |
| リリースの行を出す | 課題に付いているマイルストーン | repo |
| 課題を取り込む | リポジトリの名前と、未対応の課題の題名 | repo |
| 組織の Project を選ぶ | 所属している組織の名前 | read:org |
公開リポジトリだけで入った場合は、repo のところが public_repo になります。読める課題も公開リポジトリのものだけになります。
書くもの
書き込みが起きるのは、あなたが画面で操作したときだけです。開いているだけ、見ているだけでは何も書きません。定期的に動く処理もありません。
| あなたがすること | GitHub に書かれること | 要る権限 |
|---|---|---|
| Project を初めてマップにする | Journey と Step の 2 つのフィールドを作ります | project |
| ジャーニーやステップを足す | そのフィールドに選択肢を 1 つ足します | project |
| スプリントを使い始める | Iteration フィールドを 1 本作り、2 週間のサイクルを 3 本敷きます | project |
| カードを別のスプリントへ動かす | そのカードの Iteration の値を変えます | project |
| ボードでカードを別の列へ動かす | そのカードの Status の値を変えます | project |
| カードを別の列へ動かす | そのカードの Journey / Step の値を変えます | project |
| カードを別のリリース行へ動かす | その課題のマイルストーンを変えます | repo |
| カードを新しく作る | 課題を 1 件作り、Project に載せます | repo と project |
| 既にある課題を取り込む | その課題を Project に載せます | project |
| カードをマップから外す | Project から項目を外します。課題そのものは消えません | project |
| 新しい Project を作って始める | Project を 1 つ作ります | project |
| Fervio が作った Project を消す | その Project を削除します。確認したうえで、Fervio が作ったものだけ | project |
この表に無い書き込みはしません。
触れないもの
| 対象 | 扱い |
|---|---|
| ソースコード | 読みません。ファイルの中身を取得する API を呼ぶ箇所が、Fervio のプログラムに 1 つも存在しません |
| 課題の本文 | 読みません。マップに出すのは題名と状態だけです |
| プルリクエスト | 読みも書きもしません |
| リポジトリの設定・Webhook・Actions | 触れません |
| 課題の削除 | しません。マップから外しても、課題は GitHub に残ります |
公開リポジトリだけで使う
非公開リポジトリを扱う予定がないなら、公開リポジトリだけの権限で入れます。この入り方なら、許可画面に「非公開リポジトリへのフルアクセス」は表示されません。
そのかわり、非公開リポジトリにある課題はマップに出ません。あとから非公開も扱いたくなったときは、入り直して権限を足せます。
組織の Project を使うとき
組織によっては、第三者のアプリを承認する設定があります。承認されていないと、Project が一覧に出てきません。その場合は、組織のオーナーに GitHub の設定 (Settings → Third-party access) で Fervio を承認してもらってください。
それでも不安なときに
- いつでも取り消せます。 GitHub の Settings → Applications から、Fervio に渡した許可を取り消せます。取り消したあとは、Fervio が GitHub のデータを読むことも書くこともできなくなります。マップの並び順は Fervio 側に残りますが、GitHub のデータには影響しません。
- 試すためのアカウントを作る。 GitHub のアカウントをもう 1 つ作り、そこに Project を 1 つ置いて試すのが、いちばん確かめやすい方法です。
組織の Project を使うとき
組織が持つ Project を開くときにだけ、所属組織を読む許可 (read:org) を追加で求めます。組織の一覧を表示するために要るもので、組織を使うと決めた人にその場で求めます。全員に最初から求めることはしません。
組織によっては、第三者のアプリを承認する設定があります。承認されていないと、Project が一覧に出てきません。その場合は、組織のオーナーに GitHub の設定 (Settings → Third-party access) で Fervio を承認してもらってください。
変わったときは
求める許可を増やすときは、このページを先に直します。保存するものについては、プライバシーのページに数え上げられる形で書いてあります。疑問があれば [email protected] までどうぞ。