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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aa8f152f01993c75b41a62070b59aaccc39c56d35487cf29aad32834e2aed432
4
- data.tar.gz: eef1941b64d912297a1f7c81c1eb4a84d43b93055e347bb221d911f10994a513
3
+ metadata.gz: f17bbf71533ac76d243fad5645dbe20bee60fef563352c1304c9a77e4cb48379
4
+ data.tar.gz: b54f87561b94b8ae4195c903d4017d7c392d53f908c77a8e56b9dd2b54cceb73
5
5
  SHA512:
6
- metadata.gz: e99a3055e61faa6f0892cd8d370becc72472bdb5a54acc0af29e577a7ad4b2f9185eed2c82ffd874e6d2121f340e174d2e509a39417e35a34b085388735a8560
7
- data.tar.gz: 2d85b5860ad6b30d360b9325a5ac0de9b22fbd2abce74b995b579c0616e04e58a8adc868708e6de5d25b45170dc2f8ed991aae5c9afceaf5d1ef07e6106dfa1b
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
- # @param bug_id [Integer] is bug exists
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 = Net::HTTP.new(@url.host, @url.port)
18
- connection.use_ssl = use_ssl?
19
- result = connection.start { |http| http.request(request) }
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
@@ -2,5 +2,5 @@
2
2
 
3
3
  module OnlyofficeBugzillaHelper
4
4
  # [String] version of Gem
5
- VERSION = '0.6.1'
5
+ VERSION = '0.7.0'
6
6
  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
- return ENV['BUGZILLA_API_KEY'] if ENV['BUGZILLA_API_KEY'] && !force_file_read
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.6.1
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: 2021-04-08 00:00:00.000000000 Z
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
- post_install_message:
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: '2.4'
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.2.14
194
- signing_key:
52
+ rubygems_version: 3.6.9
195
53
  specification_version: 4
196
54
  summary: Helper for bugzilla
197
55
  test_files: []