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.
- data/.travis.yml +2 -0
- data/CHANGELOG.md +3 -0
- data/README.md +15 -3
- data/Rakefile +9 -0
- data/example/app.rb +2 -1
- data/lib/omniauth/backlog/version.rb +1 -1
- data/lib/omniauth/strategies/backlog.rb +13 -0
- data/omniauth-backlog.gemspec +5 -0
- data/test/omniauth/strategies/backlog_test.rb +48 -0
- data/test/test_helper.rb +24 -0
- metadata +97 -18
- checksums.yaml +0 -7
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
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
|
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
|
-
|
41
|
+
provider :backlog, ENV['CLIENT_ID'], ENV['CLIENT_SERCRET'],
|
30
42
|
:client_options => {
|
31
|
-
|
43
|
+
:site => 'https://yourspaceid.backlog.jp'
|
32
44
|
}
|
33
45
|
end
|
34
46
|
```
|
data/Rakefile
CHANGED
data/example/app.rb
CHANGED
@@ -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'],
|
16
|
+
provider :backlog, ENV['CLIENT_ID'], ENV['CLIENT_SERCRET'],
|
17
|
+
:space_id => 'xxx'
|
17
18
|
end
|
18
19
|
|
19
20
|
|
@@ -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
|
data/omniauth-backlog.gemspec
CHANGED
@@ -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
|
data/test/test_helper.rb
ADDED
@@ -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.
|
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-
|
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
|
-
-
|
77
|
-
-
|
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:
|
184
|
+
rubygems_version: 1.8.23.2
|
108
185
|
signing_key:
|
109
|
-
specification_version:
|
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
|