GitHub issue/PR comment attachments (user-attachments)
- Free allowance
- No account-level byte quota stated; per-file only — 10 MB images/GIFs, 25 MB other files, 10 MB video on free plan (100 MB on paid)
- Verdict
- caveatusable, with a named limit or an unprobed read path
- Cost
- free tier
- Identity
- anonymousno card, no phone
- Binding limit
- per-object-cap25 MB/file
- Evidence
- reported4 sources; a third party said so
- Freshness
- stale on 2026-11-05checked 2026-10-21 (inherited); stale on 2026-11-05
| Free tier | no account-level byte quota stated; per-file only — 10 MB images/GIFs, 25 MB other files, 10 MB video on free plan (100 MB on paid) unit MB; metered on unstated |
|---|---|
| Price | none stated |
| Limits |
25 MB/file (10 MB images), per-comment attachment count not documented; uploads are immediate on attach, so a failed comment still leaves the asset |
| Binding | per-object-cap the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota |
| Identity | anonymous not published |
| Egress | free and unmetered — 'For public repositories, uploaded files can be accessed without authentication'; served from githubusercontent CDN, cached by Camo |
| Per-object cap | 25 MB/file (25000000 bytes) |
| Retention | not stated |
| Interface | rest, cli rest |
| Tooling | GitHub CLI: 'You can also attach local images and videos from the command line with GitHub CLI' (gh issue comment / gh pr comment --attach, changelog 2026-09-01); plus any REST client against the comment API |
| Composes with | unlimited comments per issue x unlimited issues x unlimited free repos; 25 MB per non-image attachment. 1 GiB of payload = ~41 comments. Effectively per-record-unlimited storage keyed to comment IDs, not to an account quota |
| Reliability | assets persist after comment edit/delete in practice (URL is anonymised and not reference-counted); bulk comment-creation is the one thing GitHub's usage-anomaly systems actually watch, and secondary rate limits are aggressive |
| Parsed numbers |
|
Evidence 4
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | docs.github.com/en/get-started/writing-on-github/working-wit | 'The maximum file size is: 10MB for images and gifs ... 25MB for all other files' |
| 2026-10-21 | docs.github.com/en/authentication/keeping-your-account-and-d | uploads get anonymous githubusercontent URLs via Camo |
| 2026-10-21 | github.blog/changelog/2026-09-01-github-cli-media-in-issues- | scriptable attach path exists (API criterion met) |
| 2026-10-21 | github.com/user-attachments/assets/<uuid> | probe: GET -> 404 text/plain for a bogus id (route exists, not a generic 403) |
Unknown values 4
$.identity_cost.detailboilerplate$.per_object_cap.notesthe field may be stated in a source that was not read$.retention.notesthe field may be stated in a source that was not read$.retention.statedthe field may be stated in a source that was not read