Sha256: 1d9b712c3fe1e5df04b35cc6df59c55df98772556bafeb6be451a3a063902d06
Contents?: true
Size: 1.78 KB
Versions: 1
Compression:
Stored size: 1.78 KB
Contents
require 'omniauth-oauth' require 'multi_json' require 'net/http' module OmniAuth module Strategies class JIRA < OmniAuth::Strategies::OAuth option :name, 'jira' option :client_options, { :signature_method => 'RSA-SHA1', :request_token_path => '/plugins/servlet/oauth/request-token', :authorize_path => '/plugins/servlet/oauth/authorize', :access_token_path => '/plugins/servlet/oauth/access-token', :site => nil } uid{ user_info['key'] } info do { nickname: user_info['name'], email: user_info['emailAddress'], name: user_info['displayName'], time_zone: user_info['timeZone'], locale: user_info['locale'], image: user_info['avatarUrls'] && user_info['avatarUrls']['48x48'], urls: { self: session_info['self'] } } end extra do { 'raw_info' => raw_info } end credentials do if access_token.params.has_key?(:oauth_expires_in) { "expires" => true, "expires_at" => (Time.now + (access_token.params[:oauth_expires_in].to_i / 1000)).to_i } end end def raw_info @raw_info ||= {session_info: session_info, user_info: user_info} end def session_info @session_info ||= MultiJson.decode(access_token.get('/rest/auth/1/session').body) rescue ::Errno::ETIMEDOUT raise ::Timeout::Error end def user_info @user_info ||= MultiJson.decode(access_token.get(session_info['self']).body) rescue ::Errno::ETIMEDOUT raise ::Timeout::Error end end end end OmniAuth.config.add_camelization 'jira', 'JIRA'
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
omniauth-jira-0.2.0 | lib/omniauth/strategies/jira.rb |