bl 0.3.1 → 0.4.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/.gitignore +1 -0
- data/README.md +33 -38
- data/lib/bl.rb +5 -0
- data/lib/bl/cli.rb +15 -30
- data/lib/bl/formatting.rb +41 -0
- data/lib/bl/groups.rb +48 -0
- data/lib/bl/notifications.rb +39 -0
- data/lib/bl/users.rb +86 -0
- data/lib/bl/version.rb +1 -1
- data/lib/bl/watchings.rb +77 -0
- data/lib/bl/webhooks.rb +55 -0
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15d8d5ac4f5758bc9d04bcf3712361004a1f54bc
|
4
|
+
data.tar.gz: 97c3f152219dd02ba579ca23398fcb61321919f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f07c599d63592fa6657737d2756eacd4bd3e918a28b2608e38656963289ec7eb4ac894b68a944b9bfd3cf02810398439f4f57816620bf6947c5ffa1c41600283
|
7
|
+
data.tar.gz: 80b0dd6c11cd1a7dbdfe9f716e691f0b204f344737343c82f8b0690118cb9554a4282ad90ce7e1b507179d2e302a6e17bbd0f395a31606d94078d479e65b7b36
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -42,34 +42,39 @@ bl uses `~/.bl.yml` for configuration.
|
|
42
42
|
|
43
43
|
## Usage
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
45
|
+
```
|
46
|
+
bl add [SUBJECT...] # add issues
|
47
|
+
bl browse KEY # browse an issue
|
48
|
+
bl category SUBCOMMAND ...ARGS # manage categories
|
49
|
+
bl close [KEY...] # close issues
|
50
|
+
bl config # show config
|
51
|
+
bl count # count issues
|
52
|
+
bl doctor # check issues
|
53
|
+
bl edit KEY # edit issues' description by $EDITOR
|
54
|
+
bl file SUBCOMMAND ...ARGS # manage files
|
55
|
+
bl gitrepo SUBCOMMAND ...ARGS # show gitrepos
|
56
|
+
bl groups SUBCOMMAND ...ARGS #
|
57
|
+
bl help [COMMAND] # Describe available commands or one specific command
|
58
|
+
bl init # initialize a default config file
|
59
|
+
bl list # list issues by typical ways
|
60
|
+
bl milestone SUBCOMMAND ...ARGS # manage milestones
|
61
|
+
bl notifications SUBCOMMAND ...ARGS #
|
62
|
+
bl priorities # list priorities
|
63
|
+
bl project SUBCOMMAND ...ARGS # manage projects
|
64
|
+
bl recent SUBCOMMAND ...ARGS # list recent stuff
|
65
|
+
bl resolutions # list resolutions
|
66
|
+
bl search # search issues
|
67
|
+
bl show KEY # show an issue's details
|
68
|
+
bl space SUBCOMMAND ...ARGS #
|
69
|
+
bl statuses # list statuses
|
70
|
+
bl type SUBCOMMAND ...ARGS # manage types
|
71
|
+
bl update [KEY...] # update issues
|
72
|
+
bl users SUBCOMMAND ...ARGS #
|
73
|
+
bl version # show version
|
74
|
+
bl watchings SUBCOMMAND ...ARGS #
|
75
|
+
bl webhooks SUBCOMMAND ...ARGS #
|
76
|
+
bl wiki SUBCOMMAND ...ARGS # manage wikis
|
77
|
+
```
|
73
78
|
|
74
79
|
View global or command specific help:
|
75
80
|
|
@@ -134,16 +139,6 @@ Download file:
|
|
134
139
|
|
135
140
|
bl file get 12345
|
136
141
|
|
137
|
-
### Git repository
|
138
|
-
|
139
|
-
List repositories:
|
140
|
-
|
141
|
-
bl gitrepo list
|
142
|
-
|
143
|
-
Show repository:
|
144
|
-
|
145
|
-
bl gitrepo show 12345
|
146
|
-
|
147
142
|
## Backlog API
|
148
143
|
|
149
144
|
http://developer.nulab-inc.com/docs/backlog
|
data/lib/bl.rb
CHANGED
@@ -16,6 +16,11 @@ require 'bl/project'
|
|
16
16
|
require 'bl/recent'
|
17
17
|
require 'bl/file'
|
18
18
|
require 'bl/gitrepo'
|
19
|
+
require 'bl/users'
|
20
|
+
require 'bl/groups'
|
21
|
+
require 'bl/webhooks'
|
22
|
+
require 'bl/notifications'
|
23
|
+
require 'bl/watchings'
|
19
24
|
require 'bl/cli'
|
20
25
|
|
21
26
|
Bl::CLI.start(ARGV)
|
data/lib/bl/cli.rb
CHANGED
@@ -222,36 +222,6 @@ module Bl
|
|
222
222
|
end
|
223
223
|
end
|
224
224
|
|
225
|
-
desc 'users', 'list space users'
|
226
|
-
def users
|
227
|
-
client.get('users').body.each do |u|
|
228
|
-
puts [u.id, u.userId, u.name, u.roleType, u.lang, u.mailAddress].join("\t")
|
229
|
-
end
|
230
|
-
end
|
231
|
-
|
232
|
-
desc 'user-activities USER_ID', "list user's activities"
|
233
|
-
options activityTypeId: :array, minId: :numeric, maxId: :numeric, count: :numeric, order: :string
|
234
|
-
def user_activities(user_id)
|
235
|
-
client.get("/users/#{user_id}/activities").body.each do |a|
|
236
|
-
print_activity(a)
|
237
|
-
end
|
238
|
-
end
|
239
|
-
|
240
|
-
desc 'user-stars-count [USER_ID...]', 'count user stars'
|
241
|
-
options since: :string, until: :string
|
242
|
-
def user_stars_count(*user_ids)
|
243
|
-
user_ids.each do |user_id|
|
244
|
-
p client.get("/users/#{user_id}/stars/count", options.to_h).body.count
|
245
|
-
end
|
246
|
-
end
|
247
|
-
|
248
|
-
desc 'notifications', 'list notifications'
|
249
|
-
def notifications
|
250
|
-
client.get('notifications').body.each do |n|
|
251
|
-
puts n.pretty_inspect
|
252
|
-
end
|
253
|
-
end
|
254
|
-
|
255
225
|
desc 'doctor', 'check issues'
|
256
226
|
def doctor
|
257
227
|
unassigned_issues = client.get('issues', assigneeId: [-1]).body
|
@@ -275,6 +245,12 @@ module Bl
|
|
275
245
|
desc 'space SUBCOMMAND ...ARGS', ''
|
276
246
|
subcommand 'space', Space
|
277
247
|
|
248
|
+
desc 'users SUBCOMMAND ...ARGS', ''
|
249
|
+
subcommand 'users', Users
|
250
|
+
|
251
|
+
desc 'groups SUBCOMMAND ...ARGS', ''
|
252
|
+
subcommand 'groups', Groups
|
253
|
+
|
278
254
|
desc 'type SUBCOMMAND ...ARGS', 'manage types'
|
279
255
|
subcommand 'type', Type
|
280
256
|
|
@@ -298,5 +274,14 @@ module Bl
|
|
298
274
|
|
299
275
|
desc 'gitrepo SUBCOMMAND ...ARGS', 'show gitrepos'
|
300
276
|
subcommand 'gitrepo', GitRepo
|
277
|
+
|
278
|
+
desc 'webhooks SUBCOMMAND ...ARGS', ''
|
279
|
+
subcommand 'webhooks', Webhooks
|
280
|
+
|
281
|
+
desc 'notifications SUBCOMMAND ...ARGS', ''
|
282
|
+
subcommand 'notifications', Notifications
|
283
|
+
|
284
|
+
desc 'watchings SUBCOMMAND ...ARGS', ''
|
285
|
+
subcommand 'watchings', Watchings
|
301
286
|
end
|
302
287
|
end
|
data/lib/bl/formatting.rb
CHANGED
@@ -80,5 +80,46 @@ module Bl
|
|
80
80
|
a.created
|
81
81
|
].join("\t")
|
82
82
|
end
|
83
|
+
|
84
|
+
def print_user(user)
|
85
|
+
puts [
|
86
|
+
user.id,
|
87
|
+
user.userId,
|
88
|
+
user.name,
|
89
|
+
user.roleType,
|
90
|
+
user.lang,
|
91
|
+
user.mailAddress
|
92
|
+
].join("\t")
|
93
|
+
end
|
94
|
+
|
95
|
+
def print_group(group)
|
96
|
+
puts [
|
97
|
+
group.id,
|
98
|
+
group.name
|
99
|
+
].join("\t")
|
100
|
+
end
|
101
|
+
|
102
|
+
def print_group_members(members)
|
103
|
+
members.map { |m| print_user(m) }
|
104
|
+
end
|
105
|
+
|
106
|
+
def print_group_and_members(group)
|
107
|
+
print_group(group)
|
108
|
+
puts 'members:'
|
109
|
+
print_group_members(group.members)
|
110
|
+
end
|
111
|
+
|
112
|
+
def print_webhook(webhook)
|
113
|
+
puts [
|
114
|
+
webhook.id,
|
115
|
+
webhook.name,
|
116
|
+
webhook.description,
|
117
|
+
webhook.hookUrl
|
118
|
+
].join("\t")
|
119
|
+
end
|
120
|
+
|
121
|
+
def print_watch_target(target)
|
122
|
+
p target
|
123
|
+
end
|
83
124
|
end
|
84
125
|
end
|
data/lib/bl/groups.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
module Bl
|
2
|
+
class Groups < Thor
|
3
|
+
include Bl::Requestable
|
4
|
+
include Bl::Formatting
|
5
|
+
|
6
|
+
def initialize(*)
|
7
|
+
@config = Bl::Config.instance
|
8
|
+
@url = 'groups'
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'list', ''
|
13
|
+
options order: :string, offset: :numeric, count: :numeric
|
14
|
+
def list
|
15
|
+
res = client.get(@url, options.to_h)
|
16
|
+
res.body.map { |g| print_group(g) }
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'show GROUP_ID', ''
|
20
|
+
def show(id)
|
21
|
+
res = client.get("#{@url}/#{id}")
|
22
|
+
print_group_and_members(res.body)
|
23
|
+
end
|
24
|
+
|
25
|
+
desc 'add GROUP_NAME', ''
|
26
|
+
options members: :array
|
27
|
+
def add(name)
|
28
|
+
res = client.post(@url, {name: name}.merge(options))
|
29
|
+
puts 'group added'
|
30
|
+
print_group_and_members(res.body)
|
31
|
+
end
|
32
|
+
|
33
|
+
desc 'update GROUP_ID', ''
|
34
|
+
options name: :string, members: :array
|
35
|
+
def update(id)
|
36
|
+
res = client.patch("#{@url}/#{id}", options.to_h)
|
37
|
+
puts 'group updated'
|
38
|
+
print_group_and_members(res.body)
|
39
|
+
end
|
40
|
+
|
41
|
+
desc 'delete GROUP_ID', ''
|
42
|
+
def delete(id)
|
43
|
+
res = client.delete("#{@url}/#{id}")
|
44
|
+
puts 'group deleted'
|
45
|
+
print_group_and_members(res.body)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Bl
|
2
|
+
class Notifications < Thor
|
3
|
+
include Bl::Requestable
|
4
|
+
|
5
|
+
def initialize(*)
|
6
|
+
@config = Bl::Config.instance
|
7
|
+
@url = 'notifications'
|
8
|
+
super
|
9
|
+
end
|
10
|
+
|
11
|
+
desc 'list', ''
|
12
|
+
options minId: :numeric, maxId: :numeric, count: :numeric, order: :string
|
13
|
+
def list
|
14
|
+
res = client.get(@url, options.to_h)
|
15
|
+
res.body.map { |n| puts n.pretty_inspect }
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'count', ''
|
19
|
+
options alreadyRead: :boolean, resourceAlreadyRead: :boolean
|
20
|
+
def count
|
21
|
+
# puts client.get("#{@url}/count").body.count
|
22
|
+
# TODO fix nil error
|
23
|
+
end
|
24
|
+
|
25
|
+
desc 'mark-as-read', ''
|
26
|
+
def mark_as_read
|
27
|
+
res = client.post("#{@url}/markAsRead")
|
28
|
+
puts 'notifications mark as readed'
|
29
|
+
puts res.body.count
|
30
|
+
end
|
31
|
+
|
32
|
+
desc 'read NOTIFICATIONS_ID', ''
|
33
|
+
def read(id)
|
34
|
+
res = client.post("#{@url}/#{id}/markAsRead")
|
35
|
+
puts "notifications #{id} readed"
|
36
|
+
puts res.pretty_inspect
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/bl/users.rb
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
module Bl
|
2
|
+
class Users < Thor
|
3
|
+
include Bl::Requestable
|
4
|
+
include Bl::Formatting
|
5
|
+
|
6
|
+
def initialize(*)
|
7
|
+
@config = Bl::Config.instance
|
8
|
+
@url = 'users'
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'list', 'list users'
|
13
|
+
def list
|
14
|
+
client.get('users').body.map { |u| print_user(u) }
|
15
|
+
end
|
16
|
+
|
17
|
+
desc 'show USER_ID', ''
|
18
|
+
def show(id)
|
19
|
+
res = client.get("#{@url}/#{id}")
|
20
|
+
print_user(res.body)
|
21
|
+
end
|
22
|
+
|
23
|
+
desc 'add USER_ID PASSWORD NAME MAIL_ADDRESS ROLE_TYPE', ''
|
24
|
+
def add(id, pass, name, mail_address, role_type)
|
25
|
+
res = client.post("#{@url}", userId: id, password: pass, name: name, mailAddress: mail_address, roleType: role_type)
|
26
|
+
print_user(res.body)
|
27
|
+
end
|
28
|
+
|
29
|
+
USER_PARAMS = {
|
30
|
+
password: :string,
|
31
|
+
name: :string,
|
32
|
+
mailAddress: :string,
|
33
|
+
roleType: :numeric
|
34
|
+
}
|
35
|
+
desc 'update USER_ID', ''
|
36
|
+
options USER_PARAMS
|
37
|
+
def update(id)
|
38
|
+
res = client.patch("#{@url}/#{id}", options.to_h)
|
39
|
+
puts 'user updated:'
|
40
|
+
print_user(res.body)
|
41
|
+
end
|
42
|
+
|
43
|
+
desc 'delete', ''
|
44
|
+
def delete(id)
|
45
|
+
res = client.delete("#{@url}/#{id}")
|
46
|
+
puts 'user deleted'
|
47
|
+
print_user(res.body)
|
48
|
+
end
|
49
|
+
|
50
|
+
desc 'myself', ''
|
51
|
+
def myself
|
52
|
+
res = client.get("#{@url}/myself")
|
53
|
+
print_user(res.body)
|
54
|
+
end
|
55
|
+
|
56
|
+
desc 'icon ID', ''
|
57
|
+
def icon(id)
|
58
|
+
# res = client.get("#{@url}/#{id}/icon")
|
59
|
+
# TODO fix nil error
|
60
|
+
end
|
61
|
+
|
62
|
+
desc 'activities USER_ID', "list user's activities"
|
63
|
+
options activityTypeId: :array, minId: :numeric, maxId: :numeric, count: :numeric, order: :string
|
64
|
+
def activities(user_id)
|
65
|
+
res = client.get("/users/#{user_id}/activities")
|
66
|
+
res.body.map { |a| print_activity(a) }
|
67
|
+
end
|
68
|
+
|
69
|
+
desc 'stars [USER_ID...]', ''
|
70
|
+
options minId: :numeric, maxId: :numeric, count: :numeric, order: :string
|
71
|
+
def stars(*user_ids)
|
72
|
+
user_ids.each do |user_id|
|
73
|
+
res = client.get("/users/#{user_id}/stars", options.to_h)
|
74
|
+
res.body.map { |s| p s }
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
desc 'stars-count [USER_ID...]', "count user's stars"
|
79
|
+
options since: :string, until: :string
|
80
|
+
def stars_count(*user_ids)
|
81
|
+
user_ids.each do |user_id|
|
82
|
+
p client.get("/users/#{user_id}/stars/count", options.to_h).body.count
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
data/lib/bl/version.rb
CHANGED
data/lib/bl/watchings.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
module Bl
|
2
|
+
class Watchings < Thor
|
3
|
+
include Bl::Requestable
|
4
|
+
include Bl::Formatting
|
5
|
+
|
6
|
+
WATCHINGS_PARAMS = {
|
7
|
+
order: :string,
|
8
|
+
sort: :string,
|
9
|
+
count: :numeric,
|
10
|
+
offset: :numeric,
|
11
|
+
resourceAlreadyRead: :boolean,
|
12
|
+
issueId: :array
|
13
|
+
}
|
14
|
+
|
15
|
+
def initialize(*)
|
16
|
+
@config = Bl::Config.instance
|
17
|
+
@url = 'watchings'
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
21
|
+
desc 'list USER_ID', ''
|
22
|
+
options WATCHINGS_PARAMS
|
23
|
+
def list(id)
|
24
|
+
res = client.get("/users/#{id}/#{@url}", options.to_h)
|
25
|
+
res.body.map { |t| print_watch_target(t) }
|
26
|
+
end
|
27
|
+
|
28
|
+
desc 'count USER_ID', ''
|
29
|
+
options resourceAlreadyRead: :boolean, alreadyRead: :boolean
|
30
|
+
def count(id)
|
31
|
+
res = client.get("/users/#{id}/#{@url}/count")
|
32
|
+
puts res.body.count
|
33
|
+
end
|
34
|
+
|
35
|
+
desc 'show WATCHING_ID', ''
|
36
|
+
def show(id)
|
37
|
+
res = client.get("watchings/#{id}")
|
38
|
+
print_watch_target(res.body)
|
39
|
+
end
|
40
|
+
|
41
|
+
desc 'add', ''
|
42
|
+
options issueIdOrKey: :required, note: :string
|
43
|
+
def add
|
44
|
+
res = client.post('watchings', options.to_h)
|
45
|
+
puts 'watch added'
|
46
|
+
print_watch_target(res.body)
|
47
|
+
end
|
48
|
+
|
49
|
+
desc 'update WATCHING_ID', ''
|
50
|
+
option note: :string
|
51
|
+
def update(id)
|
52
|
+
# TODO fix conflict with issue update command
|
53
|
+
# res = client.patch("watchings/#{id}", option.to_h)
|
54
|
+
# puts 'watch updated'
|
55
|
+
# print_watch_target(res.body)
|
56
|
+
end
|
57
|
+
|
58
|
+
desc 'delete WATCHING_ID', ''
|
59
|
+
def delete(id)
|
60
|
+
res = client.delete("watchings/#{id}")
|
61
|
+
puts 'watch deleted'
|
62
|
+
print_watch_target(res.body)
|
63
|
+
end
|
64
|
+
|
65
|
+
desc 'mark-as-read WATCHING_ID', ''
|
66
|
+
def mark_as_read(id)
|
67
|
+
res = client.post("watchings/#{id}/markAsRead")
|
68
|
+
puts 'watch mark as read'
|
69
|
+
end
|
70
|
+
|
71
|
+
desc 'mark-as-checked USER_ID', ''
|
72
|
+
def mark_as_checked(id)
|
73
|
+
res = client.post("/users/#{id}/watchings/markAsChecked")
|
74
|
+
puts 'watch mark as checked'
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
data/lib/bl/webhooks.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
module Bl
|
2
|
+
class Webhooks < Thor
|
3
|
+
include Bl::Requestable
|
4
|
+
include Bl::Formatting
|
5
|
+
|
6
|
+
WEBHOOK_PARAMS = {
|
7
|
+
name: :string,
|
8
|
+
description: :string,
|
9
|
+
hookUrl: :string,
|
10
|
+
allEvent: :boolean,
|
11
|
+
activityTypeIds: :array
|
12
|
+
}
|
13
|
+
|
14
|
+
def initialize(*)
|
15
|
+
@config = Bl::Config.instance
|
16
|
+
@url = "projects/#{@config[:project_key]}/webhooks"
|
17
|
+
super
|
18
|
+
end
|
19
|
+
|
20
|
+
desc 'list', ''
|
21
|
+
def list
|
22
|
+
res = client.get(@url)
|
23
|
+
res.body.map { |w| print_webhook(w) }
|
24
|
+
end
|
25
|
+
|
26
|
+
desc 'show WEBHOOK_ID', ''
|
27
|
+
def show(id)
|
28
|
+
res = client.get("#{@url}/#{id}")
|
29
|
+
print_webhook(res.body)
|
30
|
+
end
|
31
|
+
|
32
|
+
desc 'add', ''
|
33
|
+
options WEBHOOK_PARAMS
|
34
|
+
def add
|
35
|
+
res = client.post(@url, options.to_h)
|
36
|
+
puts 'webhook added'
|
37
|
+
print_webhook(res.body)
|
38
|
+
end
|
39
|
+
|
40
|
+
desc 'update WEBHOOK_ID', ''
|
41
|
+
options WEBHOOK_PARAMS
|
42
|
+
def update(id)
|
43
|
+
res = client.patch("#{@url}/#{id}", options.to_h)
|
44
|
+
puts 'webhook updated'
|
45
|
+
print_webhook(res.body)
|
46
|
+
end
|
47
|
+
|
48
|
+
desc 'delete WEBHOOK_ID', ''
|
49
|
+
def delete(id)
|
50
|
+
res = client.delete("#{@url}/#{id}")
|
51
|
+
puts 'webhook deleted'
|
52
|
+
print_webhook(res.body)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
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.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- saki
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -147,13 +147,18 @@ files:
|
|
147
147
|
- lib/bl/file.rb
|
148
148
|
- lib/bl/formatting.rb
|
149
149
|
- lib/bl/gitrepo.rb
|
150
|
+
- lib/bl/groups.rb
|
150
151
|
- lib/bl/milestone.rb
|
152
|
+
- lib/bl/notifications.rb
|
151
153
|
- lib/bl/project.rb
|
152
154
|
- lib/bl/recent.rb
|
153
155
|
- lib/bl/requestable.rb
|
154
156
|
- lib/bl/space.rb
|
155
157
|
- lib/bl/type.rb
|
158
|
+
- lib/bl/users.rb
|
156
159
|
- lib/bl/version.rb
|
160
|
+
- lib/bl/watchings.rb
|
161
|
+
- lib/bl/webhooks.rb
|
157
162
|
- lib/bl/wiki.rb
|
158
163
|
homepage: https://github.com/sakihet/bl
|
159
164
|
licenses:
|
@@ -175,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
180
|
version: '0'
|
176
181
|
requirements: []
|
177
182
|
rubyforge_project:
|
178
|
-
rubygems_version: 2.
|
183
|
+
rubygems_version: 2.6.11
|
179
184
|
signing_key:
|
180
185
|
specification_version: 4
|
181
186
|
summary: bl is a command line tool for Backlog.
|