git_workflow 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. data/README.markdown +77 -0
  2. data/Rakefile +33 -0
  3. data/bin/git-finish +4 -0
  4. data/bin/git-start +4 -0
  5. data/bin/git-workflow-setup +4 -0
  6. data/features/core_functionality/4049578_need_the_ability_to_start_a_new_branch.feature +15 -0
  7. data/features/core_functionality/4049611_need_the_ability_to_finish_a_specified_branch.feature +17 -0
  8. data/features/core_functionality/4056359_start_with_local_branch_already_present.feature +16 -0
  9. data/features/core_functionality/4056363_finish_the_current_branch.feature +17 -0
  10. data/features/core_functionality/4056389_changes_to_pt_story_name_cause_branch_issues.feature +25 -0
  11. data/features/core_functionality/4135658_control_output_verbosity_using_v_switch.feature +32 -0
  12. data/features/core_functionality/4468313_get_config_value_for_is_producing_an_error_log.feature +43 -0
  13. data/features/extensions/4058326_display_story_description_on_start.feature +14 -0
  14. data/features/git_branching/4135501_allow_branch_start_point_to_be_specified_from_command_line.feature +27 -0
  15. data/features/hooks/4069174_investigate_the_effort_required_to_add_pre_amp_post_hooks.feature +24 -0
  16. data/features/hooks/4199841_need_hooks_for_my_workflow.feature +51 -0
  17. data/features/hooks/4199845_need_hooks_for_sanger_workflow.feature +66 -0
  18. data/features/hooks/4205913_output_from_rake_tests_should_be_seen.feature +19 -0
  19. data/features/hooks/4424828_git_start_is_missing_pt_integration_for_my_hooks.feature +15 -0
  20. data/features/pivotal_tracker_api/4133291_chores_go_straight_to_accepted_not_to_finished.feature +15 -0
  21. data/features/release/4132264_fix_the_libxml_warnings_from_nokogiri.feature +20 -0
  22. data/features/step_definitions/aruba_extensions.rb +4 -0
  23. data/features/step_definitions/configuration_steps.rb +38 -0
  24. data/features/step_definitions/git_steps.rb +102 -0
  25. data/features/step_definitions/misc_steps.rb +3 -0
  26. data/features/step_definitions/pivotal_tracker_steps.rb +43 -0
  27. data/features/step_definitions/project_code_steps.rb +35 -0
  28. data/features/support/aruba.rb +1 -0
  29. data/features/support/hooks/configuration.rb +4 -0
  30. data/features/support/hooks/environment.rb +49 -0
  31. data/features/support/hooks/pivotal_tracker.rb +170 -0
  32. data/lib/git_workflow.rb +5 -0
  33. data/lib/git_workflow/callbacks.rb +16 -0
  34. data/lib/git_workflow/callbacks/pivotal_tracker_support.rb +64 -0
  35. data/lib/git_workflow/callbacks/remote_git_branch_support.rb +9 -0
  36. data/lib/git_workflow/callbacks/styles/debug.rb +58 -0
  37. data/lib/git_workflow/callbacks/styles/default.rb +43 -0
  38. data/lib/git_workflow/callbacks/styles/mine.rb +52 -0
  39. data/lib/git_workflow/callbacks/styles/sanger.rb +48 -0
  40. data/lib/git_workflow/callbacks/test_code_support.rb +29 -0
  41. data/lib/git_workflow/command_line.rb +46 -0
  42. data/lib/git_workflow/commands.rb +4 -0
  43. data/lib/git_workflow/commands/base.rb +31 -0
  44. data/lib/git_workflow/commands/finish.rb +36 -0
  45. data/lib/git_workflow/commands/setup.rb +157 -0
  46. data/lib/git_workflow/commands/start.rb +30 -0
  47. data/lib/git_workflow/configuration.rb +93 -0
  48. data/lib/git_workflow/core_ext.rb +106 -0
  49. data/lib/git_workflow/git.rb +143 -0
  50. data/lib/git_workflow/logger.yaml +27 -0
  51. data/lib/git_workflow/logging.rb +77 -0
  52. data/lib/git_workflow/story.rb +96 -0
  53. data/spec/core_functionality/4056539_support_http_proxy_spec.rb +68 -0
  54. data/spec/core_functionality/4058365_bad_request_on_story_update_spec.rb +13 -0
  55. data/spec/core_functionality/4058394_make_commands_more_verbose_spec.rb +41 -0
  56. data/spec/core_functionality/4058719_error_if_none_of_the_required_configuration_values_are_set_spec.rb +21 -0
  57. data/spec/core_functionality/4058861_git_config_returns_empty_strings_which_should_be_nil_spec.rb +59 -0
  58. data/spec/core_functionality/4172431_add_git_workflow_setup_command_to_make_setup_easier_spec.rb +148 -0
  59. data/spec/core_functionality/4199841_need_callbacks_for_my_workflow_spec.rb +97 -0
  60. data/spec/extensions/4199841_need_callbacks_for_my_workflow_spec.rb +167 -0
  61. data/spec/extensions/4205913_output_from_rake_tests_should_be_seen_spec.rb +34 -0
  62. data/spec/git_branching/4058723_branches_end_in_if_the_last_character_is_invalid_spec.rb +40 -0
  63. data/spec/git_branching/4059824_code_is_not_using_workflow_localbranchconvention_to_decode_branch_names_on_finish_spec.rb +115 -0
  64. data/spec/git_branching/4216087_support_pushing_branches_spec.rb +44 -0
  65. data/spec/hooks/4199845_need_hooks_for_sanger_workflow_spec.rb +27 -0
  66. data/spec/pivotal_tracker_api/4056381_pt_api_token_not_being_passed_in_headers_spec.rb +40 -0
  67. data/spec/pivotal_tracker_api/4056638_library_code_using_localhost_spec.rb +16 -0
  68. data/spec/pivotal_tracker_api/4056661_content_type_header_should_be_text_xml_on_updates_spec.rb +16 -0
  69. data/spec/pivotal_tracker_api/4058718_if_pt_username_is_not_set_use_user_name_spec.rb +26 -0
  70. data/spec/pivotal_tracker_api/4146016_decode_the_xml_encoded_text_of_description_and_name_spec.rb +63 -0
  71. data/spec/shared_examples/configuration.rb +10 -0
  72. data/spec/shared_examples/story.rb +17 -0
  73. data/spec/spec_helper.rb +18 -0
  74. metadata +220 -0
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+
3
+ class GitWorkflow::Configuration
4
+ def self.for_testing
5
+ new
6
+ end
7
+ end
8
+
9
+ describe GitWorkflow::Configuration do
10
+ before(:each) do
11
+ @configuration = described_class.for_testing
12
+ end
13
+
14
+ describe '#remote_branch_convention' do
15
+ it 'uses the workflow.remotebranchconvention setting' do
16
+ @configuration.should_receive(:get_config_value_for!).with('workflow.remotebranchconvention').and_return('${number}_foo')
17
+ @configuration.remote_branch_convention
18
+ end
19
+ end
20
+ end
21
+
22
+ class GitWorkflow::Git::Repository
23
+ def self.for_testing
24
+ new
25
+ end
26
+ end
27
+
28
+ describe GitWorkflow::Git::Repository do
29
+ before(:each) do
30
+ @repository = described_class.for_testing
31
+ end
32
+
33
+ describe '#push' do
34
+ it 'pushes the branch to origin' do
35
+ @repository.should_receive(:execute_command).with('git push origin foo')
36
+ @repository.push('foo')
37
+ end
38
+
39
+ it 'raises BranchError if the push fails' do
40
+ @repository.should_receive(:execute_command).with('git push origin foo').and_raise(Execution::CommandFailure.new('command', :failure))
41
+ lambda { @repository.push('foo') }.should raise_error(GitWorkflow::Git::Repository::BranchError)
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+ require 'git_workflow/callbacks/styles/sanger'
3
+
4
+ describe GitWorkflow::Callbacks::Styles::Sanger::StartBehaviour do
5
+ before(:each) do
6
+ @behaviour = Class.new
7
+ @behaviour.extend(GitWorkflow::Callbacks::Styles::Sanger::StartBehaviour)
8
+ end
9
+
10
+ describe '#start' do
11
+ after(:each) do
12
+ story = mock('Story')
13
+ story.stub(:branch_name).and_return('story_branch')
14
+ @behaviour.should_receive(:checkout_or_create_branch).with('story_branch', @expected_branch_point)
15
+
16
+ @behaviour.start(story, @branch_point)
17
+ end
18
+
19
+ it 'creates the branch from the default start point' do
20
+ @branch_point, @expected_branch_point = nil, 'master'
21
+ end
22
+
23
+ it 'creates the branch from the specified start point' do
24
+ @branch_point = @expected_branch_point = 'foobar'
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+ require 'git_workflow/callbacks/pivotal_tracker_support'
3
+
4
+ module GitWorkflow::Callbacks::PivotalTrackerSupport
5
+ public :pivotal_tracker_service_for
6
+ end
7
+
8
+ describe GitWorkflow::Callbacks::PivotalTrackerSupport do
9
+ before(:each) do
10
+ @command = Class.new.new
11
+ @command.stub!(:debug).with(any_args)
12
+ @command.extend(GitWorkflow::Callbacks::PivotalTrackerSupport)
13
+ end
14
+
15
+ describe '#pivotal_tracker_service_for' do
16
+ it_should_behave_like 'it needs configuration'
17
+
18
+ before(:each) do
19
+ @command.class.instance_eval do
20
+ stub!(:enable_http_proxy_if_present)
21
+ should_receive(:pivotal_tracker_url_for).with('project_id', 'story_id').and_return('url')
22
+ end
23
+
24
+ @expectation = RestClient::Resource.should_receive(:new)
25
+ end
26
+
27
+ after(:each) do
28
+ @expectation.and_return(:ok)
29
+ @command.pivotal_tracker_service_for('story_id').should == :ok
30
+ end
31
+
32
+ it 'uses the correct PT URL' do
33
+ @expectation = @expectation.with('url', anything)
34
+ end
35
+
36
+ it 'uses the users PT API token' do
37
+ @expectation = @expectation.with(anything, hash_including(:headers => hash_including('X-TrackerToken' => 'api_token')))
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+ require 'git_workflow/callbacks/pivotal_tracker_support'
3
+
4
+ describe GitWorkflow::Callbacks::PivotalTrackerSupport::ClassMethods do
5
+ before(:each) do
6
+ @class_methods = Object.new
7
+ @class_methods.extend(GitWorkflow::Callbacks::PivotalTrackerSupport::ClassMethods)
8
+ end
9
+
10
+ describe '.pivotal_tracker_url_for' do
11
+ it 'returns an appropriate real world URL' do
12
+ @class_methods.pivotal_tracker_url_for('project_id', 'story_id').should ==
13
+ 'http://www.pivotaltracker.com/services/v3/projects/project_id/stories/story_id'
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ class GitWorkflow::Story
4
+ public :service!
5
+ end
6
+
7
+ describe GitWorkflow::Story do
8
+ describe '#service!' do
9
+ it_should_behave_like 'it needs a working Story'
10
+
11
+ it 'sets the "Content-Type" header to "text/xml"' do
12
+ @service.should_receive(:put).with(anything, hash_including(:content_type => 'application/xml'))
13
+ @story.service!
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ class GitWorkflow::Configuration
4
+ def self.instance_for_testing
5
+ new
6
+ end
7
+ end
8
+
9
+ describe GitWorkflow::Configuration do
10
+ describe '#username' do
11
+ before(:each) do
12
+ @configuration = described_class.instance_for_testing
13
+ end
14
+
15
+ it 'uses pt.username first' do
16
+ @configuration.should_receive(:get_config_value_for).with('pt.username').and_return('pt.username')
17
+ @configuration.username.should == 'pt.username'
18
+ end
19
+
20
+ it 'falls back to user.name otherwise' do
21
+ @configuration.should_receive(:get_config_value_for).with('pt.username').and_return(nil)
22
+ @configuration.should_receive(:get_config_value_for!).with('user.name').and_return('user.name')
23
+ @configuration.username.should == 'user.name'
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+
3
+ class GitWorkflow::Story
4
+ attr_reader :story_type
5
+ end
6
+
7
+ describe GitWorkflow::Story do
8
+ describe '#load_story!' do
9
+ context 'basic behaviour' do
10
+ before(:each) do
11
+ @elements = {
12
+ :story_type => 'Story Type',
13
+ :name => 'Name',
14
+ :id => 10,
15
+ :description => 'Story Description'
16
+ }
17
+
18
+ xml = Builder::XmlMarkup.new
19
+ xml.story { @elements.each { |e,v| xml.tag!(e, v.to_s) } }
20
+
21
+ service = mock('PT Service')
22
+ service.should_receive(:get).and_return(xml.target)
23
+
24
+ @story = described_class.new(service)
25
+ end
26
+
27
+ it 'properly sets story_id' do
28
+ @story.story_id.should == @elements[ :id ]
29
+ end
30
+
31
+ [ :story_type, :name, :description ].each do |attribute|
32
+ it "properly sets #{ attribute }" do
33
+ @story.send(attribute).should == @elements[ attribute ]
34
+ end
35
+ end
36
+ end
37
+
38
+ context 'encoded characters' do
39
+ before(:each) do
40
+ xml = Builder::XmlMarkup.new
41
+ xml.story {
42
+ xml.story_type('something')
43
+ xml.id('10')
44
+ xml.name('The name & something important')
45
+ xml.description('The description & something important')
46
+ }
47
+
48
+ service = mock('PT Service')
49
+ service.should_receive(:get).and_return(xml.target)
50
+
51
+ @story = described_class.new(service)
52
+ end
53
+
54
+ it 'decodes the name' do
55
+ @story.name.should == 'The name & something important'
56
+ end
57
+
58
+ it 'decodes the description' do
59
+ @story.description.should == 'The description & something important'
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,10 @@
1
+ shared_examples_for 'it needs configuration' do
2
+ before(:each) do
3
+ configuration = mock('configuration')
4
+ configuration.stub!(:username).and_return('username')
5
+ configuration.stub!(:project_id).and_return('project_id')
6
+ configuration.stub!(:api_token).and_return('api_token')
7
+ configuration.stub!(:local_branch_convention).and_return('convention')
8
+ GitWorkflow::Configuration.stub!(:instance).and_return(configuration)
9
+ end
10
+ end
@@ -0,0 +1,17 @@
1
+ shared_examples_for 'it needs a working Story' do
2
+ before(:each) do
3
+ xml = Builder::XmlMarkup.new
4
+ xml.story {
5
+ xml.name('name')
6
+ xml.id('1', :type => 'integer')
7
+ xml.description('description')
8
+ xml.story_type('story_type')
9
+ }
10
+
11
+ @service = mock('service')
12
+ @service.stub!(:get).and_return(xml.target)
13
+
14
+ @story = GitWorkflow::Story.new(@service)
15
+ end
16
+ end
17
+
@@ -0,0 +1,18 @@
1
+ require 'rubygems'
2
+ require 'git_workflow'
3
+
4
+ require 'shared_examples/configuration'
5
+ require 'shared_examples/story'
6
+
7
+ # Disable the logging output during tests
8
+ require 'log4r'
9
+ GitWorkflow::Logging.logger = logger = Log4r::Logger.new('test logger')
10
+ logger.outputters = Log4r::Outputter.stdout
11
+ logger.level = Log4r::FATAL
12
+
13
+ # Just so that the test code doesn't fail
14
+ class GitWorkflow::Commands::Base
15
+ def usage_info(options)
16
+ options.banner = 'Usage: git something'
17
+ end
18
+ end
metadata ADDED
@@ -0,0 +1,220 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: git_workflow
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 5
9
+ version: 0.0.5
10
+ platform: ruby
11
+ authors:
12
+ - Matthew Denner
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-07-01 00:00:00 +01:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rest-client
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 5
30
+ - 1
31
+ version: 1.5.1
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: nokogiri
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 1
43
+ - 4
44
+ - 2
45
+ version: 1.4.2
46
+ type: :runtime
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: builder
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ segments:
56
+ - 2
57
+ - 1
58
+ - 2
59
+ version: 2.1.2
60
+ type: :runtime
61
+ version_requirements: *id003
62
+ - !ruby/object:Gem::Dependency
63
+ name: POpen4
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ segments:
70
+ - 0
71
+ - 1
72
+ - 4
73
+ version: 0.1.4
74
+ type: :runtime
75
+ version_requirements: *id004
76
+ - !ruby/object:Gem::Dependency
77
+ name: highline
78
+ prerelease: false
79
+ requirement: &id005 !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ segments:
84
+ - 1
85
+ - 6
86
+ - 1
87
+ version: 1.6.1
88
+ type: :runtime
89
+ version_requirements: *id005
90
+ - !ruby/object:Gem::Dependency
91
+ name: log4r
92
+ prerelease: false
93
+ requirement: &id006 !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ segments:
98
+ - 1
99
+ - 1
100
+ - 8
101
+ version: 1.1.8
102
+ type: :runtime
103
+ version_requirements: *id006
104
+ description: Extends git with some scripts that support a tie up with Pivotal Tracker
105
+ email: matt.denner@gmail.com
106
+ executables:
107
+ - git-start
108
+ - git-finish
109
+ - git-workflow-setup
110
+ extensions: []
111
+
112
+ extra_rdoc_files:
113
+ - README.markdown
114
+ files:
115
+ - README.markdown
116
+ - Rakefile
117
+ - lib/git_workflow/callbacks/pivotal_tracker_support.rb
118
+ - lib/git_workflow/callbacks/remote_git_branch_support.rb
119
+ - lib/git_workflow/callbacks/styles/debug.rb
120
+ - lib/git_workflow/callbacks/styles/default.rb
121
+ - lib/git_workflow/callbacks/styles/mine.rb
122
+ - lib/git_workflow/callbacks/styles/sanger.rb
123
+ - lib/git_workflow/callbacks/test_code_support.rb
124
+ - lib/git_workflow/callbacks.rb
125
+ - lib/git_workflow/command_line.rb
126
+ - lib/git_workflow/commands/base.rb
127
+ - lib/git_workflow/commands/finish.rb
128
+ - lib/git_workflow/commands/setup.rb
129
+ - lib/git_workflow/commands/start.rb
130
+ - lib/git_workflow/commands.rb
131
+ - lib/git_workflow/configuration.rb
132
+ - lib/git_workflow/core_ext.rb
133
+ - lib/git_workflow/git.rb
134
+ - lib/git_workflow/logging.rb
135
+ - lib/git_workflow/story.rb
136
+ - lib/git_workflow.rb
137
+ - lib/git_workflow/logger.yaml
138
+ - bin/git-finish
139
+ - bin/git-start
140
+ - bin/git-workflow-setup
141
+ has_rdoc: yard
142
+ homepage: http://github.com/mattdenner/git_workflow
143
+ licenses: []
144
+
145
+ post_install_message:
146
+ rdoc_options:
147
+ - --charset=UTF-8
148
+ require_paths:
149
+ - lib
150
+ required_ruby_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ segments:
155
+ - 0
156
+ version: "0"
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ segments:
162
+ - 1
163
+ - 3
164
+ - 6
165
+ version: 1.3.6
166
+ requirements: []
167
+
168
+ rubyforge_project:
169
+ rubygems_version: 1.3.6
170
+ signing_key:
171
+ specification_version: 3
172
+ summary: git extensions to support Pivotal Tracker
173
+ test_files:
174
+ - spec/core_functionality/4056539_support_http_proxy_spec.rb
175
+ - spec/core_functionality/4058365_bad_request_on_story_update_spec.rb
176
+ - spec/core_functionality/4058394_make_commands_more_verbose_spec.rb
177
+ - spec/core_functionality/4058719_error_if_none_of_the_required_configuration_values_are_set_spec.rb
178
+ - spec/core_functionality/4058861_git_config_returns_empty_strings_which_should_be_nil_spec.rb
179
+ - spec/core_functionality/4172431_add_git_workflow_setup_command_to_make_setup_easier_spec.rb
180
+ - spec/core_functionality/4199841_need_callbacks_for_my_workflow_spec.rb
181
+ - spec/extensions/4199841_need_callbacks_for_my_workflow_spec.rb
182
+ - spec/extensions/4205913_output_from_rake_tests_should_be_seen_spec.rb
183
+ - spec/git_branching/4058723_branches_end_in_if_the_last_character_is_invalid_spec.rb
184
+ - spec/git_branching/4059824_code_is_not_using_workflow_localbranchconvention_to_decode_branch_names_on_finish_spec.rb
185
+ - spec/git_branching/4216087_support_pushing_branches_spec.rb
186
+ - spec/hooks/4199845_need_hooks_for_sanger_workflow_spec.rb
187
+ - spec/pivotal_tracker_api/4056381_pt_api_token_not_being_passed_in_headers_spec.rb
188
+ - spec/pivotal_tracker_api/4056638_library_code_using_localhost_spec.rb
189
+ - spec/pivotal_tracker_api/4056661_content_type_header_should_be_text_xml_on_updates_spec.rb
190
+ - spec/pivotal_tracker_api/4058718_if_pt_username_is_not_set_use_user_name_spec.rb
191
+ - spec/pivotal_tracker_api/4146016_decode_the_xml_encoded_text_of_description_and_name_spec.rb
192
+ - spec/shared_examples/configuration.rb
193
+ - spec/shared_examples/story.rb
194
+ - spec/spec_helper.rb
195
+ - features/core_functionality/4049578_need_the_ability_to_start_a_new_branch.feature
196
+ - features/core_functionality/4049611_need_the_ability_to_finish_a_specified_branch.feature
197
+ - features/core_functionality/4056359_start_with_local_branch_already_present.feature
198
+ - features/core_functionality/4056363_finish_the_current_branch.feature
199
+ - features/core_functionality/4056389_changes_to_pt_story_name_cause_branch_issues.feature
200
+ - features/core_functionality/4135658_control_output_verbosity_using_v_switch.feature
201
+ - features/core_functionality/4468313_get_config_value_for_is_producing_an_error_log.feature
202
+ - features/extensions/4058326_display_story_description_on_start.feature
203
+ - features/git_branching/4135501_allow_branch_start_point_to_be_specified_from_command_line.feature
204
+ - features/hooks/4069174_investigate_the_effort_required_to_add_pre_amp_post_hooks.feature
205
+ - features/hooks/4199841_need_hooks_for_my_workflow.feature
206
+ - features/hooks/4199845_need_hooks_for_sanger_workflow.feature
207
+ - features/hooks/4205913_output_from_rake_tests_should_be_seen.feature
208
+ - features/hooks/4424828_git_start_is_missing_pt_integration_for_my_hooks.feature
209
+ - features/pivotal_tracker_api/4133291_chores_go_straight_to_accepted_not_to_finished.feature
210
+ - features/release/4132264_fix_the_libxml_warnings_from_nokogiri.feature
211
+ - features/step_definitions/aruba_extensions.rb
212
+ - features/step_definitions/configuration_steps.rb
213
+ - features/step_definitions/git_steps.rb
214
+ - features/step_definitions/misc_steps.rb
215
+ - features/step_definitions/pivotal_tracker_steps.rb
216
+ - features/step_definitions/project_code_steps.rb
217
+ - features/support/aruba.rb
218
+ - features/support/hooks/configuration.rb
219
+ - features/support/hooks/environment.rb
220
+ - features/support/hooks/pivotal_tracker.rb