eslurper 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +138 -0
- data/bin/eslurp +29 -0
- data/lib/cacert.pem +3509 -0
- data/lib/slurper.rb +66 -0
- data/lib/story.rb +98 -0
- data/spec/slurper_spec.rb +79 -0
- data/spec/story_spec.rb +110 -0
- metadata +107 -0
data/README.rdoc
ADDED
@@ -0,0 +1,138 @@
|
|
1
|
+
= slurper
|
2
|
+
|
3
|
+
Slurper allows you to quickly compose your stories in a text file and import them into Pivotal Tracker.
|
4
|
+
|
5
|
+
Works great with slurper.vim! (http://github.com/adamlowe/vim-slurper)
|
6
|
+
|
7
|
+
== Note on Patches/Pull Requests
|
8
|
+
|
9
|
+
* Fork the project.
|
10
|
+
* Make your feature addition or bug fix.
|
11
|
+
* Add tests for it. This is important so I don't break it in a
|
12
|
+
future version unintentionally.
|
13
|
+
* Commit, do not mess with rakefile, version, or history.
|
14
|
+
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
15
|
+
* Send me a pull request.
|
16
|
+
|
17
|
+
== Setup
|
18
|
+
|
19
|
+
$gem install eslurper
|
20
|
+
|
21
|
+
== Config
|
22
|
+
|
23
|
+
Slurper requires a slurper_config.yml file in your working directory. This file contains your Tracker API and story requestor information.
|
24
|
+
|
25
|
+
=== Example
|
26
|
+
|
27
|
+
project_id: 1234
|
28
|
+
epic_features_project_id: 1234
|
29
|
+
token: 123abc123abc123abc
|
30
|
+
requested_by: Jane Stakeholder
|
31
|
+
ssl: true
|
32
|
+
|
33
|
+
The project_id tells tracker which project to add your stories to. It can be found on the project settings or the url for the project.
|
34
|
+
|
35
|
+
The epic_features_project_id tells tracker which project to pull stories when builing an epic. It can be found on the project settings or the url for the project.
|
36
|
+
|
37
|
+
The token can be found on your personal profile page in Pivotal Tracker.
|
38
|
+
|
39
|
+
The requested_by field should be the name of your project stakeholder exactly as it appears in tracker.
|
40
|
+
|
41
|
+
The ssl field should be set to true if you've enabled "Use HTTPS" in Pivotal Tracker.
|
42
|
+
SSL is being verified by peer using the cacert.pem from (http://curl.haxx.se/ca)
|
43
|
+
|
44
|
+
== Usage
|
45
|
+
|
46
|
+
Create a stories.slurper file and compose your stories in the slurper story format. In your working directory use the slurp command to import your stories from the stories.slurper file into Pivotal Tracker. Slurper looks for a stories.slurper file in your current directory by default, however, you can provide an alternate story source file if necessary.
|
47
|
+
|
48
|
+
Default
|
49
|
+
|
50
|
+
$eslurp ~/stories.slurper
|
51
|
+
|
52
|
+
Also valid
|
53
|
+
|
54
|
+
$eslurp ~/special_stories.slurper
|
55
|
+
|
56
|
+
Or even
|
57
|
+
|
58
|
+
$eslurp ~/mystories.txt
|
59
|
+
|
60
|
+
=== Example stories.slurper
|
61
|
+
|
62
|
+
==
|
63
|
+
story_type:
|
64
|
+
chore
|
65
|
+
name:
|
66
|
+
Set Up Staging Environment
|
67
|
+
description:
|
68
|
+
Set up and configure staging environment for approval of stories
|
69
|
+
|
70
|
+
labels:
|
71
|
+
|
72
|
+
==
|
73
|
+
story_type:
|
74
|
+
feature
|
75
|
+
name:
|
76
|
+
Campaign Manager Does Something
|
77
|
+
description:
|
78
|
+
In order to get some value
|
79
|
+
As a campaign manager
|
80
|
+
I want to do something
|
81
|
+
|
82
|
+
- can do something
|
83
|
+
|
84
|
+
labels:
|
85
|
+
campaign managers
|
86
|
+
==
|
87
|
+
story_type:
|
88
|
+
feature
|
89
|
+
name:
|
90
|
+
Campaign Manager EPIC
|
91
|
+
description:
|
92
|
+
In order to get some value
|
93
|
+
As a campaign manager
|
94
|
+
I want to do something
|
95
|
+
|
96
|
+
- can do something
|
97
|
+
|
98
|
+
labels:
|
99
|
+
campaign, epic
|
100
|
+
==
|
101
|
+
story_type:
|
102
|
+
release
|
103
|
+
name:
|
104
|
+
Big Release
|
105
|
+
description:
|
106
|
+
This release marks a lot of awesome functionality
|
107
|
+
|
108
|
+
labels:
|
109
|
+
|
110
|
+
==
|
111
|
+
story_type:
|
112
|
+
bug
|
113
|
+
name:
|
114
|
+
I did something and nothing happened
|
115
|
+
description:
|
116
|
+
When I do something, another thing is supposed to happen but I see an error screen instead.
|
117
|
+
|
118
|
+
labels:
|
119
|
+
|
120
|
+
|
121
|
+
=== Epics
|
122
|
+
if the feature has a label of 'epic', eslurper will create an epic feature. You must include one other label for the epic to pull stories. Eslurper will use the epic_features_project_id to pull stories with the same non-"epic" label.
|
123
|
+
It will create add a link to the label search and a list of the related stories.
|
124
|
+
|
125
|
+
eg.
|
126
|
+
Label Search
|
127
|
+
https://www.pivotaltracker.com/projects/264623?label=rental
|
128
|
+
|
129
|
+
http://www.pivotaltracker.com/story/show/19906825
|
130
|
+
http://www.pivotaltracker.com/story/show/16421895
|
131
|
+
|
132
|
+
Because of limitations with the pivotal api, the labels linking stories to epics must not contain whitespace. eslurper will only use the first label as the linking label, also because of a limitation on the pivotal api.
|
133
|
+
|
134
|
+
Note: the story source file is whitespace-sensitive. Be sure the value for each key phrase is indented with two spaces beneath each key phrase. Also, start each story with a double-equals on its own line.
|
135
|
+
|
136
|
+
Your best bet is to leverage slurper.vim and benefit from its auto-indenting goodness.
|
137
|
+
|
138
|
+
Credit - Wes Gibbs (http://wgibbs.github.com) thought of and wrote slurper as a ruby script. It was later packaged and released as a gem by his fellow Rocketeers after using it and finding it extremely handy.
|
data/bin/eslurp
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Slurps stories from the given file (stories.slurper by default) and creates
|
4
|
+
# Pivotal Tracker stories from them. Useful during story carding sessions
|
5
|
+
# when you want to capture a number of stories quickly without clicking
|
6
|
+
# your way through the Tracker UI.
|
7
|
+
|
8
|
+
# Default story values and API token information should be provided in a
|
9
|
+
# ~/.slurper.yml file.
|
10
|
+
|
11
|
+
# Note that if you include labels in stories.slurper, they don't appear
|
12
|
+
# immediately in Tracker. You'll have to refresh Tracker after a few seconds
|
13
|
+
# to see them.
|
14
|
+
|
15
|
+
$:.unshift(File.join(File.dirname(File.dirname(__FILE__)),'lib'))
|
16
|
+
require 'rubygems'
|
17
|
+
require 'slurper'
|
18
|
+
require 'optparse'
|
19
|
+
|
20
|
+
options = {}
|
21
|
+
OptionParser.new do |opts|
|
22
|
+
opts.on("-r", "--reverse", "Reverse story creation order") do |v|
|
23
|
+
options[:reverse] = v
|
24
|
+
end
|
25
|
+
end.parse!
|
26
|
+
|
27
|
+
story_file = ARGV.empty? ? "stories.slurper" : ARGV[0]
|
28
|
+
|
29
|
+
Slurper.slurp(story_file, options[:reverse])
|