minfraud 2.2.0 → 2.4.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.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +4 -0
- data/.github/workflows/release.yml +28 -0
- data/.github/workflows/rubocop.yml +9 -3
- data/.github/workflows/test.yml +10 -4
- data/.rubocop.yml +4 -1
- data/CHANGELOG.md +20 -0
- data/LICENSE.txt +1 -1
- data/README.md +12 -2
- data/dev-bin/release.sh +59 -0
- data/lib/minfraud/components/payment.rb +5 -0
- data/lib/minfraud/model/device.rb +1 -4
- data/lib/minfraud/version.rb +1 -1
- data/lib/minfraud.rb +6 -1
- data/minfraud.gemspec +2 -2
- metadata +12 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 14d6fda0782c4f12ecd3599b4d6f3887be93845fca267490bbc64ad6bf5e3518
|
4
|
+
data.tar.gz: 0dbcb74c203b066c41ad1d85b25e236a63c9e2904a87064bece9ce69a60eecc6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74a6d172a649d417c89ca8a22a454407e54d70a19cea0583594165a2de23ac9df889478675fadad4becade61a84ac7fb39950ae890cd8d98c80e2dcdb6a2d38d
|
7
|
+
data.tar.gz: 7c9c52f1929869e043878b4f74c40d488fa5a44df587b63362a537b14b8f3602a4c78b51abeb18ab2404bf49ba2662b38919a5470de8270f2b53dc1ea2b80071
|
data/.github/dependabot.yml
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
name: Release
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
pull_request:
|
6
|
+
push:
|
7
|
+
branches:
|
8
|
+
- main
|
9
|
+
release:
|
10
|
+
types:
|
11
|
+
- published
|
12
|
+
|
13
|
+
jobs:
|
14
|
+
push:
|
15
|
+
if: github.event_name == 'release' && github.event.action == 'published'
|
16
|
+
runs-on: ubuntu-latest
|
17
|
+
environment: release
|
18
|
+
permissions:
|
19
|
+
id-token: write
|
20
|
+
steps:
|
21
|
+
- uses: actions/checkout@v4
|
22
|
+
- name: Set up Ruby
|
23
|
+
uses: ruby/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
bundler-cache: true
|
26
|
+
ruby-version: ruby
|
27
|
+
|
28
|
+
- uses: rubygems/release-gem@v1
|
@@ -1,12 +1,18 @@
|
|
1
1
|
name: Run rubocop
|
2
|
-
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
schedule:
|
7
|
+
- cron: '4 0 * * SUN'
|
8
|
+
|
3
9
|
jobs:
|
4
10
|
rubocop:
|
5
11
|
runs-on: ubuntu-latest
|
6
12
|
steps:
|
7
|
-
- uses: actions/checkout@
|
13
|
+
- uses: actions/checkout@v4
|
8
14
|
- uses: ruby/setup-ruby@v1
|
9
15
|
with:
|
10
|
-
ruby-version: 3.
|
16
|
+
ruby-version: 3.3
|
11
17
|
- run: bundle install
|
12
18
|
- run: bundle exec rake -t rubocop
|
data/.github/workflows/test.yml
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
name: Run tests
|
2
|
-
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
schedule:
|
7
|
+
- cron: '4 1 * * SUN'
|
8
|
+
|
3
9
|
jobs:
|
4
10
|
test:
|
5
11
|
runs-on: ${{ matrix.os }}
|
@@ -9,18 +15,18 @@ jobs:
|
|
9
15
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
10
16
|
version:
|
11
17
|
[
|
12
|
-
2.5,
|
13
|
-
2.6,
|
14
18
|
2.7,
|
15
19
|
'3.0',
|
16
20
|
3.1,
|
21
|
+
3.2,
|
22
|
+
3.3,
|
17
23
|
jruby,
|
18
24
|
]
|
19
25
|
exclude:
|
20
26
|
- os: windows-latest
|
21
27
|
version: jruby
|
22
28
|
steps:
|
23
|
-
- uses: actions/checkout@
|
29
|
+
- uses: actions/checkout@v4
|
24
30
|
with:
|
25
31
|
submodules: true
|
26
32
|
- uses: ruby/setup-ruby@v1
|
data/.rubocop.yml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
AllCops:
|
2
|
-
TargetRubyVersion: 2.
|
2
|
+
TargetRubyVersion: 2.7
|
3
3
|
NewCops: enable
|
4
4
|
|
5
5
|
# Metrics.
|
@@ -85,3 +85,6 @@ Lint/MissingSuper:
|
|
85
85
|
|
86
86
|
Naming/VariableNumber:
|
87
87
|
Enabled: false # Doesn't always make sense.
|
88
|
+
|
89
|
+
Gemspec/DevelopmentDependencies:
|
90
|
+
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,25 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v2.4.0 (2024-01-12)
|
4
|
+
|
5
|
+
* Ruby 2.7+ is now required. If you're using Ruby 2.5 or 2.6, please use
|
6
|
+
version 2.3.0 of this gem.
|
7
|
+
* Added the processors `:pxp_financial` and `:trustpay` to
|
8
|
+
`Minfraud::Components::Payment`.
|
9
|
+
|
10
|
+
## v2.3.0 (2023-12-04)
|
11
|
+
|
12
|
+
* Added the processor `:shopify_payments` to `Minfraud::Components::Payment`.
|
13
|
+
* Added the processor `:google_pay` to `Minfraud::Components::Payment`.
|
14
|
+
* Added the processor `:placetopay` to `Minfraud::Components::Payment`.
|
15
|
+
* In addition to the minfraud gem version, the User-Agent now includes the
|
16
|
+
version of Ruby and the version of the HTTP client in all HTTP requests.
|
17
|
+
* Updated `maxmind-geoip2` to version that includes the `anycast?` method
|
18
|
+
on `MaxMind::GeoIP2::Record::Traits`. This returns `true` if the IP
|
19
|
+
address belongs to an [anycast
|
20
|
+
network](https://en.wikipedia.org/wiki/Anycast). This is available in
|
21
|
+
minFraud Insights and Factors.
|
22
|
+
|
3
23
|
## v2.2.0 (2022-03-28)
|
4
24
|
|
5
25
|
* Added the input `/credit_card/country`. This is the country where the
|
data/LICENSE.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
3
|
Copyright (c) 2016-2020 kushnir.yb
|
4
|
-
Copyright (c) 2020-
|
4
|
+
Copyright (c) 2020-2024 MaxMind, Inc.
|
5
5
|
|
6
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
7
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -50,6 +50,16 @@ Minfraud.configure do |c|
|
|
50
50
|
end
|
51
51
|
````
|
52
52
|
|
53
|
+
To use the Sandbox web service instead of the production web service, you can provide the host:
|
54
|
+
|
55
|
+
```ruby
|
56
|
+
Minfraud.configure do |c|
|
57
|
+
c.account_id = 12345
|
58
|
+
c.license_key = 'your_license_key'
|
59
|
+
c.host = 'sandbox.maxmind.com'
|
60
|
+
end
|
61
|
+
```
|
62
|
+
|
53
63
|
### Making a minFraud Score, Insights, or Factors Request
|
54
64
|
|
55
65
|
To use the minFraud API, create a `Minfraud::Assessments` object. The
|
@@ -265,7 +275,7 @@ to the client API, please see
|
|
265
275
|
|
266
276
|
## Requirements
|
267
277
|
|
268
|
-
This gem works with Ruby 2.
|
278
|
+
This gem works with Ruby 2.7 and above.
|
269
279
|
|
270
280
|
## Contributing
|
271
281
|
|
@@ -283,7 +293,7 @@ This API uses [Semantic Versioning](https://semver.org/).
|
|
283
293
|
|
284
294
|
Copyright (c) 2016-2020 kushnir.yb.
|
285
295
|
|
286
|
-
Copyright (c) 2020-
|
296
|
+
Copyright (c) 2020-2024 MaxMind, Inc.
|
287
297
|
|
288
298
|
The gem is available as open source under the terms of the [MIT
|
289
299
|
License](https://opensource.org/licenses/MIT).
|
data/dev-bin/release.sh
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
set -eu -o pipefail
|
4
|
+
|
5
|
+
changelog=$(cat CHANGELOG.md)
|
6
|
+
|
7
|
+
regex='
|
8
|
+
## v([0-9]+\.[0-9]+\.[0-9]+) \(([0-9]{4}-[0-9]{2}-[0-9]{2})\)
|
9
|
+
|
10
|
+
((.|
|
11
|
+
)*)
|
12
|
+
'
|
13
|
+
|
14
|
+
if [[ ! $changelog =~ $regex ]]; then
|
15
|
+
echo "Could not find date line in change log!"
|
16
|
+
exit 1
|
17
|
+
fi
|
18
|
+
|
19
|
+
version="${BASH_REMATCH[1]}"
|
20
|
+
date="${BASH_REMATCH[2]}"
|
21
|
+
notes="$(echo "${BASH_REMATCH[3]}" | sed -n -E '/^## v[0-9]+\.[0-9]+\.[0-9]+/,$!p')"
|
22
|
+
|
23
|
+
echo "$notes"
|
24
|
+
if [[ "$date" != "$(date +"%Y-%m-%d")" ]]; then
|
25
|
+
echo "$date is not today!"
|
26
|
+
exit 1
|
27
|
+
fi
|
28
|
+
|
29
|
+
tag="v$version"
|
30
|
+
|
31
|
+
if [ -n "$(git status --porcelain)" ]; then
|
32
|
+
echo ". is not clean." >&2
|
33
|
+
exit 1
|
34
|
+
fi
|
35
|
+
|
36
|
+
perl -pi -e "s/(?<=VERSION = \').+?(?=\')/$version/g" lib/minfraud/version.rb
|
37
|
+
|
38
|
+
echo $"Test results:"
|
39
|
+
|
40
|
+
rake
|
41
|
+
|
42
|
+
echo $'\nDiff:'
|
43
|
+
git diff
|
44
|
+
|
45
|
+
echo $'\nRelease notes:'
|
46
|
+
echo "$notes"
|
47
|
+
|
48
|
+
read -e -p "Commit changes and push to origin? " should_push
|
49
|
+
|
50
|
+
if [ "$should_push" != "y" ]; then
|
51
|
+
echo "Aborting"
|
52
|
+
exit 1
|
53
|
+
fi
|
54
|
+
|
55
|
+
git commit -m "Update for $tag" -a
|
56
|
+
|
57
|
+
git push
|
58
|
+
|
59
|
+
gh release create --target "$(git branch --show-current)" -t "$version" -n "$notes" "$tag"
|
@@ -78,6 +78,7 @@ module Minfraud
|
|
78
78
|
g2a_pay
|
79
79
|
global_payments
|
80
80
|
gocardless
|
81
|
+
google_pay
|
81
82
|
heartland
|
82
83
|
hipay
|
83
84
|
ingenico
|
@@ -129,9 +130,11 @@ module Minfraud
|
|
129
130
|
payway
|
130
131
|
payza
|
131
132
|
pinpayments
|
133
|
+
placetopay
|
132
134
|
posconnect
|
133
135
|
princeton_payment_solutions
|
134
136
|
psigate
|
137
|
+
pxp_financial
|
135
138
|
qiwi
|
136
139
|
quickpay
|
137
140
|
raberil
|
@@ -142,6 +145,7 @@ module Minfraud
|
|
142
145
|
safecharge
|
143
146
|
sagepay
|
144
147
|
securetrading
|
148
|
+
shopify_payments
|
145
149
|
simplify_commerce
|
146
150
|
skrill
|
147
151
|
smartcoin
|
@@ -155,6 +159,7 @@ module Minfraud
|
|
155
159
|
towah
|
156
160
|
transact_pro
|
157
161
|
trustly
|
162
|
+
trustpay
|
158
163
|
tsys
|
159
164
|
usa_epay
|
160
165
|
vantiv
|
@@ -19,10 +19,7 @@ module Minfraud
|
|
19
19
|
attr_reader :confidence
|
20
20
|
|
21
21
|
# A UUID that MaxMind uses for the device associated with this IP
|
22
|
-
# address.
|
23
|
-
# they are too common (for example, all iPhones of a given model and OS
|
24
|
-
# release). In these cases, the minFraud service will simply not return a
|
25
|
-
# UUID for that device.
|
22
|
+
# address.
|
26
23
|
#
|
27
24
|
# @return [String, nil]
|
28
25
|
attr_reader :id
|
data/lib/minfraud/version.rb
CHANGED
data/lib/minfraud.rb
CHANGED
@@ -43,6 +43,11 @@ module Minfraud
|
|
43
43
|
attr_accessor :enable_validation
|
44
44
|
|
45
45
|
# The host to use when connecting to the web service.
|
46
|
+
# By default, the client connects to the production host. However,
|
47
|
+
# during testing and development, you can set this option to
|
48
|
+
# 'sandbox.maxmind.com' to use the Sandbox environment's host. The
|
49
|
+
# sandbox allows you to experiment with the API without affecting your
|
50
|
+
# production data.
|
46
51
|
#
|
47
52
|
# @return [String, nil]
|
48
53
|
attr_accessor :host
|
@@ -76,7 +81,7 @@ module Minfraud
|
|
76
81
|
pass: @license_key,
|
77
82
|
).headers(
|
78
83
|
accept: 'application/json',
|
79
|
-
user_agent: "minfraud-api-ruby/#{Minfraud::VERSION}",
|
84
|
+
user_agent: "minfraud-api-ruby/#{Minfraud::VERSION} ruby/#{RUBY_VERSION} http/#{HTTP::VERSION}",
|
80
85
|
)
|
81
86
|
end
|
82
87
|
end
|
data/minfraud.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.homepage = 'https://github.com/maxmind/minfraud-api-ruby'
|
16
16
|
spec.license = 'MIT'
|
17
17
|
|
18
|
-
spec.required_ruby_version = '>= 2.
|
18
|
+
spec.required_ruby_version = '>= 2.7.0'
|
19
19
|
|
20
20
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
21
21
|
spec.bindir = 'exe'
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
|
25
25
|
spec.add_runtime_dependency 'connection_pool', '~> 2.2'
|
26
26
|
spec.add_runtime_dependency 'http', '>= 4.3', '< 6.0'
|
27
|
-
spec.add_runtime_dependency 'maxmind-geoip2', '~> 1.
|
27
|
+
spec.add_runtime_dependency 'maxmind-geoip2', '~> 1.2'
|
28
28
|
spec.add_runtime_dependency 'simpleidn', '~> 0.1', '>= 0.1.1'
|
29
29
|
|
30
30
|
spec.add_development_dependency 'bundler', '~> 2.2'
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minfraud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kushnir.yb
|
8
8
|
- William Storey
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-01-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: connection_pool
|
@@ -51,14 +51,14 @@ dependencies:
|
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '1.
|
54
|
+
version: '1.2'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
61
|
+
version: '1.2'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: simpleidn
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -149,7 +149,7 @@ dependencies:
|
|
149
149
|
- - "~>"
|
150
150
|
- !ruby/object:Gem::Version
|
151
151
|
version: '3.14'
|
152
|
-
description:
|
152
|
+
description:
|
153
153
|
email:
|
154
154
|
- support@maxmind.com
|
155
155
|
executables: []
|
@@ -157,6 +157,7 @@ extensions: []
|
|
157
157
|
extra_rdoc_files: []
|
158
158
|
files:
|
159
159
|
- ".github/dependabot.yml"
|
160
|
+
- ".github/workflows/release.yml"
|
160
161
|
- ".github/workflows/rubocop.yml"
|
161
162
|
- ".github/workflows/test.yml"
|
162
163
|
- ".gitignore"
|
@@ -171,6 +172,7 @@ files:
|
|
171
172
|
- Rakefile
|
172
173
|
- bin/console
|
173
174
|
- bin/setup
|
175
|
+
- dev-bin/release.sh
|
174
176
|
- lib/minfraud.rb
|
175
177
|
- lib/minfraud/assessments.rb
|
176
178
|
- lib/minfraud/components/account.rb
|
@@ -222,7 +224,7 @@ licenses:
|
|
222
224
|
- MIT
|
223
225
|
metadata:
|
224
226
|
rubygems_mfa_required: 'true'
|
225
|
-
post_install_message:
|
227
|
+
post_install_message:
|
226
228
|
rdoc_options: []
|
227
229
|
require_paths:
|
228
230
|
- lib
|
@@ -230,15 +232,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
230
232
|
requirements:
|
231
233
|
- - ">="
|
232
234
|
- !ruby/object:Gem::Version
|
233
|
-
version: 2.
|
235
|
+
version: 2.7.0
|
234
236
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
235
237
|
requirements:
|
236
238
|
- - ">="
|
237
239
|
- !ruby/object:Gem::Version
|
238
240
|
version: '0'
|
239
241
|
requirements: []
|
240
|
-
rubygems_version: 3.
|
241
|
-
signing_key:
|
242
|
+
rubygems_version: 3.5.3
|
243
|
+
signing_key:
|
242
244
|
specification_version: 4
|
243
245
|
summary: Ruby API for the minFraud Score, Insights, Factors, and Report Transactions
|
244
246
|
services
|