face_control 0.7.0 → 0.8.0

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
  SHA1:
3
- metadata.gz: 4a232c3cf9da606837421e0f388819373c6aa46b
4
- data.tar.gz: 07bedda93cc95dba9c5ea6b716c1f2c5e894506a
3
+ metadata.gz: be4497607119db9bc65a83c2b7d33a23285098a6
4
+ data.tar.gz: 7bbe96f55858e7006ae44865f6b8b6196fdadd7e
5
5
  SHA512:
6
- metadata.gz: 54fe2769b81e249dc71c9aac26bb8311b4f522999a4d181af30322c30e0e6dedaa1e2f2fc869bb13421bde49df9877728e38a16fbe8e9d1370dbbbf1e2b65bad
7
- data.tar.gz: d7511c518230fa2200e9ec6da57522fbc3c23e5f049ff8e4207350f1df8017e187d4074e71ab8680d332ab8a048f708ca20dff06cd3cdec830cb3b10d52dc5d8
6
+ metadata.gz: bc75588340a640a422005198455f6146e0a1b80007164554ae2a1da265e4becdcb77b2e42840a04689a95c00538bbda8c37388e41e9104adfa57b2280e8b761d
7
+ data.tar.gz: 6837e6f79ff30fdfec2fa7bca03db1c3da62f1d684c99b883230faed98ca434e47add43f231eca953fee6e01b0d9dacc704d8672386d1161f4036ac3a904a109
data/README.md CHANGED
@@ -1,5 +1,8 @@
1
+ [![Gem Version](https://img.shields.io/gem/v/face_control.svg)](https://rubygems.org/gems/face_control)
2
+ [![Code Climate](https://img.shields.io/codeclimate/github/vassilevsky/face_control.svg)](https://codeclimate.com/github/vassilevsky/face_control/code)
1
3
  [![Vexor](https://ci.vexor.io/projects/126da196-c8e6-46f0-8bc7-b5f8f4b49732/status.svg)](https://ci.vexor.io/ui/projects/126da196-c8e6-46f0-8bc7-b5f8f4b49732/builds)
2
4
  [![Coveralls](https://img.shields.io/coveralls/vassilevsky/face_control.svg)](https://coveralls.io/github/vassilevsky/face_control)
5
+ [![VersionEye](https://img.shields.io/versioneye/d/ruby/face_control.svg)](https://www.versioneye.com/ruby/face_control)
3
6
 
4
7
  # Face Control
5
8
 
@@ -41,6 +44,7 @@ For example, here's a [Jenkins][] project setup:
41
44
  * Command
42
45
 
43
46
  export PULL_REQUEST_ID=`echo $GIT_BRANCH | cut -d / -f 3`
47
+
44
48
  gem install rubocop face_control
45
49
  npm install -g coffeelint
46
50
 
data/face_control.gemspec CHANGED
@@ -1,11 +1,6 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'face_control/version'
5
-
6
1
  Gem::Specification.new do |spec|
7
2
  spec.name = 'face_control'
8
- spec.version = FaceControl::VERSION
3
+ spec.version = '0.8.0'
9
4
  spec.authors = ['Ilya Vassilevsky']
10
5
  spec.email = ['vassilevsky@gmail.com']
11
6
 
@@ -12,12 +12,17 @@ module FaceControl
12
12
  def comments
13
13
  return [] if relevant_filenames.empty?
14
14
 
15
- @checker.parse(`#{@checker.command(relevant_filenames.join(' '))}`)
15
+ report = `#{@checker.command(relevant_filenames.join(' '))}`
16
+ return [] if report.strip.empty?
17
+
18
+ @checker.parse(report)
16
19
  end
17
20
 
18
21
  private
19
22
 
20
23
  def relevant_filenames
24
+ return @filenames unless @checker.respond_to?(:relevant_globs)
25
+
21
26
  @relevant_filenames ||= @checker.relevant_globs.map do |glob|
22
27
  @filenames.select do |filename|
23
28
  File.fnmatch?(glob, filename)
@@ -7,6 +7,7 @@ module FaceControl
7
7
  # Define only if you use @options in the following methods
8
8
  attr_writer :options
9
9
 
10
+ # @optional
10
11
  # @return [Array<String>] Shell globs to filter only files relevant to this checker
11
12
  # out of all files with added lines in the pull request
12
13
  def relevant_globs
@@ -29,7 +30,7 @@ module FaceControl
29
30
  mode = fields.first
30
31
  file = fields.last
31
32
 
32
- if mode != '-rwxr-xr-x'
33
+ unless mode == '-rwxr-xr-x'
33
34
  Comment.new(file: file, line: 1, text: 'Invalid file mode')
34
35
  end
35
36
  end
@@ -0,0 +1,23 @@
1
+ require 'face_control/comment'
2
+
3
+ module FaceControl
4
+ module Checkers
5
+ class Comments
6
+
7
+ def command(filenames)
8
+ "grep -inEH '(todo|fixme)' #{filenames}"
9
+ end
10
+
11
+ def parse(command_output)
12
+ command_output.lines.map do |line|
13
+ file, line_num = line.split(":", 3)
14
+ Comment.new(
15
+ file: file,
16
+ line: line_num,
17
+ text: "Do not bury this task in code. Do it now or create a JIRA issue."
18
+ )
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -11,6 +11,7 @@ module FaceControl
11
11
 
12
12
  def relevant_globs
13
13
  %w(
14
+ *.gemspec
14
15
  *.rb
15
16
  *.rake
16
17
  Capfile
@@ -1,2 +1,3 @@
1
1
  require 'face_control/checkers/rubocop'
2
2
  require 'face_control/checkers/coffeelint'
3
+ require 'face_control/checkers/comments'
@@ -15,7 +15,7 @@ module FaceControl
15
15
  comments = check(pull_request, ignored_severities, logger)
16
16
  return if comments.empty?
17
17
 
18
- logger.info("Posting #{comments.size} comments...")
18
+ logger.info("#{comments.size} comments have been created. Posting only those for added lines...")
19
19
  add_comments(pull_request, comments)
20
20
  end
21
21
 
@@ -28,7 +28,8 @@ module FaceControl
28
28
 
29
29
  checkers = [
30
30
  FaceControl::CheckerRunner.new(FaceControl::Checkers::RuboCop, filenames, ignored_severities: ignored_severities),
31
- FaceControl::CheckerRunner.new(FaceControl::Checkers::CoffeeLint, filenames)
31
+ FaceControl::CheckerRunner.new(FaceControl::Checkers::CoffeeLint, filenames),
32
+ FaceControl::CheckerRunner.new(FaceControl::Checkers::Comments, filenames)
32
33
  ]
33
34
 
34
35
  checkers.map(&:comments).flatten
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: face_control
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya Vassilevsky
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-08-11 00:00:00.000000000 Z
11
+ date: 2016-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docopt
@@ -161,10 +161,10 @@ files:
161
161
  - lib/face_control/checkers.rb
162
162
  - lib/face_control/checkers/_example.rb
163
163
  - lib/face_control/checkers/coffeelint.rb
164
+ - lib/face_control/checkers/comments.rb
164
165
  - lib/face_control/checkers/rubocop.rb
165
166
  - lib/face_control/cli.rb
166
167
  - lib/face_control/comment.rb
167
- - lib/face_control/version.rb
168
168
  - lib/stash.rb
169
169
  - lib/stash/config.rb
170
170
  - lib/stash/pull_request.rb
@@ -190,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  version: '0'
191
191
  requirements: []
192
192
  rubyforge_project:
193
- rubygems_version: 2.4.5
193
+ rubygems_version: 2.4.5.1
194
194
  signing_key:
195
195
  specification_version: 4
196
196
  summary: Checks Atlassian Stash pull requests and comments on issues in added code
@@ -1,3 +0,0 @@
1
- module FaceControl
2
- VERSION = '0.7.0'
3
- end