用途:gh-image(MIT,作者 drogers0)作为 gh CLI 扩展,复刻 GitHub 网页端的内部上传流程,让智能体或用户在终端把本地图片转成托管的 user-attachments URL,并生成可直接嵌入的 Markdown 图片行,常用于给 PR、Issue 或评论添加截图、前后对比图或测试结果图。
主要能力与用法:先确认前置条件,执行 gh auth status,并用 gh extension list | grep -q 'drogers0/gh-image' || gh extension install drogers0/gh-image 安装扩展。注意 gh-image 不使用 gh token 上传,该端点拒绝 token,它需要 GitHub 的 user_session cookie,解析顺序为 --token <value> 参数、GH_SESSION_TOKEN 环境变量(用于 CI/无头环境)、已登录浏览器的 cookie 存储(本地默认)。上传示例:gh image "/abs/path/screenshot.png" --repo <owner>/<repo>,建议用绝对路径,在仓库工作目录内 --repo 可选。命令会在标准输出打印每张图片一行的 Markdown,如 ,需捕获该输出作为嵌入引用。
嵌入与验证:可用 gh pr edit、gh pr comment、gh issue edit、gh issue comment 配合 --body-file - 把图片行追加到 PR、Issue 或评论正文,例如先取正文再拼接 ## Screenshots 标题后通过管道写回;务必使用 --body-file - 而非内联 --body,以避免多行正文和特殊字符破坏 shell 引号。最后用 gh pr view <pr> --repo owner/repo --json body -q .body 确认 URL 已写入。
最佳实践:先把通配符解析为绝对路径,含空格或 Unicode 的路径要加引号;需要控制显示尺寸时用 HTML 标签 <img width="800" src="https://github.com/user-attachments/assets/<uuid>" /> 替代裸 Markdown;CI 中应使用专用机器人账号设置 GH_SESSION_TOKEN。
限制:必须提供 session cookie,而 user_session cookie 拥有完整账号权限(不像 PAT 那样受限),应视同密码保管,CI 中建议用机器人账号。目标仓库需有写权限;启用 SAML SSO 的组织需先在 https://github.com/orgs/<org>/sso 授权该会话。私有仓库图片保持私有,user-attachments URL 继承仓库可见性,匿名访问私有仓库图片会按设计返回 404/403。Windows 加 Chrome 127+ 因库限制无法读取 cookie,需改用其他浏览器或 GH_SESSION_TOKEN。该技能自行负责嵌入 Markdown,gh-image 本身只打印 URL。