danger 0.8.2 → 0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -1
- data/lib/danger.rb +1 -0
- data/lib/danger/ci_source/ci_source.rb +2 -0
- data/lib/danger/commands/init.rb +8 -9
- data/lib/danger/commands/init_helpers/interviewer.rb +17 -13
- data/lib/danger/commands/local.rb +6 -6
- data/lib/danger/commands/new_plugin.rb +10 -10
- data/lib/danger/commands/runner.rb +6 -2
- data/lib/danger/danger_core/dangerfile.rb +44 -32
- data/lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb +0 -4
- data/lib/danger/request_source/github.rb +28 -19
- data/lib/danger/scm_source/git_repo.rb +4 -0
- data/lib/danger/version.rb +1 -1
- metadata +52 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4921ce4e3c1ab439ca418a004aac9ee64d6e7ed
|
4
|
+
data.tar.gz: e3065925be50c02d3b800f0a824fead466d4f84e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 336014b027d584aac76ed805f4f790cd35af88c22a85d1ee704de3321bd203af6e3cf236b78962c825e33d881048782903193e436b16180fc7f10357a3b23529
|
7
|
+
data.tar.gz: be97d88ff2b2f6749aebc7a3d2149e3df5439d6c3b4375f66a46ee5e13c356ce75fd7f14e9646413c8d82866eb913f5b2357e933f2fb1cd73219fee34b89a7da
|
data/README.md
CHANGED
@@ -25,7 +25,13 @@ Add this line to your application's [Gemfile](https://guides.cocoapods.org/using
|
|
25
25
|
gem 'danger'
|
26
26
|
```
|
27
27
|
|
28
|
-
|
28
|
+
Then use Bundler to install the gem.
|
29
|
+
|
30
|
+
```shell
|
31
|
+
bundle install
|
32
|
+
```
|
33
|
+
|
34
|
+
Then, to get up and running quickly, just run
|
29
35
|
|
30
36
|
```
|
31
37
|
bundle exec danger init
|
data/lib/danger.rb
CHANGED
data/lib/danger/commands/init.rb
CHANGED
@@ -7,6 +7,8 @@ module Danger
|
|
7
7
|
self.summary = 'Helps you set up Danger.'
|
8
8
|
self.command = 'init'
|
9
9
|
|
10
|
+
attr_accessor :ui
|
11
|
+
|
10
12
|
def self.options
|
11
13
|
[
|
12
14
|
['--impatient', "'I've not got all day here. Don't add any thematic delays please.'"],
|
@@ -15,14 +17,14 @@ module Danger
|
|
15
17
|
end
|
16
18
|
|
17
19
|
def initialize(argv)
|
18
|
-
ui.no_delay = argv.flag?('impatient', false)
|
19
|
-
ui.no_waiting = argv.flag?('mousey', false)
|
20
20
|
@bot_name = File.basename(Dir.getwd).split(".").first.capitalize + "Bot"
|
21
21
|
super
|
22
|
+
@ui = Interviewer.new(cork)
|
23
|
+
ui.no_delay = argv.flag?('impatient', false)
|
24
|
+
ui.no_waiting = argv.flag?('mousey', false)
|
22
25
|
end
|
23
26
|
|
24
27
|
def run
|
25
|
-
ui = Interviewer.new
|
26
28
|
ui.say "\nOK, thanks #{ENV['LOGNAME']}, have a seat and we'll get you started.\n".yellow
|
27
29
|
ui.pause 1
|
28
30
|
|
@@ -38,10 +40,6 @@ module Danger
|
|
38
40
|
thanks
|
39
41
|
end
|
40
42
|
|
41
|
-
def ui
|
42
|
-
@ui ||= Interviewer.new
|
43
|
-
end
|
44
|
-
|
45
43
|
def show_todo_state
|
46
44
|
ui.say "We need to do the following:\n"
|
47
45
|
ui.pause 0.6
|
@@ -134,8 +132,9 @@ module Danger
|
|
134
132
|
end
|
135
133
|
|
136
134
|
def current_repo_slug
|
137
|
-
@
|
138
|
-
@
|
135
|
+
@git = GitRepo.new
|
136
|
+
repo_matches = @git.origins.match(%r{([\/:])([^\/]+\/[^\/.]+)(?:.git)?$})
|
137
|
+
repo_matches[2] || "[Your/Repo]"
|
139
138
|
end
|
140
139
|
|
141
140
|
def setup_danger_ci
|
@@ -1,9 +1,13 @@
|
|
1
1
|
module Danger
|
2
2
|
class Interviewer
|
3
|
-
attr_accessor :no_delay, :no_waiting
|
3
|
+
attr_accessor :no_delay, :no_waiting, :ui
|
4
|
+
|
5
|
+
def initialize(cork_board)
|
6
|
+
@ui = cork_board
|
7
|
+
end
|
4
8
|
|
5
9
|
def show_prompt
|
6
|
-
print "> ".bold.green
|
10
|
+
ui.print "> ".bold.green
|
7
11
|
end
|
8
12
|
|
9
13
|
def yellow_bang
|
@@ -19,7 +23,7 @@ module Danger
|
|
19
23
|
end
|
20
24
|
|
21
25
|
def say(output)
|
22
|
-
puts output
|
26
|
+
ui.puts output
|
23
27
|
end
|
24
28
|
|
25
29
|
def header(title)
|
@@ -39,40 +43,40 @@ module Danger
|
|
39
43
|
def wait_for_return
|
40
44
|
STDOUT.flush
|
41
45
|
STDIN.gets unless @no_delay
|
42
|
-
puts
|
46
|
+
ui.puts
|
43
47
|
end
|
44
48
|
|
45
49
|
def run_command(command, output_command = nil)
|
46
50
|
output_command ||= command
|
47
|
-
puts " " + output_command.magenta
|
51
|
+
ui.puts " " + output_command.magenta
|
48
52
|
system command
|
49
53
|
end
|
50
54
|
|
51
55
|
def ask(question)
|
52
56
|
answer = ""
|
53
57
|
loop do
|
54
|
-
puts "\n#{question}?"
|
58
|
+
ui.puts "\n#{question}?"
|
55
59
|
|
56
60
|
show_prompt
|
57
61
|
answer = STDIN.gets.chomp
|
58
62
|
|
59
63
|
break if answer.empty?
|
60
64
|
|
61
|
-
print "\nYou need to provide an answer."
|
65
|
+
ui.print "\nYou need to provide an answer."
|
62
66
|
end
|
63
67
|
answer
|
64
68
|
end
|
65
69
|
|
66
70
|
def ask_with_answers(question, possible_answers)
|
67
|
-
print "\n#{question}? ["
|
71
|
+
ui.print "\n#{question}? ["
|
68
72
|
|
69
73
|
print_info = proc do
|
70
74
|
possible_answers.each_with_index do |answer, i|
|
71
75
|
the_answer = (i == 0) ? answer.underline : answer
|
72
|
-
print " " + the_answer
|
73
|
-
print(" /") if i != possible_answers.length - 1
|
76
|
+
ui.print " " + the_answer
|
77
|
+
ui.print(" /") if i != possible_answers.length - 1
|
74
78
|
end
|
75
|
-
print " ]\n"
|
79
|
+
ui.print " ]\n"
|
76
80
|
end
|
77
81
|
print_info.call
|
78
82
|
|
@@ -88,12 +92,12 @@ module Danger
|
|
88
92
|
# default to first answer
|
89
93
|
if answer == ""
|
90
94
|
answer = possible_answers[0].downcase
|
91
|
-
puts "Using: " + answer.yellow
|
95
|
+
ui.puts "Using: " + answer.yellow
|
92
96
|
end
|
93
97
|
|
94
98
|
break if possible_answers.map(&:downcase).include? answer
|
95
99
|
|
96
|
-
print "\nPossible answers are ["
|
100
|
+
ui.print "\nPossible answers are ["
|
97
101
|
print_info.call
|
98
102
|
end
|
99
103
|
|
@@ -27,25 +27,25 @@ module Danger
|
|
27
27
|
ENV["LOCAL_GIT_PR_ID"] = @pr_num if @pr_num
|
28
28
|
|
29
29
|
env = EnvironmentManager.new(ENV)
|
30
|
-
dm = Dangerfile.new(env)
|
30
|
+
dm = Dangerfile.new(env, cork)
|
31
31
|
dm.init_plugins
|
32
32
|
|
33
33
|
source = dm.env.ci_source
|
34
34
|
if source.nil? or source.repo_slug.empty?
|
35
|
-
puts "danger local failed because it only works with GitHub projects at the moment. Sorry.".red
|
35
|
+
cork.puts "danger local failed because it only works with GitHub projects at the moment. Sorry.".red
|
36
36
|
exit 0
|
37
37
|
end
|
38
38
|
|
39
39
|
gh = dm.env.request_source
|
40
40
|
|
41
|
-
puts "Running your Dangerfile against this PR - https://#{gh.
|
41
|
+
cork.puts "Running your Dangerfile against this PR - https://#{gh.host}/#{source.repo_slug}/pull/#{source.pull_request_id}"
|
42
42
|
|
43
43
|
if verbose != true
|
44
|
-
puts "Turning on --verbose"
|
44
|
+
cork.puts "Turning on --verbose"
|
45
45
|
dm.verbose = true
|
46
46
|
end
|
47
47
|
|
48
|
-
puts
|
48
|
+
cork.puts
|
49
49
|
|
50
50
|
# We can use tokenless here, as it's running on someone's computer
|
51
51
|
# and is IP locked, as opposed to on the CI.
|
@@ -54,7 +54,7 @@ module Danger
|
|
54
54
|
begin
|
55
55
|
gh.fetch_details
|
56
56
|
rescue Octokit::NotFound
|
57
|
-
puts "Local repository was not found on GitHub. If you're trying to test a private repository please provide a valid API token through " + "DANGER_GITHUB_API_TOKEN".yellow + " environment variable."
|
57
|
+
cork.puts "Local repository was not found on GitHub. If you're trying to test a private repository please provide a valid API token through " + "DANGER_GITHUB_API_TOKEN".yellow + " environment variable."
|
58
58
|
return
|
59
59
|
end
|
60
60
|
|
@@ -6,9 +6,9 @@ module Danger
|
|
6
6
|
def run
|
7
7
|
require 'fileutils'
|
8
8
|
|
9
|
-
puts "Must be lower case, and use a '_' between words. Do not use '.'".green
|
10
|
-
puts "examples: 'number_of_emojis', 'ensure_pr_title_contains_keyword'".green
|
11
|
-
puts "Name of your new plugin: "
|
9
|
+
cork.puts "Must be lower case, and use a '_' between words. Do not use '.'".green
|
10
|
+
cork.puts "examples: 'number_of_emojis', 'ensure_pr_title_contains_keyword'".green
|
11
|
+
cork.puts "Name of your new plugin: "
|
12
12
|
name = STDIN.gets.strip
|
13
13
|
|
14
14
|
dir = Danger.gem_path
|
@@ -22,13 +22,13 @@ module Danger
|
|
22
22
|
raise "File '#{output_path}' already exists!" if File.exist?(output_path)
|
23
23
|
File.write(output_path, content)
|
24
24
|
|
25
|
-
puts ""
|
26
|
-
puts "Successfully created new plugin at path '#{output_path}'".green
|
27
|
-
puts "Add this to your `Dangerfile` to use it:"
|
28
|
-
puts ""
|
29
|
-
puts "#{name}(parameter1: 123, parameter2: \"Club Mate\")".blue
|
30
|
-
puts ""
|
31
|
-
puts "Enjoy ✨"
|
25
|
+
cork.puts ""
|
26
|
+
cork.puts "Successfully created new plugin at path '#{output_path}'".green
|
27
|
+
cork.puts "Add this to your `Dangerfile` to use it:"
|
28
|
+
cork.puts ""
|
29
|
+
cork.puts "#{name}(parameter1: 123, parameter2: \"Club Mate\")".blue
|
30
|
+
cork.puts ""
|
31
|
+
cork.puts "Enjoy ✨"
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
@@ -10,12 +10,16 @@ module Danger
|
|
10
10
|
|
11
11
|
self.plugin_prefixes = %w(claide danger)
|
12
12
|
|
13
|
+
attr_accessor :cork
|
14
|
+
|
13
15
|
def initialize(argv)
|
14
16
|
dangerfile = argv.option('dangerfile', 'Dangerfile')
|
15
17
|
@dangerfile_path = dangerfile if File.exist? dangerfile
|
16
18
|
@base = argv.option('base')
|
17
19
|
@head = argv.option('head')
|
18
20
|
@danger_id = argv.option('danger_id', 'danger')
|
21
|
+
@cork = Cork::Board.new(silent: argv.option('silent', false),
|
22
|
+
verbose: argv.option('verbose', false))
|
19
23
|
super
|
20
24
|
end
|
21
25
|
|
@@ -37,7 +41,7 @@ module Danger
|
|
37
41
|
|
38
42
|
def run
|
39
43
|
env = EnvironmentManager.new(ENV)
|
40
|
-
dm = Dangerfile.new(env)
|
44
|
+
dm = Dangerfile.new(env, cork)
|
41
45
|
|
42
46
|
if dm.env.pr?
|
43
47
|
dm.verbose = verbose
|
@@ -61,7 +65,7 @@ module Danger
|
|
61
65
|
dm.env.clean_up
|
62
66
|
end
|
63
67
|
else
|
64
|
-
puts "Not a Pull Request - skipping `danger` run"
|
68
|
+
cork.puts "Not a Pull Request - skipping `danger` run"
|
65
69
|
end
|
66
70
|
end
|
67
71
|
|
@@ -14,7 +14,7 @@ module Danger
|
|
14
14
|
class Dangerfile
|
15
15
|
include Danger::Dangerfile::DSL
|
16
16
|
|
17
|
-
attr_accessor :env, :verbose, :plugins
|
17
|
+
attr_accessor :env, :verbose, :plugins, :ui
|
18
18
|
|
19
19
|
# @return [Pathname] the path where the Dangerfile was loaded from. It is nil
|
20
20
|
# if the Dangerfile was generated programmatically.
|
@@ -64,9 +64,10 @@ module Danger
|
|
64
64
|
super
|
65
65
|
end
|
66
66
|
|
67
|
-
def initialize(env_manager)
|
67
|
+
def initialize(env_manager, cork_board)
|
68
68
|
@plugins = {}
|
69
69
|
@core_plugins = []
|
70
|
+
@ui = cork_board
|
70
71
|
|
71
72
|
# Triggers the core plugins
|
72
73
|
@env = env_manager
|
@@ -140,9 +141,11 @@ module Danger
|
|
140
141
|
params[:rows] = rows.each { |current| current[0] = current[0].yellow }
|
141
142
|
params[:title] = "Danger v#{Danger::VERSION}\nDSL Attributes".green
|
142
143
|
|
143
|
-
|
144
|
-
|
145
|
-
|
144
|
+
ui.section('Info:') do
|
145
|
+
ui.puts
|
146
|
+
ui.puts Terminal::Table.new(params)
|
147
|
+
ui.puts
|
148
|
+
end
|
146
149
|
end
|
147
150
|
|
148
151
|
# Parses the file at a path, optionally takes the content of the file for DI
|
@@ -159,14 +162,14 @@ module Danger
|
|
159
162
|
|
160
163
|
if contents.tr!('“”‘’‛', %(""'''))
|
161
164
|
# Changes have been made
|
162
|
-
puts "Your #{path.basename} has had smart quotes sanitised. " \
|
163
|
-
|
164
|
-
|
165
|
-
|
165
|
+
ui.puts "Your #{path.basename} has had smart quotes sanitised. " \
|
166
|
+
'To avoid issues in the future, you should not use ' \
|
167
|
+
'TextEdit for editing it. If you are not using TextEdit, ' \
|
168
|
+
'you should turn off smart quotes in your editor of choice.'.red
|
166
169
|
end
|
167
170
|
|
168
171
|
if contents.include?("puts")
|
169
|
-
puts "You used `puts` in your Dangerfile. To print out text to GitHub use `message` instead"
|
172
|
+
ui.puts "You used `puts` in your Dangerfile. To print out text to GitHub use `message` instead"
|
170
173
|
end
|
171
174
|
|
172
175
|
self.defined_in_file = path
|
@@ -188,30 +191,39 @@ module Danger
|
|
188
191
|
status = status_report
|
189
192
|
return if (status[:errors] + status[:warnings] + status[:messages] + status[:markdowns]).count == 0
|
190
193
|
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
puts ""
|
207
|
-
puts Terminal::Table.new(params)
|
208
|
-
puts ""
|
209
|
-
end
|
194
|
+
ui.section('Results:') do
|
195
|
+
[:errors, :warnings, :messages].each do |key|
|
196
|
+
formatted = key.to_s.capitalize + ':'
|
197
|
+
title = case key
|
198
|
+
when :errors
|
199
|
+
formatted.red
|
200
|
+
when :warnings
|
201
|
+
formatted.yellow
|
202
|
+
else
|
203
|
+
formatted
|
204
|
+
end
|
205
|
+
rows = status[key]
|
206
|
+
print_list(title, rows)
|
207
|
+
end
|
210
208
|
|
211
|
-
|
212
|
-
|
213
|
-
|
209
|
+
if status[:markdowns].count > 0
|
210
|
+
ui.section('Markdown:') do
|
211
|
+
status[:markdowns].each do |current_markdown|
|
212
|
+
ui.puts current_markdown
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
214
216
|
end
|
215
217
|
end
|
218
|
+
|
219
|
+
private
|
220
|
+
|
221
|
+
def print_list(title, rows)
|
222
|
+
ui.title(title) do
|
223
|
+
rows.each do |row|
|
224
|
+
ui.puts("- [ ] #{row}")
|
225
|
+
end
|
226
|
+
end unless rows.empty?
|
227
|
+
end
|
216
228
|
end
|
217
229
|
end
|
@@ -19,7 +19,6 @@ module Danger
|
|
19
19
|
# The markdown based message to be printed below the table
|
20
20
|
def markdown(message)
|
21
21
|
@markdowns << message
|
22
|
-
puts "Printing markdown #{message}"
|
23
22
|
end
|
24
23
|
|
25
24
|
# @!group Core
|
@@ -31,7 +30,6 @@ module Danger
|
|
31
30
|
# defaults to `true`.
|
32
31
|
def message(message, sticky: true)
|
33
32
|
@messages << Violation.new(message, sticky)
|
34
|
-
puts "Printing message '#{message}'"
|
35
33
|
end
|
36
34
|
|
37
35
|
# @!group Core
|
@@ -44,7 +42,6 @@ module Danger
|
|
44
42
|
def warn(message, sticky: true)
|
45
43
|
return if should_ignore_violation(message)
|
46
44
|
@warnings << Violation.new(message, sticky)
|
47
|
-
puts "Printing warning '#{message}'"
|
48
45
|
end
|
49
46
|
|
50
47
|
# @!group Core
|
@@ -58,7 +55,6 @@ module Danger
|
|
58
55
|
def fail(message, sticky: true)
|
59
56
|
return if should_ignore_violation(message)
|
60
57
|
@errors << Violation.new(message, sticky)
|
61
|
-
puts "Raising error '#{message}'"
|
62
58
|
end
|
63
59
|
|
64
60
|
def status_report
|
@@ -38,15 +38,15 @@ module Danger
|
|
38
38
|
|
39
39
|
def setup_danger_branches
|
40
40
|
# we can use a github specific feature here:
|
41
|
-
|
42
|
-
|
41
|
+
base_commit = self.pr_json[:base][:sha]
|
42
|
+
head_commit = self.scm.head_commit
|
43
43
|
|
44
44
|
# Next, we want to ensure that we have a version of the current branch at a known location
|
45
|
-
self.scm.exec "branch #{EnvironmentManager.danger_base_branch} #{
|
45
|
+
self.scm.exec "branch #{EnvironmentManager.danger_base_branch} #{base_commit}"
|
46
46
|
|
47
47
|
# OK, so we want to ensure that we have a known head branch, this will always represent
|
48
48
|
# the head of the PR ( e.g. the most recent commit that will be merged. )
|
49
|
-
self.scm.exec "
|
49
|
+
self.scm.exec "branch #{EnvironmentManager.danger_head_branch} #{head_commit}"
|
50
50
|
end
|
51
51
|
|
52
52
|
def fetch_details
|
@@ -106,23 +106,32 @@ module Danger
|
|
106
106
|
details_url: comment_result['html_url'])
|
107
107
|
end
|
108
108
|
|
109
|
-
def submit_pull_request_status!(warnings:
|
109
|
+
def submit_pull_request_status!(warnings: [], errors: [], details_url: [])
|
110
110
|
status = (errors.count == 0 ? 'success' : 'failure')
|
111
111
|
message = generate_github_description(warnings: warnings, errors: errors)
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
112
|
+
|
113
|
+
latest_pr_commit_ref = self.pr_json[:head][:sha]
|
114
|
+
|
115
|
+
if latest_pr_commit_ref.empty? || latest_pr_commit_ref.nil?
|
116
|
+
raise "Couldn't find a commit to update its status".red
|
117
|
+
end
|
118
|
+
|
119
|
+
begin
|
120
|
+
client.create_status(ci_source.repo_slug, latest_pr_commit_ref, status, {
|
121
|
+
description: message,
|
122
|
+
context: "danger/danger",
|
123
|
+
target_url: details_url
|
124
|
+
})
|
125
|
+
rescue
|
126
|
+
# This usually means the user has no commit access to this repo
|
127
|
+
# That's always the case for open source projects where you can only
|
128
|
+
# use a read-only GitHub account
|
129
|
+
if errors.count > 0
|
130
|
+
# We need to fail the actual build here
|
131
|
+
abort("\nDanger has failed this build. \nFound #{'error'.danger_pluralize(errors.count)} and I don't have write access to the PR set a PR status.")
|
132
|
+
else
|
133
|
+
puts message
|
134
|
+
end
|
126
135
|
end
|
127
136
|
end
|
128
137
|
|
data/lib/danger/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Orta Therox
|
@@ -9,36 +9,36 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-06-
|
12
|
+
date: 2016-06-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: claide
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '0'
|
20
|
+
version: '1.0'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '0'
|
27
|
+
version: '1.0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: git
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '1'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '1'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: colored
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -57,14 +57,14 @@ dependencies:
|
|
57
57
|
name: faraday
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - "
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - "
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
@@ -109,6 +109,20 @@ dependencies:
|
|
109
109
|
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '1'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: cork
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0.1'
|
119
|
+
type: :runtime
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0.1'
|
112
126
|
- !ruby/object:Gem::Dependency
|
113
127
|
name: bundler
|
114
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -141,72 +155,72 @@ dependencies:
|
|
141
155
|
name: rspec
|
142
156
|
requirement: !ruby/object:Gem::Requirement
|
143
157
|
requirements:
|
144
|
-
- - "
|
158
|
+
- - "~>"
|
145
159
|
- !ruby/object:Gem::Version
|
146
|
-
version: '
|
160
|
+
version: '3.4'
|
147
161
|
type: :development
|
148
162
|
prerelease: false
|
149
163
|
version_requirements: !ruby/object:Gem::Requirement
|
150
164
|
requirements:
|
151
|
-
- - "
|
165
|
+
- - "~>"
|
152
166
|
- !ruby/object:Gem::Version
|
153
|
-
version: '
|
167
|
+
version: '3.4'
|
154
168
|
- !ruby/object:Gem::Dependency
|
155
169
|
name: webmock
|
156
170
|
requirement: !ruby/object:Gem::Requirement
|
157
171
|
requirements:
|
158
|
-
- - "
|
172
|
+
- - "~>"
|
159
173
|
- !ruby/object:Gem::Version
|
160
|
-
version: '
|
174
|
+
version: '2.1'
|
161
175
|
type: :development
|
162
176
|
prerelease: false
|
163
177
|
version_requirements: !ruby/object:Gem::Requirement
|
164
178
|
requirements:
|
165
|
-
- - "
|
179
|
+
- - "~>"
|
166
180
|
- !ruby/object:Gem::Version
|
167
|
-
version: '
|
181
|
+
version: '2.1'
|
168
182
|
- !ruby/object:Gem::Dependency
|
169
183
|
name: pry
|
170
184
|
requirement: !ruby/object:Gem::Requirement
|
171
185
|
requirements:
|
172
|
-
- - "
|
186
|
+
- - "~>"
|
173
187
|
- !ruby/object:Gem::Version
|
174
|
-
version: '0'
|
188
|
+
version: '0.10'
|
175
189
|
type: :development
|
176
190
|
prerelease: false
|
177
191
|
version_requirements: !ruby/object:Gem::Requirement
|
178
192
|
requirements:
|
179
|
-
- - "
|
193
|
+
- - "~>"
|
180
194
|
- !ruby/object:Gem::Version
|
181
|
-
version: '0'
|
195
|
+
version: '0.10'
|
182
196
|
- !ruby/object:Gem::Dependency
|
183
197
|
name: rubocop
|
184
198
|
requirement: !ruby/object:Gem::Requirement
|
185
199
|
requirements:
|
186
200
|
- - "~>"
|
187
201
|
- !ruby/object:Gem::Version
|
188
|
-
version: 0.38
|
202
|
+
version: '0.38'
|
189
203
|
type: :development
|
190
204
|
prerelease: false
|
191
205
|
version_requirements: !ruby/object:Gem::Requirement
|
192
206
|
requirements:
|
193
207
|
- - "~>"
|
194
208
|
- !ruby/object:Gem::Version
|
195
|
-
version: 0.38
|
209
|
+
version: '0.38'
|
196
210
|
- !ruby/object:Gem::Dependency
|
197
211
|
name: yard
|
198
212
|
requirement: !ruby/object:Gem::Requirement
|
199
213
|
requirements:
|
200
|
-
- - "
|
214
|
+
- - "~>"
|
201
215
|
- !ruby/object:Gem::Version
|
202
|
-
version: '0'
|
216
|
+
version: '0.8'
|
203
217
|
type: :development
|
204
218
|
prerelease: false
|
205
219
|
version_requirements: !ruby/object:Gem::Requirement
|
206
220
|
requirements:
|
207
|
-
- - "
|
221
|
+
- - "~>"
|
208
222
|
- !ruby/object:Gem::Version
|
209
|
-
version: '0'
|
223
|
+
version: '0.8'
|
210
224
|
- !ruby/object:Gem::Dependency
|
211
225
|
name: listen
|
212
226
|
requirement: !ruby/object:Gem::Requirement
|
@@ -225,30 +239,30 @@ dependencies:
|
|
225
239
|
name: guard
|
226
240
|
requirement: !ruby/object:Gem::Requirement
|
227
241
|
requirements:
|
228
|
-
- - "
|
242
|
+
- - "~>"
|
229
243
|
- !ruby/object:Gem::Version
|
230
|
-
version: '
|
244
|
+
version: '2.14'
|
231
245
|
type: :development
|
232
246
|
prerelease: false
|
233
247
|
version_requirements: !ruby/object:Gem::Requirement
|
234
248
|
requirements:
|
235
|
-
- - "
|
249
|
+
- - "~>"
|
236
250
|
- !ruby/object:Gem::Version
|
237
|
-
version: '
|
251
|
+
version: '2.14'
|
238
252
|
- !ruby/object:Gem::Dependency
|
239
253
|
name: guard-rspec
|
240
254
|
requirement: !ruby/object:Gem::Requirement
|
241
255
|
requirements:
|
242
|
-
- - "
|
256
|
+
- - "~>"
|
243
257
|
- !ruby/object:Gem::Version
|
244
|
-
version: '
|
258
|
+
version: '4.7'
|
245
259
|
type: :development
|
246
260
|
prerelease: false
|
247
261
|
version_requirements: !ruby/object:Gem::Requirement
|
248
262
|
requirements:
|
249
|
-
- - "
|
263
|
+
- - "~>"
|
250
264
|
- !ruby/object:Gem::Version
|
251
|
-
version: '
|
265
|
+
version: '4.7'
|
252
266
|
description: Create a Dangerfile to introspect your pull request in CI, makes it easy
|
253
267
|
to enforce social conventions like changelogs and tests.
|
254
268
|
email:
|