mcpField
G
gh-attach

gh-attach

github.com/github开发40.5k65 次安装今天更新
代码仓库

关于 gh-attach

gh-attach 是用于通过 GitHub CLI 上传文件并获取附件 URL 的技能,适合在 GitHub issue 和 pull request 中附加可渲染文件,也支持私有仓库附件。

主要功能

  1. 01上传文件并输出附件 URL
  2. 02将附件下载到指定路径
  3. 03在 issue 和 pull request 评论中嵌入 URL
  4. 04支持 GitHub Cloud 与 GHES 仓库

适用场景

  1. 01为 pull request 附加截图
  2. 02在 issue 评论中添加视频或文件
  3. 03获取私有仓库中的附件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/github/awesome-copilot --skill gh-attach

安装后在 Claude Code 中输入/gh-attach确认已加载。

详细介绍

gh-attach

gh attach 将文件上传到 GitHub 内部的 user-attachments 端点(不存在公开 API),并输出 URL;GitHub 会在粘贴该 URL 的位置自动渲染(图片/视频/文件)。该 URL 继承仓库的可见性,因此私有仓库的上传会保持私有。

前提条件

gh extension list | grep -q 'gh attach' || gh extension install sudosubin/gh-attach

上传使用 GitHub 浏览器会话 cookie,而不是 gh token。默认情况下,必须已通过 gh 身份验证,gh-attach 才能选择匹配的浏览器账号。如果选错了账号,请添加 --browser <name> --profile <name>。在无头环境中使用时,请将 GH_ATTACH_SESSION_TOKEN 设置为裸的 user_session cookie 值。请将其视为完整的账号凭据。

步骤

1. 上传:使用带引号的绝对路径。在仓库内部,-R 是可选的。对于 GHES,请使用 -R host/owner/repo。该命令会在一行中输出 URL。GitHub 会自动渲染它(图片/视频/文件),因此请直接使用:

URL=$(gh attach "$FILE" -R <owner>/<repo>)

2. 嵌入(始终使用 --body-file -,例如 gh pr comment/edit、gh issue comment/edit):

printf '## Screenshots\n\n%s\n' "$URL" | gh pr comment <pr> -R <owner>/<repo> --body-file -

3. 下载:请明确指定目标位置。私有附件使用当前生效的 gh token,并以浏览器 cookie 作为授权回退:

gh attach download "$URL" -O "$FILE"

说明

  • 私有仓库:URL 仅对已授权查看者渲染。匿名请求预计会返回 404 或 403。
  • 尺寸:嵌入 <img width="800" src="$URL">,而不是裸 URL。
  • GitHub Cloud 和 GHES 决定它们接受哪些文件扩展名和内容类型。

评论

支持 Markdown