GitHub Issueの添付ファイルはAPIやPATではダウンロードできない

Tadashi Shigeoka ·  Fri, August 8, 2025

会社でGitHub Enterpriseを利用しており、Issueに添付されたファイルを一括でダウンロードして処理する、という自動化の要件が生まれました。 一見簡単そうに思えたこのタスクですが、結果的にGitHubの仕様上の壁に突き当たりました。今回は、その経緯と最終的な結論を共有します。

やりたかったこと

GitHubのIssueには、画像やドキュメントファイルなどをドラッグ&ドロップで簡単に添付できます。この添付ファイルを、CI/CDパイプラインやバッチ処理の中でプログラムから自動的にダウンロードすることが目的でした。

添付ファイルのURLは、以下のような形式で取得できます。

https://[GHE_HOSTNAME]/user-attachments/files/[FILE_ID]/[FILENAME]

試したこと(そして失敗)

Personal Access Token (PAT) を使えば認証できるだろうと考え、以下の方法を試しました。

1. GitHub CLI (gh) を使う方法

まずはghコマンドでAPI経由のアクセスを試みました。

# gh apiで直接URLを叩いてみる
gh api --method GET "https://[GHE_HOSTNAME]/user-attachments/files/12345678/sample.docx" > ~/Downloads/sample.docx
 
# 結果: 404 Not Found
# gh: HTTP 404: Not Found (https://[GHE_HOSTNAME]/api/v3/user-attachments/files/12345678/sample.docx)

2. curl とPATを使う方法

次に、PATをAuthorizationヘッダーに含めてcurlで直接リクエストを送ってみました。

curl -H "Authorization: token [YOUR_PAT]" -L -o sample.docx "https://[GHE_HOSTNAME]/user-attachments/files/12345678/sample.docx"
 
# 結果: 404 Not Found

いずれの方法も404エラーとなり、ファイルをダウンロードできませんでした。 PATのスコープが不足しているのか、あるいは全く別のAPIエンドポイントが存在するのか、ドキュメントを探しても明確な答えが見つからなかったため、GitHubサポートに問い合わせてみることにしました。

結論:API経由のダウンロードは現在サポートされていない

サポートから非常に明確な回答が得られました。結論から言うと、

「現状、Issue添付ファイルのダウンロードはAPIでサポートされていない」

とのことです。

サポートからの回答の要点は以下の通りです。

  • Issueの添付ファイル機能は、APIをサポートしていません。
  • アクセス制御は有効なブラウザセッションに紐づいています。
  • そのため、Personal Access Token (PAT)、OAuth App、GitHub AppといったAPIアクセスで利用される認証方法には対応していません。
  • 結果として、ファイルのダウンロードはブラウザUIを介して手動で行うしかありません。

サポートからの回答(原文):

We apologize for the confusion caused. Currently, the API does not support the issue attachment feature, which means attachments cannot be added or retrieved programmatically. Instead, access control is tied to a valid browser session and does not support the use of Personal Access Tokens (PATs), OAuth Apps, or GitHub Apps, which are used for API access. As a result, downloading attachments is only possible through the browser interface.

We’ve received similar feedback regarding an attachment API endpoint and we’ve added your report as a +1 to the existing internal tracking Issue; however, we can’t say if or when new functionality may be available. At this point, we can only recommend that you keep an eye on the GitHub Blog and the Changelog for related updates. We understand this may be frustrating and wish we had better news to share, but we’re afraid we don’t at this time.

まとめ

GitHub Issueに添付されたファイルをAPI経由で自動ダウンロードしようとする試みは、仕様上の制約により実現不可能であることがわかりました。

同様の機能要望は多くのユーザーから寄せられているようで、GitHub側も機能改善の候補として内部でトラッキングしているとのことです。しかし、具体的な実装時期は未定のため、現時点では「ブラウザから手動でダウンロードする」または「添付ファイルではなく、Gitリポジトリ内でファイルを管理する」といった代替案を検討する必要がありそうです。

将来的なアップデートに期待しつつ、GitHub BlogChangelogを定期的にチェックするのが良いでしょう。

同じ問題で時間を溶かしてしまう方が一人でも減れば幸いです。

以上、GitHub Issueの添付ファイルをAPIでダウンロードしたかった、現場からお送りしました。