Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Omniauth authentication for gollum
Ruby HTML
Branch: master

Merge pull request #30 from claptimes5/base-path

Fix issue where base path was ignored
latest commit b77cf5fd82
@arr2036 authored

Readme.md

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] = ["example0@example.org", "example1@example.org", "example2@example.org"]

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

# in .env, or other
# OMNIGOLLUM_AUTHORIZED_USERS=example0@example.org,example1@example.org,example2@example.org

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/30857db6ba5a2100c0d392cb0de205e644430d13

Something went wrong with that request. Please try again.