mcpField
G
gh-attach

gh-attach

github.com/github開発40.5k65 回インストール1 日前に更新
リポジトリ

gh-attach について

gh-attach は、GitHub CLI からファイルをアップロードして添付 URL を取得するスキルです。GitHub の issue や pull request に表示可能なファイルを添付でき、プライベートリポジトリにも対応します。

主な機能

  1. 01ファイルをアップロードして URL を出力
  2. 02指定先への添付ファイルのダウンロード
  3. 03issue や pull request のコメントへの URL 埋め込み
  4. 04GitHub Cloud と GHES のリポジトリに対応

活用シーン

  1. 01pull request にスクリーンショットを添付
  2. 02issue コメントに動画やファイルを追加
  3. 03プライベートリポジトリの添付ファイルを取得

インストール

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

$npx skills add https://github.com/github/awesome-copilot --skill gh-attach

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

詳細

gh-attach

gh attach は、ファイルを GitHub の内部ユーザー添付ファイルエンドポイント(公開 API はありません)にアップロードして URL を出力します。この URL は、貼り付けた場所で GitHub によって自動的にレンダリングされます(画像/動画/ファイル)。URL の公開範囲はリポジトリの公開範囲を引き継ぐため、プライベートリポジトリへのアップロードは非公開のままです。

前提条件

gh extension list | grep -q 'gh attach' || gh extension install sudosubin/gh-attach

アップロードには gh トークンではなく、GitHub のブラウザーセッション Cookie を使用します。デフォルトでは、gh-attach が対応するブラウザーアカウントを選択できるよう、gh で認証しておく必要があります。誤ったアカウントが選択された場合は、--browser <name> --profile <name> を追加してください。ヘッドレス環境で使用する場合は、GH_ATTACH_SESSION_TOKEN に値が user_session Cookie のみのセッショントークンを設定してください。これはアカウントの完全な認証情報として扱ってください。

手順

1. アップロード:絶対パスを引用符で囲んで指定します。リポジトリ内では -R は省略可能です。GHES の場合は -R host/owner/repo を使用します。コマンドは URL を 1 行で出力します。GitHub が自動的にレンダリングするため(画像/動画/ファイル)、そのまま使用してください。

URL=$(gh attach "$FILE" -R <owner>/<repo>)

2. 埋め込み(常に --body-file - を使用します。例:gh pr comment/edit、gh issue comment/edit)。

printf '## Screenshots\n\n%s\n' "$URL" | gh pr comment <pr> -R <owner>/<repo> --body-file -

3. ダウンロード:保存先を明示的に指定します。プライベートな添付ファイルには、アクティブな gh トークンを使用します。認証に失敗した場合は、ブラウザー Cookie が代替として使われます。

gh attach download "$URL" -O "$FILE"

注意事項

  • プライベートリポジトリ:URL は認証された閲覧者にのみ表示されます。匿名での取得では 404 または 403 が返されるのが想定される動作です。
  • サイズ調整:URL のみを記載する代わりに、<img width="800" src="$URL"> を埋め込みます。
  • GitHub Cloud と GHES で、受け入れ可能なファイル拡張子とコンテンツタイプが決まります。

コメント