Двусторонняя синхронизация тем/категорий Discourse и трекеров задач GitHub/GitLab

Я отвечаю здесь, а не создаю новую тему. Другие связанные темы находятся здесь, здесь, здесь и здесь. (В частности, эта тема относительно свежая и довольно длинная.)

Я задал вопрос в теме, посвящённой Discourse Code Review, о том, есть ли у неё поддержка GitHub Issues:

Кратко: некоторая степень двусторонней синхронизации GitHub Issues и тем Discourse в качестве функции Discourse Code Review могла бы быть полезна для проектов, где сейчас существует определённая неопределённость и дублирование между двумя системами.

Кросс-постинг здесь, потому что в другой теме ответы автоматически удаляются через месяц.

4 лайка

Привет, Элли! Думаю, тебе стоит создать новую тему с тегом #feature здесь, так как плагин GitHub, о котором ты говоришь, не является плагином для ревью кода.

Вижу, что ты очень заинтересована. Я полагаю, что добавление поддержки задач к Discourse Code Review приветствуется в виде pull request, но не уверен. Если ты сможешь подробнее описать здесь свои идеи, возможно, кто-то из сообщества возьмётся за это. Если у тебя есть бюджет, ты также можешь разместить предложение в канале Marketplace.

2 лайка

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

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

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

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

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

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

(И, желательно, чтобы для GitLab была точно такая же функциональность, как и для GitHub…)

2 лайка

Ещё один способ взглянуть на это — рассматривать трекеры задач как форумы (или, используя более старую терминологию, «сервисы досок объявлений») с толстым слоем Agile-управления проектами, наложенным сверху. Странно, но они также отчасти напоминают списки рассылки, поскольку с ними можно взаимодействовать исключительно через электронную почту. Discourse занимает уникальное центральное положение, объединяя эти на первый взгляд разные (но во многих отношениях функционально схожие) сервисы, чтобы уменьшить фрагментацию.

1 лайк

Спасибо за все разъяснения. По сути, вам нужно обратиться к проектам, в которые вы вносите вклад и которые используют Discourse, чтобы они занялись этим вопросом. На данный момент даже мне неясно, сколько проектов используют Discourse Code Review и как это у них работает. Не стесняйтесь написать мне в личные сообщения с некоторыми деталями, чтобы мы могли конкретизировать.

Этот плагин отличается… обсуждения существуют только в Discourse и встраиваются в конец записей WordPress. Они не синхронизируются.

Да, верно, тот факт, что WordPress гораздо более модулен, облегчает это в той мере, в какой GitHub этого не делает.

@elsiehupp Вы когда-нибудь продвинулись в этом вопросе? Я хотел бы реализовать что-то похожее — двустороннюю синхронизацию задач GitHub с темой на Discourse.

Я работаю над этим для нескольких разных проектов. Вот прототип:

Надеюсь, что в ближайшие несколько недель тестовая версия будет запущена в нескольких проектах.

8 лайков

С радостью помогу с тестированием, как только вы будете готовы!

2 лайка

@elsiehupp @angus @sunjam Вам удалось настроить двустороннюю синхронизацию между задачами GitHub и темами Discourse? Мне тоже нужна эта функция. Любая помощь или рекомендации в этом вопросе будут очень кстати.

1 лайк

Я не продолжал работу над веткой, которую я опубликовал, но, возможно, она всё ещё работает.

Вы можете попробовать её и, если хотите, сообщить о результатах.

3 лайка

Интересно, можно ли обновить это с относительно небольшими усилиями — это обязательно для не слишком технических сообществ.

Привет! Я новичок здесь, на Discourse Meta, и мне нужна специфическая интеграция, которая, насколько я выяснила, была прекращена, потому что синхронизация обсуждений между GitHub и Discourse превратилась в хаос. Однако мне не нужна синхронизация: мне требуется функция, позволяющая превращать конкретный пост или ответ в задачу (issue) на GitHub. Это должно быть статичное действие — просто извлечь информацию, создать задачу, и дальше задача живет своей жизнью на GitHub без обратной синхронизации с Discourse.

Для контекста: я работаю в бизнес-подразделении нескольких государственных решений. Наши продукты используются множеством государственных органов, так как недавно сфера нашей ответственности расширилась и теперь включает регионы и муниципалитеты. У нас огромная сообщество. Мы уже пытались управлять им через GitHub, но GitHub не так удобен, как Discourse, а Discourse великолепен для управления сообществами. Поэтому вся работа по переносу предложений, сообщений об ошибках и прочего ложится на команду из шести человек, обслуживающую огромное сообщество. Мне нужна только функция, позволяющая превращать пост в задачу в конкретном репозитории — хоть в одном, хоть с возможностью выбора, не важно. Наше узкое место — переход в GitHub, откуда мы уже всё управляем.

Я не из технической команды, поэтому, к сожалению, не обладаю знаниями для технического вклада, хотя мне это очень интересно и я любопытна. У меня вообще нет опыта работы с Ruby. Если кто-то сможет мне помочь, я буду очень благодарна!

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

1 лайк