watchdoge 0.1.9 → 0.1.10

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: 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