gerrit2jiracomment 0.2.7 → 0.2.9
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/.rubocop.yml +2 -0
- data/.ruby-version +1 -1
- data/.travis.yml +6 -5
- data/Gemfile +1 -1
- data/Gemfile.lock +34 -32
- data/Rakefile +4 -4
- data/bin/console +3 -3
- data/exe/gerrit2jiracomment +2 -2
- data/gerrit2jiracomment.gemspec +18 -19
- data/lib/gerrit2jiracomment.rb +35 -34
- data/lib/gerrit2jiracomment/version.rb +1 -1
- data/readme.org +4 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 38f02540c309cdb94461866f9e3cbe2d9c771dd9087c0ec8f5afb924e4804e8f
|
|
4
|
+
data.tar.gz: ea95574a11ee24e72d7f7e539df37f976cc300edb165bb572218d26ed72059fc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f44112e662f9129fe99ec0746f7287691d806547900762382a7607f2f8dfc2f05a23bc7433a5360ad892859820901bf57c8e41fef78dca94401668b272079337
|
|
7
|
+
data.tar.gz: 1600dfba6a24099cf90eea1551785d7b3ac6fdb2548419f38401f0d09dab4795eb18a509ab2dc7f211e5a0d5dd09f9585797434b2e55f0b6b6eccd098648f6eb
|
data/.rubocop.yml
CHANGED
data/.ruby-version
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
2.5.0
|
|
1
|
+
ruby-2.5.0
|
|
2
2
|
|
data/.travis.yml
CHANGED
|
@@ -3,16 +3,17 @@ rvm:
|
|
|
3
3
|
- 2.5.0
|
|
4
4
|
sudo: false
|
|
5
5
|
before_install:
|
|
6
|
-
|
|
6
|
+
- gem install bundler -v 1.16.1
|
|
7
7
|
before_script:
|
|
8
|
-
|
|
8
|
+
- bundle install
|
|
9
9
|
script:
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
- env
|
|
11
|
+
- bundle exec rake spec build
|
|
12
|
+
- find .
|
|
12
13
|
deploy:
|
|
13
14
|
provider: rubygems
|
|
14
15
|
skip_cleanup: true
|
|
15
16
|
api_key:
|
|
16
|
-
secure:
|
|
17
|
+
secure: ASJyDyynS5sc4I4dBQx3LrnYxl5331KAB0C0k/BzAfYsBiORpKdMRj1nPEvaTu1LNmIN1smJswdnwxIDd0r8Cdl2TFHu9oTlxF6wYi7r3Ix2Btmy1xAVMwfEmocQI9JIUvzLY6Dah/MOQG/A61XKpL6JBixz43sQW64fpN7y8wZMjbjm9/U3XhcL5zPDHjRebpgWYzBptuVCdCbvfnTETsYd4k/H5v9Ax6pCWkkK9Y2U9csWd7wcVl6Ja6qFM69wSgc0GmVzP/heqE4rG+fvauaHrtEp0qTvMkVgOTxOG3wa7MH3f4qmx+oRU8tV6JnjfuDt9Um0gzcQvAhmCvKl0Co4lkvdp3VpvWIedS0Z+aiw+FG+3n2xUxr4hKIHTTtQVMglXkKL5BBpKfPCkssmXnhZojBtfDUxdOaAXJuxqgKBdLOiDyf5kkxcp5iA3yAGDbW0WY95HpqXC0n3/8kM6QEYbjsnUeazn/XZD7HlzahZc72C3Ro+o5P8HybrHyuZCncmsikTyF91DJRdN3WxnNUj95UW80gw0xqbtvhWCHPQGFvvejhwGPGHe/cBP8imEBBrqnInM/TgCCMJyjyH2J448wJIL5Dx9Z4WArsKmBHOQLua3QCqpkd770+W1VP0Bd94aklQcBrh0nG2ltZEAhKGszcZnxz1CiVnQrdSj1c=
|
|
17
18
|
on:
|
|
18
19
|
tags: true
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,68 +1,70 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
gerrit2jiracomment (0.2.
|
|
4
|
+
gerrit2jiracomment (0.2.9)
|
|
5
5
|
jira-ruby
|
|
6
6
|
rx
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
activesupport (6.0.
|
|
11
|
+
activesupport (6.0.2.2)
|
|
12
12
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
13
13
|
i18n (>= 0.7, < 2)
|
|
14
14
|
minitest (~> 5.1)
|
|
15
15
|
tzinfo (~> 1.1)
|
|
16
|
-
zeitwerk (~> 2.
|
|
17
|
-
ast (2.
|
|
16
|
+
zeitwerk (~> 2.2)
|
|
17
|
+
ast (2.4.0)
|
|
18
18
|
atlassian-jwt (0.2.0)
|
|
19
19
|
jwt (~> 2.1.0)
|
|
20
|
-
concurrent-ruby (1.1.
|
|
20
|
+
concurrent-ruby (1.1.6)
|
|
21
21
|
diff-lcs (1.3)
|
|
22
|
-
i18n (1.
|
|
22
|
+
i18n (1.8.2)
|
|
23
23
|
concurrent-ruby (~> 1.0)
|
|
24
|
-
|
|
24
|
+
jaro_winkler (1.5.4)
|
|
25
|
+
jira-ruby (2.0.0)
|
|
25
26
|
activesupport
|
|
26
27
|
atlassian-jwt
|
|
27
28
|
multipart-post
|
|
28
29
|
oauth (~> 0.5, >= 0.5.0)
|
|
29
30
|
jwt (2.1.0)
|
|
30
|
-
minitest (5.
|
|
31
|
+
minitest (5.14.0)
|
|
31
32
|
multipart-post (2.1.1)
|
|
32
33
|
oauth (0.5.4)
|
|
33
|
-
parallel (1.
|
|
34
|
-
parser (2.
|
|
35
|
-
ast (~> 2.
|
|
36
|
-
powerpack (0.1.1)
|
|
34
|
+
parallel (1.19.1)
|
|
35
|
+
parser (2.7.1.0)
|
|
36
|
+
ast (~> 2.4.0)
|
|
37
37
|
rainbow (3.0.0)
|
|
38
|
-
rake (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
rspec-
|
|
42
|
-
rspec-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
38
|
+
rake (13.0.1)
|
|
39
|
+
rexml (3.2.4)
|
|
40
|
+
rspec (3.9.0)
|
|
41
|
+
rspec-core (~> 3.9.0)
|
|
42
|
+
rspec-expectations (~> 3.9.0)
|
|
43
|
+
rspec-mocks (~> 3.9.0)
|
|
44
|
+
rspec-core (3.9.1)
|
|
45
|
+
rspec-support (~> 3.9.1)
|
|
46
|
+
rspec-expectations (3.9.1)
|
|
46
47
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
47
|
-
rspec-support (~> 3.
|
|
48
|
-
rspec-mocks (3.
|
|
48
|
+
rspec-support (~> 3.9.0)
|
|
49
|
+
rspec-mocks (3.9.1)
|
|
49
50
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
50
|
-
rspec-support (~> 3.
|
|
51
|
-
rspec-support (3.
|
|
52
|
-
rubocop (0.
|
|
51
|
+
rspec-support (~> 3.9.0)
|
|
52
|
+
rspec-support (3.9.2)
|
|
53
|
+
rubocop (0.81.0)
|
|
54
|
+
jaro_winkler (~> 1.5.1)
|
|
53
55
|
parallel (~> 1.10)
|
|
54
|
-
parser (>= 2.
|
|
55
|
-
powerpack (~> 0.1)
|
|
56
|
+
parser (>= 2.7.0.1)
|
|
56
57
|
rainbow (>= 2.2.2, < 4.0)
|
|
58
|
+
rexml
|
|
57
59
|
ruby-progressbar (~> 1.7)
|
|
58
|
-
unicode-display_width (
|
|
59
|
-
ruby-progressbar (1.
|
|
60
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
|
61
|
+
ruby-progressbar (1.10.1)
|
|
60
62
|
rx (0.0.3)
|
|
61
63
|
thread_safe (0.3.6)
|
|
62
|
-
tzinfo (1.2.
|
|
64
|
+
tzinfo (1.2.7)
|
|
63
65
|
thread_safe (~> 0.1)
|
|
64
|
-
unicode-display_width (1.
|
|
65
|
-
zeitwerk (2.
|
|
66
|
+
unicode-display_width (1.7.0)
|
|
67
|
+
zeitwerk (2.3.0)
|
|
66
68
|
|
|
67
69
|
PLATFORMS
|
|
68
70
|
ruby
|
data/Rakefile
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
3
|
+
require "bundler/gem_tasks"
|
|
4
|
+
require "rspec/core/rake_task"
|
|
5
|
+
require "rubocop/rake_task"
|
|
6
6
|
|
|
7
7
|
RuboCop::RakeTask.new
|
|
8
8
|
# as soon as the project is clean enough, enable this
|
|
9
|
-
Rake::Task[
|
|
9
|
+
Rake::Task["build"].enhance(["rubocop:auto_correct"])
|
|
10
10
|
|
|
11
11
|
RSpec::Core::RakeTask.new(:spec)
|
|
12
12
|
|
data/bin/console
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
require
|
|
5
|
-
require
|
|
4
|
+
require "bundler/setup"
|
|
5
|
+
require "gerrit2jiracomment"
|
|
6
6
|
|
|
7
7
|
# You can add fixtures and/or initialization code here to make experimenting
|
|
8
8
|
# with your gem easier. You can also use a different console, if you like.
|
|
@@ -11,5 +11,5 @@ require 'gerrit2jiracomment'
|
|
|
11
11
|
# require "pry"
|
|
12
12
|
# Pry.start
|
|
13
13
|
|
|
14
|
-
require
|
|
14
|
+
require "irb"
|
|
15
15
|
IRB.start(__FILE__)
|
data/exe/gerrit2jiracomment
CHANGED
data/gerrit2jiracomment.gemspec
CHANGED
|
@@ -1,33 +1,32 @@
|
|
|
1
|
-
|
|
2
1
|
# frozen_string_literal: true
|
|
3
2
|
|
|
4
|
-
lib = File.expand_path(
|
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
|
5
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
6
|
-
require
|
|
5
|
+
require "gerrit2jiracomment/version"
|
|
7
6
|
|
|
8
7
|
Gem::Specification.new do |spec|
|
|
9
|
-
spec.name =
|
|
8
|
+
spec.name = "gerrit2jiracomment"
|
|
10
9
|
spec.version = Gerrit2jiracomment::VERSION
|
|
11
|
-
spec.authors = [
|
|
12
|
-
spec.email = [
|
|
10
|
+
spec.authors = ["Christian Koestlin"]
|
|
11
|
+
spec.email = ["info@esrlabs.com"]
|
|
13
12
|
|
|
14
|
-
spec.summary =
|
|
15
|
-
|
|
16
|
-
spec.description =
|
|
17
|
-
spec.homepage =
|
|
13
|
+
spec.summary = "Simple gem that listens on gerrit stream-events" \
|
|
14
|
+
" and puts comments to jira."
|
|
15
|
+
spec.description = "Nothing more to add"
|
|
16
|
+
spec.homepage = "https://github.com/gizmomogwai/gerrit2jiracomment"
|
|
18
17
|
|
|
19
18
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
20
19
|
f.match(%r{^(test|spec|features)/})
|
|
21
20
|
end
|
|
22
|
-
spec.bindir =
|
|
21
|
+
spec.bindir = "exe"
|
|
23
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
24
|
-
spec.require_paths = [
|
|
23
|
+
spec.require_paths = ["lib"]
|
|
25
24
|
|
|
26
|
-
spec.add_dependency
|
|
27
|
-
spec.add_dependency
|
|
28
|
-
spec.add_development_dependency
|
|
29
|
-
spec.add_development_dependency
|
|
30
|
-
spec.add_development_dependency
|
|
31
|
-
spec.add_development_dependency
|
|
32
|
-
spec.add_development_dependency
|
|
25
|
+
spec.add_dependency "jira-ruby"
|
|
26
|
+
spec.add_dependency "rx"
|
|
27
|
+
spec.add_development_dependency "bundler"
|
|
28
|
+
spec.add_development_dependency "rake"
|
|
29
|
+
spec.add_development_dependency "rspec"
|
|
30
|
+
spec.add_development_dependency "rspec-mocks"
|
|
31
|
+
spec.add_development_dependency "rubocop"
|
|
33
32
|
end
|
data/lib/gerrit2jiracomment.rb
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
6
|
-
require
|
|
7
|
-
require
|
|
8
|
-
require
|
|
9
|
-
require
|
|
10
|
-
require
|
|
11
|
-
require
|
|
3
|
+
require "gerrit2jiracomment/version"
|
|
4
|
+
require "logger"
|
|
5
|
+
require "syslog/logger"
|
|
6
|
+
require "json"
|
|
7
|
+
require "open3"
|
|
8
|
+
require "ostruct"
|
|
9
|
+
require "jira-ruby"
|
|
10
|
+
require "yaml"
|
|
11
|
+
require "rx"
|
|
12
12
|
|
|
13
13
|
# Gerrit 2 jira sync module
|
|
14
14
|
module Gerrit2jiracomment
|
|
@@ -32,8 +32,8 @@ module Gerrit2jiracomment
|
|
|
32
32
|
@log.error("#{@tag}†#{message}: #{error_message}")
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
-
def fail(
|
|
36
|
-
raise(
|
|
35
|
+
def fail(exception, message)
|
|
36
|
+
raise(exception, "#{@tag}†#{message}")
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
39
|
|
|
@@ -111,7 +111,7 @@ module Gerrit2jiracomment
|
|
|
111
111
|
end
|
|
112
112
|
|
|
113
113
|
def change_merged(log, event, server)
|
|
114
|
-
log = LoggerWithTag.new(log,
|
|
114
|
+
log = LoggerWithTag.new(log, "changeset")
|
|
115
115
|
|
|
116
116
|
log.debug("Send change merged to jira #{event}")
|
|
117
117
|
|
|
@@ -120,7 +120,8 @@ module Gerrit2jiracomment
|
|
|
120
120
|
|
|
121
121
|
found = false
|
|
122
122
|
message.scan(Gerrit2jiracomment.regexp).map(&:strip).each do |match|
|
|
123
|
-
found
|
|
123
|
+
found = handle_change_merged_issue_comment(match, log, event, server) ||
|
|
124
|
+
found
|
|
124
125
|
end
|
|
125
126
|
|
|
126
127
|
found || log.fail(ProcessException, "No jira-issue found in #{event}")
|
|
@@ -133,7 +134,7 @@ module Gerrit2jiracomment
|
|
|
133
134
|
|
|
134
135
|
def self.stdout_in_utf8(command)
|
|
135
136
|
_stdin, stdout, _stderr = Open3.popen3(command)
|
|
136
|
-
stdout.set_encoding
|
|
137
|
+
stdout.set_encoding "UTF-8:UTF-8"
|
|
137
138
|
stdout
|
|
138
139
|
end
|
|
139
140
|
|
|
@@ -149,30 +150,30 @@ module Gerrit2jiracomment
|
|
|
149
150
|
end
|
|
150
151
|
end
|
|
151
152
|
|
|
152
|
-
def self.dispatch(log,
|
|
153
|
-
logger = LoggerWithTag.new(log,
|
|
154
|
-
event =
|
|
155
|
-
|
|
156
|
-
|
|
153
|
+
def self.dispatch(log, event, sink)
|
|
154
|
+
logger = LoggerWithTag.new(log, "events")
|
|
155
|
+
event, server = event
|
|
156
|
+
logger.debug("#{event} from #{server}")
|
|
157
|
+
sink.send(event.type.tr("-", "_").to_sym, log, event, server)
|
|
157
158
|
rescue NoMethodError => e
|
|
158
159
|
logger.debug("Cannot handle event of type #{event.type} - #{e}")
|
|
159
160
|
false
|
|
160
|
-
rescue StandardError =>
|
|
161
|
-
logger.error(
|
|
161
|
+
rescue StandardError => e
|
|
162
|
+
logger.error("Cannot process event", e)
|
|
162
163
|
false
|
|
163
164
|
end
|
|
164
165
|
|
|
165
166
|
def self.syslog_or_stdout_logger
|
|
166
|
-
Syslog::Logger.new
|
|
167
|
+
Syslog::Logger.new "g2jc"
|
|
167
168
|
rescue StandardError
|
|
168
169
|
Logger.new(STDOUT)
|
|
169
170
|
end
|
|
170
171
|
|
|
171
172
|
def self.tag_and_message(msg)
|
|
172
|
-
tag, m = msg.split(
|
|
173
|
+
tag, m = msg.split("†")
|
|
173
174
|
unless m
|
|
174
175
|
m = tag
|
|
175
|
-
tag =
|
|
176
|
+
tag = "gerrit2jiracomment"
|
|
176
177
|
end
|
|
177
178
|
[tag, m]
|
|
178
179
|
end
|
|
@@ -181,7 +182,7 @@ module Gerrit2jiracomment
|
|
|
181
182
|
logger = syslog_or_stdout_logger
|
|
182
183
|
logger.formatter = proc do |severity, datetime, _progname, msg|
|
|
183
184
|
tag, message = tag_and_message(msg)
|
|
184
|
-
format(
|
|
185
|
+
format("%<year>04d-%<month>02d-%<day>02d %<hour>02d:%<min>02d:" \
|
|
185
186
|
"%<sec>02d.000 7331 %<severity>s %<tag>s: %<message>s\n",
|
|
186
187
|
year: datetime.year, month: datetime.month, day: datetime.day,
|
|
187
188
|
hour: datetime.hour, min: datetime.min, sec: datetime.sec,
|
|
@@ -191,17 +192,17 @@ module Gerrit2jiracomment
|
|
|
191
192
|
end
|
|
192
193
|
|
|
193
194
|
def self.load_settings(logger)
|
|
194
|
-
logger.debug(
|
|
195
|
+
logger.debug("lifecycle†loading settings from settings.yaml.gpg")
|
|
195
196
|
YAML.safe_load(`gpg --decrypt settings.yaml.gpg 2> /dev/null`)
|
|
196
197
|
end
|
|
197
198
|
|
|
198
199
|
def self.to_jira(logger, settings)
|
|
199
200
|
ToJira.new(logger,
|
|
200
201
|
JIRA::Client.new(
|
|
201
|
-
username: settings[
|
|
202
|
-
password: settings[
|
|
203
|
-
site:
|
|
204
|
-
context_path:
|
|
202
|
+
username: settings["jira_user"],
|
|
203
|
+
password: settings["jira_password"],
|
|
204
|
+
site: "https://esrlabs.atlassian.net/",
|
|
205
|
+
context_path: "", auth_type: :basic,
|
|
205
206
|
use_ssl: true,
|
|
206
207
|
ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE
|
|
207
208
|
))
|
|
@@ -211,13 +212,13 @@ module Gerrit2jiracomment
|
|
|
211
212
|
subject.as_observable.subscribe(
|
|
212
213
|
->(e) { dispatch(logger, e, event_sink) },
|
|
213
214
|
->(_err) { logger.error(error) },
|
|
214
|
-
-> { logger.info(
|
|
215
|
+
-> { logger.info("lifecycle†finished") }
|
|
215
216
|
)
|
|
216
217
|
end
|
|
217
218
|
|
|
218
219
|
def self.hosts
|
|
219
|
-
[
|
|
220
|
-
|
|
220
|
+
["gerrit.int.esrlabs.com", "git.esrlabs.com",
|
|
221
|
+
"hcp5-sources.int.esrlabs.com"]
|
|
221
222
|
end
|
|
222
223
|
|
|
223
224
|
def self.run
|
|
@@ -232,6 +233,6 @@ module Gerrit2jiracomment
|
|
|
232
233
|
hosts
|
|
233
234
|
.map { |server| receive_events(logger, server, subject) }
|
|
234
235
|
.each(&:join)
|
|
235
|
-
logger.info(
|
|
236
|
+
logger.info("lifecycle†exiting")
|
|
236
237
|
end
|
|
237
238
|
end
|
data/readme.org
CHANGED
|
@@ -4,8 +4,7 @@ Proof of concept implementation that listens on a gerrit stream and updated jira
|
|
|
4
4
|
|
|
5
5
|
** Installation
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
then compile and install gerrit2jiracomment.
|
|
7
|
+
~gem install gerrit2jiracomment~
|
|
9
8
|
|
|
10
9
|
** Usage
|
|
11
10
|
|
|
@@ -17,4 +16,7 @@ encode your settings with gpg -e -r user@email.com settings.yaml
|
|
|
17
16
|
To deploy a new gem version increment version.rb, run bundle install, make a commit and push this to origin.
|
|
18
17
|
Travis will do the deployment to rubygems.org, if the build is allright.
|
|
19
18
|
|
|
19
|
+
To deploy automatically to rubygems, one needs to add the api key of rubygems by running
|
|
20
|
+
~travis encrypt --add deploy.api_key~
|
|
21
|
+
|
|
20
22
|
** Contributing
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gerrit2jiracomment
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Christian Koestlin
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-04-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: jira-ruby
|