danger-lgtm 0.1.1 → 0.2.0

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
  SHA1:
3
- metadata.gz: 58d8c218679e3e92cd006bd729372d134da6ae8d
4
- data.tar.gz: 2ce6309beacdde7d1f05ec2c69bc22d2ee9159d7
3
+ metadata.gz: 2003b650eca71ba9c3c9ac91b86eda29757349c7
4
+ data.tar.gz: 9d258b59a6f6f0ab638f556ae7b91b7b4cf11563
5
5
  SHA512:
6
- metadata.gz: 20e79789224b8dc14ba329f6b90feb867d91f95dcc91be3f795d5ecd00574c1e5c469d1c7db1ab350a5d88b6d7a0174f3a53ffbb8d370a8964756d36508f6680
7
- data.tar.gz: c4fd46569128e03849e82f465ba00b6d3f3068a294b281a14fb54b35fba579ab45123bcd2945d2acf2d78a6e693b32e5dd45bef114976506b210568183b6e4f4
6
+ metadata.gz: 48166fec2e2aa69503e71431839aacb146864505efb2cf26297b9d2fcf36823b9dab78b7b42c94da1dee51a394a44c92de810f91a9ee1fc4419066cc23f4473f
7
+ data.tar.gz: 2309634a33d3d73baf5a429ac054bbcd4d01f4d27234b7187f336e3fa41d80226569707ddffe9d79e1ad0b4eb2fd8b70db2a3a956e887eac60be632a3180a4f3
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  .DS_Store
2
2
  pkg
3
3
  .idea/
4
+ .vscode/
data/.rubocop.yml ADDED
@@ -0,0 +1,3 @@
1
+ Metrics/BlockLength:
2
+ Exclude:
3
+ - "**/*_spec.rb"
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danger-lgtm (0.1.1)
4
+ danger-lgtm (0.2.0)
5
5
  danger-plugin-api (~> 1.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- addressable (2.5.0)
10
+ addressable (2.5.1)
11
11
  public_suffix (~> 2.0, >= 2.0.2)
12
12
  ast (2.3.0)
13
13
  claide (1.0.1)
@@ -16,11 +16,10 @@ GEM
16
16
  nap
17
17
  open4 (~> 1.3)
18
18
  coderay (1.1.1)
19
- colored (1.2)
20
19
  colored2 (3.1.2)
21
- cork (0.2.0)
22
- colored (~> 1.2)
23
- danger (4.3.0)
20
+ cork (0.3.0)
21
+ colored2 (~> 3.1)
22
+ danger (5.2.2)
24
23
  claide (~> 1.0)
25
24
  claide-plugins (>= 0.9.2)
26
25
  colored2 (~> 3.1)
@@ -34,7 +33,7 @@ GEM
34
33
  danger-plugin-api (1.0.0)
35
34
  danger (> 2.0)
36
35
  diff-lcs (1.3)
37
- faraday (0.11.0)
36
+ faraday (0.12.1)
38
37
  multipart-post (>= 1.2, < 3)
39
38
  faraday-http-cache (1.3.1)
40
39
  faraday (~> 0.8)
@@ -67,7 +66,7 @@ GEM
67
66
  notiffany (0.1.1)
68
67
  nenv (~> 0.1)
69
68
  shellany (~> 0.0)
70
- octokit (4.6.2)
69
+ octokit (4.7.0)
71
70
  sawyer (~> 0.8.0, >= 0.5.3)
72
71
  open4 (1.3.4)
73
72
  parser (2.4.0.0)
@@ -108,8 +107,8 @@ GEM
108
107
  faraday (~> 0.8, < 1.0)
109
108
  shellany (0.0.1)
110
109
  slop (3.6.0)
111
- terminal-table (1.7.3)
112
- unicode-display_width (~> 1.1.1)
110
+ terminal-table (1.8.0)
111
+ unicode-display_width (~> 1.1, >= 1.1.1)
113
112
  thor (0.19.4)
114
113
  unicode-display_width (1.1.3)
115
114
  yard (0.9.8)
@@ -130,4 +129,4 @@ DEPENDENCIES
130
129
  yard (~> 0.8)
131
130
 
132
131
  BUNDLED WITH
133
- 1.14.6
132
+ 1.15.0
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
1
  [![Gem](https://img.shields.io/gem/v/danger-lgtm.svg)](https://rubygems.org/gems/danger-lgtm)
2
+ [![Gem](https://img.shields.io/gem/dt/danger-lgtm.svg)](https://rubygems.org/gems/danger-lgtm)
2
3
  [![Gem](https://img.shields.io/gem/dtv/danger-lgtm.svg)](https://rubygems.org/gems/danger-lgtm)
3
4
  [![Travis branch](https://img.shields.io/travis/leonhartX/danger-lgtm/master.svg)](https://travis-ci.org/leonhartX/danger-lgtm)
4
5
  # danger-lgtm
data/lib/danger_lgtm.rb CHANGED
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'lgtm/gem_version'
data/lib/danger_plugin.rb CHANGED
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'lgtm/plugin'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lgtm
2
- VERSION = '0.1.1'.freeze
4
+ VERSION = '0.2.0'.freeze
3
5
  end
data/lib/lgtm/plugin.rb CHANGED
@@ -1,3 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'uri'
4
+ require 'json'
1
5
  require 'net/http'
2
6
 
3
7
  module Danger
@@ -12,6 +16,8 @@ module Danger
12
16
  # @tags lgtm, github
13
17
  #
14
18
  class DangerLgtm < Plugin
19
+ RANDOM_LGTM_POST_URL = 'http://lgtm.in/g'.freeze
20
+
15
21
  # Check status report, say lgtm if no violations
16
22
  # Generates a `markdown` of a lgtm iamge.
17
23
  #
@@ -22,11 +28,40 @@ module Danger
22
28
  def check_lgtm(image_url: nil)
23
29
  return unless status_report[:errors].length.zero? &&
24
30
  status_report[:warnings].length.zero?
25
- unless image_url
26
- id = Net::HTTP.get_response('lgtm.in', '/g')['location'].split('/').last
27
- image_url = "https://lgtm.in/p/#{id}"
31
+
32
+ image_url ||= fetch_image_url
33
+
34
+ markdown(
35
+ markdown_template(image_url)
36
+ )
37
+ end
38
+
39
+ private
40
+
41
+ def fetch_image_url
42
+ lgtm_post_url = process_request(RANDOM_LGTM_POST_URL)['location']
43
+
44
+ lgtm_post_response = process_request(lgtm_post_url) do |req|
45
+ req['Accept'] = 'application/json'
28
46
  end
29
- markdown("![LGTM](#{image_url})")
47
+
48
+ lgtm_post = JSON.parse(lgtm_post_response.body)
49
+
50
+ lgtm_post['actualImageUrl']
51
+ end
52
+
53
+ def process_request(url)
54
+ uri = URI(url)
55
+
56
+ req = Net::HTTP::Get.new(uri)
57
+
58
+ yield req if block_given?
59
+
60
+ Net::HTTP.start(uri.hostname, uri.port) { |http| http.request(req) }
61
+ end
62
+
63
+ def markdown_template(image_url)
64
+ "<p align='center'><img src='#{image_url}' alt='LGTM' /></p>"
30
65
  end
31
66
  end
32
67
  end
data/spec/lgtm_spec.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require File.expand_path('../spec_helper', __FILE__)
2
4
 
3
5
  module Danger
@@ -24,9 +26,19 @@ module Danger
24
26
  end
25
27
 
26
28
  it 'pick random pic from lgtm.in' do
29
+ mock = double(
30
+ :[] => 'https://lgtm.in/p/sSuI4hm0q',
31
+ body: JSON.generate(
32
+ actualImageUrl: 'https://example.com/image.jpg'
33
+ )
34
+ )
35
+
36
+ allow(Net::HTTP).to receive(:start).and_return(mock)
37
+
27
38
  @lgtm.check_lgtm
39
+
28
40
  expect(@dangerfile.status_report[:markdowns][0].message)
29
- .to match(%r{https:\/\/lgtm.\in\/p\/})
41
+ .to match(%r{https:\/\/example.com\/image.jpg})
30
42
  end
31
43
 
32
44
  it 'use given url' do
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'pathname'
2
4
  ROOT = Pathname.new(File.expand_path('../../', __FILE__))
3
5
  $LOAD_PATH.unshift((ROOT + 'lib').to_s)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-lgtm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - leonhartX
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-19 00:00:00.000000000 Z
11
+ date: 2017-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-plugin-api
@@ -158,6 +158,7 @@ extensions: []
158
158
  extra_rdoc_files: []
159
159
  files:
160
160
  - ".gitignore"
161
+ - ".rubocop.yml"
161
162
  - ".travis.yml"
162
163
  - Gemfile
163
164
  - Gemfile.lock
@@ -192,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
193
  version: '0'
193
194
  requirements: []
194
195
  rubyforge_project:
195
- rubygems_version: 2.5.1
196
+ rubygems_version: 2.6.11
196
197
  signing_key:
197
198
  specification_version: 4
198
199
  summary: Danger Plugin used to post LGTM iamge when there is no violations