mcpField
U
using-gh-cli

using-gh-cli

github.com/trailofbits開発7.9k212 回インストール今日更新
リポジトリ

using-gh-cli について

using-gh-cli は、認証済みの `gh` コマンドラインで GitHub の作業を行うためのスキルです。リポジトリの閲覧、API の利用、プルリクエスト、Issue、Release、Actions の操作を扱います。

主な機能

  1. 01認証済み GitHub アクセス
  2. 02リポジトリをクローンしてコードを閲覧
  3. 03プルリクエストと Issue の管理
  4. 04GitHub API データの取得
  5. 05Release と Actions の確認

活用シーン

  1. 01GitHub リポジトリのファイルを読む
  2. 02プルリクエストを確認または作成
  3. 03リポジトリ情報や API 結果を取得
  4. 04ワークフローの実行状況やログを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/trailofbits/skills --skill using-gh-cli

インストール後、Claude Code で/using-gh-cliを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
actions.md
api.md
issues.md
pull-requests.md
releases.md
repos-and-files.md

詳細

GitHub CLI(gh)の使用

使用する場面

  • GitHub リポジトリのコードを閲覧または読む場合 — クローンして、Read/Glob/Grep を使用します
  • プルリクエスト、Issue、リリース、または Gist の表示や作成
  • リポジトリのメタデータや GitHub API のデータの取得
  • GitHub Actions(実行、ワークフロー)との連携
  • GitHub に関する作業で、通常なら curl、wget、または WebFetch を使うような場合

使用しない場面

  • GitHub 以外の URL(その場合は WebFetch または curl を使用します)
  • GitHub Pages(*.github.io)でホストされているだけの公開ウェブコンテンツ — これらは通常のウェブサイトです
  • ローカルの git 操作(git commit、git push) — git を直接使用します

基本原則

GitHub の URL には、curl、wget、または WebFetch ではなく、必ず gh を使用してください。 gh CLI はユーザーの認証済みトークンを自動的に使用するため、次のことが可能です。

  • プライベートリポジトリでも動作します
  • GitHub API のレート制限を回避できます(未認証:60 リクエスト/時、認証済み:5,000 リクエスト/時)
  • ページネーションを正しく処理します
  • 構造化された出力とフィルタリングを提供します

リポジトリのコードを閲覧する

GitHub リポジトリのファイルを読んだり閲覧したりするには、リポジトリをローカルにクローンし、通常のファイルツール(Read、Glob、Grep)を使用します。API 経由でファイルを 1 つずつ取得するよりも、はるかに高速で自然です。

# Clone to a session-scoped temp directory (cleaned up automatically on session end)
clonedir="$TMPDIR/gh-clones-${CLAUDE_SESSION_ID}"
mkdir -p "$clonedir"
gh repo clone owner/repo "$clonedir/repo" -- --depth 1

クローンした後は、Explore エージェント(Task ツールで subagent_type=Explore を指定)を使って、クローンしたリポジトリを調査します。Explore エージェントはクローン全体を対象に Read、Glob、Grep を効率的に使用できます。これらのツールを 1 つずつ呼び出すよりもはるかに便利です。

Task(subagent_type="Explore", prompt="In $clonedir/repo/, find how authentication is implemented")

すでに把握しているクローンで対象を絞って検索する場合は、Read/Glob/Grep を直接使用します。

  • gh repo clone はユーザーの認証済みトークンを使用するため、プライベートリポジトリでも動作します
  • --depth 1 を指定すると、クローンが高速になります(最新のコミットのみ)
  • クリーンアップは不要です — SessionEnd フックがクローンディレクトリを自動的に削除します
  • クローンせずに単一ファイルを手早く検索する必要がある場合に限り、gh api を使用します

クイックスタート

# View a repo
gh repo view owner/repo

# List and view PRs
gh pr list --repo owner/repo
gh pr view 123 --repo owner/repo

# List and view issues
gh issue list --repo owner/repo
gh issue view 456 --repo owner/repo

# Call any REST API endpoint
gh api repos/owner/repo/contents/README.md

# Call with pagination and jq filtering
gh api repos/owner/repo/pulls --paginate --jq '.[].title'

よくあるパターン

代わりに使用するもの
github.com/owner/repo に対する WebFetchgh repo view owner/repo
blob/tree URL に対する WebFetchgh repo clone でクローンし、Read/Glob/Grep を使用
raw.githubusercontent.com/... に対する WebFetchgh repo clone でクローンし、Read を使用
api.github.com/... に対する WebFetchgh api <endpoint>
curl https://api.github.com/...gh api <endpoint>
-H "Authorization: token ..." を指定した curlgh api <endpoint>(認証は自動です)
リリースアセットのダウンロードに使う wgetgh release download --repo owner/repo

参考資料

  • プルリクエスト — PR の一覧表示、閲覧、作成、マージ、レビュー
  • Issue — Issue の一覧表示、閲覧、作成、クローズ、コメント
  • リポジトリとファイル — リポジトリの表示、ファイルの閲覧、クローン
  • API — REST/GraphQL への直接アクセス、ページネーション、jq によるフィルタリング
  • リリース — リリースの一覧表示、作成、ダウンロード
  • Actions — 実行の表示、ワークフローのトリガー、ログの確認

コメント