/octobox

📮Untangle your GitHub Notifications

Primary LanguageRubyGNU Affero General Public License v3.0AGPL-3.0

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.

  • Enhanced notifications - Like notifications, but better. With issue/pull-request status, CI status, labels and more shown alongside basic title, organisation, repo and type information.

  • Filter all the things - Filter notifications by repository, organisation, type, action, state, CI status and reason and keep notifications from bots alongside your regular labels, 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. To receive vulnerability notifications, you must enable them as well.

screenshot 2018-11-12 at 14 32 38

Viewing comment threads

Octobox's thread view support is currently in public beta. To enable it select 'on octobox' from the 'Open notifications' menu in /settings.

Threads need to be synchronised in order to view them in Octobox. Some notifications will still show the :link-external: icon from the notification window if they do not have an associated thread or have yet to synchronise one.

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.

Copyright

GNU Affero License © 2018 Andrew Nesbitt.