- PVSM.RU - https://www.pvsm.ru -
В разделе trending [1] на GitHub отображается список проектов, активно набирающих звезды в течение дня, недели или месяца. Все самое интересное, что появляется в open source для каждого языка программирования, всегда оказывается в этом списке. Сегодня хочу поделиться способом, как с помощью GitHub уведомлений подписаться на появление новых «звездных» проектов и не пропустить что-нибудь полезное для себя.
Для подписки используется специальный репозиторий github-trending-repos [2]. Каждый issue в этом репозитории соответствует одному языку программирования:
Вы заходите в интересующие вас issues и подписываетесь на обсуждение, используя механизм GitHub уведомлений [3]. Как только в выбранном языке программирования появится новый популярный репозиторий, специальный бот запостит комментарий. В этот момент вы получите уведомление в веб-интерфейсе GitHub или по почте (в зависимости от ваших настроек). В веб-интерфейсе это выглядит так:
Клик по уведомлению открывает добавленный комментарий, где содержится ссылка на проект, короткое описание и количество полученных звезд:
Один раз в час на сервере запускается скрипт, который через GitHub API [4] обходит все issues. Для каждого языка программирования подгружается список популярных на данный момент репозиториев. Затем из этого списка исключаются репозитории, которые уже упомянуты в комментариях к issue. В результате остаются только свеже-добавленные проекты. Из них формируется текст и добавляется новый комментарий. Подписчики автоматически получают уведомление.
$()
выбрать нужные элементы страницы.Для меня такой способ слежения за трендами оказался довольно удобным. GitHub уведомления привычны и ненавязчивы. А я остаюсь в курсе всех новинок. Попробуйте и вы — буду рад, если вам это пригодится. Ссылка на проект [2]. Идеи и предложения welcome!
Автор: vitalets
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/268230
Ссылки в тексте:
[1] trending: https://github.com/trending
[2] github-trending-repos: https://github.com/vitalets/github-trending-repos
[3] механизм GitHub уведомлений: https://help.github.com/articles/subscribing-to-and-unsubscribing-from-notifications/#subscribing-to-conversations
[4] GitHub API: https://developer.github.com/v3/
[5] Travis CI: https://travis-ci.org
[6] CircleCI: https://circleci.com
[7] максимум раз в день: https://docs.travis-ci.com/user/cron-jobs/
[8] конфигурировать: https://circleci.com/docs/2.0/configuration-reference/#schedule
[9] Cheerio: https://cheerio.js.org
[10] максимум 30 элементов: https://developer.github.com/v3/?#pagination
[11] parse-link-header: https://github.com/thlorenz/parse-link-header
[12] Источник: https://habrahabr.ru/post/342174/
Нажмите здесь для печати.