📮Untangle your GitHub Notifications
Перейти к файлу
Andrew Nesbitt 1673a99d52
Perform initial sync of subjects using an installation token (#1135)
* Perform initial sync of subjects using an installation token

Fixes #1125

There was an interesting race condition where the GitHub App was 
installed on a repository and the background job fired before any users 
had authorized the GitHub App oauth.

This meant there wasn't an app_token to download the subjects for 
existing notifications. 

Instead we kick off a sync of all possible subjects for a repository 
using an installation token which doesn't require any users to have 
authorized the GitHub App

* Fix tests
2018-11-12 12:31:41 +00:00
.github Add multiple templates for different kinds of issues (#1035) 2018-10-01 12:21:09 +01:00
app Perform initial sync of subjects using an installation token (#1135) 2018-11-12 12:31:41 +00:00
bin Rubocop fixes (#1075) 2018-10-10 14:16:19 +01:00
config Perform initial sync of subjects using an installation token (#1135) 2018-11-12 12:31:41 +00:00
db View notification threads in Octobox (#1169) 2018-11-01 14:52:46 +00:00
docs Hyperlink fixes (#1198) 2018-11-07 09:58:16 +00:00
lib Add a commentable scope to notifications (#1173) 2018-11-01 15:00:06 +00:00
log Hello World 2016-12-16 23:22:09 +00:00
openshift Update OpenShift installation document (#996) 2018-09-23 09:08:00 +01:00
public * add basic error pages with bootstrap styling (#1053) 2018-10-05 05:34:56 +01:00
test Perform initial sync of subjects using an installation token (#1135) 2018-11-12 12:31:41 +00:00
tmp Hello World 2016-12-16 23:22:09 +00:00
vendor/assets Hello World 2016-12-16 23:22:09 +00:00
.dockerignore Revert "Ignore the docs folder when generating docker images or heroku slugs" (#918) 2018-09-12 15:39:42 +01:00
.env.example Add bugsnag js notifier (#704) 2018-07-27 11:11:00 +01:00
.gitignore Revamp Docker Compose setup (#1139) 2018-10-25 08:19:59 -07:00
.rubocop.yml Rubocop fixes (#1075) 2018-10-10 14:16:19 +01:00
.ruby-version Update ruby to 2.5.3 (#1115) 2018-10-19 16:11:22 +01:00
.slugignore Revert "Ignore the docs folder when generating docker images or heroku slugs" (#918) 2018-09-12 15:39:42 +01:00
.travis.yml Update ruby to 2.5.3 (#1115) 2018-10-19 16:11:22 +01:00
Dockerfile Revamp Docker Compose setup (#1139) 2018-10-25 08:19:59 -07:00
Gemfile View notification threads in Octobox (#1169) 2018-11-01 14:52:46 +00:00
Gemfile.lock Bump pry from 0.12.0 to 0.12.1 (#1210) 2018-11-12 08:43:05 +00:00
Guardfile Add Guard gem and config (#1111) 2018-10-16 21:59:08 +01:00
LICENSE.txt Hello World 2016-12-16 23:22:09 +00:00
Procfile Automatically run migrations on heroku deploys (#657) 2018-06-18 17:33:05 +01:00
README.md Add Guard gem and config (#1111) 2018-10-16 21:59:08 +01:00
Rakefile Fix up some Rubocop offenses (#1055) 2018-10-05 05:12:11 +01:00
app.json Update tagline 2018-08-28 14:59:02 +01:00
config.ru Add rack-canonical-host for redirecting to herokuapp subdomain to octobox.io (#760) 2018-08-09 14:34:50 +01:00
docker-compose.yml Fix version syntax in docker-compose.yml (#1166) 2018-10-30 14:02:00 +00:00

README.md

Octobox 📮 Untangle your GitHub Notifications.

Octobox helps you manage your GitHub notifications efficiently so you can spend less time managing and more time getting things done.

  • Don't lose track - Octobox adds an extra "archived" state to each notification so you can mark it as "done". If anything happens on an archived thread, issue or PR, Octobox will move it back into your inbox.

  • Starred notifications - Let's be honest, you probably don't have a 'favourite' issue but Octobox lets you highlight important notifications with a star so you can come back and find them easily.

  • Filter all the things - Filter notifications by notification type, action, state and reason and keep notifications from bots alongside your regular label, author and assignees.

  • Search with prefix filters - No more Jedi mind tricks. Combine a wide range of powerful search filters help you get straight to the notification you're looking for and focus on just what you need.

  • Built for keyboard warriors - Navigate, triage and manage your notifications like a pro using Gmail-inspired keyboard shortcuts for every function, no mouse required.

  • Open for everyone - Octobox developers use Octobox to develop Octobox. 100% developed and managed in the open on GitHub under a FLOSS license.

Screenshot of  Octobox

Build Status View Performance Data on Skylight Docker Gitter OpenCollective OpenCollective Open Source Helpers license

Why is this a thing?

If you manage any active projects on GitHub, you probably find GitHub Notifications pretty lacking.

Notifications are marked as read and disappear from the list as soon as you load the page or view the email of the notification. This makes it very hard to keep on top of which notifications you still need to follow up on. Most open source maintainers and GitHub staff end up using a complex combination of filters and labels in Gmail to manage their notifications from their inbox. If, like me, you try to avoid email, then you might want something else.

Octobox adds an extra "archived" state to each notification so you can mark it as "done". If new activity happens on the thread/issue/pr, the next time you sync the app the relevant item will be unarchived and moved back into your inbox.

Table of Contents

Getting Started

Octobox.io

You can use Octobox right now at octobox.io, a shared instance hosted by the Octobox team.

Note: octobox.io has Personal Access Tokens (#185) intentionally disabled.

Install

You can also host Octobox yourself! See the installation guide for installation instructions and details regarding deployment to Heroku, Docker, and more.

Desktop usage

You can run Octobox locally as a desktop app too if you'd like, using Nativefier:

npm install -g nativefier
nativefier "https://octobox.io" # Or your own self-hosted URL

This will build a local application (.exe, .app, etc) and put it in your current folder, ready to use.

Web extension

You can also install the cross-browser Octobox Web Extension. It is available for Google Chrome and Mozilla Firefox, but you can also use it with other browsers that support web extensions.

Requirements

Web notifications must be enabled in your GitHub settings for Octobox to work.

Notifications settings screen

Keyboard shortcuts

You can use keyboard shortcuts to navigate and perform certain actions:

  • a - Select/deselect all
  • r or . - Refresh list
  • j - Move down the list
  • k - Move up the list
  • s - Star current notification
  • x - Mark/unmark current notification
  • y or e - Archive current/marked notification(s)
  • m - Mute current/marked notification(s)
  • d - Mark current/marked notification(s) as read here and on GitHub
  • o or Enter - Open current notification in a new window

Press ? for the help menu.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

Contribute

Please do! The source code is hosted at GitHub. If you want something, open an issue or a pull request.

If you need want to contribute but don't know where to start, take a look at the issues tagged as "Help Wanted".

You can also help triage issues. This can include reproducing bug reports, or asking for vital information such as version numbers or reproduction instructions. If you would like to start triaging issues, one easy way to get started is to subscribe to Octobox on CodeTriage.

Finally, this is an open source project. If you would like to become a maintainer, we will consider adding you if you contribute frequently to the project. Feel free to ask.

For other updates, follow the project on Twitter: @octoboxio.

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so we don't break it in a future version unintentionally.
    • You can use bundle exec guard if you'd like the relevant tests to automatically run each time a file is modified.
  • Send a pull request. Bonus points for topic branches.

Vulnerability disclosure

We support and encourage security research on Octobox under the terms of our vulnerability disclosure policy.

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

GNU Affero License © 2018 Andrew Nesbitt.