用途:gh-attach 是 gh 的扩展,可将本地文件上传到 GitHub 内部 user-attachments 端点(该端点无公开 API),并输出 URL;把该 URL 粘贴到 GitHub 处会自动渲染为图片、视频或文件。URL 继承仓库可见性,私有仓库上传保持私有。
主要能力:上传本地文件并打印 URL;下载 GitHub user-attachments;在 PR、issue 中嵌入本地文件。
安装:gh extension list | grep -q 'gh attach' || gh extension install sudosubin/gh-attach
使用方式:上传使用绝对路径并加引号,仓库内 -R 可选,GHES 用 -R host/owner/repo,命令单行输出 URL:URL=$(gh attach "$FILE" -R <owner>/<repo>)。嵌入时始终用 --body-file -,例如:printf '## Screenshots\n\n%s\n' "$URL" | gh pr comment <pr> -R <owner>/<repo> --body-file -。下载需显式指定目标:gh attach download "$URL" -O "$FILE"。
限制与注意:上传使用 GitHub 浏览器会话 cookie 而非 gh token,默认需 gh 已认证以匹配浏览器账号;账号选错时加 --browser <name> --profile <name>;无头环境设置 GH_ATTACH_SESSION_TOKEN 为裸 user_session cookie 值,应视作完整账号凭据。私有仓库 URL 仅授权者可渲染,匿名访问预期返回 404 或 403。私有附件下载使用当前 gh token,浏览器 cookie 作为授权回退。可用 <img width="800" src="$URL"> 控制尺寸。GitHub Cloud 与 GHES 决定接受的文件扩展名与内容类型。