omniauth-skubana 0.1.2 → 0.2.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +72 -0
- data/LICENSE.txt +21 -0
- data/README.md +110 -9
- data/VERSION +1 -0
- data/lib/omniauth/strategies/skubana.rb +38 -12
- data/lib/omniauth-skubana/version.rb +5 -1
- data/lib/omniauth-skubana.rb +2 -0
- data/omniauth-skubana.gemspec +24 -20
- metadata +29 -41
- data/.gitignore +0 -9
- data/.rspec +0 -2
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/.travis.yml +0 -4
- data/Gemfile +0 -4
- data/Rakefile +0 -6
- data/bin/console +0 -14
- data/bin/setup +0 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 80d19c6f5ab2fb372a01532cfb1814e2ae34efbf840323a89f8c425a399a780d
|
|
4
|
+
data.tar.gz: 19781d6be1140de429cb33a8580fcc37ac67a7eb9699c18b149f500323e25d8c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: da2d068c3a63273dba2e8449ca7b339c52385c57a1a4390a312b112a2a9f7eb79d8bf8e96fa4e8e1d9a69ef043da0541ee085e6f04c911c2ab59a1b2eb42cd58
|
|
7
|
+
data.tar.gz: 402082bfeb8a1716ac77c34eca629f1014928eec66202cae4e6d715297a8d4cf48052ad831e70dc202a82a5e81ec7a9024b994c91419398da566032670f8bd7d
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- **Breaking:** the OAuth `state` check is enforced. The strategy no longer sets
|
|
10
|
+
`provider_ignores_state`, so a callback whose `state` is missing or doesn't match the
|
|
11
|
+
session fails with `csrf_detected`. App Store installs need `app_store_install`.
|
|
12
|
+
- The gem version now comes from the release tag. `lib/omniauth-skubana/version.rb` reads
|
|
13
|
+
a top-level `VERSION` file, committed as a `0.0.0` placeholder, which the release
|
|
14
|
+
workflow writes from the tag with its leading `v` stripped.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- `app_store_install` option, for a provider registered with its callback at the URI
|
|
19
|
+
registered for the app with Skubana. An App Store install arrives there with `cid` and
|
|
20
|
+
`code` but no `state`: such callbacks skip the state check and exchange the code with
|
|
21
|
+
`redirect_uri=<callback URL>?cid=<cid>`, as Skubana requires. Previously such codes
|
|
22
|
+
failed with `invalid_grant`.
|
|
23
|
+
|
|
24
|
+
## [0.2.0] - 2026-10-19
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- **Breaking:** requires `omniauth ~> 2.0` and `omniauth-oauth2 >= 1.8, < 2` (previously an
|
|
29
|
+
unpinned `omniauth-oauth2`). Host applications must be on OmniAuth 2.x; Rails apps also
|
|
30
|
+
need [`omniauth-rails_csrf_protection`](https://github.com/cookpad/omniauth-rails_csrf_protection)
|
|
31
|
+
because OmniAuth 2 only accepts `POST` for the request phase.
|
|
32
|
+
- Requires Ruby >= 3.2.
|
|
33
|
+
- The token request now authenticates through `client_options[:auth_scheme] = :basic_auth`
|
|
34
|
+
instead of a hand-built `Authorization` header. On `oauth2` 2.x this sends the same
|
|
35
|
+
request as before; on `oauth2` 1.x it also stops sending `client_id`/`client_secret` in
|
|
36
|
+
the token request body. This removes the `base64` require, which is no longer a default
|
|
37
|
+
gem as of Ruby 3.4.
|
|
38
|
+
- Development toolchain: Bundler 4.x, `rake ~> 13.0`, `rspec ~> 3.13`.
|
|
39
|
+
- Replaced Travis CI with GitHub Actions, testing Ruby 3.2 through 3.4.
|
|
40
|
+
- Releases are now cut from the GitHub Releases UI: publishing a `vX.Y.Z` release reruns
|
|
41
|
+
the matrix, checks the tag against `version.rb`, and publishes to RubyGems.org via
|
|
42
|
+
trusted publishing (OIDC, no stored API key).
|
|
43
|
+
|
|
44
|
+
### Added
|
|
45
|
+
|
|
46
|
+
- `LICENSE.txt` (MIT), now declared in the gemspec.
|
|
47
|
+
- Integration specs covering the request phase, the token exchange, the `redirect_uri`
|
|
48
|
+
and the auth hash.
|
|
49
|
+
- A weekly `bundle-audit` run, so a new advisory against the locked `oauth2`/`rack`
|
|
50
|
+
chain surfaces here rather than in a consuming app.
|
|
51
|
+
|
|
52
|
+
### Fixed
|
|
53
|
+
|
|
54
|
+
- `callback_url` drops the request's query string, so `/auth/skubana?type=shopping` no
|
|
55
|
+
longer sends a `redirect_uri` that does not match the one registered with Skubana, and
|
|
56
|
+
a mount prefix is included only once. (This was tagged as `v0.1.3` but never published
|
|
57
|
+
to RubyGems.)
|
|
58
|
+
- `bin/console` required a non-existent `omniauth/skubana` file.
|
|
59
|
+
- Development scripts in `bin/` and other scaffolding are no longer packaged in the gem.
|
|
60
|
+
|
|
61
|
+
## [0.1.2] - 2020-05-21
|
|
62
|
+
|
|
63
|
+
- Upgraded `omniauth-oauth2` and removed its version constraint.
|
|
64
|
+
|
|
65
|
+
## [0.1.0] - 2016-08-25
|
|
66
|
+
|
|
67
|
+
- Initial published strategy.
|
|
68
|
+
|
|
69
|
+
[Unreleased]: https://github.com/dropstream/omniauth-skubana/compare/v0.2.0...master
|
|
70
|
+
[0.2.0]: https://github.com/dropstream/omniauth-skubana/releases/tag/v0.2.0
|
|
71
|
+
[0.1.2]: https://rubygems.org/gems/omniauth-skubana/versions/0.1.2
|
|
72
|
+
[0.1.0]: https://rubygems.org/gems/omniauth-skubana/versions/0.1.0
|
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2016-2026 Dropstream
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
data/README.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# OmniAuth Skubana
|
|
2
2
|
|
|
3
|
-
This is an OmniAuth strategy for authenticating to Skubana. To use it, you'll need to sign up as an App Developer with
|
|
3
|
+
This is an OmniAuth strategy for authenticating to Skubana. To use it, you'll need to sign up as an App Developer with
|
|
4
4
|
Skubana to receive an AppKey and AppSecret.
|
|
5
5
|
|
|
6
|
+
Requires Ruby >= 3.2, OmniAuth 2.x and `omniauth-oauth2` 1.8 or later.
|
|
7
|
+
|
|
6
8
|
## Installation
|
|
7
9
|
|
|
8
10
|
Add this line to your application's Gemfile:
|
|
@@ -21,21 +23,120 @@ Or install it yourself as:
|
|
|
21
23
|
|
|
22
24
|
## Usage
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
'app_key', 'app_secret',
|
|
28
|
-
:callback_url => "http://www.example.com/auth/skubana/callback",
|
|
29
|
-
:scope => 'read_inventory+write_inventory'
|
|
26
|
+
OmniAuth 2 only accepts `POST` for the request phase. In a Rails app, add
|
|
27
|
+
[`omniauth-rails_csrf_protection`](https://github.com/cookpad/omniauth-rails_csrf_protection)
|
|
28
|
+
to your Gemfile and link to the provider with `button_to` or `link_to ..., method: :post`.
|
|
30
29
|
|
|
30
|
+
```ruby
|
|
31
|
+
Rails.application.config.middleware.use OmniAuth::Builder do
|
|
32
|
+
provider :skubana,
|
|
33
|
+
'app_key', 'app_secret',
|
|
34
|
+
:callback_url => "http://www.example.com/auth/skubana/callback",
|
|
35
|
+
:scope => 'read_inventory write_inventory'
|
|
31
36
|
end
|
|
32
|
-
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Scopes are space-separated. Don't join them with `+`: it is sent encoded as `%2B`, and
|
|
40
|
+
Skubana rejects it with `invalid_scope`.
|
|
41
|
+
|
|
42
|
+
The auth hash carries the token under `credentials`:
|
|
43
|
+
|
|
44
|
+
```ruby
|
|
45
|
+
auth = request.env['omniauth.auth']
|
|
46
|
+
auth['credentials']['token']
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Configuring
|
|
50
|
+
|
|
51
|
+
### Configure the site
|
|
52
|
+
|
|
53
|
+
`client_options[:site]` defaults to `https://app.skubana.com`. Point it elsewhere to
|
|
54
|
+
authenticate against Skubana's demo environment:
|
|
55
|
+
|
|
56
|
+
```ruby
|
|
57
|
+
:client_options => { :site => 'https://demo.skubana.com' }
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Configure the callback URL
|
|
61
|
+
|
|
62
|
+
The strategy overrides `callback_url` to drop the query string that OmniAuth would
|
|
63
|
+
otherwise append, because Skubana rejects a `redirect_uri` that does not match the
|
|
64
|
+
registered one exactly. Pass `callback_url` to override it outright; otherwise it is
|
|
65
|
+
derived from the request, including the mount prefix.
|
|
66
|
+
|
|
67
|
+
### App Store installs
|
|
68
|
+
|
|
69
|
+
An install from Skubana's App Store doesn't go through the request phase: Skubana
|
|
70
|
+
redirects straight to the callback URI registered for the app with `?cid=...&code=...`,
|
|
71
|
+
and no `state`. The code is bound to that registered URI, and must be exchanged with
|
|
72
|
+
`redirect_uri=<registered URI>?cid=<cid>`.
|
|
73
|
+
|
|
74
|
+
To accept App Store installs, register the strategy a second time, under its own name,
|
|
75
|
+
with its callback at the registered URI and `app_store_install` set:
|
|
76
|
+
|
|
77
|
+
```ruby
|
|
78
|
+
provider :skubana, 'app_key', 'app_secret',
|
|
79
|
+
:name => 'skubana_app_store',
|
|
80
|
+
:callback_path => '/apps/skubana/install',
|
|
81
|
+
:callback_url => 'https://www.example.com/apps/skubana/install',
|
|
82
|
+
:request_path => ->(_env) { false },
|
|
83
|
+
:app_store_install => true
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
On that provider, a callback that carries a `cid` and no `state` skips OmniAuth's CSRF
|
|
87
|
+
state check and is exchanged with the `cid` appended. Any other callback is checked as
|
|
88
|
+
usual. Note what accepting installs gives up: anyone can send a signed-in user to that
|
|
89
|
+
URI with a `cid` and `code` of their own, and the user's account gets connected to that
|
|
90
|
+
Skubana account.
|
|
91
|
+
|
|
92
|
+
### Client credentials in the token request
|
|
93
|
+
|
|
94
|
+
`client_options[:auth_scheme]` is pinned to `:basic_auth`, because Skubana expects the
|
|
95
|
+
AppKey and AppSecret as HTTP Basic auth on the token request.
|
|
33
96
|
|
|
34
97
|
## Development
|
|
35
98
|
|
|
36
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
|
99
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
|
100
|
+
|
|
101
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
|
102
|
+
|
|
103
|
+
Run `bundle exec bundle-audit check --update` to check the locked dependency tree against
|
|
104
|
+
the advisory database; CI runs the same check weekly.
|
|
105
|
+
|
|
106
|
+
## Releasing
|
|
107
|
+
|
|
108
|
+
Releases are cut from the [GitHub Releases UI](https://github.com/dropstream/omniauth-skubana/releases/new);
|
|
109
|
+
GitHub Actions builds and publishes the gem to [rubygems.org](https://rubygems.org) via
|
|
110
|
+
[RubyGems trusted publishing](https://guides.rubygems.org/trusted-publishing/), so no API
|
|
111
|
+
key is stored in the repo and the gemspec can keep `rubygems_mfa_required`.
|
|
112
|
+
|
|
113
|
+
1. Add a `CHANGELOG.md` section for the new version, along with a link definition for the
|
|
114
|
+
new heading at the bottom of that file, and merge it to `master`. There is no version
|
|
115
|
+
to bump: the committed `VERSION` file is a `0.0.0` placeholder.
|
|
116
|
+
2. Draft a new release with the target set to `master` and the tag set to the version
|
|
117
|
+
prefixed with `v` — `v0.3.0`, not `0.3.0`. The workflow strips the `v` and uses the
|
|
118
|
+
rest as the gem version.
|
|
119
|
+
3. Click **Generate release notes** — the preferred method — then publish. The generated
|
|
120
|
+
notes list the merged pull requests; `CHANGELOG.md` carries the curated prose and
|
|
121
|
+
links back to each release.
|
|
122
|
+
|
|
123
|
+
Publishing creates the tag, which fires the `Release` workflow: it reruns the full test
|
|
124
|
+
matrix, refuses to continue unless the tag looks like `vX.Y.Z`, writes the version into
|
|
125
|
+
`VERSION` (and `Gemfile.lock`) in its own checkout, and pushes the gem. That change is
|
|
126
|
+
never pushed back to the repo. Note that RubyGems versions are immutable — a bad release
|
|
127
|
+
can be yanked, never replaced, so double-check the tag before publishing.
|
|
128
|
+
|
|
129
|
+
### One-time RubyGems setup
|
|
130
|
+
|
|
131
|
+
Needed before the first release from CI, and again only if the gem is renamed or moved:
|
|
132
|
+
on rubygems.org open the gem -> **Trusted publishers** -> **Create**, with owner
|
|
133
|
+
`dropstream`, repository `omniauth-skubana`, workflow `release.yml`, and environment
|
|
134
|
+
`release`. The repo also needs an environment named `release`.
|
|
37
135
|
|
|
38
136
|
## Contributing
|
|
39
137
|
|
|
40
138
|
Bug reports and pull requests are welcome on GitHub at https://github.com/dropstream/omniauth-skubana.
|
|
41
139
|
|
|
140
|
+
## License
|
|
141
|
+
|
|
142
|
+
Available as open source under the terms of the [MIT License](LICENSE.txt).
|
data/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.2.1
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'omniauth-oauth2'
|
|
2
|
-
require 'base64'
|
|
3
4
|
|
|
4
5
|
module OmniAuth
|
|
5
6
|
module Strategies
|
|
@@ -8,25 +9,50 @@ module OmniAuth
|
|
|
8
9
|
option :client_options, {
|
|
9
10
|
:authorize_url => '/oauth/authorize',
|
|
10
11
|
:token_url => '/oauth/token',
|
|
11
|
-
:site => 'https://app.skubana.com'
|
|
12
|
+
:site => 'https://app.skubana.com',
|
|
13
|
+
# Skubana expects the client credentials as HTTP Basic auth on the token
|
|
14
|
+
# request. Pinned so it doesn't depend on the oauth2 version's default
|
|
15
|
+
# (oauth2 1.x defaulted to :request_body).
|
|
16
|
+
:auth_scheme => :basic_auth
|
|
12
17
|
}
|
|
13
18
|
|
|
14
19
|
option :callback_url
|
|
15
|
-
|
|
16
|
-
option :provider_ignores_state, true
|
|
17
|
-
|
|
18
|
-
protected
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
# Set on a provider registered for App Store installs, with its
|
|
22
|
+
# callback_path at the callback URI registered for the app with Skubana.
|
|
23
|
+
# An install is started by Skubana, not by us: it redirects there with
|
|
24
|
+
# `?cid=...&code=...` and no state to check. Accepting that means anyone
|
|
25
|
+
# can deliver a code of their choosing to a signed-in user's callback, so
|
|
26
|
+
# installs are only handled when the host app sets this.
|
|
27
|
+
option :app_store_install, false
|
|
28
|
+
|
|
29
|
+
def callback_phase
|
|
30
|
+
# Safe to change: OmniAuth dups the options for every request.
|
|
31
|
+
options.provider_ignores_state = true if app_store_install?
|
|
22
32
|
super
|
|
23
33
|
end
|
|
24
|
-
|
|
34
|
+
|
|
35
|
+
# OmniAuth::Strategy#callback_url appends the callback request's own query
|
|
36
|
+
# string, which would send those params to Skubana as part of redirect_uri.
|
|
37
|
+
# Skubana requires redirect_uri to exactly match the URI registered for the
|
|
38
|
+
# app. Note that omniauth 2's `callback_path` already carries SCRIPT_NAME,
|
|
39
|
+
# so mount prefixes must not be added again.
|
|
40
|
+
#
|
|
41
|
+
# An App Store install's code must be exchanged with
|
|
42
|
+
# `redirect_uri=<registered URI>?cid=<cid>`.
|
|
43
|
+
def callback_url
|
|
44
|
+
url = options[:callback_url] || (full_host + callback_path)
|
|
45
|
+
app_store_install? ? "#{url}?cid=#{request.params["cid"]}" : url
|
|
46
|
+
end
|
|
47
|
+
|
|
25
48
|
private
|
|
26
49
|
|
|
27
|
-
def
|
|
28
|
-
|
|
29
|
-
|
|
50
|
+
def app_store_install?
|
|
51
|
+
return false unless options.app_store_install && @env
|
|
52
|
+
|
|
53
|
+
cid = request.params["cid"]
|
|
54
|
+
cid.is_a?(String) && !cid.empty? && request.params["state"].to_s.empty?
|
|
55
|
+
end
|
|
30
56
|
end
|
|
31
57
|
end
|
|
32
58
|
end
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module OmniAuth
|
|
2
4
|
module Skubana
|
|
3
|
-
VERSION
|
|
5
|
+
# The release workflow writes VERSION from the release tag; the committed
|
|
6
|
+
# value is a 0.0.0 placeholder.
|
|
7
|
+
VERSION = File.read(File.expand_path("../../VERSION", __dir__)).strip
|
|
4
8
|
end
|
|
5
9
|
end
|
data/lib/omniauth-skubana.rb
CHANGED
data/omniauth-skubana.gemspec
CHANGED
|
@@ -1,33 +1,37 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
-
require
|
|
5
|
+
require "omniauth-skubana/version"
|
|
5
6
|
|
|
6
7
|
Gem::Specification.new do |spec|
|
|
7
8
|
spec.name = "omniauth-skubana"
|
|
8
9
|
spec.version = OmniAuth::Skubana::VERSION
|
|
9
10
|
spec.authors = ["Karl Falconer"]
|
|
10
|
-
spec.email = ["karl.falconer@
|
|
11
|
+
spec.email = ["karl.falconer@getdropstream.com"]
|
|
11
12
|
|
|
12
|
-
spec.summary =
|
|
13
|
-
spec.description =
|
|
13
|
+
spec.summary = "OmniAuth strategy for Skubana"
|
|
14
|
+
spec.description = "In this gem you will find an OmniAuth Skubana strategy."
|
|
14
15
|
spec.homepage = "https://github.com/dropstream/omniauth-skubana"
|
|
16
|
+
spec.license = "MIT"
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
# delete this section to allow pushing this gem to any host.
|
|
18
|
-
if spec.respond_to?(:metadata)
|
|
19
|
-
spec.metadata['allowed_push_host'] = "https://rubygems.org"
|
|
20
|
-
else
|
|
21
|
-
raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
|
22
|
-
end
|
|
18
|
+
spec.required_ruby_version = ">= 3.2"
|
|
23
19
|
|
|
24
|
-
spec.
|
|
25
|
-
spec.
|
|
26
|
-
spec.
|
|
27
|
-
spec.
|
|
20
|
+
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
|
21
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
|
22
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
|
23
|
+
spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/master/CHANGELOG.md"
|
|
24
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
|
28
25
|
|
|
29
|
-
|
|
26
|
+
# Ship only the library itself; development scaffolding stays out of the gem.
|
|
27
|
+
spec.files = Dir.chdir(__dir__) do
|
|
28
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
|
29
|
+
f.match(%r{\A(?:spec|bin|pkg|\.github)/}) ||
|
|
30
|
+
f.match(%r{\A(?:\.gitignore|\.rspec|\.ruby-version|\.ruby-gemset|Gemfile|Gemfile\.lock|Rakefile)\z})
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
spec.require_paths = ["lib"]
|
|
30
34
|
|
|
31
|
-
spec.
|
|
32
|
-
spec.
|
|
35
|
+
spec.add_dependency "omniauth", "~> 2.0"
|
|
36
|
+
spec.add_dependency "omniauth-oauth2", ">= 1.8", "< 2"
|
|
33
37
|
end
|
metadata
CHANGED
|
@@ -1,83 +1,72 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: omniauth-skubana
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Karl Falconer
|
|
8
|
-
|
|
9
|
-
bindir: exe
|
|
8
|
+
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: omniauth
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - ">="
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0'
|
|
20
|
-
type: :runtime
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - ">="
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: rake
|
|
13
|
+
name: omniauth
|
|
29
14
|
requirement: !ruby/object:Gem::Requirement
|
|
30
15
|
requirements:
|
|
31
16
|
- - "~>"
|
|
32
17
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
34
|
-
type: :
|
|
18
|
+
version: '2.0'
|
|
19
|
+
type: :runtime
|
|
35
20
|
prerelease: false
|
|
36
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
22
|
requirements:
|
|
38
23
|
- - "~>"
|
|
39
24
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
25
|
+
version: '2.0'
|
|
41
26
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
27
|
+
name: omniauth-oauth2
|
|
43
28
|
requirement: !ruby/object:Gem::Requirement
|
|
44
29
|
requirements:
|
|
45
30
|
- - ">="
|
|
46
31
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
48
|
-
|
|
32
|
+
version: '1.8'
|
|
33
|
+
- - "<"
|
|
34
|
+
- !ruby/object:Gem::Version
|
|
35
|
+
version: '2'
|
|
36
|
+
type: :runtime
|
|
49
37
|
prerelease: false
|
|
50
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
39
|
requirements:
|
|
52
40
|
- - ">="
|
|
53
41
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
42
|
+
version: '1.8'
|
|
43
|
+
- - "<"
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '2'
|
|
55
46
|
description: In this gem you will find an OmniAuth Skubana strategy.
|
|
56
47
|
email:
|
|
57
|
-
- karl.falconer@
|
|
48
|
+
- karl.falconer@getdropstream.com
|
|
58
49
|
executables: []
|
|
59
50
|
extensions: []
|
|
60
51
|
extra_rdoc_files: []
|
|
61
52
|
files:
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
- ".ruby-gemset"
|
|
65
|
-
- ".ruby-version"
|
|
66
|
-
- ".travis.yml"
|
|
67
|
-
- Gemfile
|
|
53
|
+
- CHANGELOG.md
|
|
54
|
+
- LICENSE.txt
|
|
68
55
|
- README.md
|
|
69
|
-
-
|
|
70
|
-
- bin/console
|
|
71
|
-
- bin/setup
|
|
56
|
+
- VERSION
|
|
72
57
|
- lib/omniauth-skubana.rb
|
|
73
58
|
- lib/omniauth-skubana/version.rb
|
|
74
59
|
- lib/omniauth/strategies/skubana.rb
|
|
75
60
|
- omniauth-skubana.gemspec
|
|
76
61
|
homepage: https://github.com/dropstream/omniauth-skubana
|
|
77
|
-
licenses:
|
|
62
|
+
licenses:
|
|
63
|
+
- MIT
|
|
78
64
|
metadata:
|
|
79
65
|
allowed_push_host: https://rubygems.org
|
|
80
|
-
|
|
66
|
+
homepage_uri: https://github.com/dropstream/omniauth-skubana
|
|
67
|
+
source_code_uri: https://github.com/dropstream/omniauth-skubana
|
|
68
|
+
changelog_uri: https://github.com/dropstream/omniauth-skubana/blob/master/CHANGELOG.md
|
|
69
|
+
rubygems_mfa_required: 'true'
|
|
81
70
|
rdoc_options: []
|
|
82
71
|
require_paths:
|
|
83
72
|
- lib
|
|
@@ -85,15 +74,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
85
74
|
requirements:
|
|
86
75
|
- - ">="
|
|
87
76
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '
|
|
77
|
+
version: '3.2'
|
|
89
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
79
|
requirements:
|
|
91
80
|
- - ">="
|
|
92
81
|
- !ruby/object:Gem::Version
|
|
93
82
|
version: '0'
|
|
94
83
|
requirements: []
|
|
95
|
-
rubygems_version: 3.
|
|
96
|
-
signing_key:
|
|
84
|
+
rubygems_version: 3.6.9
|
|
97
85
|
specification_version: 4
|
|
98
86
|
summary: OmniAuth strategy for Skubana
|
|
99
87
|
test_files: []
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/.ruby-gemset
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
omniauth-skubana
|
data/.ruby-version
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ruby-2.4.4
|
data/.travis.yml
DELETED
data/Gemfile
DELETED
data/Rakefile
DELETED
data/bin/console
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
|
|
3
|
-
require "bundler/setup"
|
|
4
|
-
require "omniauth/skubana"
|
|
5
|
-
|
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
|
8
|
-
|
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
-
# require "pry"
|
|
11
|
-
# Pry.start
|
|
12
|
-
|
|
13
|
-
require "irb"
|
|
14
|
-
IRB.start
|