日本語 | English
GitHub Star Marker は、GitHub のユーザー / Organization ページ上で、表示されているリポジトリを自分がスター済みかどうか分かるようにするブラウザ拡張機能です。
スター済みのリポジトリには、リポジトリ名の横に黄色い星を表示します。未スター、確認中、トークン未設定などの状態では、GitHub の見た目を邪魔しない控えめな星として表示します。
- GitHub の pinned repositories でスター済みリポジトリを可視化
- Organization の repositories 一覧でスター済みリポジトリを可視化
- GitHub GraphQL API の
viewerHasStarredを使った正確な判定 - GitHub Personal Access Token を拡張機能のオプション画面に保存
- 短時間キャッシュで同じリポジトリへの API 呼び出しを削減
- Chrome / Firefox 向けにビルド可能
https://github.com/<user>https://github.com/<org>https://github.com/<user>?tab=repositorieshttps://github.com/<org>?tab=repositorieshttps://github.com/orgs/<org>/repositories
GitHub の DOM や画面構造が変わると、表示位置の調整が必要になる場合があります。
bun install
bun run buildChrome では dist/chrome-mv3 を unpacked extension として読み込んでください。
Firefox 用にビルドする場合:
bun run build:firefox生成された Firefox 用の出力 dist/firefox-mv2 を about:debugging から読み込んでください。
Chrome 向けの開発サーバー:
bun run devFirefox 向けの開発サーバー:
bun run dev:firefox型チェック:
bun run typecheck拡張機能のオプション画面を開き、GitHub Personal Access Token を保存してください。
- GitHub の Personal access tokens を開きます。
Fine-grained tokensでGenerate new tokenを選びます。Repository accessは、公開リポジトリだけ確認したい場合はPublic Repositoriesを選びます。Permissionsは基本的に追加しなくて大丈夫です。この拡張機能は GraphQL API でviewerHasStarredを読むだけで、リポジトリを書き換えません。- private repository も判定したい場合だけ、対象リポジトリを
Repository accessに含め、読み取りに必要な最小限の権限を付与してください。 - 作成した token をコピーし、拡張機能のオプション画面に貼り付けて保存します。
Classic token を使う場合は、公開リポジトリだけなら追加 scope なしで試せます。private repository を対象にする場合は repo scope が必要になることがありますが、可能なら fine-grained token を使い、対象リポジトリを絞ることをおすすめします
トークンは chrome.storage.local / browser.storage.local 相当のローカルストレージに保存されます。GitHub API への問い合わせ以外には使いません。
- Content script が GitHub ページ上のリポジトリリンクから
owner/repoを抽出します。 - Background script に
{ type: "CHECK_STARRED", repos: string[] }を送ります。 - Background script が GitHub GraphQL API にまとめて問い合わせます。
viewerHasStarredの結果をもとに、ページ上のリポジトリ名の横へ星を表示します。- 結果は短時間キャッシュされ、ページ内遷移や再描画で同じ問い合わせが増えすぎないようにします。
- GitHub Enterprise Server は現在サポート対象外です。
- GitHub のページ構造変更により、星が表示されなくなる可能性があります。
- Firefox ビルドでは、WXT から Firefox 用 manifest に関する警告が表示される場合があります。
MIT