tractive 1.0.18 → 1.0.21
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a10eeb2f828d2d135d48f0f6437f669c939104e17ef1b777e42d29e59aac5dc
|
4
|
+
data.tar.gz: df20934dfee4b890c9f633df93955f60d237987743c48f12a95a4bb8cb1b8806
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8dbc73bbf823c89b05267fb42991401f33c6e1097488b0e49bd4ec87a3c457ddfa500d6d16fd88793a6bb9ccd4a2c27514a74b1ca3e5c10786184284d691ae7f
|
7
|
+
data.tar.gz: ca6165b8852a0c5609737f5794683e8bb82c522934f861d59eb798a2475d8662b95742a76cd19c585a45980aa4a12cfaf3a35f169235c74ae2adb43851b667e4
|
@@ -15,7 +15,7 @@ module Http
|
|
15
15
|
retries += 1
|
16
16
|
RestClient::Request.execute(@args, &block)
|
17
17
|
rescue RestClient::Forbidden => e
|
18
|
-
retry_after = e.http_headers[:x_ratelimit_reset].to_i - Time.now.to_i
|
18
|
+
retry_after = e.http_headers[:x_ratelimit_reset].to_i - Time.now.to_i + 5
|
19
19
|
raise e if retry_after.negative? || retries > @max_retries
|
20
20
|
|
21
21
|
while retry_after.positive?
|
@@ -25,7 +25,7 @@ module Http
|
|
25
25
|
$logger.info "Rate Limit Exceeded, Will retry in #{minutes} min #{seconds} sec"
|
26
26
|
sleep(1)
|
27
27
|
|
28
|
-
retry_after = e.http_headers[:x_ratelimit_reset].to_i - Time.now.to_i
|
28
|
+
retry_after = e.http_headers[:x_ratelimit_reset].to_i - Time.now.to_i + 5
|
29
29
|
end
|
30
30
|
retry if retries <= @max_retries
|
31
31
|
end
|
@@ -3,7 +3,11 @@
|
|
3
3
|
module Migrator
|
4
4
|
module Converter
|
5
5
|
class TracToGithub
|
6
|
+
attr_reader :comments_map
|
7
|
+
|
6
8
|
def initialize(args)
|
9
|
+
@comments_map = {}
|
10
|
+
|
7
11
|
@trac_ticket_base_url = args[:cfg]["trac"]["ticketbaseurl"]
|
8
12
|
@attachurl = args[:opts][:attachurl] || args[:cfg].dig("ticket", "attachments", "url")
|
9
13
|
@changeset_base_url = args[:cfg]["trac"]["changeset_base_url"] || ""
|
@@ -70,6 +74,22 @@ module Migrator
|
|
70
74
|
|
71
75
|
# replay all changes in chronological order:
|
72
76
|
comments = changes.map { |x| ticket_change(@singlepost, x) }.select { |x| x }.to_a
|
77
|
+
|
78
|
+
index = 0
|
79
|
+
curr_index = 0
|
80
|
+
changes.each do |change|
|
81
|
+
kind = change[:field] || "attachment"
|
82
|
+
|
83
|
+
next unless interested_in_change?(kind, change[:newvalue])
|
84
|
+
|
85
|
+
if kind == "comment" || (kind == "attachment" && change[:description] != "")
|
86
|
+
@comments_map[curr_index] = index
|
87
|
+
curr_index += 1
|
88
|
+
end
|
89
|
+
|
90
|
+
index += 1
|
91
|
+
end
|
92
|
+
|
73
93
|
if @singlepost
|
74
94
|
body += comments.map { |x| x["body"] }.join("\n")
|
75
95
|
comments = []
|
@@ -53,7 +53,8 @@ module Migrator
|
|
53
53
|
|
54
54
|
$logger.info(%{creating issue for trac #{ticket[:id]} "#{ticket[:summary]}" (#{ticket[:reporter]})})
|
55
55
|
# API details: https://gist.github.com/jonmagic/5282384165e0f86ef105
|
56
|
-
|
56
|
+
converter = Migrator::Converter::TracToGithub.new(@config)
|
57
|
+
request = converter.compose(ticket)
|
57
58
|
|
58
59
|
response = @client.create_issue(@repo, request)
|
59
60
|
|
@@ -76,7 +77,7 @@ module Migrator
|
|
76
77
|
|
77
78
|
$logger.info("created issue ##{issue_id} for trac ticket #{ticket[:id]}")
|
78
79
|
|
79
|
-
update_comment_ref(issue_id) if request.to_s.include?("Replying to [comment:")
|
80
|
+
update_comment_ref(issue_id, converter.comments_map) if request.to_s.include?("Replying to [comment:")
|
80
81
|
|
81
82
|
# assert correct issue number
|
82
83
|
if issue_id != ticket[:id]
|
@@ -112,20 +112,21 @@ module Migrator
|
|
112
112
|
}
|
113
113
|
end
|
114
114
|
|
115
|
-
def update_comment_ref(issue_id)
|
115
|
+
def update_comment_ref(issue_id, comments_map)
|
116
116
|
comments = @client.issue_comments(@repo, issue_id)
|
117
117
|
comments.each do |comment|
|
118
118
|
next unless comment["body"].include?("Replying to [comment:")
|
119
119
|
|
120
|
-
updated_comment_body = create_update_comment_params(comment, comments, issue_id)
|
120
|
+
updated_comment_body = create_update_comment_params(comment, comments, issue_id, comments_map)
|
121
121
|
@client.update_issue_comment(@repo, comment["id"], updated_comment_body)
|
122
122
|
end
|
123
123
|
end
|
124
124
|
|
125
|
-
def create_update_comment_params(comment, comments, issue_id)
|
125
|
+
def create_update_comment_params(comment, comments, issue_id, comments_map)
|
126
126
|
body = comment["body"]
|
127
127
|
matcher = body.match(/Replying to \[comment:(?<comment_number>\d+).*\]/)
|
128
|
-
|
128
|
+
comment_number = comments_map[matcher[:comment_number].to_i - 1]
|
129
|
+
matched_comment = comments[comment_number]
|
129
130
|
body.gsub!(/Replying to \[comment:(\d+).*\]/, "Replying to [#{@repo}##{issue_id} (comment:\\1)](#{matched_comment["html_url"]})")
|
130
131
|
|
131
132
|
body
|
data/lib/tractive/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tractive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.21
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: graphql
|