agile-cli 0.0.15 → 0.0.16
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.
- checksums.yaml +4 -4
- data/lib/agile/commands/events.rb +4 -10
- data/lib/agile/commands/projects.rb +9 -19
- data/lib/agile/commands/tickets.rb +46 -17
- data/lib/agile/commands/users.rb +29 -0
- data/lib/agile/constants.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ed766d8eaee010e975e70eb1f48adb7210b473788505fe13b406266bef78572
|
4
|
+
data.tar.gz: 6dddd5c95654e5b00d9d37d4069da45f521daad61580a384c3a64f9a09dbbbe5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf126ff658051f1bf646a0bad52dbb4d5617e36bcaec0a123ff3ebcc1aa6aaf5f0d1f117b9cc25a030f7dc2b1017f63ef2ba79f3a983069bd98c5ce40844df11
|
7
|
+
data.tar.gz: f00751f20fb3e293474e10414596534961e0f7dbb4c35c76b3fc67ccaec039121d38947d955fa4ad3ea49fd29e479a3d757059b9d3c2a7b72910c2f73b3354f0
|
@@ -5,8 +5,8 @@ module Agile
|
|
5
5
|
cli = HighLine.new
|
6
6
|
event_description = cli.ask("description for event: ", String)
|
7
7
|
RestClient.post"#{CONFIG['current_remote']}/api/v1/events/",
|
8
|
-
event_type: type_cli,
|
9
|
-
|
8
|
+
event_type: type_cli, date: date_cli, start_time: start_time_cli,
|
9
|
+
end_time: end_time_cli, desc: event_description,
|
10
10
|
current_user: CONFIG["current_user"]
|
11
11
|
say "Successfully added new event!"
|
12
12
|
end
|
@@ -18,7 +18,7 @@ module Agile
|
|
18
18
|
JSON.parse(response).each do |event|
|
19
19
|
if event["project_id"] == CONFIG["current_project_id"]
|
20
20
|
info = parse_info(event)
|
21
|
-
|
21
|
+
say "#{(event['event_type']).upcase} starts at #{parse_date(event)} #{info[:start]} and ends at #{info[:end]}"
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -44,7 +44,7 @@ module Agile
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def parse_date(event)
|
47
|
-
Date.parse(event["date"]).strftime("%
|
47
|
+
Date.parse(event["date"]).strftime("%B %d")
|
48
48
|
end
|
49
49
|
|
50
50
|
def norm_time(param)
|
@@ -57,12 +57,6 @@ module Agile
|
|
57
57
|
cli.ask("Choose type of event (select number): ", Integer)
|
58
58
|
end
|
59
59
|
|
60
|
-
def frequency_cli
|
61
|
-
cli = HighLine.new
|
62
|
-
say "0 - daily\n1 - weekly\n2 - monthly\n3 - not regular"
|
63
|
-
cli.ask("Choose frequency for event: ", Integer)
|
64
|
-
end
|
65
|
-
|
66
60
|
def date_cli
|
67
61
|
cli = HighLine.new
|
68
62
|
cli.ask("Select data for event (yyyy.mm.dd): ", String)
|
@@ -19,10 +19,10 @@ module Agile
|
|
19
19
|
response = RestClient.get "#{CONFIG['current_remote']}/api/v1/userproject/#{CONFIG['current_user']}"
|
20
20
|
say Rainbow("<<Your Projects>>").cornflower
|
21
21
|
JSON.parse(response).each do |proj|
|
22
|
-
if proj
|
23
|
-
say "* #{proj
|
22
|
+
if proj["name"] == CONFIG["current_project"]
|
23
|
+
say "* #{proj['name']}"
|
24
24
|
else
|
25
|
-
say proj
|
25
|
+
say proj["name"]
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -46,7 +46,7 @@ module Agile
|
|
46
46
|
def update(project)
|
47
47
|
error_checking_projects
|
48
48
|
choice = HighLine.new
|
49
|
-
answer = choice.ask("Choose what you
|
49
|
+
answer = choice.ask("Choose what you want to edit: name or description (N or D): ", String)
|
50
50
|
if answer == "N"
|
51
51
|
update_name(project)
|
52
52
|
elsif answer == "D"
|
@@ -56,25 +56,14 @@ module Agile
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
# def update(project, new_project)
|
60
|
-
# error_checking_projects
|
61
|
-
# resp = RestClient.get "#{CONFIG['current_remote']}/api/v1/userproject/#{CONFIG['current_user']}"
|
62
|
-
# pr_list = JSON.parse(resp).map { |array| array.map { |hash| hash.values_at("name").include?(project) } }
|
63
|
-
# if pr_list.include?([true])
|
64
|
-
# RestClient.put "#{CONFIG['current_remote']}/api/v1/projects/#{project}", name: project, new_name: new_project
|
65
|
-
# say "Updated from #{project} to #{new_project}"
|
66
|
-
# else
|
67
|
-
# say "Error"
|
68
|
-
# end
|
69
|
-
# end
|
70
|
-
|
71
59
|
private
|
72
60
|
|
73
61
|
def update_name(project)
|
74
62
|
choice = HighLine.new
|
75
63
|
new_project = choice.ask("Enter new name of project: ", String)
|
76
64
|
RestClient.put "#{CONFIG['current_remote']}/api/v1/projects/#{project}",
|
77
|
-
name: project, new_name: new_project, type: 1
|
65
|
+
name: project, new_name: new_project, type: 1,
|
66
|
+
current_user: CONFIG["current_user"]
|
78
67
|
say "Updated from #{project} to #{new_project}"
|
79
68
|
end
|
80
69
|
|
@@ -82,7 +71,8 @@ module Agile
|
|
82
71
|
choice = HighLine.new
|
83
72
|
new_description = choice.ask("Enter new description for project: ", String)
|
84
73
|
RestClient.put "#{CONFIG['current_remote']}/api/v1/projects/#{project}",
|
85
|
-
name: project, new_description: new_description
|
74
|
+
name: project, new_description: new_description,
|
75
|
+
current_user: CONFIG["current_user"]
|
86
76
|
say "Updated description to #{new_description}"
|
87
77
|
end
|
88
78
|
|
@@ -99,7 +89,7 @@ module Agile
|
|
99
89
|
say "Such project does not exist. Try again"
|
100
90
|
else
|
101
91
|
write_to_config(id_pr, project)
|
102
|
-
say "Your project: #{project}"
|
92
|
+
say "Your current project: #{project}"
|
103
93
|
end
|
104
94
|
end
|
105
95
|
|
@@ -7,7 +7,7 @@ module Agile
|
|
7
7
|
ticket_description = cli.ask("description for ticket: ", String)
|
8
8
|
RestClient.post"#{CONFIG['current_remote']}/api/v1/tickets/",
|
9
9
|
project_id: CONFIG["current_project_id"], name: ticket_name,
|
10
|
-
user: CONFIG["current_user"], desc: ticket_description
|
10
|
+
user: CONFIG["current_user"], desc: ticket_description, status: ticket_status
|
11
11
|
say "Successfully added new ticket!"
|
12
12
|
end
|
13
13
|
|
@@ -15,16 +15,14 @@ module Agile
|
|
15
15
|
def list
|
16
16
|
response = RestClient.get "#{CONFIG['current_remote']}/api/v1/tickets/"
|
17
17
|
info = JSON.parse(response)
|
18
|
-
|
19
|
-
info.each { |ticket| puts_tickets(info) if ticket["project_id"] == CONFIG["current_project_id"] }
|
18
|
+
info.each { |ticket| puts ticket["name"] if ticket["project_id"] == CONFIG["current_project_id"] }
|
20
19
|
end
|
21
20
|
|
22
21
|
desc "show <name_ticket>", "Show ticket"
|
23
22
|
def show(ticket)
|
24
23
|
response = RestClient.get "#{CONFIG['current_remote']}/api/v1/tickets/#{ticket}"
|
25
24
|
row = JSON.parse(response)
|
26
|
-
|
27
|
-
say "Description: #{row['data']['attributes']['description']}"
|
25
|
+
output_ticket(row["data"]["attributes"])
|
28
26
|
end
|
29
27
|
|
30
28
|
desc "update <ticket>", "update ticket"
|
@@ -40,14 +38,29 @@ module Agile
|
|
40
38
|
end
|
41
39
|
end
|
42
40
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
41
|
+
desc "take <ticket>", "Take ticket"
|
42
|
+
def take(ticket)
|
43
|
+
RestClient.put "#{CONFIG['current_remote']}/api/v1/tickets/#{ticket}",
|
44
|
+
name: ticket, user: CONFIG["current_user"], type: 2
|
45
|
+
say "You take ticket #{ticket}"
|
46
|
+
end
|
47
|
+
|
48
|
+
desc "status <ticket>", "Update ticket status"
|
49
|
+
def status(ticket)
|
50
|
+
RestClient.put "#{CONFIG['current_remote']}/api/v1/tickets/#{ticket}",
|
51
|
+
name: ticket, status: ticket_status, type: 3, project_id: CONFIG["current_project_id"]
|
52
|
+
say "You take ticket #{ticket}"
|
53
|
+
end
|
54
|
+
|
55
|
+
desc "archive", "View archived tickets"
|
56
|
+
def archive
|
57
|
+
response = RestClient.get "#{CONFIG['current_remote']}/api/v1/tickets/"
|
58
|
+
info = JSON.parse(response)
|
59
|
+
info.each do |ticket|
|
60
|
+
archive_ticket(ticket) if ticket["project_id"] == CONFIG["current_project_id"] && ticket["status"] == "archived"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
51
64
|
# desc "my_list", "Your tickets list"
|
52
65
|
# def my_list
|
53
66
|
# CONFIG["tickets"].each do |name|
|
@@ -60,14 +73,29 @@ module Agile
|
|
60
73
|
# end
|
61
74
|
private
|
62
75
|
|
63
|
-
def
|
64
|
-
|
76
|
+
def output_ticket(row)
|
77
|
+
say "Ticket: #{row['name']}"
|
78
|
+
say "Description: #{row['description']}"
|
79
|
+
say "Status: #{row['status']}"
|
80
|
+
say "Owner: #{row['owner']}"
|
81
|
+
end
|
82
|
+
|
83
|
+
def archive_ticket(ticket)
|
84
|
+
say ticket["name"]
|
85
|
+
end
|
86
|
+
|
87
|
+
def ticket_status
|
88
|
+
cli = HighLine.new
|
89
|
+
puts "0 - ToDo\n1 - Review\n2 - In progress\n3 - Merged\n4 - Done\n5 - Archived"
|
90
|
+
cli.ask("Choose status of ticket (select number): ", Integer)
|
65
91
|
end
|
66
92
|
|
67
93
|
def update_name(ticket)
|
68
94
|
choice = HighLine.new
|
69
95
|
new_ticket = choice.ask("Enter new name of ticket: ", String)
|
70
|
-
RestClient.put "#{CONFIG['current_remote']}/api/v1/tickets/#{ticket}",
|
96
|
+
RestClient.put "#{CONFIG['current_remote']}/api/v1/tickets/#{ticket}",
|
97
|
+
name: ticket, new_name: new_ticket, type: 1,
|
98
|
+
user: CONFIG["current_user"]
|
71
99
|
say "Updated from #{ticket} to #{new_ticket}"
|
72
100
|
end
|
73
101
|
|
@@ -75,7 +103,8 @@ module Agile
|
|
75
103
|
choice = HighLine.new
|
76
104
|
new_description = choice.ask("Enter new description of ticket: ", String)
|
77
105
|
RestClient.put "#{CONFIG['current_remote']}/api/v1/tickets/#{ticket}",
|
78
|
-
name: ticket, new_description: new_description
|
106
|
+
name: ticket, new_description: new_description,
|
107
|
+
user: CONFIG["current_user"]
|
79
108
|
say "Updated description to #{new_description}"
|
80
109
|
end
|
81
110
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Agile
|
2
|
+
class Members < Thor
|
3
|
+
desc "invite <github_login>", "Add user in project"
|
4
|
+
def invite(login)
|
5
|
+
RestClient.put"#{CONFIG['current_remote']}/api/v1/userproject/#{login}",
|
6
|
+
project: CONFIG["current_project"], current_user: CONFIG["current_user"], new_user: login
|
7
|
+
say "Successfully added new user!"
|
8
|
+
end
|
9
|
+
|
10
|
+
desc "role <github_login>", "Assign role to a user"
|
11
|
+
def role(login)
|
12
|
+
RestClient.put"#{CONFIG['current_remote']}/api/v1/users/#{login}",
|
13
|
+
project_id: CONFIG["current_project_id"], name: login, role_id: role_type
|
14
|
+
say "Successfully updated user's role!"
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def role_type
|
20
|
+
cli = HighLine.new
|
21
|
+
cli.ask("Choose role type:\n1 - team member\n2 - scrum master\n3 - product owner", Integer)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class CLI < Thor
|
26
|
+
desc Rainbow("users SUBCOMMAND ...ARGS").cornflower, Rainbow("Command for work with users").darkgoldenrod
|
27
|
+
subcommand "users", Members
|
28
|
+
end
|
29
|
+
end
|
data/lib/agile/constants.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: agile-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rubizza-camp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-08-
|
11
|
+
date: 2019-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: highline
|
@@ -245,6 +245,7 @@ files:
|
|
245
245
|
- lib/agile/commands/projects.rb
|
246
246
|
- lib/agile/commands/remotes.rb
|
247
247
|
- lib/agile/commands/tickets.rb
|
248
|
+
- lib/agile/commands/users.rb
|
248
249
|
- lib/agile/commands/values.rb
|
249
250
|
- lib/agile/commands/version.rb
|
250
251
|
- lib/agile/constants.rb
|