crab 0.2.7 → 0.2.8
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.
- data/README.md +0 -1
- data/bin/crab +27 -14
- data/bin/crab-help +10 -2
- data/bin/crab-it +25 -11
- data/bin/crab-it-help +11 -2
- data/bin/crab-it-list +25 -15
- data/bin/crab-iteration +25 -11
- data/bin/crab-iteration-help +11 -2
- data/bin/crab-iteration-list +25 -15
- data/bin/crab-login +24 -13
- data/bin/crab-logout +22 -9
- data/bin/crab-project +42 -32
- data/bin/crab-rel +25 -11
- data/bin/crab-rel-help +12 -3
- data/bin/crab-rel-list +23 -15
- data/bin/crab-release +25 -11
- data/bin/crab-release-help +12 -3
- data/bin/crab-release-list +23 -15
- data/bin/crab-st +24 -11
- data/bin/crab-st-add +18 -10
- data/bin/crab-st-change +53 -39
- data/bin/crab-st-create +18 -10
- data/bin/crab-st-del +19 -11
- data/bin/crab-st-delete +19 -11
- data/bin/crab-st-find +32 -21
- data/bin/crab-st-help +11 -2
- data/bin/crab-st-list +32 -21
- data/bin/crab-st-ls +32 -21
- data/bin/crab-st-move +26 -14
- data/bin/crab-st-mv +26 -14
- data/bin/crab-st-new +18 -10
- data/bin/crab-st-pull +28 -20
- data/bin/crab-st-ren +26 -14
- data/bin/crab-st-rename +26 -14
- data/bin/crab-st-rm +19 -11
- data/bin/crab-st-show +19 -11
- data/bin/crab-st-up +53 -39
- data/bin/crab-st-update +53 -39
- data/bin/crab-story +24 -11
- data/bin/crab-story-add +18 -10
- data/bin/crab-story-change +53 -39
- data/bin/crab-story-create +18 -10
- data/bin/crab-story-del +19 -11
- data/bin/crab-story-delete +19 -11
- data/bin/crab-story-diff +54 -0
- data/bin/crab-story-find +32 -21
- data/bin/crab-story-help +11 -2
- data/bin/crab-story-list +32 -21
- data/bin/crab-story-ls +32 -21
- data/bin/crab-story-move +26 -14
- data/bin/crab-story-mv +26 -14
- data/bin/crab-story-new +18 -10
- data/bin/crab-story-pull +28 -20
- data/bin/crab-story-ren +26 -14
- data/bin/crab-story-rename +26 -14
- data/bin/crab-story-rm +19 -11
- data/bin/crab-story-show +19 -11
- data/bin/crab-story-up +53 -39
- data/bin/crab-story-update +53 -39
- data/bin/crab-tc +24 -11
- data/bin/crab-tc-add +32 -20
- data/bin/crab-tc-change +18 -8
- data/bin/crab-tc-create +32 -20
- data/bin/crab-tc-del +18 -10
- data/bin/crab-tc-delete +18 -10
- data/bin/crab-tc-find +32 -21
- data/bin/crab-tc-help +11 -2
- data/bin/crab-tc-list +32 -21
- data/bin/crab-tc-ls +32 -21
- data/bin/crab-tc-new +32 -20
- data/bin/crab-tc-rm +18 -10
- data/bin/crab-tc-show +28 -15
- data/bin/crab-tc-up +18 -8
- data/bin/crab-tc-update +18 -8
- data/bin/crab-testcase +24 -11
- data/bin/crab-testcase-add +32 -20
- data/bin/crab-testcase-change +18 -8
- data/bin/crab-testcase-create +32 -20
- data/bin/crab-testcase-del +18 -10
- data/bin/crab-testcase-delete +18 -10
- data/bin/crab-testcase-find +32 -21
- data/bin/crab-testcase-help +11 -2
- data/bin/crab-testcase-list +32 -21
- data/bin/crab-testcase-ls +32 -21
- data/bin/crab-testcase-new +32 -20
- data/bin/crab-testcase-rm +18 -10
- data/bin/crab-testcase-show +28 -15
- data/bin/crab-testcase-up +18 -8
- data/bin/crab-testcase-update +18 -8
- data/bin/crab-truncate +1 -0
- data/bin/crab-version +2 -1
- data/features/subcommand-help.feature +1 -0
- data/lib/crab.rb +2 -0
- data/lib/crab/cucumber_to_rally_adapter.rb +48 -0
- data/lib/crab/rally.rb +21 -1
- data/lib/crab/utilities.rb +10 -2
- data/lib/crab/version.rb +1 -1
- metadata +7 -4
data/bin/crab-rel
CHANGED
@@ -1,18 +1,32 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# vim: set ft=ruby:
|
3
|
+
require 'crab'
|
3
4
|
|
4
|
-
|
5
|
+
class Crab::ReleaseMain
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
class << self
|
8
|
+
|
9
|
+
include Crab::Utilities
|
10
|
+
|
11
|
+
def run(args=ARGV)
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
cmd = args.shift # get the subcommand
|
14
|
+
|
15
|
+
case cmd
|
16
|
+
when "-h", "--help", NilClass
|
17
|
+
system "crab-release-help"
|
18
|
+
exit 0
|
19
|
+
end
|
20
|
+
|
21
|
+
unless system("crab-release-#{cmd}", *args)
|
22
|
+
if $?.exitstatus == 127 # bash 'command not found'
|
23
|
+
logger.error "Unknown subcommand \"release #{cmd}\""
|
24
|
+
system "crab-release-help"
|
25
|
+
exit 1
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
17
29
|
end
|
18
30
|
end
|
31
|
+
|
32
|
+
Crab::ReleaseMain.run
|
data/bin/crab-rel-help
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# vim: set ft=ruby:
|
3
|
+
require 'crab'
|
2
4
|
|
3
|
-
|
5
|
+
class Crab::ReleaseHelp
|
6
|
+
|
7
|
+
def self.run
|
8
|
+
puts <<-HELP
|
4
9
|
Usage: crab release <command> [options*]
|
5
10
|
|
6
11
|
Available commands:
|
@@ -9,4 +14,8 @@ Usage: crab release <command> [options*]
|
|
9
14
|
help Show this help text
|
10
15
|
|
11
16
|
--help, -h: Show this message
|
12
|
-
HELP
|
17
|
+
HELP
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
Crab::ReleaseHelp.run
|
data/bin/crab-rel-list
CHANGED
@@ -1,28 +1,36 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# vim: set ft=ruby:
|
3
|
-
|
4
3
|
require 'crab'
|
5
4
|
|
6
|
-
|
5
|
+
class Crab::ReleaseList
|
6
|
+
|
7
|
+
class << self
|
8
|
+
include Crab::Utilities
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
+
def run(args=ARGV)
|
11
|
+
opts = Trollop::options(args) do
|
12
|
+
banner <<-BANNER
|
10
13
|
crab release list: list releases available in the current project
|
11
14
|
|
12
15
|
Usage: crab release list [options*]
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
end
|
16
|
+
BANNER
|
17
|
+
opt :project, "Project to use (required unless set by 'crab project')", :short => "-p", :type => String
|
18
|
+
opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
|
19
|
+
end
|
17
20
|
|
18
|
-
pattern =
|
19
|
-
project_name = valid_project_name(opts)
|
21
|
+
pattern = args.map(&:strip).reject(&:empty?)
|
22
|
+
project_name = valid_project_name(opts)
|
20
23
|
|
21
|
-
Crab::Rally.new(opts[:dry]) do |rally|
|
22
|
-
|
23
|
-
|
24
|
+
Crab::Rally.new(opts[:dry]) do |rally|
|
25
|
+
project = rally.find_project(project_name)
|
26
|
+
Trollop::die "Project #{opts[:project].inspect} not found" if project.nil?
|
24
27
|
|
25
|
-
|
26
|
-
|
28
|
+
rally.find_releases(project).each do |release|
|
29
|
+
puts release.name
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
27
33
|
end
|
28
34
|
end
|
35
|
+
|
36
|
+
Crab::ReleaseList.run
|
data/bin/crab-release
CHANGED
@@ -1,18 +1,32 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# vim: set ft=ruby:
|
3
|
+
require 'crab'
|
3
4
|
|
4
|
-
|
5
|
+
class Crab::ReleaseMain
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
class << self
|
8
|
+
|
9
|
+
include Crab::Utilities
|
10
|
+
|
11
|
+
def run(args=ARGV)
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
cmd = args.shift # get the subcommand
|
14
|
+
|
15
|
+
case cmd
|
16
|
+
when "-h", "--help", NilClass
|
17
|
+
system "crab-release-help"
|
18
|
+
exit 0
|
19
|
+
end
|
20
|
+
|
21
|
+
unless system("crab-release-#{cmd}", *args)
|
22
|
+
if $?.exitstatus == 127 # bash 'command not found'
|
23
|
+
logger.error "Unknown subcommand \"release #{cmd}\""
|
24
|
+
system "crab-release-help"
|
25
|
+
exit 1
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
17
29
|
end
|
18
30
|
end
|
31
|
+
|
32
|
+
Crab::ReleaseMain.run
|
data/bin/crab-release-help
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# vim: set ft=ruby:
|
3
|
+
require 'crab'
|
2
4
|
|
3
|
-
|
5
|
+
class Crab::ReleaseHelp
|
6
|
+
|
7
|
+
def self.run
|
8
|
+
puts <<-HELP
|
4
9
|
Usage: crab release <command> [options*]
|
5
10
|
|
6
11
|
Available commands:
|
@@ -9,4 +14,8 @@ Usage: crab release <command> [options*]
|
|
9
14
|
help Show this help text
|
10
15
|
|
11
16
|
--help, -h: Show this message
|
12
|
-
HELP
|
17
|
+
HELP
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
Crab::ReleaseHelp.run
|
data/bin/crab-release-list
CHANGED
@@ -1,28 +1,36 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# vim: set ft=ruby:
|
3
|
-
|
4
3
|
require 'crab'
|
5
4
|
|
6
|
-
|
5
|
+
class Crab::ReleaseList
|
6
|
+
|
7
|
+
class << self
|
8
|
+
include Crab::Utilities
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
+
def run(args=ARGV)
|
11
|
+
opts = Trollop::options(args) do
|
12
|
+
banner <<-BANNER
|
10
13
|
crab release list: list releases available in the current project
|
11
14
|
|
12
15
|
Usage: crab release list [options*]
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
end
|
16
|
+
BANNER
|
17
|
+
opt :project, "Project to use (required unless set by 'crab project')", :short => "-p", :type => String
|
18
|
+
opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
|
19
|
+
end
|
17
20
|
|
18
|
-
pattern =
|
19
|
-
project_name = valid_project_name(opts)
|
21
|
+
pattern = args.map(&:strip).reject(&:empty?)
|
22
|
+
project_name = valid_project_name(opts)
|
20
23
|
|
21
|
-
Crab::Rally.new(opts[:dry]) do |rally|
|
22
|
-
|
23
|
-
|
24
|
+
Crab::Rally.new(opts[:dry]) do |rally|
|
25
|
+
project = rally.find_project(project_name)
|
26
|
+
Trollop::die "Project #{opts[:project].inspect} not found" if project.nil?
|
24
27
|
|
25
|
-
|
26
|
-
|
28
|
+
rally.find_releases(project).each do |release|
|
29
|
+
puts release.name
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
27
33
|
end
|
28
34
|
end
|
35
|
+
|
36
|
+
Crab::ReleaseList.run
|
data/bin/crab-st
CHANGED
@@ -1,18 +1,31 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# vim: set ft=ruby:
|
3
|
+
require 'crab'
|
3
4
|
|
4
|
-
|
5
|
+
class Crab::StoryMain
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
class << self
|
8
|
+
|
9
|
+
include Crab::Utilities
|
10
|
+
|
11
|
+
def run(args=ARGV)
|
12
|
+
cmd = args.shift # get the subcommand
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
case cmd
|
15
|
+
when "-h", "--help", NilClass
|
16
|
+
system "crab-story-help"
|
17
|
+
exit 0
|
18
|
+
end
|
19
|
+
|
20
|
+
unless system("crab-story-#{cmd}", *args)
|
21
|
+
if $?.exitstatus == 127 # bash 'command not found'
|
22
|
+
logger.error "Unknown subcommand \"story #{cmd}\""
|
23
|
+
system "crab-story-help"
|
24
|
+
exit 1
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
17
28
|
end
|
18
29
|
end
|
30
|
+
|
31
|
+
Crab::StoryMain.run
|
data/bin/crab-st-add
CHANGED
@@ -1,19 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
1
2
|
# vim: set ft=ruby :
|
2
3
|
require 'crab'
|
3
4
|
|
4
|
-
|
5
|
-
|
5
|
+
class Crab::StoryCreate
|
6
|
+
|
7
|
+
def self.run(args=ARGV)
|
8
|
+
opts = Trollop::options(args) do
|
9
|
+
banner <<-BANNER
|
6
10
|
crab story create: create a new story in Rally
|
7
11
|
|
8
12
|
Usage: crab story create <name> [options*]
|
9
|
-
|
10
|
-
|
11
|
-
end
|
13
|
+
BANNER
|
14
|
+
opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
|
15
|
+
end
|
12
16
|
|
13
|
-
name =
|
14
|
-
Trollop::die "Please specify a name for the story" if name.blank?
|
17
|
+
name = args.join(" ")
|
18
|
+
Trollop::die "Please specify a name for the story" if name.blank?
|
15
19
|
|
16
|
-
Crab::Rally.new(opts[:dry]) do |rally|
|
17
|
-
|
18
|
-
|
20
|
+
Crab::Rally.new(opts[:dry]) do |rally|
|
21
|
+
story = rally.create_story :name => name
|
22
|
+
puts "#{story.formatted_id}: #{story.name} (#{story.state})"
|
23
|
+
end
|
24
|
+
end
|
19
25
|
end
|
26
|
+
|
27
|
+
Crab::StoryCreate.run
|
data/bin/crab-st-change
CHANGED
@@ -1,59 +1,73 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
1
2
|
# vim: set ft=ruby :
|
2
3
|
require 'crab'
|
3
4
|
|
4
|
-
|
5
|
+
class Crab::StoryUpdate
|
5
6
|
|
6
|
-
|
7
|
-
|
7
|
+
class << self
|
8
|
+
|
9
|
+
include Crab::Utilities
|
10
|
+
|
11
|
+
def run(args=ARGV)
|
12
|
+
|
13
|
+
cmd_opts = Trollop::options(args) do
|
14
|
+
banner <<-BANNER
|
8
15
|
crab story update: update a story in Rally
|
9
16
|
|
10
17
|
Usage: crab story update <id> [options*]
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
BANNER
|
19
|
+
opt :name, "Name (title)", :type => String, :short => "-n"
|
20
|
+
opt :description, "Description", :type => String, :short => "-d"
|
21
|
+
opt :state, "State (one of: #{Crab::Story::VALID_STATES.join(" ")})", :type => String, :short => "-t"
|
22
|
+
opt :estimate, "Estimate", :type => :int, :short => "-e"
|
23
|
+
opt :iteration, "Iteration", :type => String, :short => "-i"
|
24
|
+
opt :release, "Release", :type => String, :short => "-r"
|
25
|
+
opt :blocked, "Blocked", :short => "-b"
|
26
|
+
opt :unblocked, "Unblocked", :short => "-u"
|
27
|
+
opt :parent, "Parent", :type => String, :short => "-p"
|
28
|
+
opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
|
29
|
+
end
|
22
30
|
|
23
|
-
Trollop::die "No story given" if
|
24
|
-
Trollop::die "Nothing to update. Please provide some options" unless cmd_opts.any? {|k, v| k.to_s =~ /_given$/ }
|
31
|
+
Trollop::die "No story given" if args.empty?
|
32
|
+
Trollop::die "Nothing to update. Please provide some options" unless cmd_opts.any? {|k, v| k.to_s =~ /_given$/ }
|
25
33
|
|
26
|
-
opts = {}
|
27
|
-
opts[:name] = cmd_opts[:name] if cmd_opts[:name_given]
|
28
|
-
opts[:
|
34
|
+
opts = {}
|
35
|
+
opts[:name] = cmd_opts[:name] if cmd_opts[:name_given]
|
36
|
+
opts[:description] = cmd_opts[:description] if cmd_opts[:description_given]
|
37
|
+
opts[:schedule_state] = state_from(cmd_opts[:state]) if cmd_opts[:state_given]
|
29
38
|
|
30
|
-
if cmd_opts[:estimate_given]
|
31
|
-
|
32
|
-
end
|
39
|
+
if cmd_opts[:estimate_given]
|
40
|
+
opts[:plan_estimate] = cmd_opts[:estimate] # nobody is going to remember "Plan Estimate", really
|
41
|
+
end
|
33
42
|
|
34
|
-
opts[:blocked] = cmd_opts[:blocked] if cmd_opts[:blocked_given]
|
35
|
-
opts[:blocked] = !cmd_opts[:unblocked] if cmd_opts[:unblocked_given]
|
43
|
+
opts[:blocked] = cmd_opts[:blocked] if cmd_opts[:blocked_given]
|
44
|
+
opts[:blocked] = !cmd_opts[:unblocked] if cmd_opts[:unblocked_given]
|
36
45
|
|
37
|
-
Crab::Rally.new(opts[:dry]) do |rally|
|
38
|
-
rally.connect
|
46
|
+
Crab::Rally.new(opts[:dry]) do |rally|
|
39
47
|
|
40
|
-
|
48
|
+
story = rally.find_story_with_id args.first
|
41
49
|
|
42
|
-
|
43
|
-
|
44
|
-
|
50
|
+
if cmd_opts[:iteration_given]
|
51
|
+
opts[:iteration] = rally.find_iteration_by_name cmd_opts[:iteration], story.rally_object.project
|
52
|
+
end
|
45
53
|
|
46
|
-
|
47
|
-
|
48
|
-
|
54
|
+
if cmd_opts[:release_given]
|
55
|
+
opts[:release] = rally.find_release_by_name cmd_opts[:release], story.rally_object.project
|
56
|
+
end
|
49
57
|
|
50
|
-
|
51
|
-
|
52
|
-
|
58
|
+
if cmd_opts[:parent_given]
|
59
|
+
opts[:parent] = rally.find_story_with_id(cmd_opts[:parent]).rally_object
|
60
|
+
end
|
61
|
+
|
62
|
+
opts[:name] = story.name if opts[:name].blank?
|
53
63
|
|
54
|
-
|
64
|
+
story.update opts
|
55
65
|
|
56
|
-
|
66
|
+
puts "#{story.formatted_id}: #{story.name} (#{story.state})"
|
67
|
+
end
|
57
68
|
|
58
|
-
|
69
|
+
end
|
70
|
+
end
|
59
71
|
end
|
72
|
+
|
73
|
+
Crab::StoryUpdate.run
|
data/bin/crab-st-create
CHANGED
@@ -1,19 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
1
2
|
# vim: set ft=ruby :
|
2
3
|
require 'crab'
|
3
4
|
|
4
|
-
|
5
|
-
|
5
|
+
class Crab::StoryCreate
|
6
|
+
|
7
|
+
def self.run(args=ARGV)
|
8
|
+
opts = Trollop::options(args) do
|
9
|
+
banner <<-BANNER
|
6
10
|
crab story create: create a new story in Rally
|
7
11
|
|
8
12
|
Usage: crab story create <name> [options*]
|
9
|
-
|
10
|
-
|
11
|
-
end
|
13
|
+
BANNER
|
14
|
+
opt :dry, "Dry-run (don't change anything)", :short => "-D", :default => false
|
15
|
+
end
|
12
16
|
|
13
|
-
name =
|
14
|
-
Trollop::die "Please specify a name for the story" if name.blank?
|
17
|
+
name = args.join(" ")
|
18
|
+
Trollop::die "Please specify a name for the story" if name.blank?
|
15
19
|
|
16
|
-
Crab::Rally.new(opts[:dry]) do |rally|
|
17
|
-
|
18
|
-
|
20
|
+
Crab::Rally.new(opts[:dry]) do |rally|
|
21
|
+
story = rally.create_story :name => name
|
22
|
+
puts "#{story.formatted_id}: #{story.name} (#{story.state})"
|
23
|
+
end
|
24
|
+
end
|
19
25
|
end
|
26
|
+
|
27
|
+
Crab::StoryCreate.run
|