watchdoge 0.1.9 → 0.1.10

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: db9eab410f530c1dd00de8bfb39a4cfaa86d3e41aa86105d776c47e8c68ad9cb
4
- data.tar.gz: 3196f93d3121f1aaafe6a4dfea5fc702dfbe54c4a985dfdd6b4f08abc3e515af
3
+ metadata.gz: 76fd10c6db817b3ab03f70178df61e1aebe01746bf65880852cfc3760a1153b5
4
+ data.tar.gz: 6f91b29949c9180a40980f24499a8ff2a803454a3cf99fa4572cded427175c50
5
5
  SHA512:
6
- metadata.gz: ef68aed278dc48dd7eac239a9c91bbaf532b010f4bb28f4c32ddbd3c57d3dd271a26e7c087e86bf2d7b64abe37dc73a2c51c1990e3a73882ce41f05bdbc9f2ea
7
- data.tar.gz: a9d02b67e9534ccf26047f4eb260b738251a68a92971fa7333689220dc13e1c4b089c36b0d507c950543cc3fbeff5d7adc3beb3602c32ecb373102fa868e7197
6
+ metadata.gz: 13fb74d5d2c25de6e884dc80dd3e60967bef9a3bc74e1f6934666982b472b8bbafcfdfcf8f49784ee978ee10136010adc4013b36c4282a56c59f526997daccf1
7
+ data.tar.gz: 72c8f4b464c69d87e056be7ef0e5edae5917bc31b345cd3e0a8ba79de18c71b7f0434dce53024f4f74ad9602cab65932ce2f14a093b99cea520082bce48987a6
@@ -29,6 +29,8 @@ module WatchDoge
29
29
  File.write 'image.png', message.diff.to_blob
30
30
  end
31
31
  end
32
+
33
+ @message_queue = []
32
34
  end
33
35
  end
34
36
  end
@@ -16,25 +16,29 @@ module WatchDoge
16
16
  @host = opt[:host] || ENV['CI_API_V4_URL']
17
17
  @project_id = opt[:project_id] || ENV['CI_PROJECT_ID']
18
18
  @source_branch = opt[:source_branch] || ENV['CI_COMMIT_REF_NAME']
19
+ @commit_short_sha = opt[:commit_short_sha] || ENV['CI_COMMIT_SHORT_SHA']
19
20
 
20
21
  @private_token = opt[:private_token]
21
22
  end
22
23
 
23
24
  def flush
24
- iid = get_latest_request_iid
25
+ meesages_to_flush = @message_queue
26
+ @message_queue = []
27
+
28
+ target_id = get_latest_request_iid || get_commit_id
25
29
 
26
- @message_queue = [] if iid.nil?
30
+ return if target_id.nil?
27
31
 
28
32
  table = markdown_table do |table_context|
29
- @message_queue.each do |message|
33
+ meesages_to_flush.each do |message|
30
34
  case message
31
35
  when String
32
- post_discussion request_iid: iid, message: message
36
+ post_discussion target_id, message: message
33
37
  when ChunkyPNG::Image
34
38
  upload_link = upload_image message
35
39
  link = md_img_link upload_link
36
40
 
37
- post_discussion request_iid: iid, message: link
41
+ post_discussion target_id, message: link
38
42
  when WatchDoge::PixelTest
39
43
  before = md_img_link upload_image(message.before)
40
44
  after = md_img_link upload_image(message.after)
@@ -47,13 +51,17 @@ module WatchDoge
47
51
  table_context
48
52
  end
49
53
 
50
- @message_queue = []
51
-
52
- post_discussion request_iid: iid, message: table
54
+ post_discussion target_id, message: table
53
55
  end
54
56
 
55
- def post_discussion request_iid:, message:
56
- uri = project_uri "/merge_requests/#{request_iid}/discussions"
57
+ def post_discussion target_iid, message:
58
+ uri =
59
+ case @discussion_target
60
+ when :merge_request
61
+ project_uri("/merge_requests/#{target_iid}/discussions")
62
+ when :commit
63
+ project_uri("/commits/#{target_iid}/discussions")
64
+ end
57
65
 
58
66
  Net::HTTP.post uri,
59
67
  { body: message }.to_json,
@@ -78,6 +86,8 @@ module WatchDoge
78
86
  end
79
87
 
80
88
  def get_latest_request_iid
89
+ @discussion_target = :merge_request
90
+
81
91
  uri = project_uri "/merge_requests?source_branch=#{@source_branch}&view=simple"
82
92
 
83
93
  req = Net::HTTP::Get.new uri
@@ -92,6 +102,23 @@ module WatchDoge
92
102
  JSON.parse(res)[0]['iid']
93
103
  end
94
104
 
105
+ def get_commit_id
106
+ @discussion_target = :commit
107
+
108
+ uri = project_uri "/repository/commits/#{@commit_short_sha}"
109
+
110
+ req = Net::HTTP::Get.new uri
111
+ req.add_field("PRIVATE-TOKEN", @private_token)
112
+
113
+ res = Net::HTTP.start(uri.host, uri.port, use_ssl: (uri.scheme == "https")) do |http|
114
+ http.request(req).body
115
+ end
116
+
117
+ return nil if res.empty?
118
+
119
+ JSON.parse(res)[0]['id']
120
+ end
121
+
95
122
  private
96
123
 
97
124
  def md_img_link link
@@ -100,7 +127,10 @@ module WatchDoge
100
127
 
101
128
  # markdown_table do |context|
102
129
  def markdown_table
103
- "<table>
130
+ "
131
+ #### Detail: #{ENV['CI_PIPELINE_URL']}
132
+
133
+ <table>
104
134
  <tr>
105
135
  <th>before</th>
106
136
  <th>after</th>
@@ -26,6 +26,8 @@ module WatchDoge
26
26
  post_file matter_most_meta(message.diff)
27
27
  end
28
28
  end
29
+
30
+ @message_queue = []
29
31
  end
30
32
 
31
33
  private
@@ -14,6 +14,8 @@ module WatchDoge
14
14
  body,
15
15
  "Content-Type" => "application/json"
16
16
  end
17
+
18
+ @message_queue = []
17
19
  end
18
20
 
19
21
  private
@@ -1,4 +1,4 @@
1
1
  # Version of WatchDoge
2
2
  module WatchDoge
3
- VERSION = '0.1.9'
3
+ VERSION = '0.1.10'
4
4
  end
data/watchdoge.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'watchdoge'
3
- s.version = '0.1.9'
3
+ s.version = '0.1.10'
4
4
  s.date = '2019-07-22'
5
5
  s.summary = "dogi"
6
6
  s.description = "WatchDoge is Ruby on Rails friendly frontend regression test tool"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watchdoge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shen Lee