danger-commit_lint 0.0.1 → 0.0.2

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: 187b30e375e27640a38f905a84fbe37f3728cbfa
4
- data.tar.gz: 3b7c5065e11264bdc7d8a9bb4feb69b654bfbdb9
3
+ metadata.gz: 17d0cf1ee03d53740dba93d7473a038edef5004b
4
+ data.tar.gz: 62c86199bef076c8b1843ff6135cda719a489945
5
5
  SHA512:
6
- metadata.gz: 036da88f891d79ff590a709c8d6bb9ab90918795981eb2ac44e4c97aa9c7d1fa808ab67b72f452f24629c17e19959416ce3b2a509ecfbea70ec9116eebe0248c
7
- data.tar.gz: 09e074e74bd5ab2fb2e09a06e961ea732201be60d81d6ca8e2415fba0d93e3ea6368f29397369249891278f38d90f4457d654502dd67b57825d55acda86e2a9d
6
+ metadata.gz: 6ecc81d9d7a04407a91766f1461ef7084c7c5595f4582799f7b69803892c5f5c7e3dc96a482fad6de0c028d2bd6bd6fd860164f4612831e8a9870cec19338a85
7
+ data.tar.gz: 5978036983219fe4ab704ff39a25df63b32f78a09d943d00ecbf15e56f79402bd52e0e531e592d75c89591faec4078446445673f80276fd2f0a12deb28de85ac
data/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  This is a [Danger Plugin][danger] that ensures nice and tidy commit messages.
6
6
 
7
+ [danger]: https://github.com/danger/danger
8
+
7
9
  ## Installation
8
10
 
9
11
  ```
@@ -20,6 +22,7 @@ commit_lint.check
20
22
 
21
23
  That will check each commit in the PR to ensure the following is true:
22
24
 
25
+ * Commit subject begins with a capital letter (`subject_cap`)
23
26
  * Commit subject is no longer than 50 characters (`subject_length`)
24
27
  * Commit subject does not end in a period (`subject_period`)
25
28
  * Commit subject and body are separated by an empty line (`empty_line`)
@@ -56,17 +59,7 @@ commit_lint.check fail: :all
56
59
  Also note that there is one more way that Commit Lint can behave:
57
60
 
58
61
  ```ruby
59
- commit_lint.check diable: :all
62
+ commit_lint.check disable: :all
60
63
  ```
61
64
 
62
65
  This will actually throw a warning that Commit Lint isn't doing anything.
63
-
64
- ## Development
65
-
66
- 1. Clone this repo
67
- 2. Run `bundle install` to setup dependencies.
68
- 3. Run `bundle exec rake spec` to run the tests.
69
- 4. Use `bundle exec guard` to automatically have tests run as you make changes.
70
- 5. Make your changes.
71
-
72
- [danger]: https://github.com/danger/danger
@@ -1,3 +1,3 @@
1
1
  module CommitLint
2
- VERSION = '0.0.1'.freeze
2
+ VERSION = '0.0.2'.freeze
3
3
  end
@@ -30,6 +30,7 @@ module Danger
30
30
  #
31
31
  # The current check types are:
32
32
  #
33
+ # * `subject_cap`
33
34
  # * `subject_length`
34
35
  # * `subject_period`
35
36
  # * `empty_line`
@@ -42,7 +43,7 @@ module Danger
42
43
  @config = config
43
44
 
44
45
  if all_checks_disabled?
45
- warn NOOP_MESSAGE
46
+ messaging.warn NOOP_MESSAGE
46
47
  else
47
48
  check_messages
48
49
  end
@@ -53,19 +54,17 @@ module Danger
53
54
  def check_messages
54
55
  for message in messages
55
56
  for klass in warning_checkers
56
- warn klass::MESSAGE if klass.fail? message
57
+ messaging.warn klass::MESSAGE if klass.fail? message
57
58
  end
58
59
 
59
60
  for klass in failing_checkers
60
- # rubocop:disable Style/SignalException
61
- fail klass::MESSAGE if klass.fail? message
62
- # rubocop:enable Style/SignalException
61
+ messaging.fail klass::MESSAGE if klass.fail? message
63
62
  end
64
63
  end
65
64
  end
66
65
 
67
66
  def checkers
68
- [SubjectLengthCheck, SubjectPeriodCheck, EmptyLineCheck]
67
+ [SubjectCapCheck, SubjectLengthCheck, SubjectPeriodCheck, EmptyLineCheck]
69
68
  end
70
69
 
71
70
  def checks
@@ -0,0 +1,19 @@
1
+ module Danger
2
+ class DangerCommitLint < Plugin
3
+ class SubjectCapCheck < CommitCheck # :nodoc:
4
+ MESSAGE = 'Please start subject with capital letter.'.freeze
5
+
6
+ def self.type
7
+ :subject_cap
8
+ end
9
+
10
+ def initialize(message)
11
+ @first_character = message[:subject].split('').first
12
+ end
13
+
14
+ def fail?
15
+ @first_character != @first_character.upcase
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,4 +1,5 @@
1
1
  require 'commit_lint/commit_check'
2
+ require 'commit_lint/subject_cap_check'
2
3
  require 'commit_lint/subject_length_check'
3
4
  require 'commit_lint/subject_period_check'
4
5
  require 'commit_lint/empty_line_check'
@@ -3,10 +3,11 @@ require File.expand_path('../spec_helper', __FILE__)
3
3
  # rubocop:disable Metrics/LineLength
4
4
 
5
5
  TEST_MESSAGES = {
6
+ subject_cap: 'this subject needs a capital',
6
7
  subject_length: 'This is a really long subject line and should result in an error',
7
8
  subject_period: 'This subject line ends in a period.',
8
9
  empty_line: "This subject line is fine\nBut then I forgot the empty line separating the subject and the body.",
9
- all_errors: "This is a really long subject and it even ends in a period.\nNot to mention the missing empty line!",
10
+ all_errors: "this is a really long subject and it even ends in a period.\nNot to mention the missing empty line!",
10
11
  valid: "This is a valid message\n\nYou can tell because it meets all the criteria and the linter does not complain."
11
12
  }.freeze
12
13
 
@@ -30,6 +31,7 @@ module Danger
30
31
  context 'with invalid messages' do
31
32
  it 'fails those checks' do
32
33
  checks = {
34
+ subject_cap: SubjectCapCheck::MESSAGE,
33
35
  subject_length: SubjectLengthCheck::MESSAGE,
34
36
  subject_period: SubjectPeriodCheck::MESSAGE,
35
37
  empty_line: EmptyLineCheck::MESSAGE
@@ -58,8 +60,9 @@ module Danger
58
60
  commit_lint.check
59
61
 
60
62
  status_report = commit_lint.status_report
61
- expect(report_counts(status_report)).to eq 3
63
+ expect(report_counts(status_report)).to eq 4
62
64
  expect(status_report[:errors]).to eq [
65
+ SubjectCapCheck::MESSAGE,
63
66
  SubjectLengthCheck::MESSAGE,
64
67
  SubjectPeriodCheck::MESSAGE,
65
68
  EmptyLineCheck::MESSAGE
@@ -119,7 +122,9 @@ module Danger
119
122
  commit = double(:commit, message: TEST_MESSAGES[:all_errors])
120
123
  allow(commit_lint.git).to receive(:commits).and_return([commit])
121
124
 
122
- all_checks = [:subject_length, :subject_period, :empty_line]
125
+ all_checks = [
126
+ :subject_cap, :subject_length, :subject_period, :empty_line
127
+ ]
123
128
  commit_lint.check disable: all_checks
124
129
 
125
130
  status_report = commit_lint.status_report
@@ -199,8 +204,9 @@ module Danger
199
204
  commit_lint.check warn: :all
200
205
 
201
206
  status_report = commit_lint.status_report
202
- expect(report_counts(status_report)).to eq 3
207
+ expect(report_counts(status_report)).to eq 4
203
208
  expect(status_report[:warnings]).to eq [
209
+ SubjectCapCheck::MESSAGE,
204
210
  SubjectLengthCheck::MESSAGE,
205
211
  SubjectPeriodCheck::MESSAGE,
206
212
  EmptyLineCheck::MESSAGE
@@ -279,8 +285,9 @@ module Danger
279
285
  commit_lint.check fail: :all
280
286
 
281
287
  status_report = commit_lint.status_report
282
- expect(report_counts(status_report)).to eq 3
288
+ expect(report_counts(status_report)).to eq 4
283
289
  expect(status_report[:errors]).to eq [
290
+ SubjectCapCheck::MESSAGE,
284
291
  SubjectLengthCheck::MESSAGE,
285
292
  SubjectPeriodCheck::MESSAGE,
286
293
  EmptyLineCheck::MESSAGE
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-commit_lint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Allured
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-26 00:00:00.000000000 Z
11
+ date: 2016-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger
@@ -127,6 +127,7 @@ files:
127
127
  - lib/commit_lint/empty_line_check.rb
128
128
  - lib/commit_lint/gem_version.rb
129
129
  - lib/commit_lint/plugin.rb
130
+ - lib/commit_lint/subject_cap_check.rb
130
131
  - lib/commit_lint/subject_length_check.rb
131
132
  - lib/commit_lint/subject_period_check.rb
132
133
  - lib/danger_commit_lint.rb