Projekt der Woche: Jasper
Diese Woche haben wir den Ersteller von Jasperinterviewt, einem Electron-basierten Werkzeug für die Verwaltung von GitHub Benachrichtigungen.
Hallo! Wer bist du?
Ich bin Ryo Maruyama, ein Softwareentwickler in Japan. Ich entwickle Jasper und ESDoc.
Was ist Jasper?
Jasper ist ein flexibler und mächtiger Issue-Reader für GitHub. Es unterstützt Issues und Pull-Requests auf github.com und GitHub Enterprise.
Warum hast du es gemacht?
Wenn Menschen GitHub in ihren Job- oder OSS-Aktivitäten verwenden, neigen sie dazu, täglich viele Benachrichtigungen zu erhalten. Um die Benachrichtigungen zu abonnieren, bietet GitHub E-Mail und Web-Benachrichtigungen. Ich habe diese für ein paar Jahre verwendet, aber ich bin auf folgende Probleme gestoßen:
- It's easy to overlook issues where I was mentioned, I commented, or I am watching.
- I put some issues in a corner of my head to check later, but I sometimes forget about them.
- To not forget issues, I keep many tabs open in my browser.
- It's hard to check all issues that are related to me.
- It's hard to grasp all of my team's activity.
I was spending a lot of time and energy trying to prevent those problems, so I decided to make an issue reader for GitHub to solve these problems efficiently, and started developing Jasper.
Wer benutzt 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!
Wie funktioniert Jasper?
Sobald Jasper konfiguriert ist, erscheint der folgende Bildschirm. Von links nach rechts können Sie "Streams List", "Issue List" und "Issue Body" sehen.
Dieser "Stream" ist die Kernfunktion von Jasper. Wenn Sie zum Beispiel "Issues, die @zeke im electron/electron Repository zugewiesen sind" sehen wollen, erstellen Sie den folgenden Stream:
repo:electron/electron assignee:zeke is:issue
After creating the stream and waiting for a few seconds, you can see the issues that meet the conditions.
Was können wir mit Streams tun?
I will introduce what kind of conditions can be used for stream.
Benutzer und Teams
Stream | Issues |
---|---|
mentions:cat mentions:dog | Issues that mention user cat or dog |
author:cat author:dog | Issues created by user cat or dog |
assignee:cat assignee:dog | Issues assigned to cat or dog |
commenter:cat commenter:dog | Issues that cat or dog commented on |
involves:cat involves:dog | Issues that "involve" cat or bob |
team:animal/white-cat team:animal/black-dog | Issues that animal/white-cat or animal/black-dog are mentioned in |
involves
means mention
, author
, assignee
or commenter
Respositories und Organisationen
Stream | Issues |
---|---|
repo:cat/jump repo:dog/run | Issues in cat/jump oder dog/run |
org:electron user:cat user:dog | Issues in electron , cat oder dog |
org
is same as user
Attribute
Stream | Issues |
---|---|
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 |
Prüfstatus
Stream | Issues |
---|---|
is:pr review:required | Issues that are required review in cat/jump |
is:pr review-requested:cat | Issues that are requested review by cat . But these are not reviewed yet. |
is:pr reviewed-by:cat | Issues, die von cat reviewed werden |
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.
Ist Jasper ein bezahltes Produkt? Wie viel kostet es?
Jasper kostet $12. However you can use the free trial edition for 30 days.
Warum haben Sie Jasper auf Electron gebaut?
Ich mag die folgenden Aspekte von Elektron:
- Apps können mit JavaScript/CSS/HTML entwickelt werden.
- Apps können für Windows, Mac und Linux-Plattformen gebaut werden.
- Electron wird aktiv entwickelt und hat eine große Community.
These features enable rapid and simple desktop application development. It is awesome! If you have any product idea, you should consider using Electron by all means.
Was sind einige Herausforderungen, denen Sie bei der Entwicklung von Jasper gegenüberstanden?
I had a hard time figuring out the "stream" concept. Zuerst habe ich über die Verwendung von GitHubs Benachrichtigungs-API nachgedacht. Ich habe jedoch festgestellt, dass sie bestimmte Anwendungsfälle nicht unterstützt. Danach habe ich die Issues API und Pull-Requests APIzusätzlich zur Benachrichtigungs-API in Erwägung gezogen. Aber es wurde nie das, was ich wollte. Während ich über verschiedene Methoden nachdachte, erkannte ich, dass das Umfragen von GitHubs Such-API die größte Flexibilität bieten würde. 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.
Was kommt als Nächstes?
Ich habe einen Plan, die folgenden Funktionen zu entwickeln:
- Ein gefilterter Stream: Ein Stream hat einige gefilterte Streams, die Probleme im Stream filtern. Es ist wie eine Ansicht von SQL.
- Mehrere Konten: Sie werden in der Lage sein, github.com und GHE zu verwenden
- Leistung verbessern: Im Moment ist das Laden eines Problems in WebView in niedriger Geschwindigkeit als der normale Browser.
Folgen Sie @jasperappio auf Twitter für Updates.