bl 0.4.2 → 0.5.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/bl.gemspec +3 -0
- data/lib/bl.rb +2 -0
- data/lib/bl/category.rb +3 -5
- data/lib/bl/cli.rb +17 -15
- data/lib/bl/command.rb +7 -0
- data/lib/bl/file.rb +3 -5
- data/lib/bl/formatter.rb +39 -0
- data/lib/bl/gitrepo.rb +3 -11
- data/lib/bl/groups.rb +3 -5
- data/lib/bl/milestone.rb +12 -20
- data/lib/bl/notifications.rb +1 -2
- data/lib/bl/project.rb +3 -5
- data/lib/bl/recent.rb +1 -2
- data/lib/bl/requestable.rb +4 -0
- data/lib/bl/space.rb +1 -3
- data/lib/bl/type.rb +3 -6
- data/lib/bl/users.rb +3 -4
- data/lib/bl/version.rb +1 -1
- data/lib/bl/watchings.rb +9 -4
- data/lib/bl/webhooks.rb +2 -4
- data/lib/bl/wiki.rb +3 -5
- metadata +32 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc4154b13eadcea9ee471f9bd72e578d4050cbf5
|
4
|
+
data.tar.gz: ca2a158bd9ed0c124e580a7ae91d477c72216e0c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36f3757ac201bb78263826ec67f00511e7c63762d64b193f5e8c5487f3c24470d22963778f7fa0e35bac526bd8c4878e737820b413bed73537a9b88d1ab04f01
|
7
|
+
data.tar.gz: 597304f8282502130a6a3dc6daedf8c9eb7d9387063cf5f260f5ac4221a5acd88691f46daf6de3bc199da6cd214ad5889e9e958bf3ddcd17ad0e0316005ccb06
|
data/bl.gemspec
CHANGED
@@ -24,6 +24,9 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_dependency 'thor', '~> 0.19.4'
|
25
25
|
spec.add_dependency 'backlog_kit', '~> 0.15.0'
|
26
26
|
spec.add_dependency 'paint', '~> 2.0'
|
27
|
+
spec.add_dependency 'hirb', '~> 0.7.3'
|
28
|
+
spec.add_dependency 'hirb-unicode', '~> 0.0.5'
|
29
|
+
|
27
30
|
spec.add_development_dependency 'bundler', '~> 1.14.6'
|
28
31
|
spec.add_development_dependency 'rake', '~> 12.0'
|
29
32
|
spec.add_development_dependency 'minitest', '~> 5.10'
|
data/lib/bl.rb
CHANGED
@@ -7,6 +7,7 @@ require 'bl/version'
|
|
7
7
|
require 'bl/config'
|
8
8
|
require 'bl/requestable'
|
9
9
|
require 'bl/formatting'
|
10
|
+
require 'bl/command'
|
10
11
|
require 'bl/space'
|
11
12
|
require 'bl/type'
|
12
13
|
require 'bl/category'
|
@@ -21,6 +22,7 @@ require 'bl/groups'
|
|
21
22
|
require 'bl/webhooks'
|
22
23
|
require 'bl/notifications'
|
23
24
|
require 'bl/watchings'
|
25
|
+
require 'bl/formatter'
|
24
26
|
require 'bl/cli'
|
25
27
|
|
26
28
|
Bl::CLI.start(ARGV)
|
data/lib/bl/category.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module Bl
|
2
|
-
class Category <
|
3
|
-
include Bl::Requestable
|
2
|
+
class Category < Command
|
4
3
|
|
5
4
|
def initialize(*)
|
6
5
|
@config = Bl::Config.instance
|
@@ -10,9 +9,8 @@ module Bl
|
|
10
9
|
|
11
10
|
desc 'list', 'list categories'
|
12
11
|
def list
|
13
|
-
client.get(@url)
|
14
|
-
|
15
|
-
end
|
12
|
+
res = client.get(@url)
|
13
|
+
puts formatter.render(res.body, fields: %i(id name))
|
16
14
|
end
|
17
15
|
|
18
16
|
desc 'add [NAME...]', 'add categories'
|
data/lib/bl/cli.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
module Bl
|
2
2
|
|
3
|
-
class CLI <
|
4
|
-
include Bl::Requestable
|
5
|
-
include Bl::Formatting
|
3
|
+
class CLI < Command
|
6
4
|
|
7
5
|
ISSUES_PARAMS = {
|
8
6
|
projectId: :array,
|
@@ -111,7 +109,7 @@ module Bl
|
|
111
109
|
desc 'search', 'search issues'
|
112
110
|
options ISSUES_PARAMS
|
113
111
|
def search
|
114
|
-
client.get('issues', options.to_h).body.map {|i| print_issue(i)}
|
112
|
+
client.get('issues', delete_format(options.to_h)).body.map {|i| print_issue(i)}
|
115
113
|
end
|
116
114
|
|
117
115
|
desc 'show KEY', "show an issue's details"
|
@@ -159,7 +157,7 @@ module Bl
|
|
159
157
|
issue_default_options = @config[:issue][:default]
|
160
158
|
res = client.post(
|
161
159
|
'issues',
|
162
|
-
issue_default_options.merge({summary: s}).merge(options)
|
160
|
+
issue_default_options.merge({summary: s}).merge(delete_format(options.to_h))
|
163
161
|
)
|
164
162
|
puts "issue added: #{res.body.issueKey}\t#{res.body.summary}"
|
165
163
|
end
|
@@ -170,7 +168,7 @@ module Bl
|
|
170
168
|
option :comment, type: :string
|
171
169
|
def update(*keys)
|
172
170
|
keys.each do |k|
|
173
|
-
res = client.patch("issues/#{k}", options.to_h)
|
171
|
+
res = client.patch("issues/#{k}", delete_format(options.to_h))
|
174
172
|
puts "issue updated: #{res.body.issueKey}\t#{res.body.summary}"
|
175
173
|
end
|
176
174
|
end
|
@@ -203,23 +201,20 @@ module Bl
|
|
203
201
|
|
204
202
|
desc 'statuses', 'list statuses'
|
205
203
|
def statuses
|
206
|
-
client.get('statuses')
|
207
|
-
|
208
|
-
end
|
204
|
+
res = client.get('statuses')
|
205
|
+
puts formatter.render(res.body, fields: %i(id name))
|
209
206
|
end
|
210
207
|
|
211
208
|
desc 'priorities', 'list priorities'
|
212
209
|
def priorities
|
213
|
-
client.get('priorities')
|
214
|
-
|
215
|
-
end
|
210
|
+
res = client.get('priorities')
|
211
|
+
puts formatter.render(res.body, fields: %i(id name))
|
216
212
|
end
|
217
213
|
|
218
214
|
desc 'resolutions', 'list resolutions'
|
219
215
|
def resolutions
|
220
|
-
client.get('resolutions')
|
221
|
-
|
222
|
-
end
|
216
|
+
res = client.get('resolutions')
|
217
|
+
puts formatter.render(res.body, fields: %i(id name))
|
223
218
|
end
|
224
219
|
|
225
220
|
desc 'doctor', 'check issues'
|
@@ -283,5 +278,12 @@ module Bl
|
|
283
278
|
|
284
279
|
desc 'watchings SUBCOMMAND ...ARGS', ''
|
285
280
|
subcommand 'watchings', Watchings
|
281
|
+
|
282
|
+
private
|
283
|
+
|
284
|
+
def delete_format(h)
|
285
|
+
h.delete('format')
|
286
|
+
h
|
287
|
+
end
|
286
288
|
end
|
287
289
|
end
|
data/lib/bl/command.rb
ADDED
data/lib/bl/file.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module Bl
|
2
|
-
class File <
|
3
|
-
include Bl::Requestable
|
2
|
+
class File < Command
|
4
3
|
|
5
4
|
def initialize(*)
|
6
5
|
@config = Bl::Config.instance
|
@@ -9,9 +8,8 @@ module Bl
|
|
9
8
|
|
10
9
|
desc 'list PATH', 'list files on PATH'
|
11
10
|
def list(path='')
|
12
|
-
client.get("projects/#{@config[:project_key]}/files/metadata/#{path}")
|
13
|
-
|
14
|
-
end
|
11
|
+
res = client.get("projects/#{@config[:project_key]}/files/metadata/#{path}")
|
12
|
+
puts formatter.render(res.body, fields: %i(id type dir name size created updated))
|
15
13
|
end
|
16
14
|
|
17
15
|
desc 'get [ID...]', 'get files'
|
data/lib/bl/formatter.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'hirb'
|
2
|
+
require 'hirb-unicode'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module Bl
|
6
|
+
class Formatter
|
7
|
+
def initialize(format: 'table')
|
8
|
+
@format = case format
|
9
|
+
when 'table'
|
10
|
+
Format::Hirb
|
11
|
+
when 'json'
|
12
|
+
Format::Json
|
13
|
+
else
|
14
|
+
abort 'format must be set to \'table\' or \'json\''
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def render(*args)
|
19
|
+
@format.render(*args)
|
20
|
+
end
|
21
|
+
|
22
|
+
module Format
|
23
|
+
class Hirb < Hirb::Helpers::AutoTable
|
24
|
+
end
|
25
|
+
|
26
|
+
class Json
|
27
|
+
def self.render(objects, fields: [])
|
28
|
+
result = []
|
29
|
+
objects.each do |obj|
|
30
|
+
h = {}
|
31
|
+
fields.map { |f| h.store(f, obj.send(f)) }
|
32
|
+
result << h
|
33
|
+
end
|
34
|
+
result.to_json
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/bl/gitrepo.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module Bl
|
2
|
-
class GitRepo <
|
3
|
-
include Bl::Requestable
|
2
|
+
class GitRepo < Command
|
4
3
|
|
5
4
|
def initialize(*)
|
6
5
|
@config = Bl::Config.instance
|
@@ -10,15 +9,8 @@ module Bl
|
|
10
9
|
|
11
10
|
desc 'list', 'list git repositories'
|
12
11
|
def list
|
13
|
-
client.get(@url)
|
14
|
-
|
15
|
-
repo.id,
|
16
|
-
repo.projectId,
|
17
|
-
repo.name,
|
18
|
-
repo.description,
|
19
|
-
repo.sshUrl
|
20
|
-
].join("\t")
|
21
|
-
end
|
12
|
+
res = client.get(@url)
|
13
|
+
puts formatter.render(res.body, fields: %i(id projectId name description sshUrl))
|
22
14
|
end
|
23
15
|
|
24
16
|
desc 'show ID', 'show a git repository'
|
data/lib/bl/groups.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module Bl
|
2
|
-
class Groups <
|
3
|
-
include Bl::Requestable
|
4
|
-
include Bl::Formatting
|
2
|
+
class Groups < Command
|
5
3
|
|
6
4
|
def initialize(*)
|
7
5
|
@config = Bl::Config.instance
|
@@ -13,13 +11,13 @@ module Bl
|
|
13
11
|
options order: :string, offset: :numeric, count: :numeric
|
14
12
|
def list
|
15
13
|
res = client.get(@url, options.to_h)
|
16
|
-
res.body
|
14
|
+
puts formatter.render(res.body, fields: %i(id name))
|
17
15
|
end
|
18
16
|
|
19
17
|
desc 'show GROUP_ID', ''
|
20
18
|
def show(id)
|
21
19
|
res = client.get("#{@url}/#{id}")
|
22
|
-
|
20
|
+
puts formatter.render(res.body.members, fields: %i(id userId name roleType lang mailAddress))
|
23
21
|
end
|
24
22
|
|
25
23
|
desc 'add GROUP_NAME', ''
|
data/lib/bl/milestone.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
module Bl
|
2
|
-
class Milestone <
|
3
|
-
|
2
|
+
class Milestone < Command
|
3
|
+
|
4
|
+
MILESTONE_PARAMS = {
|
5
|
+
description: :string,
|
6
|
+
startDate: :string,
|
7
|
+
releaseDueDate: :string
|
8
|
+
}
|
4
9
|
|
5
10
|
def initialize(*)
|
6
11
|
@config = Bl::Config.instance
|
@@ -10,23 +15,12 @@ module Bl
|
|
10
15
|
|
11
16
|
desc 'list', 'list milestones'
|
12
17
|
def list
|
13
|
-
client.get(@url)
|
14
|
-
|
15
|
-
v.id,
|
16
|
-
v.projectId,
|
17
|
-
v.name,
|
18
|
-
v.description,
|
19
|
-
v.startDate,
|
20
|
-
v.releaseDueDate,
|
21
|
-
v.archived
|
22
|
-
].join("\t")
|
23
|
-
end
|
18
|
+
res = client.get(@url)
|
19
|
+
puts formatter.render(res.body, fields: %i(id projectId name description startDate releaseDueDate archived))
|
24
20
|
end
|
25
21
|
|
26
22
|
desc 'add [NAME...]', 'add milestones'
|
27
|
-
|
28
|
-
option :startDate, type: :string
|
29
|
-
option :releaseDate, type: :string
|
23
|
+
options MILESTONE_PARAMS
|
30
24
|
def add(*names)
|
31
25
|
names.each do |name|
|
32
26
|
res = client.post(
|
@@ -34,7 +28,7 @@ module Bl
|
|
34
28
|
name: name,
|
35
29
|
description: options[:description],
|
36
30
|
startDate: options[:startDate],
|
37
|
-
|
31
|
+
releaseDueDate: options[:releaseDueDate]
|
38
32
|
)
|
39
33
|
puts "milestone added: #{res.body.id}\t#{res.body.name}"
|
40
34
|
end
|
@@ -42,9 +36,7 @@ module Bl
|
|
42
36
|
|
43
37
|
desc 'update [ID...]', 'update milestones'
|
44
38
|
option :name, type: :string
|
45
|
-
|
46
|
-
option :startDate, type: :string
|
47
|
-
option :releaseDate, type: :string
|
39
|
+
options MILESTONE_PARAMS
|
48
40
|
def update(*ids)
|
49
41
|
ids.each do |id|
|
50
42
|
res = client.patch("#{@url}/#{id}", options)
|
data/lib/bl/notifications.rb
CHANGED
data/lib/bl/project.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module Bl
|
2
|
-
class Project <
|
3
|
-
include Bl::Requestable
|
2
|
+
class Project < Command
|
4
3
|
|
5
4
|
def initialize(*)
|
6
5
|
@config = Bl::Config.instance
|
@@ -10,9 +9,8 @@ module Bl
|
|
10
9
|
|
11
10
|
desc 'list', 'list projects'
|
12
11
|
def list
|
13
|
-
client.get(@url)
|
14
|
-
|
15
|
-
end
|
12
|
+
res = client.get(@url)
|
13
|
+
puts formatter.render(res.body, fields: %i(id projectKey name))
|
16
14
|
end
|
17
15
|
|
18
16
|
desc 'status ID', 'show project status'
|
data/lib/bl/recent.rb
CHANGED
data/lib/bl/requestable.rb
CHANGED
data/lib/bl/space.rb
CHANGED
data/lib/bl/type.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module Bl
|
2
|
-
class Type <
|
3
|
-
include Bl::Requestable
|
4
|
-
include Bl::Formatting
|
2
|
+
class Type < Command
|
5
3
|
|
6
4
|
def initialize(*)
|
7
5
|
@config = Bl::Config.instance
|
@@ -11,9 +9,8 @@ module Bl
|
|
11
9
|
|
12
10
|
desc 'list', 'list issue types'
|
13
11
|
def list
|
14
|
-
client.get(@url)
|
15
|
-
|
16
|
-
end
|
12
|
+
res = client.get(@url)
|
13
|
+
puts formatter.render(res.body, fields: %i(id name color))
|
17
14
|
end
|
18
15
|
|
19
16
|
desc 'add [NAME...]', 'add types'
|
data/lib/bl/users.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module Bl
|
2
|
-
class Users <
|
3
|
-
include Bl::Requestable
|
4
|
-
include Bl::Formatting
|
2
|
+
class Users < Command
|
5
3
|
|
6
4
|
def initialize(*)
|
7
5
|
@config = Bl::Config.instance
|
@@ -11,7 +9,8 @@ module Bl
|
|
11
9
|
|
12
10
|
desc 'list', 'list users'
|
13
11
|
def list
|
14
|
-
client.get('users')
|
12
|
+
res = client.get('users')
|
13
|
+
puts formatter.render(res.body, fields: %i(id userId name roleType lang mailAddress))
|
15
14
|
end
|
16
15
|
|
17
16
|
desc 'show USER_ID', ''
|
data/lib/bl/version.rb
CHANGED
data/lib/bl/watchings.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module Bl
|
2
|
-
class Watchings <
|
3
|
-
include Bl::Requestable
|
4
|
-
include Bl::Formatting
|
2
|
+
class Watchings < Command
|
5
3
|
|
6
4
|
WATCHINGS_PARAMS = {
|
7
5
|
order: :string,
|
@@ -21,7 +19,7 @@ module Bl
|
|
21
19
|
desc 'list USER_ID', ''
|
22
20
|
options WATCHINGS_PARAMS
|
23
21
|
def list(id)
|
24
|
-
res = client.get("/users/#{id}/#{@url}", options.to_h)
|
22
|
+
res = client.get("/users/#{id}/#{@url}", delete_format(options.to_h))
|
25
23
|
res.body.map { |t| print_watch_target(t) }
|
26
24
|
end
|
27
25
|
|
@@ -73,5 +71,12 @@ module Bl
|
|
73
71
|
res = client.post("/users/#{id}/watchings/markAsChecked")
|
74
72
|
puts 'watch mark as checked'
|
75
73
|
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
def delete_format(h)
|
78
|
+
h.delete('format')
|
79
|
+
h
|
80
|
+
end
|
76
81
|
end
|
77
82
|
end
|
data/lib/bl/webhooks.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module Bl
|
2
|
-
class Webhooks <
|
3
|
-
include Bl::Requestable
|
4
|
-
include Bl::Formatting
|
2
|
+
class Webhooks < Command
|
5
3
|
|
6
4
|
WEBHOOK_PARAMS = {
|
7
5
|
name: :string,
|
@@ -20,7 +18,7 @@ module Bl
|
|
20
18
|
desc 'list', ''
|
21
19
|
def list
|
22
20
|
res = client.get(@url)
|
23
|
-
res.body
|
21
|
+
puts formatter.render(res.body, fields: %i(id name description hookUrl))
|
24
22
|
end
|
25
23
|
|
26
24
|
desc 'show WEBHOOK_ID', ''
|
data/lib/bl/wiki.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module Bl
|
2
|
-
class Wiki <
|
3
|
-
include Bl::Requestable
|
2
|
+
class Wiki < Command
|
4
3
|
|
5
4
|
def initialize(*)
|
6
5
|
@config = Bl::Config.instance
|
@@ -10,9 +9,8 @@ module Bl
|
|
10
9
|
|
11
10
|
desc 'list', 'list wikis'
|
12
11
|
def list
|
13
|
-
client.get(@url, projectIdOrKey: @config[:project_key])
|
14
|
-
|
15
|
-
end
|
12
|
+
res = client.get(@url, projectIdOrKey: @config[:project_key])
|
13
|
+
puts formatter.render(res.body, fields: %i(id projectId name updated))
|
16
14
|
end
|
17
15
|
|
18
16
|
desc 'show ID', "show a wiki's content"
|
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.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- saki
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -52,6 +52,34 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '2.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: hirb
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.7.3
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.7.3
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: hirb-unicode
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.0.5
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.0.5
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: bundler
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,8 +171,10 @@ files:
|
|
143
171
|
- lib/bl.rb
|
144
172
|
- lib/bl/category.rb
|
145
173
|
- lib/bl/cli.rb
|
174
|
+
- lib/bl/command.rb
|
146
175
|
- lib/bl/config.rb
|
147
176
|
- lib/bl/file.rb
|
177
|
+
- lib/bl/formatter.rb
|
148
178
|
- lib/bl/formatting.rb
|
149
179
|
- lib/bl/gitrepo.rb
|
150
180
|
- lib/bl/groups.rb
|