pt-flow 0.5.3 → 0.6.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.
data/README.md CHANGED
@@ -13,7 +13,6 @@ Install the gem:
13
13
  - flow start
14
14
  - flow finish
15
15
  - flow review
16
- - flow deliver
17
16
 
18
17
  ### Committer
19
18
 
@@ -21,6 +20,8 @@ Install the gem:
21
20
  $ flow start
22
21
  # shows lists of tasks - choosing one starts/assigns the task on pt and checks out a new branch.
23
22
 
23
+ # Make sure your branch is up-to-date with release branch
24
+
24
25
  $ flow finish
25
26
  # pushes branch, finishes task on pt, and opens github new pull request page.
26
27
  # follow with cap staging deploy:migrations BRANCH=master-325325 etc...
@@ -30,9 +31,11 @@ $ flow finish
30
31
 
31
32
  ```bash
32
33
  $ flow review
33
- # checks out branch and opens github page
34
- # run tests, review code etc...
34
+ # selecting a pull request opens github page, comment :+1: to approve
35
+ ```
36
+
37
+ ### Committer
35
38
 
36
- $ flow deliver
37
- # merges and pushes target branch, deletes local/remote branch, and delivers task on pt
38
- # follow with cap production deploy:migrations etc...
39
+ ```bash
40
+ # pressing merge button on github delivers task on pivotal tracker
41
+ ```
data/lib/pt-flow.rb CHANGED
@@ -1,7 +1,8 @@
1
1
  require "pt"
2
2
  require "pt-flow/version"
3
- require "pt-flow/repo"
3
+ require "pt-flow/branch"
4
4
  require "pt-flow/pull_requests_table"
5
+ require "pt-flow/repo"
5
6
  require "pt-flow/ui"
6
7
 
7
8
  module PT
@@ -0,0 +1,33 @@
1
+ module PT::Flow
2
+ class Branch
3
+ require 'i18n'
4
+ require 'active_support/core_ext/string/inflections'
5
+
6
+ attr_accessor :name
7
+
8
+ def self.current
9
+ new(`git rev-parse --abbrev-ref HEAD`.strip)
10
+ end
11
+
12
+ def self.from_task(task)
13
+ new("#{current.target}.#{task.name.parameterize[0..60]}.#{task.id}")
14
+ end
15
+
16
+ def initialize(name)
17
+ @name = name
18
+ end
19
+
20
+ def target
21
+ name.split('.').first
22
+ end
23
+
24
+ def task_id
25
+ name[/\d+$/] || ''
26
+ end
27
+
28
+ def to_s
29
+ name
30
+ end
31
+
32
+ end
33
+ end
data/lib/pt-flow/ui.rb CHANGED
@@ -7,64 +7,67 @@ module PT::Flow
7
7
  end
8
8
 
9
9
  def start
10
- tasks = @client.get_work(@project)
11
- table = PT::TasksTable.new(tasks)
12
- title("Available tasks in #{project_to_s}")
13
- task = select("Please select a task to start working on", table)
10
+ if @params[0]
11
+ task = create
12
+ else
13
+ table = PT::TasksTable.new(@client.get_work(@project))
14
+ title("Available tasks in #{project_to_s}")
15
+ task = select("Please select a task to start working on", table)
16
+ end
14
17
  estimate_task(task, ask("How many points do you estimate for it? (#{@project.point_scale})")) if task.estimate && task.estimate < 0
15
18
  assign_task(task, @local_config[:user_name])
16
19
  start_task(task)
17
- run("git checkout -b #{current_target}-#{task.id}")
20
+ run("git checkout -b #{Branch.from_task(task)}")
18
21
  end
19
22
 
20
23
  def finish
21
- run("git push origin #{current_branch}")
22
- task = PivotalTracker::Story.find(current_task_id, @project.id)
23
- title = task.name.gsub('"',"'") + " [##{task.id}]"
24
- run("hub pull-request -b #{current_target} -h #{repo.user}:#{current_branch} \"#{title}\"")
25
- run("git checkout #{current_target}")
24
+ run("git push origin #{branch}")
25
+ task = PivotalTracker::Story.find(branch.task_id, @project.id)
26
+ title = task.name.gsub('"',"'") + " [Delivers ##{task.id}]"
27
+
28
+ run("hub pull-request -b #{branch.target} -h #{repo.user}:#{branch} \"#{title}\"")
29
+ run("git checkout #{branch.target}")
26
30
  finish_task(task)
27
31
  end
28
32
 
29
- def deliver
30
- run('git fetch')
31
- run("git checkout #{current_target}")
32
- run("git pull --rebase origin #{current_target}")
33
- run("git merge #{current_branch}")
34
- run("git push origin #{current_target}")
35
- run("git push origin :#{current_branch}")
36
- run("git branch -d #{current_branch}")
37
- task = PivotalTracker::Story.find(current_task_id, @project.id)
38
- deliver_task(task)
33
+ def create
34
+ name = @params[0] || ask("Name for the new story:")
35
+ types = { 'c' => 'chore', 'b' => 'bug', 'f' => 'feature' }
36
+ task_type = types[ask('Type? (c)hore, (b)ug, (f)eature')]
37
+ task = @project.stories.create(name: name, requested_by: @local_config[:user_name], story_type: task_type)
38
+ if task.errors.any?
39
+ error(task.errors.errors)
40
+ else
41
+ congrats("#{task_type} created: #{task.url}")
42
+ task
43
+ end
39
44
  end
40
45
 
41
46
  def review
42
47
  table = PullRequestsTable.new(repo.pull_requests)
43
48
  pull_request = select("Please select a pull request to review", table)
44
- run("git fetch")
45
- run("git checkout #{pull_request.head.ref}")
46
49
  run("open #{pull_request.html_url}/files")
47
50
  rescue Github::Error::Unauthorized => e
48
51
  error("Error from github: #{e.message}")
49
52
  end
50
53
 
51
54
  def cleanup
52
- title("Cleaning merged story branches for [#{current_target}]")
55
+ title("Cleaning merged story branches for [#{branch.target}]")
53
56
 
54
57
  # Update our list of remotes
55
58
  run("git fetch")
56
59
  run("git remote prune origin")
57
60
 
58
61
  # Only clean out merged story branches for current topic
59
- filter = "#{current_target}-[0-9]*$"
62
+ filter = "#{branch.target}.\\+[0-9]\\+$"
60
63
 
61
64
  # Remove local branches fully merged with origin/current_target
62
- run("git branch --merged origin/#{current_target} | grep '#{filter}' | xargs git branch -D")
65
+ run("git branch --merged origin/#{branch.target} | grep '#{filter}' | xargs git branch -D")
63
66
 
64
67
  # Remove remote branches fully merged with origin/master
65
- run("git branch -r --merged origin/#{current_target} | sed 's/ *origin\\///' | grep '#{filter}' | xargs -I% git push origin :%")
68
+ run("git branch -r --merged origin/#{branch.target} | sed 's/ *origin\\///' | grep '#{filter}' | xargs -I% git push origin :%")
66
69
 
67
- congrats("Deleted branches merged with [#{current_target}]")
70
+ congrats("Deleted branches merged with [#{branch.target}]")
68
71
  end
69
72
 
70
73
  def help
@@ -76,14 +79,18 @@ module PT::Flow
76
79
  puts("flow start # start working on a story")
77
80
  puts("flow finish # finish a story and create a pull request")
78
81
  puts("flow review # review a pull request")
79
- puts("flow deliver # merge current branch and clean up")
82
+ #puts("flow deliver # merge current branch and clean up")
80
83
  puts("flow cleanup # deleted merged local/remote branches and prune origin")
81
84
  end
82
85
 
83
86
  private
84
87
 
88
+ def branch
89
+ @branch ||= Branch.current
90
+ end
91
+
85
92
  def repo
86
- Repo.new
93
+ @repo ||= Repo.new
87
94
  end
88
95
 
89
96
  def assign_task(task, owner)
@@ -95,18 +102,6 @@ module PT::Flow
95
102
  end
96
103
  end
97
104
 
98
- def current_branch
99
- @current_branch ||= `git rev-parse --abbrev-ref HEAD`.strip
100
- end
101
-
102
- def current_target
103
- current_branch.sub(current_task_id, '').chomp('-')
104
- end
105
-
106
- def current_task_id
107
- current_branch[/\d+$/] || ''
108
- end
109
-
110
105
  def run(command)
111
106
  title(command)
112
107
  error("Error running: #{command}") unless system(command)
@@ -1,5 +1,5 @@
1
1
  module PT
2
2
  module Flow
3
- VERSION = "0.5.3"
3
+ VERSION = "0.6.0"
4
4
  end
5
5
  end
data/pt-flow.gemspec CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |gem|
18
18
  gem.add_dependency 'pt'
19
19
  gem.add_dependency 'hub'
20
20
  gem.add_dependency 'github_api'
21
+ gem.add_dependency 'active_support'
22
+ gem.add_dependency 'i18n'
21
23
 
22
24
  gem.add_development_dependency 'rspec', '~> 2.9'
23
25
  gem.add_development_dependency 'webmock'
@@ -2,9 +2,8 @@
2
2
  <story>
3
3
  <id type="integer">4459994</id>
4
4
  <project_id type="integer">102622</project_id>
5
- <story_type>feature</story_type>
5
+ <story_type>chore</story_type>
6
6
  <url>http://www.pivotaltracker.com/story/show/4459994</url>
7
- <estimate type="integer">-1</estimate>
8
7
  <current_state>unstarted</current_state>
9
8
  <description>Generic description</description>
10
9
  <name>Unestimated Feature</name>
@@ -22,7 +22,7 @@
22
22
  <estimate type="integer">-1</estimate>
23
23
  <current_state>unstarted</current_state>
24
24
  <description>Generic description</description>
25
- <name>Unestimated Feature</name>
25
+ <name>As a user I should see an Unestimated Feature with a fairly long name</name>
26
26
  <requested_by>Jon Mischo</requested_by>
27
27
  <created_at type="datetime">2010/07/27 21:51:01 UTC</created_at>
28
28
  <updated_at type="datetime">2010/07/27 22:20:46 UTC</updated_at>
@@ -7,7 +7,7 @@
7
7
  <estimate type="integer">-1</estimate>
8
8
  <current_state>unstarted</current_state>
9
9
  <description>Generic description</description>
10
- <name>It's an Unestimated Feature</name>
10
+ <name>As a user I should see an Unestimated Feature with a fairly long name</name>
11
11
  <requested_by>Jon Mischo</requested_by>
12
12
  <created_at type="datetime">2010/07/27 21:51:01 UTC</created_at>
13
13
  <updated_at type="datetime">2010/07/27 22:20:46 UTC</updated_at>
@@ -9,6 +9,7 @@ describe PT::Flow::UI do
9
9
  HighLine.stub(new: prompt)
10
10
  stub_request(:get, /projects$/).to_return(body: fixture_file('projects.xml'))
11
11
  stub_request(:get, /stories\?/).to_return(body: fixture_file('stories.xml'))
12
+ stub_request(:post, /stories$/).to_return(body: fixture_file('chore.xml'))
12
13
  stub_request(:any, /stories\/\d+/).to_return(body: fixture_file('story.xml'))
13
14
  end
14
15
 
@@ -25,7 +26,7 @@ describe PT::Flow::UI do
25
26
  WebMock.should have_requested(:put, "#{endpoint}/projects/102622/stories/4459994").with(body: /<owned_by>Jon Mischo<\/owned_by>/)
26
27
  WebMock.should have_requested(:put, "#{endpoint}/projects/102622/stories/4459994").with(body: /<current_state>started<\/current_state>/)
27
28
 
28
- current_branch.should == 'master-4459994'
29
+ current_branch.should == 'master.as-a-user-i-should-see-an-unestimated-feature-with-a-fairly-l.4459994'
29
30
  end
30
31
  end
31
32
 
@@ -42,17 +43,29 @@ describe PT::Flow::UI do
42
43
  it "creates an appropriately namespaced branch" do
43
44
  prompt.should_receive(:ask).and_return('3')
44
45
  PT::Flow::UI.new %w{ start }
45
- current_branch.should == 'new_feature-4460038'
46
+ current_branch.should == 'new_feature.this-is-for-comments.4460038'
46
47
  end
47
48
  end
48
49
 
49
50
  context 'when run from an existing story branch' do
50
- before { system('git checkout -B new_feature-12345') }
51
+ before { system('git checkout -B new_feature.as-a-user-i-should.4459994') }
51
52
 
52
53
  it "creates a branch within the same namespace" do
53
54
  prompt.should_receive(:ask).and_return('3')
54
55
  PT::Flow::UI.new %w{ start }
55
- current_branch.should == 'new_feature-4460038'
56
+ current_branch.should == 'new_feature.this-is-for-comments.4460038'
57
+ end
58
+ end
59
+
60
+ context 'given a string' do
61
+ it "creates and starts a new story with that name" do
62
+ prompt.should_receive(:ask).with("Type? (c)hore, (b)ug, (f)eature".bold).and_return('c')
63
+
64
+ PT::Flow::UI.new ['start','a new feature']
65
+
66
+ WebMock.should have_requested(:post, "#{endpoint}/projects/102622/stories").with(body: /<name>a new feature<\/name>/).with(body: /<story_type>chore<\/story_type>/).with(body: /<requested_by>Jon Mischo<\/requested_by>/)
67
+ WebMock.should have_requested(:put, "#{endpoint}/projects/102622/stories/4459994").with(body: /<owned_by>Jon Mischo<\/owned_by>/)
68
+ WebMock.should have_requested(:put, "#{endpoint}/projects/102622/stories/4459994").with(body: /<current_state>started<\/current_state>/)
56
69
  end
57
70
  end
58
71
  end
@@ -60,36 +73,16 @@ describe PT::Flow::UI do
60
73
  describe '#finish' do
61
74
  before do
62
75
  #TODO: Stubbed endpoint ALWAYS returns story 4459994, need a way to check it is actually getting the right id from the branch
63
- system('git checkout -B new_feature-4459994')
76
+ system('git checkout -B new_feature.as-a-user-i-should.4459994')
64
77
  system('git remote add origin git@github.com:cookpad/pt-flow.git')
65
78
  end
66
79
 
67
80
  it "pushes the current branch to origin, flags the story as finished, and opens a github pull request" do
68
- PT::Flow::UI.any_instance.should_receive(:run).with('git push origin new_feature-4459994')
69
- PT::Flow::UI.any_instance.should_receive(:run).with("hub pull-request -b new_feature -h cookpad:new_feature-4459994 \"It's an Unestimated Feature [#4459994]\"")
81
+ PT::Flow::UI.any_instance.should_receive(:run).with('git push origin new_feature.as-a-user-i-should.4459994')
82
+ PT::Flow::UI.any_instance.should_receive(:run).with("hub pull-request -b new_feature -h cookpad:new_feature.as-a-user-i-should.4459994 \"As a user I should see an Unestimated Feature with a fairly long name [Delivers #4459994]\"")
70
83
  PT::Flow::UI.any_instance.should_receive(:run).with('git checkout new_feature')
71
84
  PT::Flow::UI.new %w{ finish }
72
85
  WebMock.should have_requested(:put, "#{endpoint}/projects/102622/stories/4459994").with(body: /<current_state>finished<\/current_state>/)
73
86
  end
74
87
  end
75
-
76
- describe '#deliver' do
77
- before do
78
- #TODO: Stubbed endpoint ALWAYS returns story 4459994, need a way to check it is actually getting the right id from the branch
79
- system('git checkout -B new_feature-4459994')
80
- end
81
-
82
- it "pushes the current branch to origin, flags the story as finished, and opens a github pull request" do
83
- PT::Flow::UI.any_instance.should_receive(:run).with('git fetch')
84
- PT::Flow::UI.any_instance.should_receive(:run).with('git checkout new_feature')
85
- PT::Flow::UI.any_instance.should_receive(:run).with('git pull --rebase origin new_feature')
86
- PT::Flow::UI.any_instance.should_receive(:run).with('git merge new_feature-4459994')
87
- PT::Flow::UI.any_instance.should_receive(:run).with('git push origin new_feature')
88
- PT::Flow::UI.any_instance.should_receive(:run).with('git push origin :new_feature-4459994')
89
- PT::Flow::UI.any_instance.should_receive(:run).with('git branch -d new_feature-4459994')
90
-
91
- PT::Flow::UI.new %w{ deliver }
92
- WebMock.should have_requested(:put, "#{endpoint}/projects/102622/stories/4459994").with(body: /<current_state>delivered<\/current_state>/)
93
- end
94
- end
95
88
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pt-flow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-19 00:00:00.000000000 Z
12
+ date: 2012-10-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pt
@@ -59,6 +59,38 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: active_support
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: i18n
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
62
94
  - !ruby/object:Gem::Dependency
63
95
  name: rspec
64
96
  requirement: !ruby/object:Gem::Requirement
@@ -139,22 +171,17 @@ files:
139
171
  - Rakefile
140
172
  - bin/flow
141
173
  - lib/pt-flow.rb
174
+ - lib/pt-flow/branch.rb
142
175
  - lib/pt-flow/pull_requests_table.rb
143
176
  - lib/pt-flow/repo.rb
144
177
  - lib/pt-flow/ui.rb
145
178
  - lib/pt-flow/version.rb
146
179
  - pt-flow.gemspec
147
- - spec/fixtures/features.xml
180
+ - spec/fixtures/chore.xml
148
181
  - spec/fixtures/global_config.yml
149
182
  - spec/fixtures/local_config.yml
150
- - spec/fixtures/memberships.xml
151
- - spec/fixtures/project.xml
152
183
  - spec/fixtures/projects.xml
153
184
  - spec/fixtures/stories.xml
154
- - spec/fixtures/story-4459994.xml
155
- - spec/fixtures/story-4460038.xml
156
- - spec/fixtures/story-4460598.xml
157
- - spec/fixtures/story-4473735.xml
158
185
  - spec/fixtures/story.xml
159
186
  - spec/lib/pt-flow/ui_spec.rb
160
187
  - spec/spec_helper.rb
@@ -176,7 +203,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
176
203
  version: '0'
177
204
  segments:
178
205
  - 0
179
- hash: 1501218618260700308
206
+ hash: 1622382141531473024
180
207
  required_rubygems_version: !ruby/object:Gem::Requirement
181
208
  none: false
182
209
  requirements:
@@ -185,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
212
  version: '0'
186
213
  segments:
187
214
  - 0
188
- hash: 1501218618260700308
215
+ hash: 1622382141531473024
189
216
  requirements: []
190
217
  rubyforge_project:
191
218
  rubygems_version: 1.8.23
@@ -193,17 +220,11 @@ signing_key:
193
220
  specification_version: 3
194
221
  summary: Some extra methods for the pt gem to use in our dev flow.
195
222
  test_files:
196
- - spec/fixtures/features.xml
223
+ - spec/fixtures/chore.xml
197
224
  - spec/fixtures/global_config.yml
198
225
  - spec/fixtures/local_config.yml
199
- - spec/fixtures/memberships.xml
200
- - spec/fixtures/project.xml
201
226
  - spec/fixtures/projects.xml
202
227
  - spec/fixtures/stories.xml
203
- - spec/fixtures/story-4459994.xml
204
- - spec/fixtures/story-4460038.xml
205
- - spec/fixtures/story-4460598.xml
206
- - spec/fixtures/story-4473735.xml
207
228
  - spec/fixtures/story.xml
208
229
  - spec/lib/pt-flow/ui_spec.rb
209
230
  - spec/spec_helper.rb
@@ -1,293 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <stories type="array" count="14" limit="20" total="14">
3
- <story>
4
- <id type="integer">4460116</id>
5
- <project_id type="integer">102622</project_id>
6
- <story_type>feature</story_type>
7
- <url>http://www.pivotaltracker.com/story/show/4460116</url>
8
- <estimate type="integer">0</estimate>
9
- <current_state>accepted</current_state>
10
- <description>This is a story that's finished.</description>
11
- <name>Old, accepted story</name>
12
- <requested_by>Jon Mischo</requested_by>
13
- <created_at type="datetime">2010/07/27 21:58:28 UTC</created_at>
14
- <updated_at type="datetime">2010/07/27 22:21:17 UTC</updated_at>
15
- <accepted_at type="datetime">2010/07/18 17:00:00 UTC</accepted_at>
16
- </story>
17
- <story>
18
- <id type="integer">4459994</id>
19
- <project_id type="integer">102622</project_id>
20
- <story_type>feature</story_type>
21
- <url>http://www.pivotaltracker.com/story/show/4459994</url>
22
- <estimate type="integer">2</estimate>
23
- <current_state>unstarted</current_state>
24
- <description>Generic description</description>
25
- <name>Tasks Test</name>
26
- <requested_by>Jon Mischo</requested_by>
27
- <created_at type="datetime">2010/07/27 21:51:01 UTC</created_at>
28
- <updated_at type="datetime">2010/07/27 22:20:46 UTC</updated_at>
29
- <tasks type="array">
30
- <task>
31
- <id type="integer">468113</id>
32
- <description>Task number 1</description>
33
- <position>1</position>
34
- <complete>false</complete>
35
- <created_at type="datetime">2010/07/27 21:51:28 UTC</created_at>
36
- </task>
37
- <task>
38
- <id type="integer">468114</id>
39
- <description>Number 2 Task</description>
40
- <position>2</position>
41
- <complete>false</complete>
42
- <created_at type="datetime">2010/07/27 21:51:32 UTC</created_at>
43
- </task>
44
- <task>
45
- <id type="integer">468117</id>
46
- <description>3rd task is a charm</description>
47
- <position>3</position>
48
- <complete>true</complete>
49
- <created_at type="datetime">2010/07/27 21:51:42 UTC</created_at>
50
- </task>
51
- </tasks>
52
- </story>
53
- <story>
54
- <id type="integer">4460038</id>
55
- <project_id type="integer">102622</project_id>
56
- <story_type>feature</story_type>
57
- <url>http://www.pivotaltracker.com/story/show/4460038</url>
58
- <estimate type="integer">1</estimate>
59
- <current_state>unstarted</current_state>
60
- <description>This is a story that has comments.</description>
61
- <name>This is for comments</name>
62
- <requested_by>Jon Mischo</requested_by>
63
- <created_at type="datetime">2010/07/27 21:53:16 UTC</created_at>
64
- <updated_at type="datetime">2010/07/27 22:20:48 UTC</updated_at>
65
- <notes type="array">
66
- <note>
67
- <id type="integer">2111593</id>
68
- <text>This is a comment...whee!</text>
69
- <author>Jon</author>
70
- <noted_at type="datetime">2010/07/27 22:15:48 UTC</noted_at>
71
- </note>
72
- <note>
73
- <id type="integer">2128955</id>
74
- <text>Test note</text>
75
- <author>Test Suite Access</author>
76
- <noted_at type="datetime">2010/07/29 18:15:09 UTC</noted_at>
77
- </note>
78
- <note>
79
- <id type="integer">2128959</id>
80
- <text>Test note</text>
81
- <author>Test Suite Access</author>
82
- <noted_at type="datetime">2010/07/29 18:16:12 UTC</noted_at>
83
- </note>
84
- <note>
85
- <id type="integer">2129077</id>
86
- <text>Test note</text>
87
- <author>Test Suite Access</author>
88
- <noted_at type="datetime">2010/07/29 18:22:26 UTC</noted_at>
89
- </note>
90
- <note>
91
- <id type="integer">2129374</id>
92
- <text>Test note</text>
93
- <author>Test Suite Access</author>
94
- <noted_at type="datetime">2010/07/29 18:55:44 UTC</noted_at>
95
- </note>
96
- </notes>
97
- </story>
98
- <story>
99
- <id type="integer">4460598</id>
100
- <project_id type="integer">102622</project_id>
101
- <story_type>feature</story_type>
102
- <url>http://www.pivotaltracker.com/story/show/4460598</url>
103
- <estimate type="integer">3</estimate>
104
- <current_state>unstarted</current_state>
105
- <description>This story has attachments.</description>
106
- <name>Story with attachments</name>
107
- <requested_by>Jon Mischo</requested_by>
108
- <created_at type="datetime">2010/07/27 22:33:13 UTC</created_at>
109
- <updated_at type="datetime">2010/07/27 22:33:28 UTC</updated_at>
110
- <attachments type="array">
111
- <attachment>
112
- <id type="integer">491576</id>
113
- <filename>LICENSE</filename>
114
- <description></description>
115
- <uploaded_by>Jon</uploaded_by>
116
- <uploaded_at type="datetime">2010/07/27 22:34:23 UTC</uploaded_at>
117
- <url>http://www.pivotaltracker.com/resource/download/491576</url>
118
- </attachment>
119
- <attachment>
120
- <id type="integer">493019</id>
121
- <filename>README.rdoc</filename>
122
- <description>README file from api gem</description>
123
- <uploaded_by>Jon</uploaded_by>
124
- <uploaded_at type="datetime">2010/07/28 15:16:18 UTC</uploaded_at>
125
- <url>http://www.pivotaltracker.com/resource/download/493019</url>
126
- </attachment>
127
- </attachments>
128
- </story>
129
- <story>
130
- <id type="integer">4473735</id>
131
- <project_id type="integer">102622</project_id>
132
- <story_type>feature</story_type>
133
- <url>http://www.pivotaltracker.com/story/show/4473735</url>
134
- <estimate type="integer">1</estimate>
135
- <current_state>unstarted</current_state>
136
- <description></description>
137
- <name>Attachment upload test story</name>
138
- <requested_by>Jon</requested_by>
139
- <created_at type="datetime">2010/07/28 18:17:33 UTC</created_at>
140
- <updated_at type="datetime">2010/07/28 18:17:44 UTC</updated_at>
141
- <attachments type="array">
142
- <attachment>
143
- <id type="integer">495851</id>
144
- <filename>LICENSE</filename>
145
- <description></description>
146
- <uploaded_by>Test Suite Access</uploaded_by>
147
- <uploaded_at type="datetime">2010/07/29 19:07:19 UTC</uploaded_at>
148
- <url>http://www.pivotaltracker.com/resource/download/495851</url>
149
- </attachment>
150
- <attachment>
151
- <id type="integer">495856</id>
152
- <filename>LICENSE</filename>
153
- <description></description>
154
- <uploaded_by>Test Suite Access</uploaded_by>
155
- <uploaded_at type="datetime">2010/07/29 19:09:27 UTC</uploaded_at>
156
- <url>http://www.pivotaltracker.com/resource/download/495856</url>
157
- </attachment>
158
- <attachment>
159
- <id type="integer">495858</id>
160
- <filename>LICENSE</filename>
161
- <description></description>
162
- <uploaded_by>Test Suite Access</uploaded_by>
163
- <uploaded_at type="datetime">2010/07/29 19:11:44 UTC</uploaded_at>
164
- <url>http://www.pivotaltracker.com/resource/download/495858</url>
165
- </attachment>
166
- <attachment>
167
- <id type="integer">495863</id>
168
- <filename>LICENSE</filename>
169
- <description></description>
170
- <uploaded_by>Test Suite Access</uploaded_by>
171
- <uploaded_at type="datetime">2010/07/29 19:13:06 UTC</uploaded_at>
172
- <url>http://www.pivotaltracker.com/resource/download/495863</url>
173
- </attachment>
174
- </attachments>
175
- </story>
176
- <story>
177
- <id type="integer">4490874</id>
178
- <project_id type="integer">102622</project_id>
179
- <story_type>feature</story_type>
180
- <url>http://www.pivotaltracker.com/story/show/4490874</url>
181
- <estimate type="integer">0</estimate>
182
- <current_state>unstarted</current_state>
183
- <description></description>
184
- <name>Movable Story</name>
185
- <requested_by>Test Suite Access</requested_by>
186
- <created_at type="datetime">2010/07/29 18:12:31 UTC</created_at>
187
- <updated_at type="datetime">2010/07/29 19:13:12 UTC</updated_at>
188
- </story>
189
- <story>
190
- <id type="integer">4492080</id>
191
- <project_id type="integer">102622</project_id>
192
- <story_type>feature</story_type>
193
- <url>http://www.pivotaltracker.com/story/show/4492080</url>
194
- <estimate type="integer">-1</estimate>
195
- <current_state>unscheduled</current_state>
196
- <description></description>
197
- <name>Create stuff</name>
198
- <requested_by>Test Suite Access</requested_by>
199
- <created_at type="datetime">2010/07/29 19:13:04 UTC</created_at>
200
- <updated_at type="datetime">2010/07/29 19:13:04 UTC</updated_at>
201
- </story>
202
- <story>
203
- <id type="integer">4492078</id>
204
- <project_id type="integer">102622</project_id>
205
- <story_type>feature</story_type>
206
- <url>http://www.pivotaltracker.com/story/show/4492078</url>
207
- <estimate type="integer">-1</estimate>
208
- <current_state>unscheduled</current_state>
209
- <description></description>
210
- <name>Create stuff</name>
211
- <requested_by>Test Suite Access</requested_by>
212
- <created_at type="datetime">2010/07/29 19:13:01 UTC</created_at>
213
- <updated_at type="datetime">2010/07/29 19:13:01 UTC</updated_at>
214
- </story>
215
- <story>
216
- <id type="integer">4492060</id>
217
- <project_id type="integer">102622</project_id>
218
- <story_type>feature</story_type>
219
- <url>http://www.pivotaltracker.com/story/show/4492060</url>
220
- <estimate type="integer">-1</estimate>
221
- <current_state>unscheduled</current_state>
222
- <description></description>
223
- <name>Create stuff</name>
224
- <requested_by>Test Suite Access</requested_by>
225
- <created_at type="datetime">2010/07/29 19:11:43 UTC</created_at>
226
- <updated_at type="datetime">2010/07/29 19:11:43 UTC</updated_at>
227
- </story>
228
- <story>
229
- <id type="integer">4492059</id>
230
- <project_id type="integer">102622</project_id>
231
- <story_type>feature</story_type>
232
- <url>http://www.pivotaltracker.com/story/show/4492059</url>
233
- <estimate type="integer">-1</estimate>
234
- <current_state>unscheduled</current_state>
235
- <description></description>
236
- <name>Create stuff</name>
237
- <requested_by>Test Suite Access</requested_by>
238
- <created_at type="datetime">2010/07/29 19:11:38 UTC</created_at>
239
- <updated_at type="datetime">2010/07/29 19:11:38 UTC</updated_at>
240
- </story>
241
- <story>
242
- <id type="integer">4491973</id>
243
- <project_id type="integer">102622</project_id>
244
- <story_type>feature</story_type>
245
- <url>http://www.pivotaltracker.com/story/show/4491973</url>
246
- <estimate type="integer">-1</estimate>
247
- <current_state>unscheduled</current_state>
248
- <description></description>
249
- <name>Create stuff</name>
250
- <requested_by>Test Suite Access</requested_by>
251
- <created_at type="datetime">2010/07/29 19:09:26 UTC</created_at>
252
- <updated_at type="datetime">2010/07/29 19:09:26 UTC</updated_at>
253
- </story>
254
- <story>
255
- <id type="integer">4491971</id>
256
- <project_id type="integer">102622</project_id>
257
- <story_type>feature</story_type>
258
- <url>http://www.pivotaltracker.com/story/show/4491971</url>
259
- <estimate type="integer">-1</estimate>
260
- <current_state>unscheduled</current_state>
261
- <description></description>
262
- <name>Create stuff</name>
263
- <requested_by>Test Suite Access</requested_by>
264
- <created_at type="datetime">2010/07/29 19:09:24 UTC</created_at>
265
- <updated_at type="datetime">2010/07/29 19:09:24 UTC</updated_at>
266
- </story>
267
- <story>
268
- <id type="integer">4491741</id>
269
- <project_id type="integer">102622</project_id>
270
- <story_type>feature</story_type>
271
- <url>http://www.pivotaltracker.com/story/show/4491741</url>
272
- <estimate type="integer">-1</estimate>
273
- <current_state>unscheduled</current_state>
274
- <description></description>
275
- <name>Create Stuff</name>
276
- <requested_by>Test Suite Access</requested_by>
277
- <created_at type="datetime">2010/07/29 18:56:02 UTC</created_at>
278
- <updated_at type="datetime">2010/07/29 18:56:02 UTC</updated_at>
279
- </story>
280
- <story>
281
- <id type="integer">4490944</id>
282
- <project_id type="integer">102622</project_id>
283
- <story_type>feature</story_type>
284
- <url>http://www.pivotaltracker.com/story/show/4490944</url>
285
- <estimate type="integer">-1</estimate>
286
- <current_state>unscheduled</current_state>
287
- <description></description>
288
- <name>Create Stuff</name>
289
- <requested_by>Test Suite Access</requested_by>
290
- <created_at type="datetime">2010/07/29 18:17:23 UTC</created_at>
291
- <updated_at type="datetime">2010/07/29 18:17:23 UTC</updated_at>
292
- </story>
293
- </stories>
@@ -1,42 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <memberships type="array">
3
- <membership>
4
- <id>331822</id>
5
- <person>
6
- <email>jmischo@sittercity.com</email>
7
- <name>Jon</name>
8
- <initials>JM</initials>
9
- </person>
10
- <role>Owner</role>
11
- <project>
12
- <id>102622</id>
13
- <name>Pivotal Tracker API Gem</name>
14
- </project>
15
- </membership>
16
- <membership>
17
- <id>331823</id>
18
- <person>
19
- <email>jmischo@quagility.com</email>
20
- <name>Jon Mischo</name>
21
- <initials>JM</initials>
22
- </person>
23
- <role>Owner</role>
24
- <project>
25
- <id>102622</id>
26
- <name>Pivotal Tracker API Gem</name>
27
- </project>
28
- </membership>
29
- <membership>
30
- <id>331832</id>
31
- <person>
32
- <email>pivotal-tracker-api-gem@quagility.com</email>
33
- <name>Test Suite Access</name>
34
- <initials>TEST</initials>
35
- </person>
36
- <role>Member</role>
37
- <project>
38
- <id>102622</id>
39
- <name>Pivotal Tracker API Gem</name>
40
- </project>
41
- </membership>
42
- </memberships>
@@ -1,53 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project>
3
- <id>102622</id>
4
- <name>Pivotal Tracker API Gem</name>
5
- <first_iteration_start_time type="datetime">2011/12/05 06:00:00 UTC</first_iteration_start_time>
6
- <current_iteration_number type="integer">4</current_iteration_number>
7
- <iteration_length type="integer">1</iteration_length>
8
- <week_start_day>Monday</week_start_day>
9
- <point_scale>0,1,2,3</point_scale>
10
- <account>Jon</account>
11
- <velocity_scheme>Average of 3 iterations</velocity_scheme>
12
- <current_velocity>2</current_velocity>
13
- <initial_velocity>2</initial_velocity>
14
- <number_of_done_iterations_to_show>12</number_of_done_iterations_to_show>
15
- <labels></labels>
16
- <last_activity_at type="datetime">2010/07/29 19:13:13 UTC</last_activity_at>
17
- <allow_attachments>true</allow_attachments>
18
- <public>true</public>
19
- <use_https>false</use_https>
20
- <bugs_and_chores_are_estimatable>true</bugs_and_chores_are_estimatable>
21
- <commit_mode>true</commit_mode>
22
- <memberships>
23
- <membership>
24
- <id>331822</id>
25
- <person>
26
- <email>jmischo@sittercity.com</email>
27
- <name>Jon</name>
28
- <initials>JM</initials>
29
- </person>
30
- <role>Owner</role>
31
- </membership>
32
- <membership>
33
- <id>331823</id>
34
- <person>
35
- <email>jmischo@quagility.com</email>
36
- <name>Jon Mischo</name>
37
- <initials>JM</initials>
38
- </person>
39
- <role>Owner</role>
40
- </membership>
41
- <membership>
42
- <id>331832</id>
43
- <person>
44
- <email>pivotal-tracker-api-gem@quagility.com</email>
45
- <name>Test Suite Access</name>
46
- <initials>TEST</initials>
47
- </person>
48
- <role>Member</role>
49
- </membership>
50
- </memberships>
51
- <integrations>
52
- </integrations>
53
- </project>
@@ -1,46 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <story>
3
- <id type="integer">4460038</id>
4
- <project_id type="integer">102622</project_id>
5
- <story_type>feature</story_type>
6
- <url>http://www.pivotaltracker.com/story/show/4460038</url>
7
- <estimate type="integer">1</estimate>
8
- <current_state>unstarted</current_state>
9
- <description>This is a story that has comments.</description>
10
- <name>This is for comments</name>
11
- <requested_by>Jon Mischo</requested_by>
12
- <created_at type="datetime">2010/07/27 21:53:16 UTC</created_at>
13
- <updated_at type="datetime">2010/07/27 22:20:48 UTC</updated_at>
14
- <notes type="array">
15
- <note>
16
- <id type="integer">2111593</id>
17
- <text>This is a comment...whee!</text>
18
- <author>Jon</author>
19
- <noted_at type="datetime">2010/07/27 22:15:48 UTC</noted_at>
20
- </note>
21
- <note>
22
- <id type="integer">2128955</id>
23
- <text>Test note</text>
24
- <author>Test Suite Access</author>
25
- <noted_at type="datetime">2010/07/29 18:15:09 UTC</noted_at>
26
- </note>
27
- <note>
28
- <id type="integer">2128959</id>
29
- <text>Test note</text>
30
- <author>Test Suite Access</author>
31
- <noted_at type="datetime">2010/07/29 18:16:12 UTC</noted_at>
32
- </note>
33
- <note>
34
- <id type="integer">2129077</id>
35
- <text>Test note</text>
36
- <author>Test Suite Access</author>
37
- <noted_at type="datetime">2010/07/29 18:22:26 UTC</noted_at>
38
- </note>
39
- <note>
40
- <id type="integer">2129374</id>
41
- <text>Test note</text>
42
- <author>Test Suite Access</author>
43
- <noted_at type="datetime">2010/07/29 18:55:44 UTC</noted_at>
44
- </note>
45
- </notes>
46
- </story>
@@ -1,32 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <story>
3
- <id type="integer">4460598</id>
4
- <project_id type="integer">102622</project_id>
5
- <story_type>feature</story_type>
6
- <url>http://www.pivotaltracker.com/story/show/4460598</url>
7
- <estimate type="integer">3</estimate>
8
- <current_state>unstarted</current_state>
9
- <description>This story has attachments.</description>
10
- <name>Story with attachments</name>
11
- <requested_by>Jon Mischo</requested_by>
12
- <created_at type="datetime">2010/07/27 22:33:13 UTC</created_at>
13
- <updated_at type="datetime">2010/07/27 22:33:28 UTC</updated_at>
14
- <attachments type="array">
15
- <attachment>
16
- <id type="integer">491576</id>
17
- <filename>LICENSE</filename>
18
- <description></description>
19
- <uploaded_by>Jon</uploaded_by>
20
- <uploaded_at type="datetime">2010/07/27 22:34:23 UTC</uploaded_at>
21
- <url>http://www.pivotaltracker.com/resource/download/491576</url>
22
- </attachment>
23
- <attachment>
24
- <id type="integer">493019</id>
25
- <filename>README.rdoc</filename>
26
- <description>README file from api gem</description>
27
- <uploaded_by>Jon</uploaded_by>
28
- <uploaded_at type="datetime">2010/07/28 15:16:18 UTC</uploaded_at>
29
- <url>http://www.pivotaltracker.com/resource/download/493019</url>
30
- </attachment>
31
- </attachments>
32
- </story>
@@ -1,48 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <story>
3
- <id type="integer">4473735</id>
4
- <project_id type="integer">102622</project_id>
5
- <story_type>feature</story_type>
6
- <url>http://www.pivotaltracker.com/story/show/4473735</url>
7
- <estimate type="integer">1</estimate>
8
- <current_state>unstarted</current_state>
9
- <description></description>
10
- <name>Attachment upload test story</name>
11
- <requested_by>Jon</requested_by>
12
- <created_at type="datetime">2010/07/28 18:17:33 UTC</created_at>
13
- <updated_at type="datetime">2010/07/28 18:17:44 UTC</updated_at>
14
- <attachments type="array">
15
- <attachment>
16
- <id type="integer">495851</id>
17
- <filename>LICENSE</filename>
18
- <description></description>
19
- <uploaded_by>Test Suite Access</uploaded_by>
20
- <uploaded_at type="datetime">2010/07/29 19:07:19 UTC</uploaded_at>
21
- <url>http://www.pivotaltracker.com/resource/download/495851</url>
22
- </attachment>
23
- <attachment>
24
- <id type="integer">495856</id>
25
- <filename>LICENSE</filename>
26
- <description></description>
27
- <uploaded_by>Test Suite Access</uploaded_by>
28
- <uploaded_at type="datetime">2010/07/29 19:09:27 UTC</uploaded_at>
29
- <url>http://www.pivotaltracker.com/resource/download/495856</url>
30
- </attachment>
31
- <attachment>
32
- <id type="integer">495858</id>
33
- <filename>LICENSE</filename>
34
- <description></description>
35
- <uploaded_by>Test Suite Access</uploaded_by>
36
- <uploaded_at type="datetime">2010/07/29 19:11:44 UTC</uploaded_at>
37
- <url>http://www.pivotaltracker.com/resource/download/495858</url>
38
- </attachment>
39
- <attachment>
40
- <id type="integer">495863</id>
41
- <filename>LICENSE</filename>
42
- <description></description>
43
- <uploaded_by>Test Suite Access</uploaded_by>
44
- <uploaded_at type="datetime">2010/07/29 19:13:06 UTC</uploaded_at>
45
- <url>http://www.pivotaltracker.com/resource/download/495863</url>
46
- </attachment>
47
- </attachments>
48
- </story>