omniauth-backlog 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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