Статус пул-реквестов в реальном времени в Oneboxes GitHub ✨

Мы рады сообщить о новой функции для плагина discourse-github: индикаторы статуса живых pull request в onebox для PR на GitHub! :tada:

Когда вы вставляете ссылку на pull request из GitHub в пост или сообщение чата, Discourse теперь отображает визуальный значок статуса, показывающий текущее состояние PR, и автоматически обновляет его через вебхуки. :counterclockwise_arrows_button:

Что это делает

Onebox для PR на GitHub теперь отображает значок статуса, отражающий текущее состояние pull request:

Статус Цвет Описание
:memo: Черновик (Draft) Серый PR помечен как черновик
:unlocked: Открыт (Open) Серый PR открыт и ожидает ревью
:white_check_mark: Одобрено (Approved) Зеленый PR одобрен ревьюерами
:large_orange_diamond: Требуются изменения (Changes Requested) Оранжевый Ревьюеры запросили изменения
:purple_circle: Слит (Merged) Фиолетовый PR слит
:red_circle: Закрыт (Closed) Красный PR был закрыт без слияния

Значки используют нативную графику и цветовую схему GitHub, поэтому они будут знакомы всем, кто регулярно использует GitHub. :eyes:

Примеры

Вот как выглядят различные статусы в действии:

Черновик PR:

Открытый PR:

Одобрённый PR:

Требуются изменения:

Слитый PR:

Закрытый PR:

Где это работает :round_pushpin:

Живой статус отображается в:

  • Постах форума — Любой пост, содержащий onebox для PR на GitHub
  • Сообщениях чата — Если у вас включён плагин Чат, onebox для PR в чате также отображает живой статус :speech_balloon:

Пример из чата:

Примечание: Встроенные onebox (когда ссылка появляется в тексте как часть строки, а не как полноценный превью) не отображают значки статуса.

Обновления в реальном времени через вебхуки :high_voltage:

Самая мощная часть этой функции заключается в том, что статусы PR обновляются автоматически при изменениях на GitHub. Когда PR открывается, закрывается, сливается, конвертируется в черновик или из него, или получает ревью, Discourse автоматически обновляет любые посты или сообщения чата, содержащие onebox этого PR.

Умный статус ревью :magnifying_glass_tilted_left:

Функция показывает не только базовый статус открыт/закрыт — она также получает информацию о ревью, чтобы определить, был ли PR одобрен или требуются изменения. Она интеллектуально обрабатывает нескольких ревьюеров:

  • Берёт последнее ревью от каждого ревьюера
  • Отображает «требуются изменения», если любой ревьюер запросил изменения
  • Отображает «одобрено» только если есть ревью и ни одно не запрашивает изменений

Миграция с компонента темы GitHub Status :warning:

Эта функция заменяет компонент темы GitHub Status Indicators. Они несовместимы и не должны использоваться вместе.

Если вы сейчас используете компонент темы, вам следует:

  1. Отключить и удалить компонент темы github-status-theme
  2. Включить эту новую встроенную функцию через настройки сайта

Новая реализация имеет несколько преимуществ перед компонентом темы:

  • :locked: Работает с приватными репозиториями (через аутентификацию API)
  • :white_check_mark: Включает статус одобрения/запроса изменений из ревью
  • :high_voltage: Обновления в реальном времени через вебхуки
  • :speech_balloon: Работает в сообщениях чата
  • :hammer_and_wrench: Не требует поддержки компонента темы

Начало работы :rocket:

Инструкции по настройке, варианты конфигурации и технические детали см. в документации плагина discourse-github.

Обратная связь :speech_balloon:

Мы будем рады услышать ваше мнение об этой функции! Если вы столкнулись с проблемами или у вас есть предложения по улучшению, пожалуйста, сообщите нам в ответах ниже. :folded_hands:

33 лайка

Вау! Мне это очень нравится! :star_struck: Единственное, что я хотел бы отметить, — это отсутствие текстового описания статуса, которое было раньше. Цветные иконки выглядят круто, но я не сразу понимаю, что они означают, потому что не часто бываю в GitHub.

Время покажет, но думаю, что другие пользователи, которые ищут информацию о статусе исправления ошибок или новых функций, могут столкнуться с той же проблемой и подумать, что в Discourse произошли какие-то изменения, которых на самом деле нет.

4 лайка

У иконок есть подсказка при наведении мыши, но это работает только на компьютере.

2 лайка

Это заставило меня осознать, что мы можем совместить оба варианта :wink:

7 лайков

Не должно ли здесь быть написано «слито» сейчас? У меня всё ещё отображается «открыто»:

2 лайка

Мы ещё не пересобрали ни одну из onebox-структур на Meta.

2 лайка

Ах, моя вина. Я ожидал слишком многого волшебства :magic_wand::slight_smile:

2 лайка

Я переделал тот, на который вы ссылаетесь. Теперь выглядит правильно?

4 лайка

Я заметил, что статус виден только до тех пор, пока я не прочитаю тему на другом языке. Это известное ограничение?

1 лайк

Однобокс не является частью исходного содержимого постов, поэтому он не переводится.

1 лайк

Мой вопрос касался не перевода, а иконки статуса. Меня интересует, почему она не работает так же в переведённом посте.

Компонент темы работал в обоих случаях


Ах да. Не уверен, почему. Я посмотрю :eyes:

2 лайка

Есть ли какие-либо новости об обновлении onebox в переведённой версии поста?