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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ca2c240c6a93cd7609d167895a09361bb836215
4
- data.tar.gz: a2567131cbaf4b4b6c4790a31ba2b42b6afbabdb
3
+ metadata.gz: d0a2525dc8ba16ce5e1649837a95eea5e5d70912
4
+ data.tar.gz: c77b0e83418fe6c35ca14e752dd74b7d81aabf40
5
5
  SHA512:
6
- metadata.gz: 35768a754d72140c1298e26424babad7b9b43f167a77a597c87be58aaae2ecfee1af5c5f69730a42f53ffa51b1236c3219bfa0c8ddaa1ffa2621406d26e4f471
7
- data.tar.gz: 03aa5fea30c5fae3d871a9cad3c8f87b9ddbee0fc1900f2ba058e95dc7658400ffd345c443c3c70ea6df123e98f02b828daf37468e4c94f531b8a1e54e796192
6
+ metadata.gz: 021cbd06170c5adda3e807e9213edfb26a89427ffbf60574ea224d326072a917d61684d65ff41dd3aeb2487948d88401bb91f81172bf588cb45d30280d751685
7
+ data.tar.gz: 06fe0e42865221d13d652bb9f532879dbf97b3086b4e04d3fdb6410832c3597eeaa8dd7acbce44850406df458378a5d027be299931e961103ef532930759fa4d
data/lib/bl.rb CHANGED
@@ -1,10 +1,12 @@
1
- require 'thor'
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 'yaml'
6
- require 'pp'
9
+ require 'bl/milestone'
7
10
  require 'bl/cli'
8
- require 'date'
9
11
 
10
12
  Bl::CLI.start(ARGV)
@@ -1,18 +1,16 @@
1
1
  module Bl
2
2
  class Category < Thor
3
+ include Bl::Requestable
4
+
3
5
  def initialize(*)
4
- @config = YAML.load_file(File.join(Dir.home, Bl::CONFIG_FILE))
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 = @client.post("projects/#{@config[:project_key]}/categories", name: name)
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 = @client.delete("projects/#{@config[:project_key]}/categories/#{id}")
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
@@ -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 = YAML.load_file(File.join(Dir.home, Bl::CONFIG_FILE))
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 @client.get('issues/count').body.count
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
- @client.get('issues', opts).body.each do |i|
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
- @client.get('issues', options.to_h).body.each do |i|
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 = @client.get("issues/#{key}")
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 = @client.post(
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 = @client.patch("issues/#{k}", options.to_h)
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 = @client.patch("issues/#{k}", statusId: 4)
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
- @client.get('projects').body.each do |p|
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
- @client.get("projects/#{@config[:project_key]}/issueTypes").body.each do |t|
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
- @client.get("projects/#{@config[:project_key]}/versions").body.each do |v|
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
- @client.get("projects/#{@config[:project_key]}/categories").body.each do |c|
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
- @client.get('statuses').body.each do |s|
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
- @client.get('priorities').body.each do |p|
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
- @client.get('resolutions').body.each do |r|
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
- @client.get('users').body.each do |u|
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
- @client.get('/space/activities').body.each do |a|
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 = @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
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
@@ -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
@@ -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
@@ -0,0 +1,11 @@
1
+ module Bl
2
+ module Requestable extend self
3
+
4
+ def client
5
+ BacklogKit::Client.new(
6
+ space_id: @config[:space_id],
7
+ api_key: @config[:api_key]
8
+ )
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module Bl
2
- VERSION = '0.0.10'
2
+ VERSION = '0.0.11'
3
3
  end
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.10
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-04 00:00:00.000000000 Z
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: