omniauth-backlog 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,3 +2,5 @@ language: ruby
2
2
  rvm:
3
3
  - 2.1.1
4
4
  before_install: gem install bundler -v 1.10.2
5
+ install: bundle
6
+ script: bundle exec rake test
@@ -0,0 +1,3 @@
1
+ ## 0.2
2
+
3
+ * It can configure space-id instead of site.
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  This is omniauth strategy for authenticating to your Backlog service used OAuth 2.0 style.
4
4
 
5
+ Backlog is project management tools served by [Nulab Inc](https://nulab-inc.com).
6
+
5
7
 
6
8
  ## Installation
7
9
 
@@ -22,13 +24,23 @@ Or install it yourself as:
22
24
  ## Usage
23
25
 
24
26
  Backlog is managed by space-id, used backlog url (ex. https://xxxx.backlog.jp).
25
- Backlog's oauth endpoint uses space url. so it need to configure site in client_options.
27
+ Backlog's oauth endpoint uses space url. so it need to configure space-id.
28
+
29
+
30
+ ```ruby
31
+ use OmniAuth::Builder do
32
+ provider :backlog, ENV['CLIENT_ID'], ENV['CLIENT_SERCRET'],
33
+ :space_id => 'yourspaceid'
34
+ end
35
+ ```
36
+
37
+ It can set site-url directly.
26
38
 
27
39
  ```ruby
28
40
  use OmniAuth::Builder do
29
- provider :backlog, ENV['CLIENT_ID'], ENV['CLIENT_SERCRET'],
41
+ provider :backlog, ENV['CLIENT_ID'], ENV['CLIENT_SERCRET'],
30
42
  :client_options => {
31
- :site => 'https://yourspaceid.backlog.jp'
43
+ :site => 'https://yourspaceid.backlog.jp'
32
44
  }
33
45
  end
34
46
  ```
data/Rakefile CHANGED
@@ -1 +1,10 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |task|
5
+ task.libs << 'test'
6
+ task.test_files = FileList[File.expand_path('../test/**/*_test.rb', __FILE__)]
7
+ task.verbose = true
8
+ end
9
+
10
+ task :default => :test
@@ -13,7 +13,8 @@ end
13
13
 
14
14
  use Rack::Session::Cookie
15
15
  use OmniAuth::Builder do
16
- provider :backlog, ENV['CLIENT_ID'], ENV['CLIENT_SERCRET'], :client_options => { :site => ENV['CLIENT_ENDPOINT'] }
16
+ provider :backlog, ENV['CLIENT_ID'], ENV['CLIENT_SERCRET'],
17
+ :space_id => 'xxx'
17
18
  end
18
19
 
19
20
 
@@ -1,5 +1,5 @@
1
1
  module Omniauth
2
2
  module Backlog
3
- VERSION = "0.1.1"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -6,6 +6,8 @@ module OmniAuth
6
6
  class Backlog < OmniAuth::Strategies::OAuth2
7
7
  option :name, 'backlog'
8
8
 
9
+ option :space_id, nil
10
+
9
11
  option :authorize_params, {
10
12
  :response_type => 'code',
11
13
  }
@@ -16,6 +18,17 @@ module OmniAuth
16
18
  :proxy => ENV['http_proxy'] ? URI(ENV['http_proxy']) : nil
17
19
  }
18
20
 
21
+ def deep_symbolize(options)
22
+ hash = super(options)
23
+ if ! hash.has_key?(:site)
24
+ if self.options.space_id == nil
25
+ raise 'Backlog space is missing.'
26
+ end
27
+ hash[:site] = 'https://' + self.options.space_id + '.backlog.jp'
28
+ end
29
+ hash
30
+ end
31
+
19
32
  uid{ raw_info['userId'] }
20
33
 
21
34
  info do
@@ -15,10 +15,15 @@ Gem::Specification.new do |spec|
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
19
  spec.bindir = "exe"
19
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
21
  spec.require_paths = ["lib"]
21
22
 
23
+ spec.add_development_dependency 'minitest'
24
+ spec.add_development_dependency 'mocha'
25
+ spec.add_development_dependency 'rack-test'
26
+ spec.add_development_dependency 'webmock'
22
27
  spec.add_development_dependency "bundler", "~> 1.10"
23
28
  spec.add_development_dependency "rake", "~> 10.0"
24
29
  spec.add_dependency "omniauth", "~> 1.2"
@@ -0,0 +1,48 @@
1
+ require 'test_helper'
2
+
3
+
4
+ class TestOmniAuthBacklogWithSiteId < StrategyTestCase
5
+ def setup
6
+ super
7
+ @options = {
8
+ :space_id => 'testspace'
9
+ }
10
+ end
11
+
12
+ def test_site_is_based_from_space_id
13
+ assert_equal 'https://testspace.backlog.jp', strategy.client.site
14
+ end
15
+
16
+ def test_raise_error_if_it_not_set_site_and_space_id
17
+ assert_raises RuntimeError do
18
+ @options = {
19
+ }
20
+ strategy.client
21
+ end
22
+ end
23
+ end
24
+
25
+
26
+ class TestOmniAuthBacklogWithSite < StrategyTestCase
27
+ def setup
28
+ super
29
+ @options = {
30
+ :client_options => {
31
+ :site => 'https://yourspaceid.backlog.jp'
32
+ }
33
+ }
34
+ end
35
+
36
+ def test_it_has_the_correct_site_from_options
37
+ assert_equal 'https://yourspaceid.backlog.jp', strategy.client.site
38
+ end
39
+
40
+ def test_it_has_the_correct_authorize_url_with_site_from_options
41
+ assert_equal 'https://yourspaceid.backlog.jp/OAuth2AccessRequest.action', strategy.client.authorize_url
42
+ end
43
+
44
+ def test_it_has_the_correct_token_url_with_site_from_options
45
+ assert_equal 'https://yourspaceid.backlog.jp/api/v2/oauth2/token', strategy.client.token_url
46
+ end
47
+
48
+ end
@@ -0,0 +1,24 @@
1
+ require 'bundler/setup'
2
+ require 'minitest/autorun'
3
+ require 'mocha/setup'
4
+ require 'rack/test'
5
+ require 'webmock/minitest'
6
+ require 'omniauth-backlog'
7
+ require 'omniauth/strategies/backlog'
8
+
9
+
10
+ class StrategyTestCase < Minitest::Test
11
+ def setup
12
+ @client_id = 'test'
13
+ @client_secret = 'test'
14
+ end
15
+
16
+ def strategy
17
+ @strategy ||= begin
18
+ args = [@client_id, @client_secret, @options].compact
19
+ OmniAuth::Strategies::Backlog.new(nil, *args).tap do |strategy|
20
+ strategy.stubs(:request).returns(@request)
21
+ end
22
+ end
23
+ end
24
+ end
metadata CHANGED
@@ -1,69 +1,142 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-backlog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - attakei
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2015-06-07 00:00:00.000000000 Z
12
+ date: 2015-08-21 00:00:00.000000000 Z
12
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: minitest
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: mocha
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rack-test
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: webmock
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
13
78
  - !ruby/object:Gem::Dependency
14
79
  name: bundler
15
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
16
82
  requirements:
17
- - - "~>"
83
+ - - ~>
18
84
  - !ruby/object:Gem::Version
19
85
  version: '1.10'
20
86
  type: :development
21
87
  prerelease: false
22
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
23
90
  requirements:
24
- - - "~>"
91
+ - - ~>
25
92
  - !ruby/object:Gem::Version
26
93
  version: '1.10'
27
94
  - !ruby/object:Gem::Dependency
28
95
  name: rake
29
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
30
98
  requirements:
31
- - - "~>"
99
+ - - ~>
32
100
  - !ruby/object:Gem::Version
33
101
  version: '10.0'
34
102
  type: :development
35
103
  prerelease: false
36
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
37
106
  requirements:
38
- - - "~>"
107
+ - - ~>
39
108
  - !ruby/object:Gem::Version
40
109
  version: '10.0'
41
110
  - !ruby/object:Gem::Dependency
42
111
  name: omniauth
43
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
44
114
  requirements:
45
- - - "~>"
115
+ - - ~>
46
116
  - !ruby/object:Gem::Version
47
117
  version: '1.2'
48
118
  type: :runtime
49
119
  prerelease: false
50
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
51
122
  requirements:
52
- - - "~>"
123
+ - - ~>
53
124
  - !ruby/object:Gem::Version
54
125
  version: '1.2'
55
126
  - !ruby/object:Gem::Dependency
56
127
  name: omniauth-oauth2
57
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
58
130
  requirements:
59
- - - "~>"
131
+ - - ~>
60
132
  - !ruby/object:Gem::Version
61
133
  version: '1.3'
62
134
  type: :runtime
63
135
  prerelease: false
64
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
65
138
  requirements:
66
- - - "~>"
139
+ - - ~>
67
140
  - !ruby/object:Gem::Version
68
141
  version: '1.3'
69
142
  description: OmniAuth strategy for Backlog
@@ -73,8 +146,9 @@ executables: []
73
146
  extensions: []
74
147
  extra_rdoc_files: []
75
148
  files:
76
- - ".gitignore"
77
- - ".travis.yml"
149
+ - .gitignore
150
+ - .travis.yml
151
+ - CHANGELOG.md
78
152
  - Gemfile
79
153
  - LICENSE.txt
80
154
  - README.md
@@ -84,28 +158,33 @@ files:
84
158
  - lib/omniauth/backlog/version.rb
85
159
  - lib/omniauth/strategies/backlog.rb
86
160
  - omniauth-backlog.gemspec
161
+ - test/omniauth/strategies/backlog_test.rb
162
+ - test/test_helper.rb
87
163
  homepage: https://github.com/attakei/omniauth-backlog
88
164
  licenses:
89
165
  - MIT
90
- metadata: {}
91
166
  post_install_message:
92
167
  rdoc_options: []
93
168
  require_paths:
94
169
  - lib
95
170
  required_ruby_version: !ruby/object:Gem::Requirement
171
+ none: false
96
172
  requirements:
97
- - - ">="
173
+ - - ! '>='
98
174
  - !ruby/object:Gem::Version
99
175
  version: '0'
100
176
  required_rubygems_version: !ruby/object:Gem::Requirement
177
+ none: false
101
178
  requirements:
102
- - - ">="
179
+ - - ! '>='
103
180
  - !ruby/object:Gem::Version
104
181
  version: '0'
105
182
  requirements: []
106
183
  rubyforge_project:
107
- rubygems_version: 2.2.2
184
+ rubygems_version: 1.8.23.2
108
185
  signing_key:
109
- specification_version: 4
186
+ specification_version: 3
110
187
  summary: OmniAuth strategy for Backlog
111
- test_files: []
188
+ test_files:
189
+ - test/omniauth/strategies/backlog_test.rb
190
+ - test/test_helper.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 277aa61b6ded0a66ab13d18b36eec707de6b8ab7
4
- data.tar.gz: 517eda4d47991ba4106b7f1ff0b6cc3591848d73
5
- SHA512:
6
- metadata.gz: 16f68396b5969757c56a0be2c28b9bc592abb53e04fed05d0882ea5b911395c89e6531582b925f57ee013aa10257221aca15dc7aef11413157189f46d3e942a4
7
- data.tar.gz: 1d8630dc99e51007425788a4bae72db3815de9fe27920ec16ddfc826ac6597d73c1f03a0ba9950c74d47fd26a2d15e4695d0ddc583295ee008d0fa01363a332a