jirack 0.2.0 → 0.3.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/jirack/command.rb +31 -9
- data/lib/jirack/issue_extension.rb +5 -0
- data/lib/jirack/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5e435247e8d64d5c82ec1b4c18ea5752f65a333
|
4
|
+
data.tar.gz: 488e87a597e2fe842ef11980ff03d6cad878c55c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77a0d34286e75265e79641e65ab37cf27d20d9bf66b919e8ff660be727ea7361173ee50370326f0c7e6eebefb440e1d92933dfe7d0d746aa0e9b56a75f513503
|
7
|
+
data.tar.gz: 4c38fac8b74a48747aab79807b91bd594790b2562f6540a9ec6b1c90a2bb0578c4a5ce01f89a8a4c4ebd38956e2857a7abf453c873db541827d3c658817af03c
|
data/Gemfile.lock
CHANGED
data/lib/jirack/command.rb
CHANGED
@@ -35,7 +35,8 @@ module Jirack
|
|
35
35
|
end
|
36
36
|
|
37
37
|
desc 'list', 'show your active issue'
|
38
|
-
method_option '
|
38
|
+
method_option 'all', type: :boolean, aliases: '-a', desc: 'show all issue'
|
39
|
+
method_option 'unassign', type: :boolean, aliases: '-u', desc: 'show all unassign issue'
|
39
40
|
method_option 'sum-point', type: :boolean, aliases: '-n', desc: 'show your all issue point'
|
40
41
|
def list
|
41
42
|
cred = Jirack::Credential.new
|
@@ -46,15 +47,22 @@ module Jirack
|
|
46
47
|
if options.key?('unassign')
|
47
48
|
puts "#{ active_sprint['name'] } unassign issues: "
|
48
49
|
active_unassign_issue(client, cred.project_name, active_sprint['name']).each do |issue|
|
49
|
-
puts "
|
50
|
+
puts "%s %s %4.1f %s" % [issue.key, mb_rjust(issue.status.name, 25), issue.points, issue.summary]
|
50
51
|
end
|
52
|
+
|
51
53
|
elsif options.key?('sum-point')
|
52
54
|
sum_points = active_assign_issue(client, cred.project_name, active_sprint['name']).inject(0.0) {|sum, issue| sum + issue.points }
|
53
55
|
puts "#{ active_sprint['name'] } points: #{ sum_points }"
|
56
|
+
|
57
|
+
elsif options.key?('all')
|
58
|
+
puts "#{ active_sprint['name'] } issues: "
|
59
|
+
active_sprint_issue(client, cred.project_name, active_sprint['name']).each do |issue|
|
60
|
+
puts "%s % 18s %s %4.1f %s" % [issue.key, issue.assign_user_name, mb_rjust(issue.status.name, 25), issue.points, issue.summary]
|
61
|
+
end
|
54
62
|
else
|
55
63
|
puts "#{ active_sprint['name'] } issues: "
|
56
64
|
active_assign_issue(client, cred.project_name, active_sprint['name']).each do |issue|
|
57
|
-
puts "
|
65
|
+
puts "%s %s %4.1f %s" % [issue.key, mb_rjust(issue.status.name, 25), issue.points, issue.summary]
|
58
66
|
end
|
59
67
|
end
|
60
68
|
end
|
@@ -74,13 +82,15 @@ module Jirack
|
|
74
82
|
transition = JIRA::Resource::Transition.new(client, :attrs => {id: next_transition.id }, :issue_id => issue.id)
|
75
83
|
transition.save(transition: { id: next_transition.id })
|
76
84
|
|
85
|
+
|
86
|
+
puts "#{ cred.project_name }-#{ issue_number } forward to #{ next_transition.to.name }"
|
87
|
+
|
77
88
|
# slack に通知
|
78
89
|
if options.key? :message
|
79
90
|
slack = Slack::Incoming::Webhooks.new cred.slack_webhook_url
|
80
91
|
slack.post "<@#{ issue.reporter.name }> #{ issue.summary }(#{ issue_url(issue) }) #{ options[:message] }"
|
92
|
+
puts "@#{ issue.reporter.name } #{ issue.summary }(#{ issue_url(issue) }) #{ options[:message] }"
|
81
93
|
end
|
82
|
-
|
83
|
-
puts "#{ cred.project_name }-#{ issue_number } forward to #{ next_transition.to.name }"
|
84
94
|
end
|
85
95
|
|
86
96
|
desc 'back issue_number', 'back issue status'
|
@@ -98,16 +108,18 @@ module Jirack
|
|
98
108
|
transition = JIRA::Resource::Transition.new(client, :attrs => {id: next_transition.id }, :issue_id => issue.id)
|
99
109
|
transition.save(transition: { id: next_transition.id })
|
100
110
|
|
111
|
+
puts "#{ cred.project_name }-#{ issue_number } back to #{ next_transition.to.name }"
|
112
|
+
|
101
113
|
# slack に通知
|
102
114
|
if options.key? :message
|
103
115
|
slack = Slack::Incoming::Webhooks.new cred.slack_webhook_url
|
104
116
|
slack.post "<@#{ issue.reporter.name }> #{ issue.summary }(#{ issue_url(issue) }) #{ options[:message] }"
|
117
|
+
puts "@#{ issue.reporter.name } #{ issue.summary }(#{ issue_url(issue) }) #{ options[:message] }"
|
105
118
|
end
|
106
|
-
|
107
|
-
puts "#{ cred.project_name }-#{ issue_number } back to #{ next_transition.to.name }"
|
108
119
|
end
|
109
120
|
|
110
121
|
desc 'notify issue_number', 'notify issue message'
|
122
|
+
method_option 'silent', :aliases => '-s', type: :boolean, desc: 'not notify slack '
|
111
123
|
method_option 'message', :aliases => '-m', required: true, desc: 'notify slack message'
|
112
124
|
def notify(issue_number)
|
113
125
|
cred = Jirack::Credential.new
|
@@ -116,12 +128,12 @@ module Jirack
|
|
116
128
|
issue = client.Issue.find("#{ cred.project_name }-#{ issue_number }")
|
117
129
|
|
118
130
|
# slack に通知
|
119
|
-
if options.key? :
|
131
|
+
if options.key?(:message) && !options.key?(:silent)
|
120
132
|
slack = Slack::Incoming::Webhooks.new cred.slack_webhook_url
|
121
133
|
slack.post "<@#{ issue.reporter.name }> #{ issue.summary }(#{ issue_url(issue) }) #{ options[:message] }"
|
122
134
|
end
|
123
135
|
|
124
|
-
puts "#{
|
136
|
+
puts "@#{ issue.reporter.name } #{ issue.summary }(#{ issue_url(issue) }) #{ options[:message] }"
|
125
137
|
end
|
126
138
|
|
127
139
|
desc 'open issue_number', 'open browser issue page'
|
@@ -165,9 +177,19 @@ module Jirack
|
|
165
177
|
JIRA::Resource::Issue.jql(client, "project=\"#{ project_name }\" AND assignee = NULL AND cf[10007] = \"#{ sprint_name }\"")
|
166
178
|
end
|
167
179
|
|
180
|
+
def active_sprint_issue(client, project_name, sprint_name)
|
181
|
+
JIRA::Resource::Issue.jql(client, "project=\"#{ project_name }\" AND cf[10007] = \"#{ sprint_name }\" ORDER BY assignee")
|
182
|
+
end
|
183
|
+
|
168
184
|
def issue_url(issue)
|
169
185
|
uri = URI.parse(issue.self)
|
170
186
|
"https://#{ uri.host }/browse/#{ issue.key }"
|
171
187
|
end
|
188
|
+
|
189
|
+
def mb_rjust(string, width, padding=' ')
|
190
|
+
output_width = string.each_char.map{|c| c.bytesize == 1 ? 1 : 2}.reduce(0, &:+)
|
191
|
+
padding_size = [0, width - output_width].max
|
192
|
+
padding * padding_size + string
|
193
|
+
end
|
172
194
|
end
|
173
195
|
end
|
data/lib/jirack/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jirack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rhythm191
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|