danger-linear_history 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +5 -0
  3. data/.rubocop.yml +15 -0
  4. data/Gemfile +4 -0
  5. data/Gemfile.lock +132 -0
  6. data/Guardfile +19 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +23 -0
  9. data/Rakefile +23 -0
  10. data/circle.yml +3 -0
  11. data/danger-linear_history.gemspec +50 -0
  12. data/lib/danger_plugin.rb +39 -0
  13. data/lib/version.rb +3 -0
  14. data/spec/fixtures/linear/COMMIT_EDITMSG +1 -0
  15. data/spec/fixtures/linear/HEAD +1 -0
  16. data/spec/fixtures/linear/MERGE_RR +0 -0
  17. data/spec/fixtures/linear/config +7 -0
  18. data/spec/fixtures/linear/description +1 -0
  19. data/spec/fixtures/linear/hooks/applypatch-msg.sample +15 -0
  20. data/spec/fixtures/linear/hooks/commit-msg.sample +24 -0
  21. data/spec/fixtures/linear/hooks/post-update.sample +8 -0
  22. data/spec/fixtures/linear/hooks/pre-applypatch.sample +14 -0
  23. data/spec/fixtures/linear/hooks/pre-commit.sample +49 -0
  24. data/spec/fixtures/linear/hooks/pre-push.sample +53 -0
  25. data/spec/fixtures/linear/hooks/pre-rebase.sample +169 -0
  26. data/spec/fixtures/linear/hooks/pre-receive.sample +24 -0
  27. data/spec/fixtures/linear/hooks/prepare-commit-msg.sample +36 -0
  28. data/spec/fixtures/linear/hooks/update.sample +128 -0
  29. data/spec/fixtures/linear/index +0 -0
  30. data/spec/fixtures/linear/info/exclude +6 -0
  31. data/spec/fixtures/linear/info/refs +1 -0
  32. data/spec/fixtures/linear/logs/HEAD +3 -0
  33. data/spec/fixtures/linear/logs/refs/heads/master +3 -0
  34. data/spec/fixtures/linear/objects/info/packs +2 -0
  35. data/spec/fixtures/linear/objects/pack/pack-0d11e1d12c122d1872a828e6c2ab3c81ee31b0a3.idx +0 -0
  36. data/spec/fixtures/linear/objects/pack/pack-0d11e1d12c122d1872a828e6c2ab3c81ee31b0a3.pack +0 -0
  37. data/spec/fixtures/linear/packed-refs +2 -0
  38. data/spec/fixtures/nonlinear/COMMIT_EDITMSG +19 -0
  39. data/spec/fixtures/nonlinear/HEAD +1 -0
  40. data/spec/fixtures/nonlinear/MERGE_RR +0 -0
  41. data/spec/fixtures/nonlinear/ORIG_HEAD +1 -0
  42. data/spec/fixtures/nonlinear/config +7 -0
  43. data/spec/fixtures/nonlinear/description +1 -0
  44. data/spec/fixtures/nonlinear/hooks/applypatch-msg.sample +15 -0
  45. data/spec/fixtures/nonlinear/hooks/commit-msg.sample +24 -0
  46. data/spec/fixtures/nonlinear/hooks/post-update.sample +8 -0
  47. data/spec/fixtures/nonlinear/hooks/pre-applypatch.sample +14 -0
  48. data/spec/fixtures/nonlinear/hooks/pre-commit.sample +49 -0
  49. data/spec/fixtures/nonlinear/hooks/pre-push.sample +53 -0
  50. data/spec/fixtures/nonlinear/hooks/pre-rebase.sample +169 -0
  51. data/spec/fixtures/nonlinear/hooks/pre-receive.sample +24 -0
  52. data/spec/fixtures/nonlinear/hooks/prepare-commit-msg.sample +36 -0
  53. data/spec/fixtures/nonlinear/hooks/update.sample +128 -0
  54. data/spec/fixtures/nonlinear/index +0 -0
  55. data/spec/fixtures/nonlinear/info/exclude +6 -0
  56. data/spec/fixtures/nonlinear/info/refs +1 -0
  57. data/spec/fixtures/nonlinear/logs/HEAD +8 -0
  58. data/spec/fixtures/nonlinear/logs/refs/heads/master +5 -0
  59. data/spec/fixtures/nonlinear/objects/c4/502db7a73cfd334e9c1ab3988fbb7e3c2560bf +0 -0
  60. data/spec/fixtures/nonlinear/objects/info/packs +2 -0
  61. data/spec/fixtures/nonlinear/objects/pack/pack-c15a48c606d589bebf788e824ec15946ddc2171b.idx +0 -0
  62. data/spec/fixtures/nonlinear/objects/pack/pack-c15a48c606d589bebf788e824ec15946ddc2171b.pack +0 -0
  63. data/spec/fixtures/nonlinear/packed-refs +2 -0
  64. data/spec/fixtures/nonlinear/rr-cache/b5af61297bb440010b5deb18d272d0976716bc1f/postimage +3 -0
  65. data/spec/fixtures/nonlinear/rr-cache/b5af61297bb440010b5deb18d272d0976716bc1f/preimage +6 -0
  66. data/spec/linear_history_spec.rb +83 -0
  67. data/spec/spec_helper.rb +59 -0
  68. metadata +304 -0
@@ -0,0 +1,36 @@
1
+ #!/bin/sh
2
+ #
3
+ # An example hook script to prepare the commit log message.
4
+ # Called by "git commit" with the name of the file that has the
5
+ # commit message, followed by the description of the commit
6
+ # message's source. The hook's purpose is to edit the commit
7
+ # message file. If the hook fails with a non-zero status,
8
+ # the commit is aborted.
9
+ #
10
+ # To enable this hook, rename this file to "prepare-commit-msg".
11
+
12
+ # This hook includes three examples. The first comments out the
13
+ # "Conflicts:" part of a merge commit.
14
+ #
15
+ # The second includes the output of "git diff --name-status -r"
16
+ # into the message, just before the "git status" output. It is
17
+ # commented because it doesn't cope with --amend or with squashed
18
+ # commits.
19
+ #
20
+ # The third example adds a Signed-off-by line to the message, that can
21
+ # still be edited. This is rarely a good idea.
22
+
23
+ case "$2,$3" in
24
+ merge,)
25
+ /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;
26
+
27
+ # ,|template,)
28
+ # /usr/bin/perl -i.bak -pe '
29
+ # print "\n" . `git diff --cached --name-status -r`
30
+ # if /^#/ && $first++ == 0' "$1" ;;
31
+
32
+ *) ;;
33
+ esac
34
+
35
+ # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
36
+ # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
@@ -0,0 +1,128 @@
1
+ #!/bin/sh
2
+ #
3
+ # An example hook script to block unannotated tags from entering.
4
+ # Called by "git receive-pack" with arguments: refname sha1-old sha1-new
5
+ #
6
+ # To enable this hook, rename this file to "update".
7
+ #
8
+ # Config
9
+ # ------
10
+ # hooks.allowunannotated
11
+ # This boolean sets whether unannotated tags will be allowed into the
12
+ # repository. By default they won't be.
13
+ # hooks.allowdeletetag
14
+ # This boolean sets whether deleting tags will be allowed in the
15
+ # repository. By default they won't be.
16
+ # hooks.allowmodifytag
17
+ # This boolean sets whether a tag may be modified after creation. By default
18
+ # it won't be.
19
+ # hooks.allowdeletebranch
20
+ # This boolean sets whether deleting branches will be allowed in the
21
+ # repository. By default they won't be.
22
+ # hooks.denycreatebranch
23
+ # This boolean sets whether remotely creating branches will be denied
24
+ # in the repository. By default this is allowed.
25
+ #
26
+
27
+ # --- Command line
28
+ refname="$1"
29
+ oldrev="$2"
30
+ newrev="$3"
31
+
32
+ # --- Safety check
33
+ if [ -z "$GIT_DIR" ]; then
34
+ echo "Don't run this script from the command line." >&2
35
+ echo " (if you want, you could supply GIT_DIR then run" >&2
36
+ echo " $0 <ref> <oldrev> <newrev>)" >&2
37
+ exit 1
38
+ fi
39
+
40
+ if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
41
+ echo "usage: $0 <ref> <oldrev> <newrev>" >&2
42
+ exit 1
43
+ fi
44
+
45
+ # --- Config
46
+ allowunannotated=$(git config --bool hooks.allowunannotated)
47
+ allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
48
+ denycreatebranch=$(git config --bool hooks.denycreatebranch)
49
+ allowdeletetag=$(git config --bool hooks.allowdeletetag)
50
+ allowmodifytag=$(git config --bool hooks.allowmodifytag)
51
+
52
+ # check for no description
53
+ projectdesc=$(sed -e '1q' "$GIT_DIR/description")
54
+ case "$projectdesc" in
55
+ "Unnamed repository"* | "")
56
+ echo "*** Project description file hasn't been set" >&2
57
+ exit 1
58
+ ;;
59
+ esac
60
+
61
+ # --- Check types
62
+ # if $newrev is 0000...0000, it's a commit to delete a ref.
63
+ zero="0000000000000000000000000000000000000000"
64
+ if [ "$newrev" = "$zero" ]; then
65
+ newrev_type=delete
66
+ else
67
+ newrev_type=$(git cat-file -t $newrev)
68
+ fi
69
+
70
+ case "$refname","$newrev_type" in
71
+ refs/tags/*,commit)
72
+ # un-annotated tag
73
+ short_refname=${refname##refs/tags/}
74
+ if [ "$allowunannotated" != "true" ]; then
75
+ echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
76
+ echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
77
+ exit 1
78
+ fi
79
+ ;;
80
+ refs/tags/*,delete)
81
+ # delete tag
82
+ if [ "$allowdeletetag" != "true" ]; then
83
+ echo "*** Deleting a tag is not allowed in this repository" >&2
84
+ exit 1
85
+ fi
86
+ ;;
87
+ refs/tags/*,tag)
88
+ # annotated tag
89
+ if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
90
+ then
91
+ echo "*** Tag '$refname' already exists." >&2
92
+ echo "*** Modifying a tag is not allowed in this repository." >&2
93
+ exit 1
94
+ fi
95
+ ;;
96
+ refs/heads/*,commit)
97
+ # branch
98
+ if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
99
+ echo "*** Creating a branch is not allowed in this repository" >&2
100
+ exit 1
101
+ fi
102
+ ;;
103
+ refs/heads/*,delete)
104
+ # delete branch
105
+ if [ "$allowdeletebranch" != "true" ]; then
106
+ echo "*** Deleting a branch is not allowed in this repository" >&2
107
+ exit 1
108
+ fi
109
+ ;;
110
+ refs/remotes/*,commit)
111
+ # tracking branch
112
+ ;;
113
+ refs/remotes/*,delete)
114
+ # delete tracking branch
115
+ if [ "$allowdeletebranch" != "true" ]; then
116
+ echo "*** Deleting a tracking branch is not allowed in this repository" >&2
117
+ exit 1
118
+ fi
119
+ ;;
120
+ *)
121
+ # Anything else (is there anything else?)
122
+ echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
123
+ exit 1
124
+ ;;
125
+ esac
126
+
127
+ # --- Finished
128
+ exit 0
Binary file
@@ -0,0 +1,6 @@
1
+ # git ls-files --others --exclude-from=.git/info/exclude
2
+ # Lines that start with '#' are comments.
3
+ # For a project mostly in C, the following would be a good set of
4
+ # exclude patterns (uncomment them if you want to use them):
5
+ # *.[oa]
6
+ # *~
@@ -0,0 +1 @@
1
+ 87de2a305c7415d3274bfa9b87ed727f0fe77b05 refs/heads/master
@@ -0,0 +1,8 @@
1
+ 0000000000000000000000000000000000000000 2fabe9bcae49ccecd9f47b9a03c15099d84305a9 Alexsander Akers <me@a2.io> 1492437070 +0200 commit (initial): A
2
+ 2fabe9bcae49ccecd9f47b9a03c15099d84305a9 9c64bab5028e6dfd053ee266e9b763f610e1dc53 Alexsander Akers <me@a2.io> 1492437092 +0200 commit: B
3
+ 9c64bab5028e6dfd053ee266e9b763f610e1dc53 2fabe9bcae49ccecd9f47b9a03c15099d84305a9 Alexsander Akers <me@a2.io> 1492437097 +0200 reset: moving to HEAD^
4
+ 2fabe9bcae49ccecd9f47b9a03c15099d84305a9 9c64bab5028e6dfd053ee266e9b763f610e1dc53 Alexsander Akers <me@a2.io> 1492437113 +0200 reset: moving to 9c64
5
+ 9c64bab5028e6dfd053ee266e9b763f610e1dc53 2fabe9bcae49ccecd9f47b9a03c15099d84305a9 Alexsander Akers <me@a2.io> 1492437124 +0200 checkout: moving from master to tmp
6
+ 2fabe9bcae49ccecd9f47b9a03c15099d84305a9 2007239b38ad9fd5965bb400ad0b1a8606cf058d Alexsander Akers <me@a2.io> 1492437147 +0200 commit: C
7
+ 2007239b38ad9fd5965bb400ad0b1a8606cf058d 9c64bab5028e6dfd053ee266e9b763f610e1dc53 Alexsander Akers <me@a2.io> 1492437149 +0200 checkout: moving from tmp to master
8
+ 9c64bab5028e6dfd053ee266e9b763f610e1dc53 87de2a305c7415d3274bfa9b87ed727f0fe77b05 Alexsander Akers <me@a2.io> 1492437169 +0200 commit (merge): Merge commit
@@ -0,0 +1,5 @@
1
+ 0000000000000000000000000000000000000000 2fabe9bcae49ccecd9f47b9a03c15099d84305a9 Alexsander Akers <me@a2.io> 1492437070 +0200 commit (initial): A
2
+ 2fabe9bcae49ccecd9f47b9a03c15099d84305a9 9c64bab5028e6dfd053ee266e9b763f610e1dc53 Alexsander Akers <me@a2.io> 1492437092 +0200 commit: B
3
+ 9c64bab5028e6dfd053ee266e9b763f610e1dc53 2fabe9bcae49ccecd9f47b9a03c15099d84305a9 Alexsander Akers <me@a2.io> 1492437097 +0200 reset: moving to HEAD^
4
+ 2fabe9bcae49ccecd9f47b9a03c15099d84305a9 9c64bab5028e6dfd053ee266e9b763f610e1dc53 Alexsander Akers <me@a2.io> 1492437113 +0200 reset: moving to 9c64
5
+ 9c64bab5028e6dfd053ee266e9b763f610e1dc53 87de2a305c7415d3274bfa9b87ed727f0fe77b05 Alexsander Akers <me@a2.io> 1492437169 +0200 commit (merge): Merge commit
@@ -0,0 +1,2 @@
1
+ P pack-c15a48c606d589bebf788e824ec15946ddc2171b.pack
2
+
@@ -0,0 +1,2 @@
1
+ # pack-refs with: peeled fully-peeled
2
+ 87de2a305c7415d3274bfa9b87ed727f0fe77b05 refs/heads/master
@@ -0,0 +1,83 @@
1
+ require 'fileutils'
2
+ require 'git'
3
+
4
+ require File.expand_path('../spec_helper', __FILE__)
5
+
6
+ module Danger
7
+ describe Danger::LinearHistory do
8
+ it 'should be a plugin' do
9
+ expect(Danger::LinearHistory.new(nil)).to be_a Danger::Plugin
10
+ end
11
+
12
+ describe 'with Dangerfile' do
13
+ before do
14
+ @dangerfile = testing_dangerfile
15
+ @my_plugin = @dangerfile.linear_history
16
+ end
17
+
18
+ context 'with linear history' do
19
+ before(:all) do
20
+ repo = File.expand_path('../fixtures/linear', __FILE__)
21
+ @dir = Dir.mktmpdir
22
+ FileUtils.cp_r(repo, @dir + '/.git')
23
+ Dir.chdir(@dir) { `git init` }
24
+ @git = Git.open(@dir)
25
+ end
26
+
27
+ after(:all) do
28
+ FileUtils.rm_rf(@dir)
29
+ end
30
+
31
+ it 'does nothing' do
32
+ allow_any_instance_of(Danger::LinearHistory).to \
33
+ receive(:commits).and_return @git.log
34
+
35
+ @my_plugin.validate!
36
+
37
+ expect(@dangerfile.status_report[:warnings]).to eq([])
38
+ expect(@dangerfile.status_report[:errors]).to eq([])
39
+ end
40
+ end
41
+
42
+ context 'with nonlinear history' do
43
+ before(:all) do
44
+ repo = File.expand_path('../fixtures/nonlinear', __FILE__)
45
+ @dir = Dir.mktmpdir
46
+ FileUtils.cp_r(repo, @dir + '/.git')
47
+ Dir.chdir(@dir) { `git init` }
48
+ @git = Git.open(@dir)
49
+ end
50
+
51
+ after(:all) do
52
+ FileUtils.rm_rf(@dir)
53
+ end
54
+
55
+ context 'soft_fail is false' do
56
+ it 'errors' do
57
+ allow_any_instance_of(Danger::LinearHistory).to \
58
+ receive(:commits).and_return @git.log
59
+
60
+ @my_plugin.validate!(soft_fail: false)
61
+
62
+ message = 'Please rebase to get rid of the merge commits in this PR'
63
+ expect(@dangerfile.status_report[:warnings]).to eq([])
64
+ expect(@dangerfile.status_report[:errors]).to eq([message])
65
+ end
66
+ end
67
+
68
+ context 'soft_fail is true' do
69
+ it 'warns' do
70
+ allow_any_instance_of(Danger::LinearHistory).to \
71
+ receive(:commits).and_return @git.log
72
+
73
+ @my_plugin.validate!(soft_fail: true)
74
+
75
+ message = 'Please rebase to get rid of the merge commits in this PR'
76
+ expect(@dangerfile.status_report[:warnings]).to eq([message])
77
+ expect(@dangerfile.status_report[:errors]).to eq([])
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,59 @@
1
+ require 'pathname'
2
+ ROOT = Pathname.new(File.expand_path('../../', __FILE__))
3
+ $LOAD_PATH.unshift((ROOT + 'lib').to_s)
4
+ $LOAD_PATH.unshift((ROOT + 'spec').to_s)
5
+
6
+ require 'bundler/setup'
7
+ require 'pry'
8
+
9
+ require 'rspec'
10
+ require 'danger'
11
+
12
+ # Use coloured output, it's the best.
13
+ RSpec.configure do |config|
14
+ config.filter_gems_from_backtrace 'bundler'
15
+ config.color = true
16
+ config.tty = true
17
+ end
18
+
19
+ require 'danger_plugin'
20
+
21
+ # These functions are a subset of https://github.com/danger/danger/blob/master/spec/spec_helper.rb
22
+ # If you are expanding these files, see if it's already been done ^.
23
+
24
+ # A silent version of the user interface,
25
+ # it comes with an extra function `.string` which will
26
+ # strip all ANSI colours from the string.
27
+
28
+ # rubocop:disable Lint/NestedMethodDefinition
29
+ def testing_ui
30
+ @output = StringIO.new
31
+ def @output.winsize
32
+ [20, 9999]
33
+ end
34
+
35
+ cork = Cork::Board.new(out: @output)
36
+ def cork.string
37
+ out.string.gsub(/\e\[([;\d]+)?m/, '')
38
+ end
39
+ cork
40
+ end
41
+ # rubocop:enable Lint/NestedMethodDefinition
42
+
43
+ # Example environment (ENV) that would come from
44
+ # running a PR on TravisCI
45
+ def testing_env
46
+ {
47
+ 'HAS_JOSH_K_SEAL_OF_APPROVAL' => 'true',
48
+ 'TRAVIS_PULL_REQUEST' => '800',
49
+ 'TRAVIS_REPO_SLUG' => 'artsy/eigen',
50
+ 'TRAVIS_COMMIT_RANGE' => '759adcbd0d8f...13c4dc8bb61d',
51
+ 'DANGER_GITHUB_API_TOKEN' => '123sbdq54erfsd3422gdfio'
52
+ }
53
+ end
54
+
55
+ # A stubbed out Dangerfile for use in tests
56
+ def testing_dangerfile
57
+ env = Danger::EnvironmentManager.new(testing_env)
58
+ Danger::Dangerfile.new(env, testing_ui)
59
+ end
metadata ADDED
@@ -0,0 +1,304 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: danger-linear_history
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Alexsander Akers
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-04-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: danger-plugin-api
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.4'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.4'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.41'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.41'
83
+ - !ruby/object:Gem::Dependency
84
+ name: yard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.8'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.8'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.14'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.14'
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard-rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '4.7'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '4.7'
125
+ - !ruby/object:Gem::Dependency
126
+ name: listen
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '='
130
+ - !ruby/object:Gem::Version
131
+ version: 3.0.7
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '='
137
+ - !ruby/object:Gem::Version
138
+ version: 3.0.7
139
+ - !ruby/object:Gem::Dependency
140
+ name: pry
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ description: A short description of danger-linear_history.
154
+ email:
155
+ - me@a2.io
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files: []
159
+ files:
160
+ - ".gitignore"
161
+ - ".rubocop.yml"
162
+ - Gemfile
163
+ - Gemfile.lock
164
+ - Guardfile
165
+ - LICENSE.txt
166
+ - README.md
167
+ - Rakefile
168
+ - circle.yml
169
+ - danger-linear_history.gemspec
170
+ - lib/danger_plugin.rb
171
+ - lib/version.rb
172
+ - spec/fixtures/linear/COMMIT_EDITMSG
173
+ - spec/fixtures/linear/HEAD
174
+ - spec/fixtures/linear/MERGE_RR
175
+ - spec/fixtures/linear/config
176
+ - spec/fixtures/linear/description
177
+ - spec/fixtures/linear/hooks/applypatch-msg.sample
178
+ - spec/fixtures/linear/hooks/commit-msg.sample
179
+ - spec/fixtures/linear/hooks/post-update.sample
180
+ - spec/fixtures/linear/hooks/pre-applypatch.sample
181
+ - spec/fixtures/linear/hooks/pre-commit.sample
182
+ - spec/fixtures/linear/hooks/pre-push.sample
183
+ - spec/fixtures/linear/hooks/pre-rebase.sample
184
+ - spec/fixtures/linear/hooks/pre-receive.sample
185
+ - spec/fixtures/linear/hooks/prepare-commit-msg.sample
186
+ - spec/fixtures/linear/hooks/update.sample
187
+ - spec/fixtures/linear/index
188
+ - spec/fixtures/linear/info/exclude
189
+ - spec/fixtures/linear/info/refs
190
+ - spec/fixtures/linear/logs/HEAD
191
+ - spec/fixtures/linear/logs/refs/heads/master
192
+ - spec/fixtures/linear/objects/info/packs
193
+ - spec/fixtures/linear/objects/pack/pack-0d11e1d12c122d1872a828e6c2ab3c81ee31b0a3.idx
194
+ - spec/fixtures/linear/objects/pack/pack-0d11e1d12c122d1872a828e6c2ab3c81ee31b0a3.pack
195
+ - spec/fixtures/linear/packed-refs
196
+ - spec/fixtures/nonlinear/COMMIT_EDITMSG
197
+ - spec/fixtures/nonlinear/HEAD
198
+ - spec/fixtures/nonlinear/MERGE_RR
199
+ - spec/fixtures/nonlinear/ORIG_HEAD
200
+ - spec/fixtures/nonlinear/config
201
+ - spec/fixtures/nonlinear/description
202
+ - spec/fixtures/nonlinear/hooks/applypatch-msg.sample
203
+ - spec/fixtures/nonlinear/hooks/commit-msg.sample
204
+ - spec/fixtures/nonlinear/hooks/post-update.sample
205
+ - spec/fixtures/nonlinear/hooks/pre-applypatch.sample
206
+ - spec/fixtures/nonlinear/hooks/pre-commit.sample
207
+ - spec/fixtures/nonlinear/hooks/pre-push.sample
208
+ - spec/fixtures/nonlinear/hooks/pre-rebase.sample
209
+ - spec/fixtures/nonlinear/hooks/pre-receive.sample
210
+ - spec/fixtures/nonlinear/hooks/prepare-commit-msg.sample
211
+ - spec/fixtures/nonlinear/hooks/update.sample
212
+ - spec/fixtures/nonlinear/index
213
+ - spec/fixtures/nonlinear/info/exclude
214
+ - spec/fixtures/nonlinear/info/refs
215
+ - spec/fixtures/nonlinear/logs/HEAD
216
+ - spec/fixtures/nonlinear/logs/refs/heads/master
217
+ - spec/fixtures/nonlinear/objects/c4/502db7a73cfd334e9c1ab3988fbb7e3c2560bf
218
+ - spec/fixtures/nonlinear/objects/info/packs
219
+ - spec/fixtures/nonlinear/objects/pack/pack-c15a48c606d589bebf788e824ec15946ddc2171b.idx
220
+ - spec/fixtures/nonlinear/objects/pack/pack-c15a48c606d589bebf788e824ec15946ddc2171b.pack
221
+ - spec/fixtures/nonlinear/packed-refs
222
+ - spec/fixtures/nonlinear/rr-cache/b5af61297bb440010b5deb18d272d0976716bc1f/postimage
223
+ - spec/fixtures/nonlinear/rr-cache/b5af61297bb440010b5deb18d272d0976716bc1f/preimage
224
+ - spec/linear_history_spec.rb
225
+ - spec/spec_helper.rb
226
+ homepage: https://github.com/a2/danger-linear_history
227
+ licenses:
228
+ - MIT
229
+ metadata: {}
230
+ post_install_message:
231
+ rdoc_options: []
232
+ require_paths:
233
+ - lib
234
+ required_ruby_version: !ruby/object:Gem::Requirement
235
+ requirements:
236
+ - - ">="
237
+ - !ruby/object:Gem::Version
238
+ version: '0'
239
+ required_rubygems_version: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ requirements: []
245
+ rubyforge_project:
246
+ rubygems_version: 2.6.11
247
+ signing_key:
248
+ specification_version: 4
249
+ summary: A longer description of danger-linear_history.
250
+ test_files:
251
+ - spec/fixtures/linear/COMMIT_EDITMSG
252
+ - spec/fixtures/linear/HEAD
253
+ - spec/fixtures/linear/MERGE_RR
254
+ - spec/fixtures/linear/config
255
+ - spec/fixtures/linear/description
256
+ - spec/fixtures/linear/hooks/applypatch-msg.sample
257
+ - spec/fixtures/linear/hooks/commit-msg.sample
258
+ - spec/fixtures/linear/hooks/post-update.sample
259
+ - spec/fixtures/linear/hooks/pre-applypatch.sample
260
+ - spec/fixtures/linear/hooks/pre-commit.sample
261
+ - spec/fixtures/linear/hooks/pre-push.sample
262
+ - spec/fixtures/linear/hooks/pre-rebase.sample
263
+ - spec/fixtures/linear/hooks/pre-receive.sample
264
+ - spec/fixtures/linear/hooks/prepare-commit-msg.sample
265
+ - spec/fixtures/linear/hooks/update.sample
266
+ - spec/fixtures/linear/index
267
+ - spec/fixtures/linear/info/exclude
268
+ - spec/fixtures/linear/info/refs
269
+ - spec/fixtures/linear/logs/HEAD
270
+ - spec/fixtures/linear/logs/refs/heads/master
271
+ - spec/fixtures/linear/objects/info/packs
272
+ - spec/fixtures/linear/objects/pack/pack-0d11e1d12c122d1872a828e6c2ab3c81ee31b0a3.idx
273
+ - spec/fixtures/linear/objects/pack/pack-0d11e1d12c122d1872a828e6c2ab3c81ee31b0a3.pack
274
+ - spec/fixtures/linear/packed-refs
275
+ - spec/fixtures/nonlinear/COMMIT_EDITMSG
276
+ - spec/fixtures/nonlinear/HEAD
277
+ - spec/fixtures/nonlinear/MERGE_RR
278
+ - spec/fixtures/nonlinear/ORIG_HEAD
279
+ - spec/fixtures/nonlinear/config
280
+ - spec/fixtures/nonlinear/description
281
+ - spec/fixtures/nonlinear/hooks/applypatch-msg.sample
282
+ - spec/fixtures/nonlinear/hooks/commit-msg.sample
283
+ - spec/fixtures/nonlinear/hooks/post-update.sample
284
+ - spec/fixtures/nonlinear/hooks/pre-applypatch.sample
285
+ - spec/fixtures/nonlinear/hooks/pre-commit.sample
286
+ - spec/fixtures/nonlinear/hooks/pre-push.sample
287
+ - spec/fixtures/nonlinear/hooks/pre-rebase.sample
288
+ - spec/fixtures/nonlinear/hooks/pre-receive.sample
289
+ - spec/fixtures/nonlinear/hooks/prepare-commit-msg.sample
290
+ - spec/fixtures/nonlinear/hooks/update.sample
291
+ - spec/fixtures/nonlinear/index
292
+ - spec/fixtures/nonlinear/info/exclude
293
+ - spec/fixtures/nonlinear/info/refs
294
+ - spec/fixtures/nonlinear/logs/HEAD
295
+ - spec/fixtures/nonlinear/logs/refs/heads/master
296
+ - spec/fixtures/nonlinear/objects/c4/502db7a73cfd334e9c1ab3988fbb7e3c2560bf
297
+ - spec/fixtures/nonlinear/objects/info/packs
298
+ - spec/fixtures/nonlinear/objects/pack/pack-c15a48c606d589bebf788e824ec15946ddc2171b.idx
299
+ - spec/fixtures/nonlinear/objects/pack/pack-c15a48c606d589bebf788e824ec15946ddc2171b.pack
300
+ - spec/fixtures/nonlinear/packed-refs
301
+ - spec/fixtures/nonlinear/rr-cache/b5af61297bb440010b5deb18d272d0976716bc1f/postimage
302
+ - spec/fixtures/nonlinear/rr-cache/b5af61297bb440010b5deb18d272d0976716bc1f/preimage
303
+ - spec/linear_history_spec.rb
304
+ - spec/spec_helper.rb