本記事はAIを利用して作成した技術解説・実装例です。掲載するコードや手順は一次情報を基に構成していますが、筆者による実機での動作確認は行っていません。環境やバージョンによって動作が異なる場合があります。
GitHub CLIのアップデートにより、IssueやPull Request、コメントの作成・編集時にローカルの画像や動画をアップロードしてインラインで参照できる --attach フラグが追加されました。本記事では、公式の変更履歴(Changelog)をもとに、この機能の仕様や利用時のポイント、セキュリティ、対応ファイル形式などを詳しく整理します。
公式情報から確認できること
一次情報によると、GitHub CLIの --attach フラグは全プランのユーザーに対して一般提供(GA)が開始されています。この機能を利用するには、GitHub CLIを v2.99.0 以降にアップデートする必要があります。
従来、コマンドラインからIssueやPull Requestを作成する際、画面の不具合や描画結果、エラー画面などを伝えるためには、一度ブラウザを開いてファイルをコメント欄にドラッグ&ドロップし、生成されたリンクをコピーして貼り付けるといった手順が必要でした。しかし、--attach フラグの登場により、テキストを記述する同じコマンド内で直接画像や動画を添付できるようになりました。これにより、バグ報告時にスクリーンショットを同時に送信したり、Pull Requestで修正前後の比較を示したりすることが容易になります。また、コーディングエージェントが結果をテキストだけでなく視覚的な画像として提示することも可能になっています。
構成要素と対応コマンド
--attach フラグは繰り返し指定(リピータブル)が可能であり、Markdownテキストを記述する以下のコマンド群で利用できます。
gh issue creategh issue editgh issue commentgh pr creategh pr editgh pr comment
Markdown内での参照と自動書き換えの挙動
一次情報では、本文中にすでに記述されているローカルパスの扱いについて説明されています。本文中で  のようにローカルパスが参照されている場合、アップロードされたアセットにその場で書き換えられ、指定した代替テキスト(alt text)が維持されます。一方で、ファイルを添付したものの本文中で一度も参照しなかった場合は、自動的に本文の末尾に追加される仕組みになっています。
代替テキスト(Alt text)の指定方法
添付するファイルに対して説明(代替テキスト)を付与する場合、パスのあとに # を続けて記述します。
記述例:--attach './login.png#The login error state'
もし代替テキストを省略した場合、GitHub CLIはファイル名を代替テキストとしてフォールバックします。
投稿可能なメディア形式とファイルサイズ制限
利用可能なファイル形式およびサイズ制限については、公式情報で以下のように定義されています。
対応フォーマット: PNG、JPEG、GIF、WebP、SVG、MP4、MOV、WebM
サイズ制限(Webアップロードのフローに準拠):
画像およびGIF: 最大 10 MB
動画(Freeプラン): 最大 10 MB
動画(有料プラン): 最大 100 MB
なお、プレビュー期間は設けられておらず全プランで利用可能ですが、今回のリリースでは GitHub Enterprise Server はサポート対象外となっています。
セキュリティとアクセス制御に関するポイント
アップロード時の認証には、GitHub CLIがすでに使用している一般的なトークンタイプ(gh auth login によるOAuthトークン、またはクラシックなパーソナルアクセストークン)が利用されます。また、画像をアップロードする対象のリポジトリに対して、書き込み権限(Write access)が必要となります。
利用時の注意と今後の展望
【Windows環境で確認予定】 実機での動作確認やGUI環境における挙動の詳細については、今後の検証課題となります。特にPowerShellやコマンドプロンプト経由でのファイルパスの指定方法や、日本語ファイル名を含む場合の挙動などについては、環境ごとの差異に注意が必要です。
公式の案内では、gh help を実行することで詳細なフラグのリファレンスを確認できるとされています。最新の環境へアップデートした上で、ドキュメントを参照しながら利用を進めることが推奨されます。

コメント