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
2025
2026
 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