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/lib/crab/rally.rb
CHANGED
@@ -14,20 +14,25 @@ module Crab
|
|
14
14
|
|
15
15
|
def connect
|
16
16
|
get_credentials
|
17
|
+
logger.info "Connecting to Rally as #{@username}..."
|
17
18
|
@rally = ::RallyRestAPI.new :username => @username, :password => @password
|
18
19
|
end
|
19
20
|
|
20
21
|
def get_credentials
|
22
|
+
logger.info "Getting credentials..."
|
21
23
|
@username, @password = File.read(valid_credentials_file).split /\n/
|
22
24
|
end
|
23
25
|
|
24
26
|
def find_story_with_id story_id
|
27
|
+
logger.info "Looking up story with ID #{story_id}"
|
25
28
|
story = @rally.find(:hierarchical_requirement) { equal :formatted_i_d, story_id }.first
|
26
29
|
Trollop::die "Story with ID #{story_id.inspect} not found" if story.nil?
|
27
30
|
Crab::Story.new(story, @dry_run)
|
28
31
|
end
|
29
32
|
|
30
33
|
def find_testcases(project, pattern, opts)
|
34
|
+
logger.info "Looking for testcases matching #{pattern.inspect} with options #{opts.keys.inspect} in #{project.name.inspect}"
|
35
|
+
|
31
36
|
if pattern.join.empty? && opts.empty?
|
32
37
|
return @rally.find_all(:test_case, :fetch => true, :project => project).map {|tc| Crab::TestCase.new(tc, @dry_run) }
|
33
38
|
end
|
@@ -42,10 +47,12 @@ module Crab
|
|
42
47
|
equal :type, opts[:type].capitalize if opts[:type]
|
43
48
|
end
|
44
49
|
|
50
|
+
logger.info "Found #{rally_testcases.size} test cases"
|
45
51
|
rally_testcases.map {|tc| Crab::TestCase.new(tc, @dry_run) }
|
46
52
|
end
|
47
53
|
|
48
54
|
def find_stories(project, pattern, opts)
|
55
|
+
logger.info "Looking for stories matching #{pattern.inspect} with options #{opts.keys.inspect} in #{project.name.inspect}"
|
49
56
|
if pattern.join.empty? && opts.empty?
|
50
57
|
return @rally.find_all(:hierarchical_requirement, :fetch => true, :project => project).map {|s| Crab::Story.new(s, @dry_run) }
|
51
58
|
end
|
@@ -58,34 +65,42 @@ module Crab
|
|
58
65
|
equal :parent, opts[:parent].rally_object if opts[:parent]
|
59
66
|
end
|
60
67
|
|
68
|
+
logger.info "Found #{rally_stories.size} stories"
|
61
69
|
rally_stories.map {|story| Crab::Story.new(story, @dry_run) }
|
62
70
|
end
|
63
71
|
|
64
72
|
def find_project(name)
|
73
|
+
logger.info "Looking for project #{name.inspect}"
|
65
74
|
@rally.find(:project, :fetch => true) { equal :name, name }.first
|
66
75
|
end
|
67
76
|
|
68
77
|
def find_iterations(project)
|
78
|
+
logger.info "Looking for all iterations in #{project.name.inspect}"
|
69
79
|
@rally.find_all(:iteration, :project => project)
|
70
80
|
end
|
71
81
|
|
72
82
|
def find_iteration_by_name(name, project)
|
83
|
+
logger.info "Looking for iteration #{name.inspect} in #{project.name.inspect}"
|
73
84
|
iteration = @rally.find(:iteration, :project => project) { equal :name, name }.first
|
74
85
|
Trollop::die "Unknown iteration \"#{name}\"" if iteration.nil?
|
75
86
|
iteration
|
76
87
|
end
|
77
88
|
|
78
89
|
def find_releases(project)
|
90
|
+
logger.info "Looking for all releases in #{project.name.inspect}"
|
79
91
|
@rally.find_all(:release, :project => project, :fetch => true)
|
80
92
|
end
|
81
93
|
|
82
94
|
def find_release_by_name(name, project)
|
95
|
+
logger.info "Looking for release #{name.inspect} in #{project.name.inspect}"
|
83
96
|
release = @rally.find(:release, :project => project) { equal :name, name }.first
|
84
97
|
Trollop::die "Unknown release \"#{name}\"" if release.nil?
|
85
98
|
release
|
86
99
|
end
|
87
100
|
|
88
101
|
def create_story(opts)
|
102
|
+
logger.info "Creating story with #{opts.keys.inspect}"
|
103
|
+
|
89
104
|
if @dry_run
|
90
105
|
Crab::DryRun::Story.new opts
|
91
106
|
else
|
@@ -97,6 +112,8 @@ module Crab
|
|
97
112
|
story = find_story_with_id story_id
|
98
113
|
opts = {:name => name, :work_product => story.rally_object, :project => story.rally_object.project}.merge(opts)
|
99
114
|
|
115
|
+
logger.info "Creating test case with #{opts.keys.inspect}"
|
116
|
+
|
100
117
|
if @dry_run
|
101
118
|
puts "Would create test case for story with ID #{story_id} with #{opts.inspect}"
|
102
119
|
else
|
@@ -106,7 +123,10 @@ module Crab
|
|
106
123
|
end
|
107
124
|
|
108
125
|
def find_test_case(tc_id)
|
109
|
-
|
126
|
+
logger.info "Looking up test case with ID #{tc_id}"
|
127
|
+
tc = @rally.find(:test_case) { equal :formatted_i_d, tc_id }.first
|
128
|
+
Trollop::die "Test case with ID #{tc_id.inspect} not found" if tc.nil?
|
129
|
+
Crab::TestCase.new(tc, @dry_run)
|
110
130
|
end
|
111
131
|
|
112
132
|
private
|
data/lib/crab/utilities.rb
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
module Crab
|
2
2
|
module Utilities
|
3
3
|
|
4
|
+
def logger
|
5
|
+
$logger ||= Logger.new(STDERR)
|
6
|
+
$logger.formatter = Logger::Formatter.new
|
7
|
+
$logger.progname = 'crab'
|
8
|
+
# TODO - make this a global command-line or config option: $logger.level = Logger::WARN
|
9
|
+
$logger
|
10
|
+
end
|
11
|
+
|
4
12
|
def credentials_file
|
5
13
|
FileUtils.mkdir_p File.expand_path("~/.crab")
|
6
14
|
File.expand_path("~/.crab/credentials")
|
@@ -41,8 +49,8 @@ module Crab
|
|
41
49
|
end
|
42
50
|
|
43
51
|
# TODO REFACTOR testcase related stuff that didn't have a good home
|
44
|
-
def add_or_update_options(banner)
|
45
|
-
Trollop::options do
|
52
|
+
def add_or_update_options(banner, args)
|
53
|
+
Trollop::options(args) do
|
46
54
|
banner banner
|
47
55
|
opt :priority, "Priority (one of: #{Crab::TestCase::PRIORITIES.join(" ")}", :default => "important", :short => '-p'
|
48
56
|
opt :risk, "Risk (one of: #{Crab::TestCase::RISKS.join(" ")})", :default => "medium", :short => '-r'
|
data/lib/crab/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crab
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 8
|
10
|
+
version: 0.2.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Carlos Villela
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-10-
|
18
|
+
date: 2011-10-02 00:00:00 -03:00
|
19
19
|
default_executable: crab
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -191,6 +191,7 @@ executables:
|
|
191
191
|
- crab-story-create
|
192
192
|
- crab-story-del
|
193
193
|
- crab-story-delete
|
194
|
+
- crab-story-diff
|
194
195
|
- crab-story-find
|
195
196
|
- crab-story-help
|
196
197
|
- crab-story-list
|
@@ -290,6 +291,7 @@ files:
|
|
290
291
|
- bin/crab-story-create
|
291
292
|
- bin/crab-story-del
|
292
293
|
- bin/crab-story-delete
|
294
|
+
- bin/crab-story-diff
|
293
295
|
- bin/crab-story-find
|
294
296
|
- bin/crab-story-help
|
295
297
|
- bin/crab-story-list
|
@@ -351,6 +353,7 @@ files:
|
|
351
353
|
- lib/crab.rb
|
352
354
|
- lib/crab/cucumber_feature.rb
|
353
355
|
- lib/crab/cucumber_scenario.rb
|
356
|
+
- lib/crab/cucumber_to_rally_adapter.rb
|
354
357
|
- lib/crab/rally.rb
|
355
358
|
- lib/crab/story.rb
|
356
359
|
- lib/crab/testcase.rb
|