gds_zendesk 2.2.0 → 3.1.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/.ruby-version +1 -1
- data/CHANGELOG.md +24 -0
- data/Jenkinsfile +7 -0
- data/Rakefile +0 -7
- data/gds_zendesk.gemspec +7 -8
- data/lib/gds_zendesk/test_helpers.rb +19 -5
- data/lib/gds_zendesk/version.rb +1 -1
- data/spec/gds_zendesk/client_spec.rb +1 -1
- metadata +26 -42
- data/jenkins.sh +0 -6
- data/jenkins_branches.sh +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fa67dd4263a0871478498235472781ed6cdcd7542ec8e4706cab92e00a2e9d13
|
4
|
+
data.tar.gz: 61563e3f57a552f46d1834da3190fbc594d08eef23bcd82c8d6e6165ed0d2bcc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8cae830c9fbd5df42e35bd91a4bf34176a157285cc99c7a6df435272a224de0ba106613f2fc3dd1235c0f2b75631e5e037240ddb9f534b791b6294c111e3c9e
|
7
|
+
data.tar.gz: 19db1a96ee36e0beeac2fcbf407a785a2cbda80956325cec9fa4f3b6bb69f4492fc79151d532062219e7a9e8d7984664c125a404de97035a789b66a1c421d634
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.6.6
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,27 @@
|
|
1
|
+
# 3.1.0
|
2
|
+
|
3
|
+
* Update `zendesk_api` library to v1.27
|
4
|
+
|
5
|
+
# 3.0.0
|
6
|
+
|
7
|
+
* Update the `webmock` library to version v2.3.2 to be compatible with Ruby
|
8
|
+
2.4.2
|
9
|
+
* Update the `test_helpers` to be compatible with `webmock` v2.3.2
|
10
|
+
|
11
|
+
# 2.4.0
|
12
|
+
|
13
|
+
* Update the `zendesk_api` library to v1.14.4 to silence warnings from
|
14
|
+
Hashie about setting a key called `class`.
|
15
|
+
|
16
|
+
# 2.3.1
|
17
|
+
|
18
|
+
* Patch release as the previous upgrade didn't include the required
|
19
|
+
feature due to rapid successive merges.
|
20
|
+
|
21
|
+
# 2.3.0
|
22
|
+
|
23
|
+
* Add a test helper to stub Zendesk returning a 302
|
24
|
+
|
1
25
|
# 2.2.0
|
2
26
|
|
3
27
|
* Allow the zendesk URL to be specified in the configuration
|
data/Jenkinsfile
ADDED
data/Rakefile
CHANGED
@@ -1,14 +1,7 @@
|
|
1
1
|
require "rake"
|
2
2
|
require "bundler/gem_tasks"
|
3
3
|
require 'rspec/core/rake_task'
|
4
|
-
require "gem_publisher"
|
5
4
|
|
6
5
|
RSpec::Core::RakeTask.new(:spec)
|
7
6
|
|
8
7
|
task :default => :spec
|
9
|
-
|
10
|
-
desc "Publish the gem"
|
11
|
-
task :publish_gem do |t|
|
12
|
-
gem = GemPublisher.publish_if_updated("gds_zendesk.gemspec", :rubygems)
|
13
|
-
puts "Published #{gem}" if gem
|
14
|
-
end
|
data/gds_zendesk.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'gds_zendesk/version'
|
|
6
6
|
Gem::Specification.new do |gem|
|
7
7
|
gem.name = "gds_zendesk"
|
8
8
|
gem.version = GDSZendesk::VERSION
|
9
|
-
gem.authors = ["
|
10
|
-
gem.email = ["
|
9
|
+
gem.authors = ["GOV.UK Dev"]
|
10
|
+
gem.email = ["govuk-dev@digital.cabinet-office.gov.uk"]
|
11
11
|
gem.description = %q{Client and models for communicating with Zendesk}
|
12
12
|
gem.summary = %q{Client and models for communicating with Zendesk}
|
13
13
|
gem.homepage = "https://github.com/alphagov/gds_zendesk"
|
@@ -17,11 +17,10 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
|
-
gem.add_dependency 'null_logger', '0
|
21
|
-
gem.add_dependency 'zendesk_api', '1.
|
20
|
+
gem.add_dependency 'null_logger', '~> 0'
|
21
|
+
gem.add_dependency 'zendesk_api', '~> 1.27'
|
22
22
|
|
23
|
-
gem.add_development_dependency 'rake', '10
|
24
|
-
gem.add_development_dependency 'rspec', '3
|
25
|
-
gem.add_development_dependency '
|
26
|
-
gem.add_development_dependency "webmock", '1.18.0'
|
23
|
+
gem.add_development_dependency 'rake', '~> 10'
|
24
|
+
gem.add_development_dependency 'rspec', '~> 3'
|
25
|
+
gem.add_development_dependency 'webmock', '~> 2'
|
27
26
|
end
|
@@ -4,44 +4,54 @@ module GDSZendesk
|
|
4
4
|
module TestHelpers
|
5
5
|
def zendesk_has_no_user_with_email(email)
|
6
6
|
stub_request(:get, "#{zendesk_endpoint}/users/search?query=#{email}").
|
7
|
+
with(basic_auth: basic_auth_credentials).
|
7
8
|
to_return(body: {users: [], previous_page: nil, next_page: nil, count: 0}.to_json,
|
8
9
|
headers: {'Content-Type' => 'application/json'})
|
9
10
|
end
|
10
11
|
|
11
12
|
def zendesk_has_user(user_details)
|
12
13
|
stub_request(:get, "#{zendesk_endpoint}/users/search?query=#{user_details[:email]}").
|
14
|
+
with(basic_auth: basic_auth_credentials).
|
13
15
|
to_return(body: {users: [user_details], previous_page: nil, next_page: nil, count: 1}.to_json,
|
14
16
|
headers: {'Content-Type' => 'application/json'})
|
15
17
|
end
|
16
18
|
|
17
19
|
def stub_zendesk_user_creation(user_properties = nil)
|
18
|
-
stub =
|
20
|
+
stub = stub_request(:post, "#{zendesk_endpoint}/users")
|
19
21
|
stub.with(body: {user: user_properties}) unless user_properties.nil?
|
22
|
+
stub.with(basic_auth: basic_auth_credentials)
|
20
23
|
stub.to_return(status: 201, body: { user: { id: 12345, name: "abc" }}.to_json,
|
21
24
|
headers: {'Content-Type' => 'application/json'})
|
22
25
|
end
|
23
26
|
|
24
27
|
def stub_zendesk_ticket_creation(ticket_properties = nil)
|
25
|
-
stub =
|
28
|
+
stub = stub_request(:post, "#{zendesk_endpoint}/tickets")
|
26
29
|
stub.with(body: {ticket: ticket_properties}) unless ticket_properties.nil?
|
30
|
+
stub.with(basic_auth: basic_auth_credentials)
|
27
31
|
stub.to_return(status: 201, body: { ticket: { id: 12345 }}.to_json,
|
28
32
|
headers: {'Content-Type' => 'application/json'})
|
29
33
|
end
|
30
34
|
|
31
35
|
def stub_zendesk_ticket_creation_with_body(body)
|
32
|
-
|
36
|
+
stub_request(:post, "#{zendesk_endpoint}/tickets").
|
33
37
|
with(body: body).
|
38
|
+
with(basic_auth: basic_auth_credentials).
|
34
39
|
to_return(status: 201, body: { ticket: { id: 12345 }}.to_json,
|
35
40
|
headers: {'Content-Type' => 'application/json'})
|
36
41
|
end
|
37
42
|
|
38
43
|
def stub_zendesk_user_update(user_id, user_properties)
|
39
|
-
|
44
|
+
stub_request(:put, "#{zendesk_endpoint}/users/#{user_id}").
|
40
45
|
with(body: {user: user_properties}).
|
46
|
+
with(basic_auth: basic_auth_credentials).
|
41
47
|
to_return(status: 201, body: { user: { id: 12345, name: "abc" }}.to_json,
|
42
48
|
headers: {'Content-Type' => 'application/json'})
|
43
49
|
end
|
44
50
|
|
51
|
+
def basic_auth_credentials
|
52
|
+
[valid_zendesk_credentials['username'], valid_zendesk_credentials['password']]
|
53
|
+
end
|
54
|
+
|
45
55
|
def zendesk_is_unavailable
|
46
56
|
stub_request(:any, /#{zendesk_endpoint}\/.*/).to_return(status: 503)
|
47
57
|
end
|
@@ -50,8 +60,12 @@ module GDSZendesk
|
|
50
60
|
stub_request(:any, /#{zendesk_endpoint}\/.*/).to_return(status: 409)
|
51
61
|
end
|
52
62
|
|
63
|
+
def zendesk_returns_redirect
|
64
|
+
stub_request(:any, /#{zendesk_endpoint}\/.*/).to_return(status: 302)
|
65
|
+
end
|
66
|
+
|
53
67
|
def zendesk_endpoint
|
54
|
-
"https
|
68
|
+
"https://govuk.zendesk.com/api/v2"
|
55
69
|
end
|
56
70
|
|
57
71
|
def valid_zendesk_credentials=(credentials)
|
data/lib/gds_zendesk/version.rb
CHANGED
@@ -54,7 +54,7 @@ module GDSZendesk
|
|
54
54
|
|
55
55
|
it "raises an exception if the ticket creation wasn't successful" do
|
56
56
|
self.valid_zendesk_credentials = valid_credentials
|
57
|
-
post_stub =
|
57
|
+
post_stub = stub_request(:post, "#{zendesk_endpoint}/tickets").to_return(status: 302)
|
58
58
|
|
59
59
|
expect { client.ticket.create!(some: "data") }.to raise_error
|
60
60
|
expect(post_stub).to have_been_requested
|
metadata
CHANGED
@@ -1,102 +1,88 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gds_zendesk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.1.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: 2020-09-17 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
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: gem_publisher
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - '='
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 1.2.0
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - '='
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 1.2.0
|
68
|
+
version: '3'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: webmock
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
|
-
- -
|
73
|
+
- - "~>"
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
75
|
+
version: '2'
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
|
-
- -
|
80
|
+
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
82
|
+
version: '2'
|
97
83
|
description: Client and models for communicating with Zendesk
|
98
84
|
email:
|
99
|
-
-
|
85
|
+
- govuk-dev@digital.cabinet-office.gov.uk
|
100
86
|
executables: []
|
101
87
|
extensions: []
|
102
88
|
extra_rdoc_files: []
|
@@ -105,12 +91,11 @@ files:
|
|
105
91
|
- ".ruby-version"
|
106
92
|
- CHANGELOG.md
|
107
93
|
- Gemfile
|
94
|
+
- Jenkinsfile
|
108
95
|
- LICENCE.txt
|
109
96
|
- README.md
|
110
97
|
- Rakefile
|
111
98
|
- gds_zendesk.gemspec
|
112
|
-
- jenkins.sh
|
113
|
-
- jenkins_branches.sh
|
114
99
|
- lib/gds_zendesk.rb
|
115
100
|
- lib/gds_zendesk/client.rb
|
116
101
|
- lib/gds_zendesk/dummy_client.rb
|
@@ -140,8 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
125
|
- !ruby/object:Gem::Version
|
141
126
|
version: '0'
|
142
127
|
requirements: []
|
143
|
-
|
144
|
-
rubygems_version: 2.4.5.1
|
128
|
+
rubygems_version: 3.0.3
|
145
129
|
signing_key:
|
146
130
|
specification_version: 4
|
147
131
|
summary: Client and models for communicating with Zendesk
|
data/jenkins.sh
DELETED
data/jenkins_branches.sh
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
set -e
|
3
|
-
|
4
|
-
VENV_PATH="${HOME}/venv/${JOB_NAME}"
|
5
|
-
|
6
|
-
[ -x ${VENV_PATH}/bin/pip ] || virtualenv ${VENV_PATH}
|
7
|
-
. ${VENV_PATH}/bin/activate
|
8
|
-
|
9
|
-
pip install -q ghtools
|
10
|
-
|
11
|
-
REPO="alphagov/gds_zendesk"
|
12
|
-
gh-status "$REPO" "$GIT_COMMIT" pending -d "\"Build #${BUILD_NUMBER} is running on Jenkins\"" -u "$BUILD_URL" >/dev/null
|
13
|
-
|
14
|
-
if ./jenkins.sh; then
|
15
|
-
gh-status "$REPO" "$GIT_COMMIT" success -d "\"Build #${BUILD_NUMBER} succeeded on Jenkins\"" -u "$BUILD_URL" >/dev/null
|
16
|
-
exit 0
|
17
|
-
else
|
18
|
-
gh-status "$REPO" "$GIT_COMMIT" failure -d "\"Build #${BUILD_NUMBER} failed on Jenkins\"" -u "$BUILD_URL" >/dev/null
|
19
|
-
exit 1
|
20
|
-
fi
|