gds_zendesk 3.0.0 → 3.3.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 +5 -5
- data/.rubocop.yml +7 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +12 -0
- data/Gemfile +1 -1
- data/Jenkinsfile +2 -1
- data/README.md +9 -1
- data/Rakefile +8 -2
- data/gds_zendesk.gemspec +15 -15
- data/lib/gds_zendesk/client.rb +20 -12
- data/lib/gds_zendesk/dummy_client.rb +7 -6
- data/lib/gds_zendesk/test_helpers.rb +28 -28
- data/lib/gds_zendesk/users.rb +3 -2
- data/lib/gds_zendesk/version.rb +1 -1
- data/lib/generators/gds_zendesk/install/install_generator.rb +14 -14
- data/spec/gds_zendesk/client_spec.rb +30 -7
- data/spec/gds_zendesk/dummy_client_spec.rb +1 -1
- data/spec/gds_zendesk/users_spec.rb +6 -6
- data/spec/spec_helper.rb +2 -2
- metadata +38 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 212f75df35d4fbe686de231d98ea2bf37e38e135e58d80c92e1a650b4f393327
|
4
|
+
data.tar.gz: ab77b135f4a7e10107eef99fff1d221409902ca8458d73caedd3b760e553221d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdaf04d4cdf2fa3fd2b5d7cc48f93130008a4cf134372e97bf622d38872d6d56655dfa7f232f3a52c0474e673b9dbd04c9571a72a2d04c7fbc139afb3284879b
|
7
|
+
data.tar.gz: 94112efde5839d160cdac16d10aa50cc60e665d1e33ee5ddf219fca4bf3ec837e2c7d3f36c44b930910e4932a25836816510e839021f7c003cbebf9508a58afe
|
data/.rubocop.yml
ADDED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.6.6
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 3.3.0
|
2
|
+
|
3
|
+
* Allow access to Zendesk::Client from GDSZendesk::Client
|
4
|
+
|
5
|
+
# 3.2.0
|
6
|
+
|
7
|
+
* Allow use of a token instead of password
|
8
|
+
|
9
|
+
# 3.1.0
|
10
|
+
|
11
|
+
* Update `zendesk_api` library to v1.27
|
12
|
+
|
1
13
|
# 3.0.0
|
2
14
|
|
3
15
|
* Update the `webmock` library to version v2.3.2 to be compatible with Ruby
|
data/Gemfile
CHANGED
data/Jenkinsfile
CHANGED
data/README.md
CHANGED
@@ -32,7 +32,7 @@ This generates an initializer at `config/initializers/gds_zendesk.rb`.
|
|
32
32
|
|
33
33
|
#### Mandatory settings
|
34
34
|
|
35
|
-
This gem needs to be configured with a Zendesk username and password before it can be used.
|
35
|
+
This gem needs to be configured with a Zendesk username and password (or token) before it can be used.
|
36
36
|
These are set in `config/initializers/gds_zendesk.rb`
|
37
37
|
|
38
38
|
#### Enabling development mode
|
@@ -53,3 +53,11 @@ GDSZendesk::Client.new(config_options)
|
|
53
53
|
```
|
54
54
|
|
55
55
|
to create a new client.
|
56
|
+
|
57
|
+
## Running tests locally
|
58
|
+
|
59
|
+
To run the tests, use the follow:
|
60
|
+
|
61
|
+
```
|
62
|
+
bundle exec rake default
|
63
|
+
```
|
data/Rakefile
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
require "rake"
|
2
|
+
require "rubocop/rake_task"
|
2
3
|
require "bundler/gem_tasks"
|
3
|
-
require
|
4
|
+
require "rspec/core/rake_task"
|
4
5
|
|
6
|
+
RuboCop::RakeTask.new
|
5
7
|
RSpec::Core::RakeTask.new(:spec)
|
6
8
|
|
7
|
-
|
9
|
+
desc "Linting for Ruby"
|
10
|
+
task lint: %i[rubocop] do
|
11
|
+
end
|
12
|
+
|
13
|
+
task default: %i[lint spec]
|
data/gds_zendesk.gemspec
CHANGED
@@ -1,26 +1,26 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
1
|
+
lib = File.expand_path("lib", __dir__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
3
|
+
require "gds_zendesk/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |gem|
|
7
6
|
gem.name = "gds_zendesk"
|
8
7
|
gem.version = GDSZendesk::VERSION
|
9
|
-
gem.authors = ["
|
10
|
-
gem.email = ["
|
11
|
-
gem.description =
|
12
|
-
gem.summary =
|
8
|
+
gem.authors = ["GOV.UK Dev"]
|
9
|
+
gem.email = ["govuk-dev@digital.cabinet-office.gov.uk"]
|
10
|
+
gem.description = "Client and models for communicating with Zendesk"
|
11
|
+
gem.summary = "Client and models for communicating with Zendesk"
|
13
12
|
gem.homepage = "https://github.com/alphagov/gds_zendesk"
|
14
13
|
|
15
|
-
gem.files = `git ls-files`.split(
|
16
|
-
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
14
|
+
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
15
|
+
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
17
16
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
-
gem.require_paths = [
|
17
|
+
gem.require_paths = %w[lib]
|
19
18
|
|
20
|
-
gem.add_dependency
|
21
|
-
gem.add_dependency
|
19
|
+
gem.add_dependency "null_logger", "~> 0"
|
20
|
+
gem.add_dependency "zendesk_api", "~> 1.27"
|
22
21
|
|
23
|
-
gem.add_development_dependency
|
24
|
-
gem.add_development_dependency
|
25
|
-
gem.add_development_dependency "
|
22
|
+
gem.add_development_dependency "rake", "~> 10"
|
23
|
+
gem.add_development_dependency "rspec", "~> 3"
|
24
|
+
gem.add_development_dependency "rubocop-govuk", "~> 3"
|
25
|
+
gem.add_development_dependency "webmock", "~> 2"
|
26
26
|
end
|
data/lib/gds_zendesk/client.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require "forwardable"
|
2
|
+
require "null_logger"
|
3
|
+
require "zendesk_api"
|
4
4
|
|
5
|
-
require
|
5
|
+
require "gds_zendesk/users"
|
6
6
|
|
7
7
|
module GDSZendesk
|
8
8
|
class Client
|
@@ -10,6 +10,7 @@ module GDSZendesk
|
|
10
10
|
def_delegators :@zendesk_client, :ticket
|
11
11
|
|
12
12
|
attr_accessor :config_options
|
13
|
+
attr_reader :zendesk_client
|
13
14
|
|
14
15
|
def initialize(config_options)
|
15
16
|
@config_options = defaults.merge(config_options)
|
@@ -23,28 +24,35 @@ module GDSZendesk
|
|
23
24
|
def build
|
24
25
|
check_that_username_and_password_are_provided
|
25
26
|
|
26
|
-
ZendeskAPI::Client.new
|
27
|
+
ZendeskAPI::Client.new do |config|
|
27
28
|
config.url = url
|
28
29
|
config.username = username
|
29
|
-
config.
|
30
|
+
config.token = token if token
|
31
|
+
config.password = password if password
|
30
32
|
config.logger = logger
|
31
|
-
|
33
|
+
end
|
32
34
|
end
|
33
35
|
|
34
|
-
|
36
|
+
protected
|
37
|
+
|
35
38
|
def logger
|
36
39
|
@config_options[:logger] || @config_options["logger"]
|
37
40
|
end
|
38
41
|
|
39
42
|
def check_that_username_and_password_are_provided
|
40
43
|
raise ArgumentError, "Zendesk username not provided" if username.nil?
|
41
|
-
raise ArgumentError, "Zendesk password not provided" if password.nil?
|
44
|
+
raise ArgumentError, "Zendesk password or token not provided" if password.nil? && token.nil?
|
45
|
+
raise ArgumentError, "Provide only one of token or password" unless password.nil? || token.nil?
|
42
46
|
end
|
43
47
|
|
44
48
|
def username
|
45
49
|
@config_options[:username] || @config_options["username"]
|
46
50
|
end
|
47
51
|
|
52
|
+
def token
|
53
|
+
@config_options[:token] || @config_options["token"]
|
54
|
+
end
|
55
|
+
|
48
56
|
def password
|
49
57
|
@config_options[:password] || @config_options["password"]
|
50
58
|
end
|
@@ -55,9 +63,9 @@ module GDSZendesk
|
|
55
63
|
|
56
64
|
def defaults
|
57
65
|
{
|
58
|
-
|
59
|
-
|
66
|
+
logger: NullLogger.instance,
|
67
|
+
url: "https://govuk.zendesk.com/api/v2/",
|
60
68
|
}
|
61
69
|
end
|
62
70
|
end
|
63
|
-
end
|
71
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "null_logger"
|
2
|
+
require "zendesk_api/error"
|
3
3
|
|
4
4
|
module GDSZendesk
|
5
5
|
class DummyClient
|
@@ -23,13 +23,14 @@ module GDSZendesk
|
|
23
23
|
@options = options
|
24
24
|
if should_raise_error?
|
25
25
|
@logger.info("Simulating Zendesk ticket creation failure: #{options.inspect}")
|
26
|
-
raise ZendeskAPI::Error::RecordInvalid.new(body: {"details" => "sample error message from Zendesk"})
|
26
|
+
raise ZendeskAPI::Error::RecordInvalid.new(body: { "details" => "sample error message from Zendesk" })
|
27
27
|
else
|
28
28
|
@logger.info("Zendesk ticket created: #{options.inspect}")
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
|
32
|
+
protected
|
33
|
+
|
33
34
|
def should_raise_error?
|
34
35
|
description =~ /break_zendesk/ or comment =~ /break_zendesk/
|
35
36
|
end
|
@@ -48,11 +49,11 @@ module GDSZendesk
|
|
48
49
|
@logger = logger
|
49
50
|
end
|
50
51
|
|
51
|
-
def search(
|
52
|
+
def search(_attributes)
|
52
53
|
[]
|
53
54
|
end
|
54
55
|
|
55
|
-
def suspended?(
|
56
|
+
def suspended?(_user_email)
|
56
57
|
false
|
57
58
|
end
|
58
59
|
|
@@ -1,55 +1,55 @@
|
|
1
|
-
require
|
1
|
+
require "json"
|
2
2
|
|
3
3
|
module GDSZendesk
|
4
4
|
module TestHelpers
|
5
5
|
def zendesk_has_no_user_with_email(email)
|
6
|
-
stub_request(:get, "#{zendesk_endpoint}/users/search?query=#{email}")
|
7
|
-
with(basic_auth: basic_auth_credentials)
|
8
|
-
to_return(body: {users: [], previous_page: nil, next_page: nil, count: 0}.to_json,
|
9
|
-
|
6
|
+
stub_request(:get, "#{zendesk_endpoint}/users/search?query=#{email}")
|
7
|
+
.with(basic_auth: basic_auth_credentials)
|
8
|
+
.to_return(body: { users: [], previous_page: nil, next_page: nil, count: 0 }.to_json,
|
9
|
+
headers: { "Content-Type" => "application/json" })
|
10
10
|
end
|
11
11
|
|
12
12
|
def zendesk_has_user(user_details)
|
13
|
-
stub_request(:get, "#{zendesk_endpoint}/users/search?query=#{user_details[:email]}")
|
14
|
-
with(basic_auth: basic_auth_credentials)
|
15
|
-
to_return(body: {users: [user_details], previous_page: nil, next_page: nil, count: 1}.to_json,
|
16
|
-
|
13
|
+
stub_request(:get, "#{zendesk_endpoint}/users/search?query=#{user_details[:email]}")
|
14
|
+
.with(basic_auth: basic_auth_credentials)
|
15
|
+
.to_return(body: { users: [user_details], previous_page: nil, next_page: nil, count: 1 }.to_json,
|
16
|
+
headers: { "Content-Type" => "application/json" })
|
17
17
|
end
|
18
18
|
|
19
19
|
def stub_zendesk_user_creation(user_properties = nil)
|
20
20
|
stub = stub_request(:post, "#{zendesk_endpoint}/users")
|
21
|
-
stub.with(body: {user: user_properties}) unless user_properties.nil?
|
21
|
+
stub.with(body: { user: user_properties }) unless user_properties.nil?
|
22
22
|
stub.with(basic_auth: basic_auth_credentials)
|
23
|
-
stub.to_return(status: 201, body: { user: { id:
|
24
|
-
headers: {
|
23
|
+
stub.to_return(status: 201, body: { user: { id: 12_345, name: "abc" } }.to_json,
|
24
|
+
headers: { "Content-Type" => "application/json" })
|
25
25
|
end
|
26
26
|
|
27
27
|
def stub_zendesk_ticket_creation(ticket_properties = nil)
|
28
28
|
stub = stub_request(:post, "#{zendesk_endpoint}/tickets")
|
29
|
-
stub.with(body: {ticket: ticket_properties}) unless ticket_properties.nil?
|
29
|
+
stub.with(body: { ticket: ticket_properties }) unless ticket_properties.nil?
|
30
30
|
stub.with(basic_auth: basic_auth_credentials)
|
31
|
-
stub.to_return(status: 201, body: { ticket: { id:
|
32
|
-
headers: {
|
31
|
+
stub.to_return(status: 201, body: { ticket: { id: 12_345 } }.to_json,
|
32
|
+
headers: { "Content-Type" => "application/json" })
|
33
33
|
end
|
34
34
|
|
35
35
|
def stub_zendesk_ticket_creation_with_body(body)
|
36
|
-
stub_request(:post, "#{zendesk_endpoint}/tickets")
|
37
|
-
with(body: body)
|
38
|
-
with(basic_auth: basic_auth_credentials)
|
39
|
-
to_return(status: 201, body: { ticket: { id:
|
40
|
-
|
36
|
+
stub_request(:post, "#{zendesk_endpoint}/tickets")
|
37
|
+
.with(body: body)
|
38
|
+
.with(basic_auth: basic_auth_credentials)
|
39
|
+
.to_return(status: 201, body: { ticket: { id: 12_345 } }.to_json,
|
40
|
+
headers: { "Content-Type" => "application/json" })
|
41
41
|
end
|
42
42
|
|
43
43
|
def stub_zendesk_user_update(user_id, user_properties)
|
44
|
-
stub_request(:put, "#{zendesk_endpoint}/users/#{user_id}")
|
45
|
-
with(body: {user: user_properties})
|
46
|
-
with(basic_auth: basic_auth_credentials)
|
47
|
-
to_return(status: 201, body: { user: { id:
|
48
|
-
|
44
|
+
stub_request(:put, "#{zendesk_endpoint}/users/#{user_id}")
|
45
|
+
.with(body: { user: user_properties })
|
46
|
+
.with(basic_auth: basic_auth_credentials)
|
47
|
+
.to_return(status: 201, body: { user: { id: 12_345, name: "abc" } }.to_json,
|
48
|
+
headers: { "Content-Type" => "application/json" })
|
49
49
|
end
|
50
50
|
|
51
51
|
def basic_auth_credentials
|
52
|
-
[valid_zendesk_credentials[
|
52
|
+
[valid_zendesk_credentials["username"], valid_zendesk_credentials["password"]]
|
53
53
|
end
|
54
54
|
|
55
55
|
def zendesk_is_unavailable
|
@@ -78,12 +78,12 @@ module GDSZendesk
|
|
78
78
|
|
79
79
|
def assert_created_ticket_has(ticket_options)
|
80
80
|
assert_requested :post, %r{/api/v2/tickets},
|
81
|
-
|
81
|
+
body: { ticket: hash_including(ticket_options) }, times: 1
|
82
82
|
end
|
83
83
|
|
84
84
|
def assert_created_ticket_has_requester(requester_options)
|
85
85
|
assert_requested :post, %r{/api/v2/tickets},
|
86
|
-
|
86
|
+
body: { ticket: hash_including(requester: hash_including(requester_options)) }, times: 1
|
87
87
|
end
|
88
88
|
end
|
89
89
|
end
|
data/lib/gds_zendesk/users.rb
CHANGED
data/lib/gds_zendesk/version.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
INITIALIZER =
|
2
|
-
require 'yaml'
|
3
|
-
require 'gds_zendesk/client'
|
4
|
-
require 'gds_zendesk/dummy_client'
|
5
|
-
|
6
|
-
GDS_ZENDESK_CLIENT = if Rails.env.development? || Rails.env.test?
|
7
|
-
|
8
|
-
else
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
13
|
-
|
1
|
+
INITIALIZER = <<~RUBY.freeze
|
2
|
+
require 'yaml'
|
3
|
+
require 'gds_zendesk/client'
|
4
|
+
require 'gds_zendesk/dummy_client'
|
5
|
+
|
6
|
+
GDS_ZENDESK_CLIENT = if Rails.env.development? || Rails.env.test?
|
7
|
+
GDSZendesk::DummyClient.new(logger: Rails.logger)
|
8
|
+
else
|
9
|
+
config_yaml_file = File.join(Rails.root, 'config', 'zendesk.yml')
|
10
|
+
config = YAML.load_file(config_yaml_file)[Rails.env]
|
11
|
+
GDSZendesk::Client.new(username: config['username'], password: config['password'], token: config['token'], logger: Rails.logger)
|
12
|
+
end
|
13
|
+
RUBY
|
14
14
|
|
15
15
|
# This module name is slightly differently capitalised to the main library module
|
16
|
-
# The reason for this is that the module name is used by Rails within the
|
16
|
+
# The reason for this is that the module name is used by Rails within the
|
17
17
|
# generator CLI tools, and the tools get confused if the module is called GDSZendesk
|
18
18
|
module GdsZendesk
|
19
19
|
class InstallGenerator < Rails::Generators::Base
|
@@ -1,7 +1,7 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
1
|
+
require "spec_helper"
|
2
|
+
require "gds_zendesk/test_helpers"
|
3
|
+
require "gds_zendesk/client"
|
4
|
+
require "null_logger"
|
5
5
|
|
6
6
|
module GDSZendesk
|
7
7
|
describe Client do
|
@@ -17,12 +17,27 @@ module GDSZendesk
|
|
17
17
|
|
18
18
|
it "should raise an error if no username is provided" do
|
19
19
|
expect { Client.new(password: "abc") }.to raise_error(ArgumentError,
|
20
|
-
|
20
|
+
/username not provided/)
|
21
21
|
end
|
22
22
|
|
23
|
-
it "should raise an error if no password is provided" do
|
23
|
+
it "should raise an error if no password or token is provided" do
|
24
24
|
expect { Client.new(username: "abc") }.to raise_error(ArgumentError,
|
25
|
-
|
25
|
+
/password or token not provided/)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should raise an error if token and password are provided" do
|
29
|
+
expect { Client.new(username: "abc", token: "def", password: "ghi") }.to raise_error(ArgumentError,
|
30
|
+
/Provide only one of token or password/)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should not raise an error if token is provided without password" do
|
34
|
+
expect { Client.new(username: "abc", token: "def") }.not_to raise_error(ArgumentError,
|
35
|
+
/password or token not provided/)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should not raise an error if password is provided without token" do
|
39
|
+
expect { Client.new(username: "abc", password: "def") }.not_to raise_error(ArgumentError,
|
40
|
+
/password or token not provided/)
|
26
41
|
end
|
27
42
|
|
28
43
|
it "should use a null logger if no logger has been provided" do
|
@@ -39,6 +54,14 @@ module GDSZendesk
|
|
39
54
|
expect(client.config_options[:url]).to eq "https://govuk.zendesk.com/api/v2/"
|
40
55
|
end
|
41
56
|
|
57
|
+
it "should use the token if provided" do
|
58
|
+
expect(Client.new(username: "test_user", token: "test_token").config_options[:token]).to eq "test_token"
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should use the password if provided" do
|
62
|
+
expect(Client.new(username: "test_user", password: "test_password").config_options[:password]).to eq "test_password"
|
63
|
+
end
|
64
|
+
|
42
65
|
it "should use the configured url if provided" do
|
43
66
|
expect(Client.new(username: "test_user", password: "test_pass", url: "https://example.com").config_options[:url]).to eq "https://example.com"
|
44
67
|
end
|
@@ -1,8 +1,8 @@
|
|
1
|
-
require
|
1
|
+
require "spec_helper"
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
3
|
+
require "gds_zendesk/client"
|
4
|
+
require "gds_zendesk/users"
|
5
|
+
require "gds_zendesk/test_helpers"
|
6
6
|
|
7
7
|
module GDSZendesk
|
8
8
|
describe Users do
|
@@ -46,10 +46,10 @@ module GDSZendesk
|
|
46
46
|
name: "Abc",
|
47
47
|
email: "test@test.com",
|
48
48
|
phone: "12345",
|
49
|
-
details: "Job title: Developer"
|
49
|
+
details: "Job title: Developer",
|
50
50
|
)
|
51
51
|
user_being_requested = double("requested user",
|
52
|
-
|
52
|
+
name: "Abc", email: "test@test.com", phone: "12345", job: "Developer")
|
53
53
|
|
54
54
|
users.create_or_update_user(user_being_requested)
|
55
55
|
expect(stub_post).to have_been_requested
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
require
|
1
|
+
require "webmock/rspec"
|
2
2
|
|
3
|
-
WebMock.disable_net_connect!(:
|
3
|
+
WebMock.disable_net_connect!(allow_localhost: true)
|
metadata
CHANGED
@@ -1,93 +1,108 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gds_zendesk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- GOV.UK Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: null_logger
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0
|
19
|
+
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: zendesk_api
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: '1.27'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
40
|
+
version: '1.27'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 10
|
47
|
+
version: '10'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 10
|
54
|
+
version: '10'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 3
|
61
|
+
version: '3'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop-govuk
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3
|
82
|
+
version: '3'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: webmock
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: 2
|
89
|
+
version: '2'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: 2
|
96
|
+
version: '2'
|
83
97
|
description: Client and models for communicating with Zendesk
|
84
98
|
email:
|
85
|
-
-
|
99
|
+
- govuk-dev@digital.cabinet-office.gov.uk
|
86
100
|
executables: []
|
87
101
|
extensions: []
|
88
102
|
extra_rdoc_files: []
|
89
103
|
files:
|
90
104
|
- ".gitignore"
|
105
|
+
- ".rubocop.yml"
|
91
106
|
- ".ruby-version"
|
92
107
|
- CHANGELOG.md
|
93
108
|
- Gemfile
|
@@ -125,8 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
140
|
- !ruby/object:Gem::Version
|
126
141
|
version: '0'
|
127
142
|
requirements: []
|
128
|
-
|
129
|
-
rubygems_version: 2.6.13
|
143
|
+
rubygems_version: 3.0.3
|
130
144
|
signing_key:
|
131
145
|
specification_version: 4
|
132
146
|
summary: Client and models for communicating with Zendesk
|