pivotal-cli 0.0.2 → 0.0.3
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/bin/pivotal +43 -22
- data/lib/pivotal_cli/tracker.rb +16 -17
- data/lib/pivotal_cli/version.rb +1 -1
- metadata +2 -2
data/bin/pivotal
CHANGED
@@ -13,11 +13,11 @@ version PivotalCli::VERSION
|
|
13
13
|
# Shared re-usable actions
|
14
14
|
|
15
15
|
def setup_config
|
16
|
-
username
|
17
|
-
|
18
|
-
token
|
16
|
+
username = ask("What's your full name? ")
|
17
|
+
project_ids = ask("Project Id(s)? (For multiple projects, comma separate Ids) ")
|
18
|
+
token = ask("API Token? (Available at https://www.pivotaltracker.com/profile) ") {|q| q.validate = /\A[A-Za-z0-9]{32}\z/ }
|
19
19
|
|
20
|
-
@tracker.setup(username,
|
20
|
+
@tracker.setup(username, project_ids, token)
|
21
21
|
puts Rainbow("Configuration has been saved to `#{@tracker.config_file}`.").yellow
|
22
22
|
end
|
23
23
|
|
@@ -46,11 +46,14 @@ desc 'Display pivotal items assigned to you'
|
|
46
46
|
command :list do |c|
|
47
47
|
c.action do |global_options,options,args|
|
48
48
|
ensure_setup_complete
|
49
|
-
|
50
|
-
|
49
|
+
stories_per_project = @tracker.my_stories_per_project
|
50
|
+
stories_per_project.each do |id, name, stories|
|
51
|
+
next if stories.length == 0
|
51
52
|
|
52
|
-
|
53
|
-
|
53
|
+
puts Rainbow("\n == #{name} - #{stories.length} stor#{stories.length == 1 ? 'y' : 'ies'} assigned to you.\n").green
|
54
|
+
stories.each do |story|
|
55
|
+
puts formatted_story(story)
|
56
|
+
end
|
54
57
|
end
|
55
58
|
end
|
56
59
|
end
|
@@ -65,32 +68,50 @@ command :branch do |c|
|
|
65
68
|
next
|
66
69
|
end
|
67
70
|
|
68
|
-
|
71
|
+
stories_per_project = @tracker.my_stories_per_project
|
72
|
+
stories_per_id = []
|
73
|
+
stories = stories_per_project.map(&:last).flatten
|
74
|
+
|
69
75
|
branch_name = args[0]
|
70
76
|
task_id = args[1].to_i
|
71
77
|
story = task_id && stories.find { |story| story.id == task_id }
|
72
|
-
new_story = PivotalTracker::Story.new(name: '<Create a new story>', id: '????????', current_state: '', estimate: -1)
|
73
78
|
|
74
79
|
# Ask the user to select a task from the menu
|
75
80
|
if story.nil?
|
76
|
-
puts Rainbow("\n You have #{stories.length} stories assigned to you.\n").green
|
77
81
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
+
story_index = 1
|
83
|
+
stories_per_project.each do |id, name, stories|
|
84
|
+
puts Rainbow("\n == #{name} - #{stories.length} stor#{stories.length == 1 ? 'y' : 'ies'} assigned to you.\n").green
|
85
|
+
|
86
|
+
# Create a dummy new story
|
87
|
+
new_story = PivotalTracker::Story.new(
|
88
|
+
name: '<Create a new story>',
|
89
|
+
id: '????????',
|
90
|
+
current_state: '',
|
91
|
+
estimate: -1,
|
92
|
+
project_id: id
|
93
|
+
)
|
94
|
+
|
95
|
+
# Show all, yay!
|
96
|
+
stories << new_story
|
97
|
+
stories.each do |story|
|
98
|
+
puts formatted_story(story, story_index)
|
99
|
+
stories_per_id[story_index] = story
|
100
|
+
story_index += 1
|
101
|
+
end
|
82
102
|
end
|
83
103
|
|
84
|
-
question
|
85
|
-
|
86
|
-
story =
|
104
|
+
question = Rainbow("\nWhich of the #{story_index - 1} stories are you starting? ").green
|
105
|
+
selected_index = ask(question, Integer) { |q| q.in = 1..(story_index - 1) }
|
106
|
+
story = stories_per_id[selected_index]
|
87
107
|
end
|
88
108
|
|
89
109
|
# Create the new story on the fly
|
90
|
-
if story
|
91
|
-
|
92
|
-
|
93
|
-
story =
|
110
|
+
if story.id.include? '?'
|
111
|
+
story.id = nil
|
112
|
+
story.name = ask(Rainbow('Story name? ').green)
|
113
|
+
story.description = ask(Rainbow('Story description? ').green)
|
114
|
+
story = @tracker.create_story(story)
|
94
115
|
if story.errors && story.errors.count > 0
|
95
116
|
puts Rainbow("Whoops, something went wrong when creating the story:").red
|
96
117
|
story.errors.each do |error|
|
data/lib/pivotal_cli/tracker.rb
CHANGED
@@ -2,7 +2,7 @@ require 'pivotal-tracker'
|
|
2
2
|
|
3
3
|
module PivotalCli
|
4
4
|
class Tracker
|
5
|
-
attr_accessor :
|
5
|
+
attr_accessor :projects, :username
|
6
6
|
|
7
7
|
def config_file
|
8
8
|
@config_file ||= "#{ENV['HOME']}/.pivotal"
|
@@ -12,27 +12,26 @@ module PivotalCli
|
|
12
12
|
File.exists?(config_file)
|
13
13
|
end
|
14
14
|
|
15
|
-
def setup(username,
|
15
|
+
def setup(username, project_ids, token)
|
16
16
|
username = username.strip
|
17
17
|
File.open(config_file, 'w') do |file|
|
18
18
|
file.puts(username)
|
19
|
-
file.puts(
|
19
|
+
file.puts(project_ids)
|
20
20
|
file.puts(token)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
25
|
-
|
24
|
+
def my_stories_per_project
|
25
|
+
projects.map do |project|
|
26
|
+
stories = project.stories.all(owned_by: username).reject { |s| s.current_state =~ /accepted/ }
|
27
|
+
[project.id, project.name, stories]
|
28
|
+
end
|
26
29
|
end
|
27
30
|
|
28
|
-
def create_story(
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
description: description,
|
33
|
-
owned_by: username
|
34
|
-
}
|
35
|
-
@project.stories.create(attributes)
|
31
|
+
def create_story(story)
|
32
|
+
story.story_type = 'feature'
|
33
|
+
story.owned_by = username
|
34
|
+
story.create # Return a new story object (with id)
|
36
35
|
end
|
37
36
|
|
38
37
|
def set_points(story, points)
|
@@ -46,13 +45,13 @@ module PivotalCli
|
|
46
45
|
def load_configuration
|
47
46
|
File.open(config_file, 'r') do |file|
|
48
47
|
lines = file.readlines
|
49
|
-
@username
|
50
|
-
token
|
51
|
-
|
48
|
+
@username = lines[0].strip
|
49
|
+
token = lines[2].strip
|
50
|
+
project_ids = lines[1].split(',').map(&:strip)
|
52
51
|
|
53
52
|
PivotalTracker::Client.token = token
|
54
53
|
PivotalTracker::Client.use_ssl = true
|
55
|
-
@
|
54
|
+
@projects = project_ids.map { |project_id| PivotalTracker::Project.find(project_id) }
|
56
55
|
end
|
57
56
|
end
|
58
57
|
end
|
data/lib/pivotal_cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pivotal-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
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: 2014-07-
|
12
|
+
date: 2014-07-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: gli
|