Skip to content
This repository
Fetching contributors…

Cannot retrieve contributors at this time

file 41 lines (33 sloc) 1.033 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
require 'pp'

module Example
  class App < Sinatra::Base
    enable :sessions

    set :github_options, {
                            :secret => ENV['GITHUB_CLIENT_SECRET'],
                            :client_id => ENV['GITHUB_CLIENT_ID'],
                         }

    register Sinatra::Auth::Github

    helpers do
      def repos
        github_request("user/repos")
      end
    end

    get '/' do
      authenticate!
      "Hello There, #{github_user.name}!#{github_user.token}\n#{repos.inspect}"
    end

    get '/orgs/:id' do
      github_public_organization_authenticate!(params['id'])
      "Hello There, #{github_user.name}! You have access to the #{params['id']} organization."
    end

    # the scopes above need to include repo for team access :(
    # get '/teams/:id' do
    # github_team_authenticate!(params['id'])
    # "Hello There, #{github_user.name}! You have access to the #{params['id']} team."
    # end

    get '/logout' do
      logout!
      redirect 'https://github.com'
    end
  end
end
Something went wrong with that request. Please try again.