gh-attach — скилл для GitHub Copilot: вложения в GitHub
Загружает локальные файлы во вложения GitHub, вставляет их в PR, задачи и комментарии, а также скачивает уже прикреплённые файлы.
npx skills add github/awesome-copilot --skill gh-attachЧто делает gh-attach
Скилл работает через расширение gh-attach: загружает скриншоты, изображения, PDF, архивы и видео во внутреннее хранилище GitHub. После загрузки он получает URL, который GitHub отображает как вложение при вставке в PR, задачу или комментарий.
Для загрузки нужен абсолютный путь к файлу в кавычках. В репозитории параметр -R необязателен, а для GHES указывают адрес сервера вместе с владельцем и репозиторием. Для комментариев с вложением используется --body-file -; скачивание сохраняет файл по явно заданному пути.
Загрузка использует cookie браузерной сессии, а не токен gh. Переменная GH_ATTACH_SESSION_TOKEN содержит учётные данные полного доступа к аккаунту, поэтому её нельзя считать обычным ключом для командной строки. Вложения из приватного репозитория видят только авторизованные пользователи.
Какие задачи решает
- прикрепить скриншот к PR
- добавить изображение в задачу GitHub
- вставить снимки до и после в комментарий
- загрузить PDF или архив во вложения GitHub
- скачать файл из вложения GitHub
Примеры запросов агенту
- Прикрепи скриншот к этому PR.
- Добавь изображение в комментарий к задаче GitHub.
- Скачай это вложение GitHub в указанный файл.
Как установить gh-attach
1Через Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill gh-attach2GitHub CLI
gh skill install github/awesome-copilot gh-attach3Вручную: положить файлы
.github/skills/gh-attach/SKILL.md1Через Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill gh-attach -a claude-code2Вручную: положить файлы
~/.claude/skills/gh-attach/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/gh-attach/
Вручную: положить файлы
.agents/skills/gh-attach/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную: положить файлы
.cursor/skills/gh-attach/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
Командой платформы
gemini skills install https://github.com/github/awesome-copilot --path skills/gh-attachВручную: положить файлы
.devin/skills/gh-attach/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора554
Весь набор →Похожие
Вопросы о gh-attach
Как установить gh-attach в GitHub Copilot?
Выполните npx skills add github/awesome-copilot --skill gh-attach, затем gh skill install github/awesome-copilot gh-attach. Файл скилла будет доступен по пути .github/skills/gh-attach/SKILL.md.
Что делает gh-attach?
Скилл загружает локальные файлы в GitHub user-attachments, возвращает URL и помогает вставить его в PR, задачи и комментарии. Он также скачивает вложения GitHub.
Какая авторизация нужна для загрузки?
gh-attach использует cookie браузерной сессии. Для работы без браузера задайте GH_ATTACH_SESSION_TOKEN со значением cookie user_session.
Исходный текст
SKILL.md · MIT
--- name: gh-attach description: 'Uploads a local file (screenshot, image, PDF, zip, video) to GitHub user-attachments, downloads GitHub user-attachments, and embeds local files in a PR, issue, or comment. Use when asked to "attach a screenshot to the PR", "add an image to the issue", "embed before/after screenshots", "attach this file", or "download this GitHub attachment". Powered by `gh-attach`.' --- # gh-attach `gh attach` uploads a file to GitHub's internal user-attachments endpoint (no public API exists) and prints the URL, which GitHub auto-renders (image/video/file) wherever it's pasted. The URL inherits the repo's visibility, so private-repo uploads stay private. ## Prerequisites ```sh gh extension list | grep -q 'gh attach' || gh extension install sudosubin/gh-attach ``` Uploads use a GitHub browser session cookie, not the `gh` token. By default, `gh` must be authenticated so `gh-attach` can select the matching browser account. If the wrong account is selected, add `--browser <name> --profile <name>`. For headless use, set `GH_ATTACH_SESSION_TOKEN` to the bare `user_session` cookie value. Treat it as a full account credential. ## Steps **1. Upload**: Use an absolute quoted path. `-R` is optional inside a repository. For GHES, use `-R host/owner/repo`. The command prints the URL on one line. GitHub auto-renders it (image/video/file), so use it as-is: ```sh URL=$(gh attach "$FILE" -R <owner>/<repo>) ``` **2. Embed** (always `--body-file -`, e.g. `gh pr comment/edit`, `gh issue comment/edit`): ```sh printf '## Screenshots\n\n%s\n' "$URL" | gh pr comment <pr> -R <owner>/<repo> --body-file - ``` **3. Download**: Specify the destination explicitly. Private attachments use the active `gh` token, with browser cookies as an authorization fallback: ```sh gh attach download "$URL" -O "$FILE" ``` ## Notes - Private repo: URL renders only for authorized viewers. An anonymous fetch is expected to return 404 or 403. - Sizing: embed `<img width="800" src="$URL">` instead of the bare URL. - GitHub Cloud and GHES decide which file extensions and content types they accept.
© github · MIT · github/awesome-copilot