trellist 0.5.1 → 0.6.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 +7 -7
- data/README.md +21 -3
- data/bin/trellist +22 -4
- data/lib/trellist/client.rb +5 -1
- data/lib/trellist/version.rb +1 -1
- data/spec/lib/trellist/client_spec.rb +14 -0
- data/spec/vcr_cassettes/client/board_labels_sets_client/labels.yml +133 -0
- data/trellist.gemspec +3 -3
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8dbe49ca76242bde1de10cc5ba377e303e31e483
|
4
|
+
data.tar.gz: e8601078d7249476f591b3c67f5250549c880abf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5dfd38f5f69b80376b1bb8d37db81d5f36ca3aad77eeab233105fb915b2c0d112541e20b0ec11823618342c9f90de589a03073ff2d67d6af0913ab8b830fe1b4
|
7
|
+
data.tar.gz: e0b370506b2e6b516b5f3d9bb91089e0c50125dae558e6087444aab439f649487101a6b5f3dea74646df0e4ca91d040bd5e8c4f28746a31defa22442b5d40d3f
|
data/Gemfile.lock
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
trellist (0.
|
5
|
-
gli (= 2.
|
4
|
+
trellist (0.6.0)
|
5
|
+
gli (= 2.15.0)
|
6
6
|
highline (= 1.7.8)
|
7
7
|
paint (= 2.0.0)
|
8
|
-
ruby-trello (=
|
8
|
+
ruby-trello (= 2.0.0)
|
9
9
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
@@ -49,13 +49,13 @@ GEM
|
|
49
49
|
unf (>= 0.0.5, < 1.0.0)
|
50
50
|
ffi (1.9.14)
|
51
51
|
gherkin (4.0.0)
|
52
|
-
gli (2.
|
52
|
+
gli (2.15.0)
|
53
53
|
hashdiff (0.3.2)
|
54
54
|
highline (1.7.8)
|
55
55
|
http-cookie (1.0.3)
|
56
56
|
domain_name (~> 0.5)
|
57
|
-
i18n (0.
|
58
|
-
json (2.0.
|
57
|
+
i18n (0.8.0)
|
58
|
+
json (2.0.3)
|
59
59
|
mime-types (3.1)
|
60
60
|
mime-types-data (~> 3.2015)
|
61
61
|
mime-types-data (3.2016.0521)
|
@@ -85,7 +85,7 @@ GEM
|
|
85
85
|
diff-lcs (>= 1.2.0, < 2.0)
|
86
86
|
rspec-support (~> 3.5.0)
|
87
87
|
rspec-support (3.5.0)
|
88
|
-
ruby-trello (
|
88
|
+
ruby-trello (2.0.0)
|
89
89
|
activemodel (>= 3.2.0)
|
90
90
|
addressable (~> 2.3)
|
91
91
|
json
|
data/README.md
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# trellist
|
2
2
|
|
3
|
-
A CLI tool for getting Trello card
|
3
|
+
A CLI tool for getting Trello card titles and links in various
|
4
4
|
formats (default: markdown).
|
5
5
|
|
6
|
-

|
6
|
+
[](https://travis-ci.org/chaserx/trellist)
|
7
7
|
|
8
8
|
## Usage
|
9
9
|
|
@@ -31,10 +31,28 @@ Otherwise you'll need to supply your key and token as flags such as:
|
|
31
31
|
- `trellist cards --format=plain` **just links**
|
32
32
|
- `trellist cards --format=html` **html**
|
33
33
|
|
34
|
+
#### Link prefix and suffix
|
35
|
+
|
36
|
+
You can supply optional prefix and suffix flags to alter the output. However, prefix and suffix only work for markdown and HTML formats.
|
37
|
+
|
38
|
+
example. `trellist cards --format=markdown --prefix='* '` will return
|
39
|
+
|
40
|
+
`* [Card Title](https://trello.com/c/1moT1m3)`
|
41
|
+
|
42
|
+
Similar with suffix.
|
43
|
+
|
44
|
+
#### Filtering cards
|
45
|
+
|
46
|
+
You can filter cards by their labels.
|
47
|
+
|
48
|
+
example. `trellist cards --label='foo'`
|
49
|
+
|
34
50
|
## Development
|
35
51
|
|
36
52
|
- `bundle install`
|
37
|
-
- `bundle exec bin/trellist cards`
|
53
|
+
- `bundle exec ./bin/trellist cards` you have to use bundle exec in development mode
|
54
|
+
|
55
|
+
Run `rake -T` to view helpful build and release tasks.
|
38
56
|
|
39
57
|
## Contribution
|
40
58
|
|
data/bin/trellist
CHANGED
@@ -30,21 +30,38 @@ config_file '.trellist'
|
|
30
30
|
# switch [:s,:switch]
|
31
31
|
|
32
32
|
# Global flags
|
33
|
-
desc '
|
33
|
+
desc 'Your Trello board id; like: ABC123XR'
|
34
34
|
default_value '' # empty we'll raise if empty
|
35
35
|
arg_name 'board'
|
36
36
|
flag [:b,:board], required: true
|
37
37
|
|
38
|
-
desc '
|
38
|
+
desc 'Your Trello TRELLO_DEVELOPER_PUBLIC_KEY'
|
39
39
|
default_value '' # empty we'll raise if empty
|
40
40
|
arg_name 'TRELLO_DEVELOPER_PUBLIC_KEY'
|
41
41
|
flag [:k,:key], required: true
|
42
42
|
|
43
|
-
desc '
|
43
|
+
desc 'Your Trello TRELLO_MEMBER_TOKEN'
|
44
44
|
default_value '' # empty we'll raise if empty
|
45
45
|
arg_name 'TRELLO_MEMBER_TOKEN'
|
46
46
|
flag [:t,:token], required: true
|
47
47
|
|
48
|
+
desc 'Get labels from a board'
|
49
|
+
command :labels do |c|
|
50
|
+
c.desc 'Get labels from a board'
|
51
|
+
c.action do |global_options, options, args|
|
52
|
+
@client = Client.new(key: global_options[:key],
|
53
|
+
token: global_options[:token],
|
54
|
+
board_id: global_options[:board])
|
55
|
+
# set @client.labels
|
56
|
+
@client.board_labels
|
57
|
+
raise "There were no labels for #{global_options[:board]}" if @client.labels.empty?
|
58
|
+
|
59
|
+
@client.labels.each_with_index do |label, index|
|
60
|
+
puts Paint["#{index}. #{label.name}", COLORS[:white]]
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
48
65
|
desc 'Get cards from a list on your board'
|
49
66
|
command :cards do |c|
|
50
67
|
c.desc 'Gets cards from a selection of lists from the provided Trello board'
|
@@ -67,7 +84,8 @@ command :cards do |c|
|
|
67
84
|
end
|
68
85
|
|
69
86
|
@client.lists.each_with_index do |list, index|
|
70
|
-
|
87
|
+
print Paint["#{index}. ", COLORS[:cyan]]
|
88
|
+
print Paint["#{list.name}\n", COLORS[:white]]
|
71
89
|
end
|
72
90
|
# ask for which list or to quit
|
73
91
|
@answer = ''
|
data/lib/trellist/client.rb
CHANGED
@@ -21,7 +21,7 @@ end
|
|
21
21
|
|
22
22
|
class Client
|
23
23
|
using TrelloCardRefinements
|
24
|
-
attr_accessor :lists, :cards, :board
|
24
|
+
attr_accessor :labels, :lists, :cards, :board
|
25
25
|
|
26
26
|
def initialize(board_id:, key:, token:)
|
27
27
|
@board = board_id
|
@@ -38,6 +38,10 @@ class Client
|
|
38
38
|
@lists = Trello::Board.find(@board).lists
|
39
39
|
end
|
40
40
|
|
41
|
+
def board_labels
|
42
|
+
@labels = Trello::Board.find(@board).labels
|
43
|
+
end
|
44
|
+
|
41
45
|
def list_cards(list_id, label: nil)
|
42
46
|
@cards = Trello::List.find(list_id).cards
|
43
47
|
@cards.select! { |card| card.labels.map(&:name).include?(label) } if label
|
data/lib/trellist/version.rb
CHANGED
@@ -105,4 +105,18 @@ RSpec.describe 'Client' do
|
|
105
105
|
end
|
106
106
|
end
|
107
107
|
end
|
108
|
+
|
109
|
+
describe 'board_labels' do
|
110
|
+
before do
|
111
|
+
@client = Client.new(board_id: 't3anNqoJ',
|
112
|
+
key: 'myTRELLOkey',
|
113
|
+
token: 'myTRELLOtoken')
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'sets @client.labels' do
|
117
|
+
@client.board_labels
|
118
|
+
expect(@client.labels).not_to be_nil
|
119
|
+
expect(@client.labels.size).to eq(6)
|
120
|
+
end
|
121
|
+
end
|
108
122
|
end
|
@@ -0,0 +1,133 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.trello.com/1/boards/t3anNqoJ?key=myTRELLOkey&token=myTRELLOtoken
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*"
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- rest-client/2.0.0 (darwin16.3.0 x86_64) ruby/2.4.0p0
|
16
|
+
Host:
|
17
|
+
- api.trello.com
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Cache-Control:
|
24
|
+
- max-age=0, must-revalidate, no-cache, no-store
|
25
|
+
X-Content-Type-Options:
|
26
|
+
- nosniff
|
27
|
+
Strict-Transport-Security:
|
28
|
+
- max-age=15768000
|
29
|
+
X-Xss-Protection:
|
30
|
+
- 1; mode=block
|
31
|
+
X-Frame-Options:
|
32
|
+
- DENY
|
33
|
+
X-Trello-Version:
|
34
|
+
- 1.890.0
|
35
|
+
X-Trello-Environment:
|
36
|
+
- Production
|
37
|
+
Access-Control-Allow-Origin:
|
38
|
+
- "*"
|
39
|
+
Access-Control-Allow-Methods:
|
40
|
+
- GET, PUT, POST, DELETE
|
41
|
+
Access-Control-Allow-Headers:
|
42
|
+
- Authorization, Accept, Content-Type
|
43
|
+
X-Server-Time:
|
44
|
+
- '1487438824494'
|
45
|
+
Expires:
|
46
|
+
- Thu, 01 Jan 1970 00:00:00
|
47
|
+
X-Trello-Index-Last-Update:
|
48
|
+
- '27'
|
49
|
+
Content-Type:
|
50
|
+
- application/json; charset=utf-8
|
51
|
+
Content-Length:
|
52
|
+
- '781'
|
53
|
+
Etag:
|
54
|
+
- W/"30d-57bcd8"
|
55
|
+
Vary:
|
56
|
+
- Accept-Encoding
|
57
|
+
Date:
|
58
|
+
- Sat, 18 Feb 2017 17:27:04 GMT
|
59
|
+
Connection:
|
60
|
+
- keep-alive
|
61
|
+
Set-Cookie:
|
62
|
+
- dsc=db8816f1ffe788d5d172a9039b8ddaeb8ac03dc4f6cff15e35cc0efcc40ce104; Path=/;
|
63
|
+
Expires=Tue, 21 Feb 2017 17:27:04 GMT; Secure
|
64
|
+
body:
|
65
|
+
encoding: UTF-8
|
66
|
+
string: '{"id":"5883d2bb4482996b47dbe2a5","name":"testing","desc":"","descData":null,"closed":false,"idOrganization":null,"pinned":false,"url":"https://trello.com/b/t3anNqoJ/testing","shortUrl":"https://trello.com/b/t3anNqoJ","prefs":{"permissionLevel":"private","voting":"disabled","comments":"members","invitations":"members","selfJoin":false,"cardCovers":true,"cardAging":"regular","calendarFeedEnabled":false,"background":"blue","backgroundImage":null,"backgroundImageScaled":null,"backgroundTile":false,"backgroundBrightness":"dark","backgroundColor":"#0079BF","canBePublic":true,"canBeOrg":true,"canBePrivate":true,"canInvite":true},"labelNames":{"green":"green","yellow":"yellow","orange":"orange","red":"red","purple":"purple","blue":"blue","sky":"","lime":"","pink":"","black":""}}'
|
67
|
+
http_version:
|
68
|
+
recorded_at: Sat, 18 Feb 2017 17:27:03 GMT
|
69
|
+
- request:
|
70
|
+
method: get
|
71
|
+
uri: https://api.trello.com/1/boards/5883d2bb4482996b47dbe2a5/labels?key=myTRELLOkey&limit=1000&token=myTRELLOtoken
|
72
|
+
body:
|
73
|
+
encoding: US-ASCII
|
74
|
+
string: ''
|
75
|
+
headers:
|
76
|
+
Accept:
|
77
|
+
- "*/*"
|
78
|
+
Accept-Encoding:
|
79
|
+
- gzip, deflate
|
80
|
+
User-Agent:
|
81
|
+
- rest-client/2.0.0 (darwin16.3.0 x86_64) ruby/2.4.0p0
|
82
|
+
Host:
|
83
|
+
- api.trello.com
|
84
|
+
response:
|
85
|
+
status:
|
86
|
+
code: 200
|
87
|
+
message: OK
|
88
|
+
headers:
|
89
|
+
Cache-Control:
|
90
|
+
- max-age=0, must-revalidate, no-cache, no-store
|
91
|
+
X-Content-Type-Options:
|
92
|
+
- nosniff
|
93
|
+
Strict-Transport-Security:
|
94
|
+
- max-age=15768000
|
95
|
+
X-Xss-Protection:
|
96
|
+
- 1; mode=block
|
97
|
+
X-Frame-Options:
|
98
|
+
- DENY
|
99
|
+
X-Trello-Version:
|
100
|
+
- 1.890.0
|
101
|
+
X-Trello-Environment:
|
102
|
+
- Production
|
103
|
+
Access-Control-Allow-Origin:
|
104
|
+
- "*"
|
105
|
+
Access-Control-Allow-Methods:
|
106
|
+
- GET, PUT, POST, DELETE
|
107
|
+
Access-Control-Allow-Headers:
|
108
|
+
- Authorization, Accept, Content-Type
|
109
|
+
X-Server-Time:
|
110
|
+
- '1487438824696'
|
111
|
+
Expires:
|
112
|
+
- Thu, 01 Jan 1970 00:00:00
|
113
|
+
Content-Type:
|
114
|
+
- application/json; charset=utf-8
|
115
|
+
Content-Length:
|
116
|
+
- '667'
|
117
|
+
Etag:
|
118
|
+
- W/"29b-930cd41c"
|
119
|
+
Vary:
|
120
|
+
- Accept-Encoding
|
121
|
+
Date:
|
122
|
+
- Sat, 18 Feb 2017 17:27:04 GMT
|
123
|
+
Connection:
|
124
|
+
- keep-alive
|
125
|
+
Set-Cookie:
|
126
|
+
- dsc=53d19c1895cb6159c8e5291607315f9d17c753b07e4250b37565c5037db4d723; Path=/;
|
127
|
+
Expires=Tue, 21 Feb 2017 17:27:04 GMT; Secure
|
128
|
+
body:
|
129
|
+
encoding: UTF-8
|
130
|
+
string: '[{"id":"5883d2bbced82109ffe0ba83","idBoard":"5883d2bb4482996b47dbe2a5","name":"yellow","color":"yellow","uses":1},{"id":"5883d2bbced82109ffe0ba84","idBoard":"5883d2bb4482996b47dbe2a5","name":"green","color":"green","uses":1},{"id":"5883d2bbced82109ffe0ba86","idBoard":"5883d2bb4482996b47dbe2a5","name":"red","color":"red","uses":1},{"id":"5883d2bbced82109ffe0ba85","idBoard":"5883d2bb4482996b47dbe2a5","name":"orange","color":"orange","uses":0},{"id":"5883d2bbced82109ffe0ba87","idBoard":"5883d2bb4482996b47dbe2a5","name":"blue","color":"blue","uses":0},{"id":"5883d2bbced82109ffe0ba88","idBoard":"5883d2bb4482996b47dbe2a5","name":"purple","color":"purple","uses":0}]'
|
131
|
+
http_version:
|
132
|
+
recorded_at: Sat, 18 Feb 2017 17:27:03 GMT
|
133
|
+
recorded_with: VCR 3.0.3
|
data/trellist.gemspec
CHANGED
@@ -7,7 +7,7 @@ spec = Gem::Specification.new do |s|
|
|
7
7
|
s.email = 'chase.southard@gmail.com'
|
8
8
|
s.homepage = 'https://github.com/chaserx/trellist'
|
9
9
|
s.platform = Gem::Platform::RUBY
|
10
|
-
s.summary = '
|
10
|
+
s.summary = 'A little CLI tool for getting Trello card titles and links in various formats.'
|
11
11
|
s.files = `git ls-files`.split(" ")
|
12
12
|
s.license = 'MIT'
|
13
13
|
s.post_install_message = "You can install config file: `trellist initconfig` \n then update your ~/.trellist with Trello credentials"
|
@@ -22,8 +22,8 @@ spec = Gem::Specification.new do |s|
|
|
22
22
|
s.add_development_dependency('rspec', '3.5.0')
|
23
23
|
s.add_development_dependency('vcr', '3.0.3')
|
24
24
|
s.add_development_dependency('webmock', '2.3.2')
|
25
|
-
s.add_runtime_dependency('gli','2.
|
26
|
-
s.add_runtime_dependency('ruby-trello','
|
25
|
+
s.add_runtime_dependency('gli','2.15.0')
|
26
|
+
s.add_runtime_dependency('ruby-trello','2.0.0')
|
27
27
|
s.add_runtime_dependency('highline','1.7.8')
|
28
28
|
s.add_runtime_dependency('paint','2.0.0')
|
29
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trellist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chase Southard
|
@@ -100,28 +100,28 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - '='
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 2.
|
103
|
+
version: 2.15.0
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - '='
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 2.
|
110
|
+
version: 2.15.0
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: ruby-trello
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - '='
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: 2.0.0
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - '='
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: 2.0.0
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: highline
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -177,6 +177,7 @@ files:
|
|
177
177
|
- spec/support/aruba.rb
|
178
178
|
- spec/trellist_cards_command_spec.rb
|
179
179
|
- spec/use_aruba_with_rspec_spec.rb
|
180
|
+
- spec/vcr_cassettes/client/board_labels_sets_client/labels.yml
|
180
181
|
- spec/vcr_cassettes/client/get_board_lists_sets_client/lists.yml
|
181
182
|
- spec/vcr_cassettes/client/get_list_cards_sets_client/cards.yml
|
182
183
|
- spec/vcr_cassettes/client/get_list_cards_with_a_label_argument_sets_client/cards_limited_by_card_label.yml
|
@@ -207,6 +208,5 @@ rubyforge_project:
|
|
207
208
|
rubygems_version: 2.6.8
|
208
209
|
signing_key:
|
209
210
|
specification_version: 4
|
210
|
-
summary:
|
211
|
-
formats.
|
211
|
+
summary: A little CLI tool for getting Trello card titles and links in various formats.
|
212
212
|
test_files: []
|