bl 0.0.10 → 0.0.11
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/bl.rb +6 -4
- data/lib/bl/category.rb +5 -7
- data/lib/bl/cli.rb +46 -27
- data/lib/bl/config.rb +18 -0
- data/lib/bl/milestone.rb +26 -0
- data/lib/bl/requestable.rb +11 -0
- data/lib/bl/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0a2525dc8ba16ce5e1649837a95eea5e5d70912
|
4
|
+
data.tar.gz: c77b0e83418fe6c35ca14e752dd74b7d81aabf40
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 021cbd06170c5adda3e807e9213edfb26a89427ffbf60574ea224d326072a917d61684d65ff41dd3aeb2487948d88401bb91f81172bf588cb45d30280d751685
|
7
|
+
data.tar.gz: 06fe0e42865221d13d652bb9f532879dbf97b3086b4e04d3fdb6410832c3597eeaa8dd7acbce44850406df458378a5d027be299931e961103ef532930759fa4d
|
data/lib/bl.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
-
require '
|
1
|
+
require 'date'
|
2
|
+
require 'pp'
|
2
3
|
require 'backlog_kit'
|
4
|
+
require 'thor'
|
3
5
|
require 'bl/version'
|
6
|
+
require 'bl/config'
|
7
|
+
require 'bl/requestable'
|
4
8
|
require 'bl/category'
|
5
|
-
require '
|
6
|
-
require 'pp'
|
9
|
+
require 'bl/milestone'
|
7
10
|
require 'bl/cli'
|
8
|
-
require 'date'
|
9
11
|
|
10
12
|
Bl::CLI.start(ARGV)
|
data/lib/bl/category.rb
CHANGED
@@ -1,18 +1,16 @@
|
|
1
1
|
module Bl
|
2
2
|
class Category < Thor
|
3
|
+
include Bl::Requestable
|
4
|
+
|
3
5
|
def initialize(*)
|
4
|
-
@config =
|
5
|
-
@client = BacklogKit::Client.new(
|
6
|
-
space_id: @config[:space_id],
|
7
|
-
api_key: @config[:api_key]
|
8
|
-
)
|
6
|
+
@config = Bl::Config.instance
|
9
7
|
super
|
10
8
|
end
|
11
9
|
|
12
10
|
desc 'add NAME', 'add categories'
|
13
11
|
def add(*names)
|
14
12
|
names.each do |name|
|
15
|
-
res =
|
13
|
+
res = client.post("projects/#{@config[:project_key]}/categories", name: name)
|
16
14
|
puts "category added: #{res.body.id}\t#{res.body.name}"
|
17
15
|
end
|
18
16
|
end
|
@@ -20,7 +18,7 @@ module Bl
|
|
20
18
|
desc 'delete CATEGORY_ID', 'delete categories'
|
21
19
|
def delete(*ids)
|
22
20
|
ids.each do |id|
|
23
|
-
res =
|
21
|
+
res = client.delete("projects/#{@config[:project_key]}/categories/#{id}")
|
24
22
|
puts "category deleted: #{res.body.id}\t#{res.body.name}"
|
25
23
|
end
|
26
24
|
end
|
data/lib/bl/cli.rb
CHANGED
@@ -1,13 +1,10 @@
|
|
1
1
|
module Bl
|
2
|
-
CONFIG_FILE = '.bl.yml'
|
3
2
|
|
4
3
|
class CLI < Thor
|
4
|
+
include Bl::Requestable
|
5
|
+
|
5
6
|
def initialize(*)
|
6
|
-
@config =
|
7
|
-
@client = BacklogKit::Client.new(
|
8
|
-
space_id: @config[:space_id],
|
9
|
-
api_key: @config[:api_key]
|
10
|
-
)
|
7
|
+
@config = Bl::Config.instance
|
11
8
|
super
|
12
9
|
end
|
13
10
|
|
@@ -45,7 +42,7 @@ module Bl
|
|
45
42
|
|
46
43
|
desc 'count', 'count issues'
|
47
44
|
def count
|
48
|
-
puts
|
45
|
+
puts client.get('issues/count').body.count
|
49
46
|
end
|
50
47
|
|
51
48
|
desc 'list', 'list issues'
|
@@ -62,7 +59,7 @@ module Bl
|
|
62
59
|
opts[:dueDateUntil] = Date.today.next.to_s
|
63
60
|
end
|
64
61
|
opts[:dueDateUntil] = Date.today.to_s if options[:overdue]
|
65
|
-
|
62
|
+
client.get('issues', opts).body.each do |i|
|
66
63
|
puts [
|
67
64
|
i.issueType.name,
|
68
65
|
i.issueKey,
|
@@ -83,7 +80,7 @@ module Bl
|
|
83
80
|
option :categoryId, type: :array
|
84
81
|
option :assigneeId, type: :array
|
85
82
|
def search
|
86
|
-
|
83
|
+
client.get('issues', options.to_h).body.each do |i|
|
87
84
|
puts [
|
88
85
|
i.issueType.name,
|
89
86
|
i.issueKey,
|
@@ -101,7 +98,7 @@ module Bl
|
|
101
98
|
|
102
99
|
desc 'show KEY', "show an issue's details"
|
103
100
|
def show(key)
|
104
|
-
i =
|
101
|
+
i = client.get("issues/#{key}")
|
105
102
|
str = i.body.pretty_inspect
|
106
103
|
puts str
|
107
104
|
end
|
@@ -130,7 +127,7 @@ module Bl
|
|
130
127
|
issueTypeId: @config[:issue][:default_issue_type_id].to_i,
|
131
128
|
priorityId: @config[:issue][:default_priority_id].to_i
|
132
129
|
}
|
133
|
-
res =
|
130
|
+
res = client.post(
|
134
131
|
'issues',
|
135
132
|
base_options.merge(options)
|
136
133
|
)
|
@@ -151,7 +148,7 @@ module Bl
|
|
151
148
|
option :assigneeId, type: :numeric
|
152
149
|
def update(*keys)
|
153
150
|
keys.each do |k|
|
154
|
-
res =
|
151
|
+
res = client.patch("issues/#{k}", options.to_h)
|
155
152
|
puts "issue updated: #{res.body.issueKey}\t#{res.body.summary}"
|
156
153
|
end
|
157
154
|
end
|
@@ -159,28 +156,28 @@ module Bl
|
|
159
156
|
desc 'close *KEYS', 'close issues'
|
160
157
|
def close(*keys)
|
161
158
|
keys.each do |k|
|
162
|
-
res =
|
159
|
+
res = client.patch("issues/#{k}", statusId: 4)
|
163
160
|
puts "issue closed: #{res.body.issueKey}\t#{res.body.summary}"
|
164
161
|
end
|
165
162
|
end
|
166
163
|
|
167
164
|
desc 'projects', 'list projects'
|
168
165
|
def projects
|
169
|
-
|
166
|
+
client.get('projects').body.each do |p|
|
170
167
|
puts [p.id, p.projectKey, p.name].join("\t")
|
171
168
|
end
|
172
169
|
end
|
173
170
|
|
174
171
|
desc 'types', 'list issue types'
|
175
172
|
def types
|
176
|
-
|
173
|
+
client.get("projects/#{@config[:project_key]}/issueTypes").body.each do |t|
|
177
174
|
puts [t.id, t.name].join("\t")
|
178
175
|
end
|
179
176
|
end
|
180
177
|
|
181
178
|
desc 'milestones', 'list milestones'
|
182
179
|
def milestones
|
183
|
-
|
180
|
+
client.get("projects/#{@config[:project_key]}/versions").body.each do |v|
|
184
181
|
puts [
|
185
182
|
v.id,
|
186
183
|
v.projectId,
|
@@ -195,42 +192,42 @@ module Bl
|
|
195
192
|
|
196
193
|
desc 'categories', 'list issue categories'
|
197
194
|
def categories
|
198
|
-
|
195
|
+
client.get("projects/#{@config[:project_key]}/categories").body.each do |c|
|
199
196
|
puts [c.id, c.name].join("\t")
|
200
197
|
end
|
201
198
|
end
|
202
199
|
|
203
200
|
desc 'statuses', 'list statuses'
|
204
201
|
def statuses
|
205
|
-
|
202
|
+
client.get('statuses').body.each do |s|
|
206
203
|
puts [s.id, s.name].join("\t")
|
207
204
|
end
|
208
205
|
end
|
209
206
|
|
210
207
|
desc 'priorities', 'list priorities'
|
211
208
|
def priorities
|
212
|
-
|
209
|
+
client.get('priorities').body.each do |p|
|
213
210
|
puts [p.id, p.name].join("\t")
|
214
211
|
end
|
215
212
|
end
|
216
213
|
|
217
214
|
desc 'resolutions', 'list resolutions'
|
218
215
|
def resolutions
|
219
|
-
|
216
|
+
client.get('resolutions').body.each do |r|
|
220
217
|
puts [r.id, r.name].join("\t")
|
221
218
|
end
|
222
219
|
end
|
223
220
|
|
224
221
|
desc 'users', 'list space users'
|
225
222
|
def users
|
226
|
-
|
223
|
+
client.get('users').body.each do |u|
|
227
224
|
puts [u.id, u.userId, u.name, u.roleType, u.lang, u.mailAddress].join("\t")
|
228
225
|
end
|
229
226
|
end
|
230
227
|
|
231
228
|
desc 'activities', 'list activities'
|
232
229
|
def activities
|
233
|
-
|
230
|
+
client.get('/space/activities').body.each do |a|
|
234
231
|
puts a.pretty_inspect
|
235
232
|
end
|
236
233
|
end
|
@@ -238,18 +235,40 @@ module Bl
|
|
238
235
|
desc 'category SUBCOMMAND ...ARGS', 'manage categoryies'
|
239
236
|
subcommand 'category', Category
|
240
237
|
|
238
|
+
desc 'milestone SUBCOMMAND ...ARGS', 'manage milestones'
|
239
|
+
subcommand 'milestone', Milestone
|
240
|
+
|
241
241
|
desc 'project-status PROJECT_ID', 'show project status'
|
242
242
|
def project_status(pid)
|
243
|
-
all_issues_count =
|
244
|
-
open_issues_count =
|
245
|
-
in_progress_issues_count =
|
246
|
-
resolved_issues_count =
|
247
|
-
closed_issues_count =
|
243
|
+
all_issues_count = client.get('issues/count', projectId: [pid]).body.count
|
244
|
+
open_issues_count = client.get('issues/count', projectId: [pid], statusId: [1]).body.count
|
245
|
+
in_progress_issues_count = client.get('issues/count', projectId: [pid], statusId: [2]).body.count
|
246
|
+
resolved_issues_count = client.get('issues/count', projectId: [pid], statusId: [3]).body.count
|
247
|
+
closed_issues_count = client.get('issues/count', projectId: [pid], statusId: [4]).body.count
|
248
248
|
puts "#{closed_issues_count} / #{all_issues_count}"
|
249
249
|
puts "open: #{open_issues_count}"
|
250
250
|
puts "in progress: #{in_progress_issues_count}"
|
251
251
|
puts "resolved: #{resolved_issues_count}"
|
252
252
|
puts "closed: #{closed_issues_count}"
|
253
253
|
end
|
254
|
+
|
255
|
+
desc 'wikis', 'list wikis'
|
256
|
+
def wikis
|
257
|
+
client.get('wikis', projectIdOrKey: @config[:project_key]).body.each do |w|
|
258
|
+
puts [w.id, w.projectId, w.name, w.updated].join("\t")
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
desc 'wiki WIKI_ID', "show a wiki's content"
|
263
|
+
def wiki(wiki_id)
|
264
|
+
body = client.get("wikis/#{wiki_id}").body
|
265
|
+
puts "id: #{body.id}"
|
266
|
+
puts "projectId: #{body.projectId}"
|
267
|
+
puts "name: #{body.name}"
|
268
|
+
puts "updated: #{body.updated}"
|
269
|
+
puts '--'
|
270
|
+
puts 'content:'
|
271
|
+
puts body.content
|
272
|
+
end
|
254
273
|
end
|
255
274
|
end
|
data/lib/bl/config.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
module Bl
|
5
|
+
CONFIG_FILE = '.bl.yml'
|
6
|
+
|
7
|
+
class Config
|
8
|
+
include Singleton
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@config = YAML.load_file(File.join(Dir.home, Bl::CONFIG_FILE))
|
12
|
+
end
|
13
|
+
|
14
|
+
def [](key)
|
15
|
+
@config[key]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/bl/milestone.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Bl
|
2
|
+
class Milestone < Thor
|
3
|
+
include Bl::Requestable
|
4
|
+
|
5
|
+
def initialize(*)
|
6
|
+
@config = Bl::Config.instance
|
7
|
+
super
|
8
|
+
end
|
9
|
+
|
10
|
+
desc 'add NAME', 'add milestones'
|
11
|
+
def add(*names)
|
12
|
+
names.each do |name|
|
13
|
+
res = client.post("projects/#{@config[:project_key]}/versions", name: name)
|
14
|
+
puts "milestone added: #{res.body.id}\t#{res.body.name}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'delete MILESTONE_ID', 'delete milestones'
|
19
|
+
def delete(*ids)
|
20
|
+
ids.each do |id|
|
21
|
+
res = client.delete("projects/#{@config[:project_key]}/versions/#{id}")
|
22
|
+
puts "milestone deleted: #{res.body.id}\t#{res.body.name}"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/bl/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- saki
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -129,6 +129,9 @@ files:
|
|
129
129
|
- lib/bl.rb
|
130
130
|
- lib/bl/category.rb
|
131
131
|
- lib/bl/cli.rb
|
132
|
+
- lib/bl/config.rb
|
133
|
+
- lib/bl/milestone.rb
|
134
|
+
- lib/bl/requestable.rb
|
132
135
|
- lib/bl/version.rb
|
133
136
|
homepage: https://github.com/sakihet/bl
|
134
137
|
licenses:
|