Giter VIP home page Giter VIP logo

omnigollum's Introduction

omnigollum - omniauth meets gollum

Quick Installation/Configuration

$ git clone https://github.com/arr2036/omnigollum.git
$ cd omnigollum
$ gem build omnigollum.gemspec
$ gem install omnigollum*.gem
$ cp config.rb.example config.rb

Customize config.rb to use your preferred omniauth strategy.

Execute via Gollum

$ gollum --config config.rb

Installation

$ gem install omnigollum

Configuration

Omnigollum executes an OmniAuth::Builder proc/block to figure out which providers you've configured, then passes it on to omniauth to create the actual omniauth configuration.

To configure both omniauth and omnigollum you should add the following to your config.ru file.

Load omnigollum library

require 'omnigollum'

Load individual provider libraries

require 'omniauth/strategies/twitter'
require 'omniauth/strategies/open_id'

Set configuration

options = {
  # OmniAuth::Builder block is passed as a proc
  :providers => Proc.new do
    provider :twitter, 'CONSUMER_KEY', 'CONSUMER_SECRET'
    provider :open_id, OpenID::Store::Filesystem.new('/tmp')
  end,
  :dummy_auth => false
}

# :omnigollum options *must* be set before the Omnigollum extension is registered
Precious::App.set(:omnigollum, options)

Access control

By default, any authenticated user will be able to access the protected routes. Restrict this by setting the authorized_users option.

authorized_users accepts an array of emails. Users must authenticate with one of these authorized emails in order to be allowed access.

options[:authorized_users] = ["[email protected]", "[email protected]", "[email protected]"]

Instead of setting these directly, you can use an env var, maybe like this:

# in .env, or other
# [email protected],[email protected],[email protected]

options[:authorized_users] = ENV["OMNIGOLLUM_AUTHORIZED_USERS"].split(",")

Register omnigollum extension with sinatra

Precious::App.register Omnigollum::Sinatra

Required patches

Gollum

You can (optionally) apply the patches here, to get a neat little auth status widget in the top right corner of the page https://github.com/arr2036/gollum/commit/dd1fdad59d9f12bfe637704c0101af96aaa1a7e4

omnigollum's People

Contributors

arr2036 avatar sbleon avatar joscarsson avatar kislyuk avatar claptimes5 avatar bmabey avatar hughpyle avatar aldanor avatar jpatel531 avatar jamincollins avatar jrcs avatar wd-shiroma avatar maxchill avatar moqada avatar

Watchers

James Cloos 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.