No commit activity in last 3 years
No release in over 3 years
rack-auth-gitlabapi : provide GitLab API authentication for Rack middleware
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

= 4.4.0
~> 2.0.5
 Project Readme

rack-auth-gitlabapi

Rack Middleware for GitLab API authentication

Presentation

Rack::Auth::Gitlabapi is a basic authentication module with GitLab API authentication support.

It's based on Rack:Auth::Basic from the Rack main Project.

This is an additional module for Rack to authenticate users against the GitLab API.

Installation

In your Gemfile, add :

gem "rack-auth-gitlabapi"

Create a gitlab.yml at the same level as the config.ru file :

endpoint: https://example.net/api/v4

In you config.ru, simply add :

require 'rubygems'
require 'bundler'
require 'rack'

Bundler.require

require File.dirname(__FILE__) + '/your_app.rb'

use Rack::Auth::Gitlabapi
run Sinatra::Application

This configuration activate the Basic Authentication for the entire application.

To use custom configuration file :

use Rack::Auth::Gitlabapi, file: '/path/to/my/gitlab.yml'

Advanced

To protect some routes according to the parameters of the Gitlab user :

require 'rubygems'
require 'bundler'
require 'rack'

Bundler.require

require File.dirname(__FILE__) + '/myapp.rb'

class CustomGitlabapi < Rack::Auth::Gitlabapi
   def call(env)
      request = Rack::Request.new(env)
      response = super(env)

      return unauthorized if user.nil?

      if request.path == '/upload' or request.post?
         return unauthorized if (!user.can_create_project || user.external)
      end

      return response
   end
end

use CustomGitlabapi
run Sinatra::Application