GithubHelp home page GithubHelp logo

hhy5277 / octobox Goto Github PK

View Code? Open in Web Editor NEW

This project forked from octobox/octobox

0.0 2.0 0.0 997 KB

:postbox: Take back control of your GitHub Notifications

Home Page: https://octobox.io

License: GNU Affero General Public License v3.0

Ruby 67.74% JavaScript 3.32% CSS 1.81% HTML 27.13%

octobox's Introduction

Octobox ๐Ÿ“ฎ

Take back control of your GitHub Notifications

Screenshot of Github Inbox

Build Status Code Climate Test Coverage

Why is this a thing?

If you manage more than one active project 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.

What state is the project in right now?

Octobox is like a little baby. You have to host it yourself and it only works for one user at a time.

Check out the open issues for a glimpse of the future: https://github.com/andrew/octobox/issues.

Deployment to Heroku

You can host your own instance of Octobox using Heroku. Heroku will ask you to provide a 'personal access token' which you can create on GitHub. When creating it, make sure you enable the notifications scope on it.

Deploy

Development

The source code is hosted at GitHub. You can report issues/feature requests on GitHub Issues. For other updates, follow me on Twitter: @teabass.

Getting Started

New to Ruby? No worries! You can follow these instructions to install a local server, or you can use the included Vagrant setup.

Installing a Local Server

First things first, you'll need to install Ruby 2.3.3. I recommend using the excellent rbenv, and ruby-build:

brew install rbenv ruby-build
rbenv install 2.3.3
rbenv global 2.3.3

Next, you'll need to make sure that you have PostgreSQL installed. This can be done easily on OSX using Homebrew or by using http://postgresapp.com. Please see these further instructions for installing Postgres via Homebrew.

brew install postgres

On Debian-based Linux distributions you can use apt-get to install Postgres:

sudo apt-get install postgresql postgresql-contrib libpq-dev

Now, let's install the gems from the Gemfile ("Gems" are synonymous with libraries in other languages):

gem install bundler && rbenv rehash
bundle install

Once all the gems are installed, we'll need to create the databases and tables. Rails makes this easy through the use of "Rake" tasks:

bundle exec rake db:create db:migrate

Now go and register a new GitHub OAuth Application, your development configuration should look something like this:

screen shot 2016-12-18 at 21 54 35

If you're deploying this to production, just replace http://localhost:3000 with your applications URL.

Once you've created your application you can then then add the following to your .env:

GITHUB_CLIENT_ID=yourclientidhere
GITHUB_CLIENT_SECRET=yourclientsecrethere

Finally you can boot the rails app:

rails s

Docker Compose

If you're familiar with Docker and Docker Compose, the included docker-compose.yml configuration allows you to spin up the application locally.

First, launch an instance of PostgreSQL and wait for it to fully initialize:

docker-compose up database

Once the PostgreSQL initialization process is complete, launch the application using another terminal session:

GITHUB_CLIENT_ID=yourclientid GITHUB_CLIENT_SECRET=yourclientsecret docker-compose up app

Note: You can add GITHUB_TOKEN to .env instead of supplying it directly on the command-line.

Keyboard shortcuts

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

  • j - move down the list
  • k - move up the list
  • s - star current notification
  • y - archive current notification
  • Enter - open current notification in a new window

Press ? for the help menu.

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.
  • Send a pull request. Bonus points for topic branches.

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

Copyright (c) 2016 Andrew Nesbitt. See LICENSE for details.

octobox's People

Contributors

adamyeats avatar andrew avatar giacomolaw avatar hectcastro avatar karpiu avatar m1guelpf avatar nateprewitt avatar nodunayo avatar ot2sen avatar pezholio avatar pixeltrix avatar raphink avatar tarebyte avatar willabides avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.