onlyoffice_bugzilla_helper 0.6.1 → 0.7.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/lib/onlyoffice_bugzilla_helper/bug_data.rb +18 -1
- data/lib/onlyoffice_bugzilla_helper/logger_wrapper.rb +4 -4
- data/lib/onlyoffice_bugzilla_helper/networking.rb +3 -3
- data/lib/onlyoffice_bugzilla_helper/version.rb +1 -1
- data/lib/onlyoffice_bugzilla_helper.rb +18 -1
- metadata +6 -148
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f17bbf71533ac76d243fad5645dbe20bee60fef563352c1304c9a77e4cb48379
|
|
4
|
+
data.tar.gz: b54f87561b94b8ae4195c903d4017d7c392d53f908c77a8e56b9dd2b54cceb73
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dd979973f3174414d24a1d809d2b21cf41f7edb0c7fc984a16c80e5fdf096aa7b01cfc4d6c3bbe33d6e1ba37dc516dfbcf1ad1fd2ffab7cf111fe77e221141ac
|
|
7
|
+
data.tar.gz: b9c10ffcffe46cd0eba2a7067e35a88cc045edfe9fe56d8e7329105e0ecbc1c25fc827178ba8c74659fe19a6f498fa78dd3156d0af4a98acc36f2544fdd181fe
|
|
@@ -19,7 +19,8 @@ module OnlyofficeBugzillaHelper
|
|
|
19
19
|
parsed_json['status']
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
#
|
|
22
|
+
# Check if bug exists
|
|
23
|
+
# @param bug_id [Integer] id of bug
|
|
23
24
|
# @return [Boolean]
|
|
24
25
|
def bug_exists?(bug_id)
|
|
25
26
|
bug_status(bug_id)
|
|
@@ -27,5 +28,21 @@ module OnlyofficeBugzillaHelper
|
|
|
27
28
|
rescue JSON::ParserError, NoMethodError
|
|
28
29
|
false
|
|
29
30
|
end
|
|
31
|
+
|
|
32
|
+
# Get list of bugs filtered by parameters
|
|
33
|
+
# @param filters [Hash] dictionary of filters (e.g., {'status' => 'NEW', 'product' => "Office" })
|
|
34
|
+
# @return [Array] list of bugs
|
|
35
|
+
def get_bugs_by_filter(filters)
|
|
36
|
+
result = get_bugs_result(filters)
|
|
37
|
+
JSON.parse(result.body).fetch('bugs', [])
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Get history of bug
|
|
41
|
+
# @param bug_id [Integer] id of bug
|
|
42
|
+
# @return [Array] history of bug
|
|
43
|
+
def get_bug_history(bug_id)
|
|
44
|
+
result = get_bug_history_result(bug_id)
|
|
45
|
+
JSON.parse(result.body).fetch('bugs', []).first.fetch('history', [])
|
|
46
|
+
end
|
|
30
47
|
end
|
|
31
48
|
end
|
|
@@ -15,10 +15,10 @@ module OnlyofficeBugzillaHelper
|
|
|
15
15
|
# @param [Net:HTTP] response in result
|
|
16
16
|
# @return [nil]
|
|
17
17
|
def log_request(request, response)
|
|
18
|
-
logger.info('Made request. '\
|
|
19
|
-
"Type: #{request.method}. "\
|
|
20
|
-
"Path: #{hide_keys(request.path)}. "\
|
|
21
|
-
"Body: #{hide_keys(request.body)}. "\
|
|
18
|
+
logger.info('Made request. ' \
|
|
19
|
+
"Type: #{request.method}. " \
|
|
20
|
+
"Path: #{hide_keys(request.path)}. " \
|
|
21
|
+
"Body: #{hide_keys(request.body)}. " \
|
|
22
22
|
"Response: #{hide_keys(response.body)}")
|
|
23
23
|
end
|
|
24
24
|
|
|
@@ -14,9 +14,9 @@ module OnlyofficeBugzillaHelper
|
|
|
14
14
|
# @param [Net:HTTP] request to make
|
|
15
15
|
# @return [Net:HTTPResponse] result of request
|
|
16
16
|
def perform_request(request)
|
|
17
|
-
connection
|
|
18
|
-
connection.
|
|
19
|
-
result = connection.
|
|
17
|
+
@connection ||= Net::HTTP.start(@url.host, @url.port, use_ssl: use_ssl?)
|
|
18
|
+
@connection.start unless @connection.started?
|
|
19
|
+
result = @connection.request(request)
|
|
20
20
|
log_request(request, result)
|
|
21
21
|
result
|
|
22
22
|
end
|
|
@@ -52,7 +52,9 @@ module OnlyofficeBugzillaHelper
|
|
|
52
52
|
# @return [String] token
|
|
53
53
|
def self.read_token(force_file_read: false,
|
|
54
54
|
token_path: "#{Dir.home}/.bugzilla/api_key")
|
|
55
|
-
|
|
55
|
+
# rubocop:disable Style/FetchEnvVar
|
|
56
|
+
return ENV['BUGZILLA_API_KEY'] if ENV.key?('BUGZILLA_API_KEY') && !force_file_read
|
|
57
|
+
# rubocop:enable Style/FetchEnvVar
|
|
56
58
|
|
|
57
59
|
File.read(token_path).delete("\n")
|
|
58
60
|
rescue Errno::ENOENT
|
|
@@ -69,6 +71,21 @@ module OnlyofficeBugzillaHelper
|
|
|
69
71
|
"/rest/bug/#{id}#{suffix}?api_key=#{@key}"
|
|
70
72
|
end
|
|
71
73
|
|
|
74
|
+
# Get bugs by filters
|
|
75
|
+
# @param filters [Hash] filters to apply (e.g., {'status' => 'NEW', 'product' => "Office" })
|
|
76
|
+
# @return [Net::HTTPResponse] result of request
|
|
77
|
+
def get_bugs_result(filters)
|
|
78
|
+
query_params = filters.merge('api_key' => @key)
|
|
79
|
+
query_string = URI.encode_www_form(query_params)
|
|
80
|
+
req = Net::HTTP::Get.new("/rest/bug?#{query_string}")
|
|
81
|
+
perform_request(req)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def get_bug_history_result(bug_id)
|
|
85
|
+
req = Net::HTTP::Get.new(bug_url(bug_id, '/history'))
|
|
86
|
+
perform_request(req)
|
|
87
|
+
end
|
|
88
|
+
|
|
72
89
|
# @param bug_id [Integer] id of bug
|
|
73
90
|
# @return [Net::HTTPResponse] result of request
|
|
74
91
|
def get_bug_result(bug_id)
|
metadata
CHANGED
|
@@ -1,156 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: onlyoffice_bugzilla_helper
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ONLYOFFICE
|
|
8
8
|
- Pavel Lobashov
|
|
9
|
-
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
13
|
-
dependencies:
|
|
14
|
-
- !ruby/object:Gem::Dependency
|
|
15
|
-
name: faker
|
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
requirements:
|
|
18
|
-
- - "~>"
|
|
19
|
-
- !ruby/object:Gem::Version
|
|
20
|
-
version: '2'
|
|
21
|
-
type: :development
|
|
22
|
-
prerelease: false
|
|
23
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
24
|
-
requirements:
|
|
25
|
-
- - "~>"
|
|
26
|
-
- !ruby/object:Gem::Version
|
|
27
|
-
version: '2'
|
|
28
|
-
- !ruby/object:Gem::Dependency
|
|
29
|
-
name: overcommit
|
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
|
31
|
-
requirements:
|
|
32
|
-
- - "~>"
|
|
33
|
-
- !ruby/object:Gem::Version
|
|
34
|
-
version: '0'
|
|
35
|
-
type: :development
|
|
36
|
-
prerelease: false
|
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
38
|
-
requirements:
|
|
39
|
-
- - "~>"
|
|
40
|
-
- !ruby/object:Gem::Version
|
|
41
|
-
version: '0'
|
|
42
|
-
- !ruby/object:Gem::Dependency
|
|
43
|
-
name: rake
|
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
|
45
|
-
requirements:
|
|
46
|
-
- - "~>"
|
|
47
|
-
- !ruby/object:Gem::Version
|
|
48
|
-
version: '13'
|
|
49
|
-
type: :development
|
|
50
|
-
prerelease: false
|
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
52
|
-
requirements:
|
|
53
|
-
- - "~>"
|
|
54
|
-
- !ruby/object:Gem::Version
|
|
55
|
-
version: '13'
|
|
56
|
-
- !ruby/object:Gem::Dependency
|
|
57
|
-
name: rspec
|
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
|
59
|
-
requirements:
|
|
60
|
-
- - "~>"
|
|
61
|
-
- !ruby/object:Gem::Version
|
|
62
|
-
version: '3'
|
|
63
|
-
type: :development
|
|
64
|
-
prerelease: false
|
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
-
requirements:
|
|
67
|
-
- - "~>"
|
|
68
|
-
- !ruby/object:Gem::Version
|
|
69
|
-
version: '3'
|
|
70
|
-
- !ruby/object:Gem::Dependency
|
|
71
|
-
name: rubocop
|
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
|
73
|
-
requirements:
|
|
74
|
-
- - "~>"
|
|
75
|
-
- !ruby/object:Gem::Version
|
|
76
|
-
version: '1'
|
|
77
|
-
type: :development
|
|
78
|
-
prerelease: false
|
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
80
|
-
requirements:
|
|
81
|
-
- - "~>"
|
|
82
|
-
- !ruby/object:Gem::Version
|
|
83
|
-
version: '1'
|
|
84
|
-
- !ruby/object:Gem::Dependency
|
|
85
|
-
name: rubocop-performance
|
|
86
|
-
requirement: !ruby/object:Gem::Requirement
|
|
87
|
-
requirements:
|
|
88
|
-
- - "~>"
|
|
89
|
-
- !ruby/object:Gem::Version
|
|
90
|
-
version: '1'
|
|
91
|
-
type: :development
|
|
92
|
-
prerelease: false
|
|
93
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
94
|
-
requirements:
|
|
95
|
-
- - "~>"
|
|
96
|
-
- !ruby/object:Gem::Version
|
|
97
|
-
version: '1'
|
|
98
|
-
- !ruby/object:Gem::Dependency
|
|
99
|
-
name: rubocop-rake
|
|
100
|
-
requirement: !ruby/object:Gem::Requirement
|
|
101
|
-
requirements:
|
|
102
|
-
- - "~>"
|
|
103
|
-
- !ruby/object:Gem::Version
|
|
104
|
-
version: '0'
|
|
105
|
-
type: :development
|
|
106
|
-
prerelease: false
|
|
107
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
108
|
-
requirements:
|
|
109
|
-
- - "~>"
|
|
110
|
-
- !ruby/object:Gem::Version
|
|
111
|
-
version: '0'
|
|
112
|
-
- !ruby/object:Gem::Dependency
|
|
113
|
-
name: rubocop-rspec
|
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
|
115
|
-
requirements:
|
|
116
|
-
- - "~>"
|
|
117
|
-
- !ruby/object:Gem::Version
|
|
118
|
-
version: '2'
|
|
119
|
-
type: :development
|
|
120
|
-
prerelease: false
|
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
122
|
-
requirements:
|
|
123
|
-
- - "~>"
|
|
124
|
-
- !ruby/object:Gem::Version
|
|
125
|
-
version: '2'
|
|
126
|
-
- !ruby/object:Gem::Dependency
|
|
127
|
-
name: simplecov
|
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
|
129
|
-
requirements:
|
|
130
|
-
- - "~>"
|
|
131
|
-
- !ruby/object:Gem::Version
|
|
132
|
-
version: '0'
|
|
133
|
-
type: :development
|
|
134
|
-
prerelease: false
|
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
136
|
-
requirements:
|
|
137
|
-
- - "~>"
|
|
138
|
-
- !ruby/object:Gem::Version
|
|
139
|
-
version: '0'
|
|
140
|
-
- !ruby/object:Gem::Dependency
|
|
141
|
-
name: yard
|
|
142
|
-
requirement: !ruby/object:Gem::Requirement
|
|
143
|
-
requirements:
|
|
144
|
-
- - ">="
|
|
145
|
-
- !ruby/object:Gem::Version
|
|
146
|
-
version: 0.9.20
|
|
147
|
-
type: :development
|
|
148
|
-
prerelease: false
|
|
149
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
150
|
-
requirements:
|
|
151
|
-
- - ">="
|
|
152
|
-
- !ruby/object:Gem::Version
|
|
153
|
-
version: 0.9.20
|
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
154
13
|
description: Helper for bugzilla, used in QA
|
|
155
14
|
email:
|
|
156
15
|
- shockwavenn@gmail.com
|
|
@@ -175,7 +34,7 @@ metadata:
|
|
|
175
34
|
documentation_uri: https://www.rubydoc.info/gems/onlyoffice_bugzilla_helper
|
|
176
35
|
homepage_uri: https://github.com/ONLYOFFICE-QA/onlyoffice_bugzilla_helper
|
|
177
36
|
source_code_uri: https://github.com/ONLYOFFICE-QA/onlyoffice_bugzilla_helper
|
|
178
|
-
|
|
37
|
+
rubygems_mfa_required: 'true'
|
|
179
38
|
rdoc_options: []
|
|
180
39
|
require_paths:
|
|
181
40
|
- lib
|
|
@@ -183,15 +42,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
183
42
|
requirements:
|
|
184
43
|
- - ">="
|
|
185
44
|
- !ruby/object:Gem::Version
|
|
186
|
-
version: '
|
|
45
|
+
version: '3.0'
|
|
187
46
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
47
|
requirements:
|
|
189
48
|
- - ">="
|
|
190
49
|
- !ruby/object:Gem::Version
|
|
191
50
|
version: '0'
|
|
192
51
|
requirements: []
|
|
193
|
-
rubygems_version: 3.
|
|
194
|
-
signing_key:
|
|
52
|
+
rubygems_version: 3.6.9
|
|
195
53
|
specification_version: 4
|
|
196
54
|
summary: Helper for bugzilla
|
|
197
55
|
test_files: []
|