以编程方式向 GitHub Issues、Pull Requests 和 Comments 上传附件
摘要
一位开发者分享了一个未记录的 GitHub 端点,允许以编程方式向 Issues、Pull Requests 和 Comments 上传图片和附件,从而实现对截图和视觉差异的自动化处理。
<p><a href="https://lobste.rs/s/bnqvzf/programmatically_upload_attachments">评论</a></p>
查看缓存全文
缓存时间: 2026/08/04 01:40
# 如何以编程方式上传附件到 GitHub Issues、Pull Requests 和 Comments——终于,至少目前如此
来源:https://island94.org/2026/08/programmatically-upload-attachments-to-github-issues-pull-requests-comments
现在可以通过自动化以编程方式将图片上传到 GitHub Issues、Pull Requests 和 Comments。终于可以了,虽然也许是误打误撞,我也不确定。
众所周知,在很长一段时间里,GitHub 一直没有用于上传图片和附件的编程接口(https://github.com/cli/cli/issues/1895)。在浏览器中通过拖放图片可以做到,但无法通过脚本或 curl 实现。这对许多你可能想象的基于 GitHub Action 的系统来说一直很令人沮丧,比如:自动在 PR 上为新功能附加演示截图或视频,或者附加来自浏览器测试的失败截图或视觉差异。
到现在,我想可以了。以下是这个非官方、未文档化的端点:
```
FILE=cat.jpg
MIME=image/jpeg
REPOSITORY=bensheldon/good_job
TOKEN=$(gh auth token)
curl -s "https://uploads.github.com/user-attachments/assets?name=$FILE&content_type=$MIME&repository_id=$(gh api "repos/$REPOSITORY" --jq .id)" \
-X POST -H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json" --data-binary "@$FILE"
# 输出包含附件 URL 的 JSON 响应,你可以将其嵌入 GitHub 内容中的图片标签。
```
就这样!我的意思是,你可以比 curl 之类的更聪明,但思路就是这样。这相当于将图片拖放到 Issue、PR 或 Comment 中。
我不知道这个端点是否一直接受 Auth Token,只是没人尝试、注意到或讨论过,还是这是新功能。我的印象是,这个端点以前*只*接受 Cookie Auth:大约在 2018 年,我探索了不同的 Visual Diff 服务,而缺少 GitHub 附件的编程 API 意味着如果你想自己动手,就不得不使用像 S3 这样的服务,然后再用一个服务来授权 S3,而 GitHub Actions 可以做其他所有事情,这种配置很烦人。我很确定我当时尝试过模糊测试这个附件接口,但没有成功。
我最近才知道这一切都是可能的,因为 Shakacode 的 Justin Gordon(https://shakacode.com/)分享了一个指向 Intercom 的 2x-skills `attach-github-assets`(https://github.com/intercom/2x-skills/blob/59213af0a2db9321ef10355ff24e9bd619151b6b/plugins/pr-tools/skills/attach-github-assets/SKILL.md)的链接,我当时……持怀疑态度……然后我试了试,竟然成功了!
Ben Sheldon 要求 Claude 使用 attach-github-assets 技能将一张 placekitten 图片作为评论上传到 GitHub Issue,Claude 成功完成了操作
这非常有用,希望它不要消失。
相似文章
@github: 有时候,展示比讲述更简单。我们相信这次更新将对此有所帮助。GitHub CLI 现在有了一个可重复的 --…
GitHub CLI 现在支持一个可重复的 --attach 标志,用于直接在议题、拉取请求和评论中上传图片和视频,通过允许内嵌媒体引用来增强开发者工作流程。
GitHub 宕机
GitHub 经历了短暂故障,影响了未认证用户的 Issues、Pull Requests 和 Actions。该事件已解决,监控仍在进行中。
@github: GitHub Issues 的新更新 • 在 Issues 侧边栏中固定视图 • 查看用户头像用于反应 • 调整仪表板密度…
GitHub 宣布了其 Issues 功能的新更新,包括在侧边栏中固定视图、反应的用户头像、可调整的仪表板密度、隐藏已关闭的子议题,以及具有作用域感知的议题依赖 REST API。
@github: GitHub @Muse 一种新方式连接您的GitHub账户,用于审查PR、跟进问题和通知,并留下评论……
GitHub 推出与 Muse 的新集成,允许用户审查PR、跟进问题和通知,并无需切换标签页即可留下评论。
@github: 借助 GitHub Issue Fields,你可以向问题添加结构化、类型化的元数据(如优先级、工作量、日期和自定义值)……
GitHub Issue Fields 现已全面上市,允许用户向跨仓库的问题添加优先级、工作量、日期等结构化元数据。