danger 3.4.0 → 3.5.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 +4 -4
- data/lib/danger/ci_source/ci_source.rb +1 -1
- data/lib/danger/ci_source/jenkins.rb +1 -1
- data/lib/danger/commands/dangerfile/gem.rb +43 -0
- data/lib/danger/commands/dangerfile/init.rb +30 -0
- data/lib/danger/commands/init.rb +2 -2
- data/lib/danger/commands/runner.rb +3 -0
- data/lib/danger/danger_core/dangerfile.rb +3 -2
- data/lib/danger/danger_core/dangerfile_generator.rb +11 -0
- data/lib/danger/danger_core/environment_manager.rb +14 -12
- data/lib/danger/danger_core/plugins/dangerfile_danger_plugin.rb +12 -4
- data/lib/danger/scm_source/git_repo.rb +1 -1
- data/lib/danger/version.rb +1 -1
- metadata +9 -7
- data/lib/assets/PluginTemplate.rb.template +0 -20
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: af48c7716089bda158a7d4fb5422684cda1cf882
|
|
4
|
+
data.tar.gz: 31bcd2dba47171bf5898a2d0954c385b7aa1e60b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 18da3b3a61540d5b8725e5d154c5f38e346af10429ef61fbbc280fe9f8bab6206b8442f0c868ca4559bbfe28a011607f1caac4aaccc234f86679c33435fa32c3
|
|
7
|
+
data.tar.gz: de5ffb844e8cd08df544bdde71411d3a2e1a2520fd626f018f3c51ffe44bde1f207a2608713c1cbb7ab134682aea672a2de83e454285b29ca9abd5e033f7e6c8
|
|
@@ -53,7 +53,7 @@ module Danger
|
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
def initialize(env)
|
|
56
|
-
self.repo_url = env["GIT_URL"]
|
|
56
|
+
self.repo_url = env.fetch("GIT_URL_1") { env["GIT_URL"] }
|
|
57
57
|
self.pull_request_id = self.class.pull_request_id(env)
|
|
58
58
|
|
|
59
59
|
repo_matches = self.repo_url.match(%r{([\/:])([^\/]+\/[^\/.]+)(?:.git)?$})
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require "claide_plugin"
|
|
2
|
+
require "danger/commands/dangerfile/init"
|
|
3
|
+
|
|
4
|
+
module Danger
|
|
5
|
+
class DangerfileGem < DangerfileCommand
|
|
6
|
+
self.summary = "Create a gem-based Dangerfile quickly."
|
|
7
|
+
def self.description
|
|
8
|
+
<<-DESC
|
|
9
|
+
Creates a scaffold for the development of a new gem based Dangerfile
|
|
10
|
+
named `NAME` according to the best practices.
|
|
11
|
+
DESC
|
|
12
|
+
end
|
|
13
|
+
self.command = "gem"
|
|
14
|
+
self.arguments = [
|
|
15
|
+
CLAide::Argument.new("NAME", true)
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
def initialize(argv)
|
|
19
|
+
@name = argv.shift_argument
|
|
20
|
+
prefix = "dangerfile" + "-"
|
|
21
|
+
unless @name.nil? || @name.empty? || @name.start_with?(prefix)
|
|
22
|
+
@name = prefix + @name.dup
|
|
23
|
+
end
|
|
24
|
+
@template_url = argv.shift_argument
|
|
25
|
+
super
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def validate!
|
|
29
|
+
super
|
|
30
|
+
if @name.nil? || @name.empty?
|
|
31
|
+
help! "A name for the plugin is required."
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
help! "The plugin name cannot contain spaces." if @name =~ /\s/
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def run
|
|
38
|
+
runner = CLAide::TemplateRunner.new(@name, "https://github.com/danger/dangerfile-gem-template")
|
|
39
|
+
runner.clone_template
|
|
40
|
+
runner.configure_template
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require "danger/danger_core/dangerfile_generator"
|
|
2
|
+
|
|
3
|
+
# Mainly so we can have a nice strucutre for commands
|
|
4
|
+
|
|
5
|
+
module Danger
|
|
6
|
+
class DangerfileCommand < Runner
|
|
7
|
+
self.summary = "Easily create you Dangerfiles."
|
|
8
|
+
self.command = "dangerfile"
|
|
9
|
+
|
|
10
|
+
self.abstract_command = true
|
|
11
|
+
def self.options
|
|
12
|
+
[]
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Just a less verbose way of doing the Dangerfile from `danger init`.
|
|
18
|
+
|
|
19
|
+
module Danger
|
|
20
|
+
class DangerfileInit < DangerfileCommand
|
|
21
|
+
self.summary = "Create an example Dangerfile."
|
|
22
|
+
self.command = "init"
|
|
23
|
+
|
|
24
|
+
def run
|
|
25
|
+
content = DangerfileGenerator.create_dangerfile(".", cork)
|
|
26
|
+
File.write("Dangerfile", content)
|
|
27
|
+
cork.puts "Created" + "./Dangerfile".green
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
data/lib/danger/commands/init.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require "danger/commands/init_helpers/interviewer"
|
|
2
|
+
require "danger/danger_core/dangerfile_generator"
|
|
2
3
|
require "danger/ci_source/local_git_repo"
|
|
3
4
|
require "yaml"
|
|
4
5
|
|
|
@@ -53,8 +54,7 @@ module Danger
|
|
|
53
54
|
end
|
|
54
55
|
|
|
55
56
|
def setup_dangerfile
|
|
56
|
-
|
|
57
|
-
content = File.read(File.join(dir, "lib", "assets", "DangerfileTemplate"))
|
|
57
|
+
content = DangerfileGenerator.create_dangerfile(".", cork)
|
|
58
58
|
File.write("Dangerfile", content)
|
|
59
59
|
|
|
60
60
|
ui.header "Step 1: Creating a starter Dangerfile"
|
|
@@ -19,6 +19,9 @@ module Danger
|
|
|
19
19
|
require "danger/commands/plugins/plugin_json"
|
|
20
20
|
require "danger/commands/plugins/plugin_readme"
|
|
21
21
|
|
|
22
|
+
require "danger/commands/dangerfile/init"
|
|
23
|
+
require "danger/commands/dangerfile/gem"
|
|
24
|
+
|
|
22
25
|
attr_accessor :cork
|
|
23
26
|
|
|
24
27
|
self.summary = "Run the Dangerfile."
|
|
@@ -68,10 +68,11 @@ module Danger
|
|
|
68
68
|
super
|
|
69
69
|
end
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
# cork_board not being set comes from plugins #585
|
|
72
|
+
def initialize(env_manager, cork_board = nil)
|
|
72
73
|
@plugins = {}
|
|
73
74
|
@core_plugins = []
|
|
74
|
-
@ui = cork_board
|
|
75
|
+
@ui = cork_board || Cork::Board.new(silent: false, verbose: false)
|
|
75
76
|
|
|
76
77
|
# Triggers the core plugins
|
|
77
78
|
@env = env_manager
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module Danger
|
|
2
|
+
class DangerfileGenerator
|
|
3
|
+
# returns the string for a Dangerfile based on a folder's contents'
|
|
4
|
+
def self.create_dangerfile(_path, _ui)
|
|
5
|
+
# Use this template for now, but this is a really ripe place to
|
|
6
|
+
# improve now!
|
|
7
|
+
dir = Danger.gem_path
|
|
8
|
+
File.read(File.join(dir, "lib", "assets", "DangerfileTemplate"))
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -15,10 +15,20 @@ module Danger
|
|
|
15
15
|
local_ci_source(env).validates_as_pr?(env)
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
# @return [String] danger's default head branch
|
|
19
|
+
def self.danger_head_branch
|
|
20
|
+
"danger_head".freeze
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @return [String] danger's default base branch
|
|
24
|
+
def self.danger_base_branch
|
|
25
|
+
"danger_base".freeze
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def initialize(env, ui = nil)
|
|
19
29
|
ci_klass = self.class.local_ci_source(env)
|
|
20
30
|
self.ci_source = ci_klass.new(env)
|
|
21
|
-
self.ui = ui
|
|
31
|
+
self.ui = ui || Cork::Board.new(silent: false, verbose: false)
|
|
22
32
|
|
|
23
33
|
RequestSources::RequestSource.available_request_sources.each do |klass|
|
|
24
34
|
next unless self.ci_source.supports?(klass)
|
|
@@ -53,20 +63,12 @@ module Danger
|
|
|
53
63
|
end
|
|
54
64
|
end
|
|
55
65
|
|
|
56
|
-
def meta_info_for_base
|
|
57
|
-
scm.exec("--no-pager log #{EnvironmentManager.danger_base_branch} -n1")
|
|
58
|
-
end
|
|
59
|
-
|
|
60
66
|
def meta_info_for_head
|
|
61
67
|
scm.exec("--no-pager log #{EnvironmentManager.danger_head_branch} -n1")
|
|
62
68
|
end
|
|
63
69
|
|
|
64
|
-
def
|
|
65
|
-
"
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def self.danger_base_branch
|
|
69
|
-
"danger_base"
|
|
70
|
+
def meta_info_for_base
|
|
71
|
+
scm.exec("--no-pager log #{EnvironmentManager.danger_base_branch} -n1")
|
|
70
72
|
end
|
|
71
73
|
|
|
72
74
|
def raise_error_for_no_request_source(env, ui)
|
|
@@ -29,6 +29,10 @@ module Danger
|
|
|
29
29
|
#
|
|
30
30
|
# danger.import_dangerfile(gitlab: "ruby-grape/danger")
|
|
31
31
|
#
|
|
32
|
+
# @example Run a Dangerfile from inside a repo branch and path
|
|
33
|
+
#
|
|
34
|
+
# danger.import_dangerfile(github: "ruby-grape/danger", branch: "custom", path: "path/to/Dangerfile")
|
|
35
|
+
#
|
|
32
36
|
# @see danger/danger
|
|
33
37
|
# @tags core, plugins
|
|
34
38
|
|
|
@@ -73,7 +77,7 @@ module Danger
|
|
|
73
77
|
import_dangerfile_from_github(opts)
|
|
74
78
|
elsif opts.kind_of?(Hash)
|
|
75
79
|
if opts.key?(:github) || opts.key?(:gitlab)
|
|
76
|
-
import_dangerfile_from_github(opts[:github] || opts[:gitlab])
|
|
80
|
+
import_dangerfile_from_github(opts[:github] || opts[:gitlab], opts[:branch], opts[:path])
|
|
77
81
|
elsif opts.key?(:path)
|
|
78
82
|
import_dangerfile_from_path(opts[:path])
|
|
79
83
|
elsif opts.key?(:gem)
|
|
@@ -141,12 +145,16 @@ module Danger
|
|
|
141
145
|
#
|
|
142
146
|
# @param [String] slug
|
|
143
147
|
# A slug that represents the repo where the Dangerfile is.
|
|
148
|
+
# @param [String] branch
|
|
149
|
+
# A branch from repo where the Dangerfile is.
|
|
150
|
+
# @param [String] path
|
|
151
|
+
# The path at the repo where Dangerfile is.
|
|
144
152
|
# @return [void]
|
|
145
153
|
#
|
|
146
|
-
def import_dangerfile_from_github(slug)
|
|
154
|
+
def import_dangerfile_from_github(slug, branch = nil, path = nil)
|
|
147
155
|
raise "`import_dangerfile_from_github` requires a string" unless slug.kind_of?(String)
|
|
148
156
|
org, repo = slug.split("/")
|
|
149
|
-
download_url = env.request_source.file_url(organisation: org, repository: repo, branch: "master", path: "Dangerfile")
|
|
157
|
+
download_url = env.request_source.file_url(organisation: org, repository: repo, branch: branch || "master", path: path || "Dangerfile")
|
|
150
158
|
local_path = download(download_url)
|
|
151
159
|
@dangerfile.parse(Pathname.new(local_path))
|
|
152
160
|
end
|
|
@@ -208,7 +216,7 @@ module Danger
|
|
|
208
216
|
def validate_file_contains_plugin!(file)
|
|
209
217
|
content = IO.read(file)
|
|
210
218
|
|
|
211
|
-
if content.scan(/class\s+(?<plugin_class>[\w]+)\s+<\s+Plugin/i).empty?
|
|
219
|
+
if content.scan(/class\s+(?<plugin_class>[\w]+)\s+<\s+((Danger::)?Plugin)/i).empty?
|
|
212
220
|
raise("#{file} doesn't contain any valid danger plugin.")
|
|
213
221
|
end
|
|
214
222
|
end
|
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: 3.
|
|
4
|
+
version: 3.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Orta Therox
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2016-
|
|
12
|
+
date: 2016-10-05 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: claide
|
|
@@ -29,16 +29,16 @@ dependencies:
|
|
|
29
29
|
name: claide-plugins
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
31
31
|
requirements:
|
|
32
|
-
- - "
|
|
32
|
+
- - ">="
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
|
-
version: 0.9.
|
|
34
|
+
version: 0.9.2
|
|
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: 0.9.
|
|
41
|
+
version: 0.9.2
|
|
42
42
|
- !ruby/object:Gem::Dependency
|
|
43
43
|
name: git
|
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -374,7 +374,6 @@ files:
|
|
|
374
374
|
- README.md
|
|
375
375
|
- bin/danger
|
|
376
376
|
- lib/assets/DangerfileTemplate
|
|
377
|
-
- lib/assets/PluginTemplate.rb.template
|
|
378
377
|
- lib/danger.rb
|
|
379
378
|
- lib/danger/ci_source/bitrise.rb
|
|
380
379
|
- lib/danger/ci_source/buildkite.rb
|
|
@@ -393,6 +392,8 @@ files:
|
|
|
393
392
|
- lib/danger/ci_source/travis.rb
|
|
394
393
|
- lib/danger/ci_source/xcode_server.rb
|
|
395
394
|
- lib/danger/clients/rubygems_client.rb
|
|
395
|
+
- lib/danger/commands/dangerfile/gem.rb
|
|
396
|
+
- lib/danger/commands/dangerfile/init.rb
|
|
396
397
|
- lib/danger/commands/init.rb
|
|
397
398
|
- lib/danger/commands/init_helpers/interviewer.rb
|
|
398
399
|
- lib/danger/commands/local.rb
|
|
@@ -410,6 +411,7 @@ files:
|
|
|
410
411
|
- lib/danger/core_ext/string.rb
|
|
411
412
|
- lib/danger/danger_core/dangerfile.rb
|
|
412
413
|
- lib/danger/danger_core/dangerfile_dsl.rb
|
|
414
|
+
- lib/danger/danger_core/dangerfile_generator.rb
|
|
413
415
|
- lib/danger/danger_core/environment_manager.rb
|
|
414
416
|
- lib/danger/danger_core/executor.rb
|
|
415
417
|
- lib/danger/danger_core/messages/markdown.rb
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
module Danger
|
|
2
|
-
class Dangerfile
|
|
3
|
-
module DSL
|
|
4
|
-
class [[CLASS_NAME]] < Plugin
|
|
5
|
-
def run(parameter1: nil, parameter2: nil)
|
|
6
|
-
if (pr_body + pr_title).include?("WIP")
|
|
7
|
-
warn "Pull Request is Work in Progress"
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def self.description
|
|
12
|
-
[
|
|
13
|
-
"Describe what this plugin does",
|
|
14
|
-
"and how the user can use it"
|
|
15
|
-
].join(" ")
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|