Проект недели: "Jasper"
На этой неделе мы опросили создателя Jasper, инструмента на основе Electron для управления уведомлениями GitHub.
Привет! Расскажи о себе
Я Рё Маруяма, разработчик ПО из Японии. Я разработчик приложений "Jasper" и "ESDoc".
Что такое "Jasper"?
Jasper является гибким и мощным читателем задач для GitHub. It supports issues and pull requests on github.com and GitHub Enterprise.
Для чего "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". Например, если вы хотите увидеть проблемы репозитория, которые были назначены @zeke, вы создаете следующий поток с запросом:
repo:electron/electron assignee:zeke is:issue
После создания потока и ожидания нескольких секунд, вы увидите поток с проблемами репозитория, найденные по заданным в запросе условиям.
Какие ещё условия мы можем использовать в запросе для потока?
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/run | Issues in cat/jump or dog/run |
org:electron user:cat user:dog | Issues in electron , cat or dog |
org
is same as user
Attributes
Запрос потока (условия) | Вопросы |
---|---|
repo:cat/jump milestone:v1.0.0 milestone:v1.0.1 | Issues that are attached to v1.0.0 or v1.0.1 in cat/jump |
repo:cat/jump label:bug label:blocker | Issues that are attached bug and blocker in cat/jump |
electron OR atomshell | Issues 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:cat | Issues 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.
- jasperapp.io/doc.html#stream
- help.github.com/articles/searching-issues
- help.github.com/articles/search-syntax
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.