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

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

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

Конечно, гитхаб предоставляет на такой случай странички со списком пуллов (https://github.com/pulls) и тикетов (https://github.com/issues), но на мой взгляд они неудобны тем, что не дают ни малейшего намёка на то, в каком из тикетов от вас требуется реакция, а в каком нет. Это то я и хочу исправить.

Мой проект — 12forks.com, будет предоставлять экспериментальный интерфейс для работы с тикетами и пуллами. Такой интерфейс, в котором можно будет, взглянув на одну страницу понять, в каких тикетах от вас ждут ответа, в каком пулле нужно поправить merge-conflict, а где призвать мейнтейнера, потому-что он что-то долго не реагирует. Возможно будет так же интеграция с различными мессенджерами вроде Slack или Telegram. Смысл в том, чтобы ускорить коммуникацию и решение задач в Opensource проектах.

Я уже пользуюсь MVP этого инструмента, работающего пока в консоли. С его помощью за несколько дней удалось вдвое сократить «завал» из 103 пуллов и тикетов. Часть я просто закрыл за давностью лет. А в части случаев, хорошо видно, что задержки между комментами могут составлять годы:

image

Я верю в то, что подобный инструмент способен ускорить процесс принятия изменений и будет полезен любому, кто хочет внести свой вклад в OpenSource.

По моим оценкам, примерно 3% всех пользователей гитхаба активно работают с тикетами и пуллами, а три процента от 48 миллионов (именно столько я насчитал в своём исследовании), это без малого полтора миллиона человек. Именно столько людей потенциально могут получить пользу от придуманного мною решения.

По плану, публично доступный MVP будет готов в июне. Если вам интересно стать одним из первых, кто начнёт его применять, оставьте свой email, заполнив форму на 12forks.com

Так же, очень жду любых идей, которые можно было бы попробовать в подобном продукте. Пишите их в комментарии к этому посту, либо на почту ideas@12forks.com.

Комментарии (21)


  1. andreymal
    29.04.2019 13:56
    +1

    Дык на гитхабе уведомления есть, в том числе на почту. Просто нужно их читать хотя бы иногда. На вашем скриншоте есть упоминание вашего ника — вы просто обязаны были получить письмо на почту по этому поводу. Почему вы игнорировали уведомление почти год — фиг вас знает. scymtym'а это тоже касается


    1. Svetlyak Автор
      29.04.2019 14:02

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

      Читать уведомления на почту конечно же надо. Но я могу читать только свои письма, и не могу повлиять на то, как их разбирают мейнтейнеры библиотек. И если мейнтейнер уведомление пропустил, то нужно как-то ему напомнить о себе. Как это сделать? Ведь гтихаб не присылает на почту напоминалку о том, что ты вот писал две недели назад коммент в таком то пулле, но там тебе никто так и не ответил. А мой сервис сможет делать и это тоже.


      1. andreymal
        29.04.2019 14:08

        Так бывает, что эти уведомления теряются в общем потоке писем.

        Поэтому у меня для гитхаба заведена отдельная папка в почте. Уведомления, про которые нужно не забыть, можно отметить звёздочкой или отправить в закладки (или просто не удалять их, удаляя все остальные уведомления). Так что я всё ещё не вижу проблемы


        И если мейнтейнер уведомление пропустил

        Всегда можно пробежаться по упомянутым в посте https://github.com/pulls и https://github.com/issues отсортировав их по Least recently updated


        По крайней мере из поста совершенно неочевидно, чем упомянутый инструмент будет принципиально отличаться от пробегания по этим страницам


        1. Svetlyak Автор
          29.04.2019 14:43

          Сейчас мой MVP берёт весь список пуллов и тикетов и разбивает их на несколько категорий:

          * Тикеты в которых есть новые комменты с момента, когда я последний раз там что-то писал или создал тикет (тут же показывается число этих комментов, а в веб-версии можно будет отображать их самих + дать возможность тут же ответить)
          * Тикеты в которых давно не было активности. Пока MVP пишет лишь время с последнего коммента, но опять же, можно последние комменты и форму ответа подтянуть или сделать кнопки для быстрых ответов с шаблонами, типа: «Please, review my pull».
          * Пуллы в коорых есть мердж конфликты.
          * Тикеты которые я по каким-то причинам решил отложить до лучших времён + заметка для меня самого, с указанием причины. Например там можно написать, что сейчас пока времени нет на этот проект, и «отложить его на месяц». Спустя заданное время он автоматически появится в одном из списков описанных выше.

          Вот такими вещами он может отличаться. И я уверен, что можно ещё много чего придумать.


          1. andreymal
            29.04.2019 14:48

            Ну, первое решается вышеупомянутыми уведомлениями, второе я уже написал в предыдущем комментарии чем решается, для четвёртого есть закладки. Разве что готового решения для списка конфликтов, похоже, действительно нет, надо фичреквест в гитхаб отправить, чтоб поиск допилили)


            1. Svetlyak Автор
              29.04.2019 14:56

              Да, главное – чтобы удобно было.


            1. Svetlyak Автор
              29.04.2019 14:58

              Только закладки не спасут от того, что эти задачи будут мешаться, когда ты будешь (в рамках второго пункта) пробегаться по всему списку в поисках того, на каком моменте какая задача застряла.


  1. ilammy
    29.04.2019 15:09

    Если PR действительно важен, то он не будет забываться и теряться в потоке писем. О нём вспомнят и напомнят комментарием: «Тут все замечания исправлены, ревью пройдено, давайте мерджить?»

    Если мейнтейнер игнорирует напоминания автора PR, то он точно так же может игнорировать напоминания какого угодно сервиса. А если автор PR забыл о нём и не отправляет напоминания, то автору, видимо, не так-то важно влить этот PR.


  1. valery1707
    29.04.2019 18:27

    Кнопка Send не работает: при клике в консоли возникает ошибка f is undefined.


    1. Svetlyak Автор
      29.04.2019 18:37

      Интересно. Я сейчас перепроверил и в Chrome всё ОК. Какой у тебя браузер?


    1. Svetlyak Автор
      30.04.2019 10:02

      Валерий, скажи пожалуйста какой у тебя браузер?


      1. valery1707
        30.04.2019 18:32

        Firefox Quantum 66.0.3 (64-битный).
        Возможно дело в том что у меня часть скриптов не скачалось.


        1. Svetlyak Автор
          30.04.2019 22:26

          Очень может быть что так. Похоже на ошибку в Яндекс Формах и том, как они используют Метрику. Я уже передал информацию о проблеме разработчикам.

          Спасибо за помощь!


          1. Svetlyak Автор
            30.04.2019 22:35

            Хотя странно. Я сейчас поставил Firefox Quantum 66.0.3 (64-битный). И у меня проблема не воспроизвелась, ни в обычной вкладке, ни в incognito режиме (где он написал:

            Ресурс на «https://mc.yandex.ru/metrika/watch.js» был заблокирован, так как включена блокировка содержимого.[Подробнее] 12forks.com
            Ресурс на «https://yandex.ru/clck/click» был заблокирован, так как включена блокировка содержимого.[Подробнее] 12forks.com


            Может быть дело в каких-то дополнительных плагинах? Что-нибудь вроде адблока или ещё чего-то такого?


            1. andreymal
              30.04.2019 23:28

              Я пробовал в Firefox с uBlock Origin и у меня норм (отправил пустую форму, ибо я явно не целевая аудитория:)


  1. Psychopompe
    29.04.2019 18:38

    К такому сервису нужен бот, который будет проходить по забытым PR и напоминать всем участникам о том, что нужно что-то сделать. Ну и статистику временную выводить.


    1. Svetlyak Автор
      29.04.2019 19:58

      Какого рода бот?

      Такой, который будет сам находить забытые PR и напоминать о них даже без регистрации автора пулла или репозитория?


      1. Psychopompe
        30.04.2019 17:42

        В смысле, без регистрации?

        Я знаю, что есть бот, который автоматически закрывает issues, если не было обновлений какое-то время. Здесь можно что-то подобное сделать, скажем, если PR проходит все тесты, но уже больше месяца неактивен, то тогда нужно напоминание.


        1. Svetlyak Автор
          30.04.2019 18:29

          Говоря про регистрацию, я имел в виду, что автор пулла или репозитория могут быть не зарегестрированы в моём сервисе, и даже не знать про него. Бот может прийти в любой пулл и покомментить, что пулл похоже подтухает :)


          1. Psychopompe
            01.05.2019 19:19

            А, да, я подразумевал это. Я полагаю, что тот бот, которые напоминает про issues (и автоматически закрывает их) требует доступа к репозиторию, но в случае PR это не требуется. Всё, что нужно, — это напомнить о висящем коммите.


            1. Svetlyak Автор
              01.05.2019 20:48

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