Перейти к основному содержанию

Проект недели: "Jasper"

· 5 мин. прочитано

На этой неделе мы опросили создателя Jasper, инструмента на основе Electron для управления уведомлениями GitHub.


Привет! Расскажи о себе

Я Рё Маруяма, разработчик ПО из Японии. Я разработчик приложений "Jasper" и "ESDoc".

Что такое "Jasper"?

Jasper является гибким и мощным читателем задач для GitHub. It supports issues and pull requests on github.com and GitHub Enterprise.

Скриншот "Jasper"

Для чего "Jasper" создан?

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

  • Легко упустить из виду проблемы, в которых я упомянут, которые комментировал или которые смотрю.
  • Я запоминаю важные проблемы в репозитории, чтобы проверить их позже, но иногда я забываю о них.
  • Чтобы не забывать о проблемах, я открываю много вкладок в браузере.
  • Сложности с проверкой всех, связанных со мной, проблем.
  • Сложности с пониманием деятельности команды.

Я тратил много времени и энергии, борясь с этими проблемами, так что я решил сделать инструмент для удобного просмотра проблем в GitHub и их эффективного решения. Так началась разработка "Jasper".

Кто использует "Jasper"?

Jasper is used by developers, designers, and managers in several companies that are using GitHub. Of course, some OSS developers also are using it. And it is also used by some people at GitHub!

Как "Jasper" работает?

Once Jasper is configured, the following screen appears. From left to right, you can see "streams list", "issues list" and "issue body".

Jasper Start Screen

Потоки являются основной особенностью "Jasper". Например, если вы хотите увидеть проблемы репозитория, которые были назначены @zeke, вы создаете следующий поток с запросом:

repo:electron/electron assignee:zeke is:issue

Стартовый экран 2

После создания потока и ожидания нескольких секунд, вы увидите поток с проблемами репозитория, найденные по заданным в запросе условиям.

Jasper Start Screen 3

Какие ещё условия мы можем использовать в запросе для потока?

I will introduce what kind of conditions can be used for stream.

Пользователи и команды

Запрос потока (условия)Вопросы
mentions:cat mentions:dogПроблемы, упоминающие пользователя cat или dog
author:cat author:dogПроблемы, созданные пользователем cat или dog
assignee:cat assignee:dogПроблемы, назначенные cat или dog
commenter:cat commenter:dogПроблемы, прокомментированные пользователем cat или dog
involves:cat involves:dogПроблемы, которые "включают"* пользователя cat или bob
team:animal/white-cat team:animal/black-dogПроблемы, упоминающие animal/white-cat или animal/black-dog
  • "Включают" означает, что пользователь либо упомянут в проблеме, либо является её автором, либо прокомментировал её, либо назначил её

Репозитории и организации

Запрос потока (условия)Вопросы
repo:cat/jump repo:dog/runIssues in cat/jump or dog/run
org:electron user:cat user:dogIssues in electron, cat or dog

org is same as user

Attributes

Запрос потока (условия)Вопросы
repo:cat/jump milestone:v1.0.0 milestone:v1.0.1Issues that are attached to v1.0.0 or v1.0.1 in cat/jump
repo:cat/jump label:bug label:blockerIssues that are attached bug and blocker in cat/jump
electron OR atomshellIssues that include electron or atomshell

Review Status

Запрос потока (условия)Вопросы
is:pr review:requiredПроблемы, требующие рассмотрения в cat/jump
is:pr review-requested:catПроблемы, которые запрашивают рассмотрение cat.
But these are not reviewed yet.
is:pr reviewed-by:catIssues that are reviewed by cat

As you may have noticed by looking at these, streams can use GitHub's search queries. For details on how to use streams and search queries, see the following URLs.

Jasper also has features for unread issue management, unread comment management, marking stars, notification updating, filtering issues, keyboard shortcuts, etc.

"Jasper" платный продукт? Сколько стоит "Jasper"?

"Jasper" стоит 12$. Но вы можете воспользоваться пробной версией на 30 дней..

Почему вы решили использовать Electron для разработки "Jasper"?

Мне нравятся следующие аспекты Electron:

  • Приложения могут быть разработаны с помощью JavaScript/CSS/HTML.
  • Кроссплатформеность.
  • Активно развивается и имеет большое сообщество.

Эти возможности позволяют просто и быстро разрабатывать десктопные приложения. Это круто! If you have any product idea, you should consider using Electron by all means.

С какими трудностями вы столкнулись при разработке "Jasper"?

Было сложно разобраться с концепцией "потока". Сначала я подумал использовать Notifications API. However I noticed that it does not support certain use cases. После этого я считал использование Issues API и Pull requests API, в дополнение к API уведомлений. But it never became what I wanted. Затем, думая о различных методах, я понял, что опрос поискового API GitHub's предоставит самую гибкую возможность. It took about a month of experimentation to get to this point, then I implemented a prototype of Jasper with the stream concept in two days.

Note: The polling is limited to once every 10 seconds at most. This is acceptable enough for the restriction of GitHub API.

What's coming next?

I have a plan to develop the following features:

  • A filtered stream: A stream has some filtered stream that filter issues in the stream. It is like as view of SQL.
  • Multiple accounts: you will be able to use both github.com and GHE
  • Improve performance: For now the loading a issue in WebView is low speed than normal browser.

Follow @jasperappio on Twitter for updates.