Реклама
Перетяжка // Коробка 3.0

GitHub CLI 2.99 прикладывает скриншоты и видео к issue из терминала

Флаг --attach работает в gh issue и gh pr, поддерживает PNG, GIF, WebP, SVG, MP4, MOV и WebM.

Обложка: GitHub CLI 2.99 прикладывает скриншоты и видео к issue из терминала

GitHub 1 сентября объявил, что в GitHub CLI появился флаг --attach: он загружает локальные изображения и видео в issue, pull request или комментарий. Раньше терминальный клиент умел работать только с текстом, а скриншот или запись экрана приходилось тащить через браузер. Функция доступна всем пользователям GitHub на всех тарифах после обновления до версии 2.99.0.

Для тех, кто пишет багрепорты из скриптов, собирает отчёты в CI или просто не хочет переключаться в браузер ради одной картинки, это закрывает давний разрыв между «вот команда, которая падает» и «вот как это выглядит». Единственное серьёзное исключение: GitHub Enterprise Server в этом релизе не поддерживается.

Ключевые выводы
  • Флаг --attach работает в gh issue create, edit, comment и в gh pr create, edit, comment; его можно повторять несколько раз.
  • Форматы: PNG, JPEG, GIF, WebP, SVG для картинок и MP4, MOV, WebM для видео.
  • Лимит на изображение и GIF 10 МБ; видео до 10 МБ на бесплатном плане и до 100 МБ на платных.
  • Нужен OAuth-токен от gh auth login или classic personal access token и право записи в репозиторий.
  • GitHub Enterprise Server не поддерживается; нужна версия gh 2.99.0.

Как это выглядит в командной строке

Минимальный пример из changelog: приложить скриншот к комментарию в issue.

			gh issue comment --attach ./screenshot.png
		

Флаг повторяемый, поэтому к одному issue можно приложить сразу несколько файлов, указав --attach для каждого. Alt-текст задаётся после пути через решётку: --attach './login.png#The login error state'. Это тот же alt, который потом увидят читатели со скринридером, так что писать его стоит осмысленно.

Самая полезная деталь спрятана в обработке Markdown. Если в тексте issue или комментария уже стоит локальная ссылка вида ![alt](./login.png), CLI перепишет её на адрес загруженного файла. Вложения, на которые в тексте ссылок нет, добавляются в конец Markdown. Значит, можно писать описание бага в редакторе с относительными путями к картинкам, а потом одной командой отправить и текст, и файлы.

Ограничения, о которых стоит знать заранее

Для загрузки нужен либо OAuth-токен, полученный через gh auth login, либо classic personal access token; другие типы токенов в changelog не упомянуты, и это стоит учитывать в CI. Кроме того, требуется право записи в репозиторий: приложить файл к чужому issue в проекте, где вы не участник, не получится, даже если оставлять комментарии там можно.

Лимиты размеров: 10 МБ для изображений и GIF, для видео 10 МБ на Free и 100 МБ на платных планах. GitHub Enterprise Server новую возможность не получил; сроки для самостоятельно развёрнутых инсталляций в публикации не названы.

Что ещё не сказано: как ведёт себя команда при превышении лимита, поддерживает ли она загрузку по URL вместо локального файла и когда флаг доберётся до gh release. Судя по тексту changelog, речь только об issue, pull request и комментариях.

Где это пригодится

  • Тестовые пайплайны: упавший end-to-end тест прикладывает скриншот или запись браузера к автоматически созданному issue.
  • Ревью интерфейсов: gh pr comment --attach с записью экрана вместо описания «нажмите сюда, потом сюда».
  • Скрипты отчётов: график из matplotlib или диаграмма сборки уходит в комментарий к pull request без промежуточного хостинга.

Обновиться можно штатным способом: через менеджер пакетов, которым gh ставился, или скачав релиз 2.99.0 с GitHub.

Редакция проверит, появится ли поддержка Enterprise Server в следующих релизах gh.

Источник: Changelog GitHub: GitHub CLI media in issues, pull requests, and comments

Изображение на обложке: GitHub