trollolo 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +5 -1
  4. data/CHANGELOG.md +29 -0
  5. data/Gemfile +7 -2
  6. data/README.md +19 -0
  7. data/bin/trollolo +1 -1
  8. data/lib/array.rb +6 -0
  9. data/lib/backup.rb +67 -0
  10. data/lib/burndown_chart.rb +96 -67
  11. data/lib/burndown_data.rb +62 -123
  12. data/lib/card.rb +74 -30
  13. data/lib/cli.rb +131 -9
  14. data/lib/column.rb +61 -0
  15. data/lib/result.rb +0 -0
  16. data/lib/scrum_board.rb +104 -0
  17. data/lib/settings.rb +9 -4
  18. data/lib/trello_wrapper.rb +62 -0
  19. data/lib/trollolo.rb +10 -7
  20. data/lib/version.rb +1 -1
  21. data/scripts/.gitignore +1 -0
  22. data/scripts/burndowndata.py +113 -0
  23. data/scripts/create_burndown.py +111 -146
  24. data/scripts/graph.py +116 -0
  25. data/scripts/plot.py +131 -0
  26. data/spec/data/board.json +63 -0
  27. data/spec/data/burndown-data.yaml +3 -0
  28. data/spec/data/burndown_dir/burndown-data-01.yaml +1 -1
  29. data/spec/data/burndown_dir/burndown-data-02.yaml +1 -1
  30. data/spec/data/card.json +61 -0
  31. data/spec/data/full-board.json +1626 -0
  32. data/spec/data/lists.json +25 -25
  33. data/spec/data/trollolorc +5 -0
  34. data/spec/{command_line_spec.rb → integration/command_line_spec.rb} +1 -4
  35. data/spec/integration/create_burndown_spec.rb +57 -0
  36. data/spec/integration/integration_spec_helper.rb +10 -0
  37. data/spec/integration/support/aruba_hook.rb +11 -0
  38. data/spec/integration/support/custom_matchers.rb +13 -0
  39. data/spec/{wrapper → integration/wrapper}/credentials_input_wrapper +2 -2
  40. data/spec/{wrapper → integration/wrapper}/empty_config_trollolo_wrapper +2 -2
  41. data/spec/integration/wrapper/trollolo_wrapper +10 -0
  42. data/spec/unit/backup_spec.rb +107 -0
  43. data/spec/unit/burndown_chart_spec.rb +396 -0
  44. data/spec/unit/burndown_data_spec.rb +118 -0
  45. data/spec/unit/card_spec.rb +79 -0
  46. data/spec/unit/cli_spec.rb +38 -0
  47. data/spec/unit/retrieve_data_spec.rb +54 -0
  48. data/spec/unit/scrum_board_spec.rb +18 -0
  49. data/spec/{settings_spec.rb → unit/settings_spec.rb} +1 -1
  50. data/spec/{spec_helper.rb → unit/spec_helper.rb} +4 -12
  51. data/spec/unit/support/test_data_operations.rb +7 -0
  52. data/spec/unit/support/update_webmock_data +17 -0
  53. data/spec/unit/support/webmocks.rb +52 -0
  54. data/spec/unit/trello_wrapper_spec.rb +47 -0
  55. data/trollolo.gemspec +10 -11
  56. metadata +54 -37
  57. data/lib/trello.rb +0 -66
  58. data/spec/burndown_chart_spec.rb +0 -307
  59. data/spec/burndown_data_spec.rb +0 -125
  60. data/spec/card_spec.rb +0 -15
  61. data/spec/cli_spec.rb +0 -18
  62. data/spec/data/cards.json +0 -1002
  63. data/spec/trello_spec.rb +0 -32
  64. data/spec/wrapper/trollolo_wrapper +0 -11
@@ -1,125 +0,0 @@
1
- require_relative 'spec_helper'
2
-
3
- include GivenFilesystemSpecHelpers
4
-
5
- describe BurndownData do
6
-
7
- before(:each) do
8
- @burndown = BurndownData.new( dummy_settings )
9
- @burndown.board_id = "myboardid"
10
- end
11
-
12
- describe BurndownData::Result do
13
- it "calculates total" do
14
- r = BurndownData::Result.new
15
- r.open = 7
16
- r.done = 4
17
-
18
- expect( r.total).to eq 11
19
- end
20
- end
21
-
22
- describe "setters" do
23
- it "sets open story points" do
24
- @burndown.story_points.open = 13
25
- expect( @burndown.story_points.open ).to eq 13
26
- end
27
-
28
- it "sets open tasks" do
29
- @burndown.tasks.open = 42
30
- expect( @burndown.tasks.open ).to eq 42
31
- end
32
- end
33
-
34
- describe "#fetch_todo_list_id" do
35
- it "returns list id" do
36
- list_url_match = /https:\/\/trello.com\/1\/boards\/myboardid\/lists\?-*/
37
-
38
- stub_request(:any,list_url_match).to_return(:status => 200,
39
- :body => load_test_file("lists.json"), :headers => {})
40
-
41
- expect( @burndown.fetch_todo_list_id ).to eq "53186e8391ef8671265eba9e"
42
- end
43
-
44
- it "raises exception if it does not find done column" do
45
- expect{ @burndown.fetch_todo_list_id }.to raise_error
46
- end
47
- end
48
-
49
- describe "#fetch_doing_list_id" do
50
- it "returns list id" do
51
- list_url_match = /https:\/\/trello.com\/1\/boards\/myboardid\/lists\?-*/
52
-
53
- stub_request(:any,list_url_match).to_return(:status => 200,
54
- :body => load_test_file("lists.json"), :headers => {})
55
-
56
- expect( @burndown.fetch_doing_list_id ).to eq "53186e8391ef8671265eba9f"
57
- end
58
-
59
- it "raises exception if it does not find done column" do
60
- expect{ @burndown.fetch_doing_list_id }.to raise_error
61
- end
62
- end
63
-
64
- describe "#fetch_done_list_id" do
65
- it "returns list id" do
66
- list_url_match = /https:\/\/trello.com\/1\/boards\/myboardid\/lists\?-*/
67
-
68
- stub_request(:any,list_url_match).to_return(:status => 200,
69
- :body => load_test_file("lists.json"), :headers => {})
70
-
71
- expect( @burndown.fetch_done_list_id ).to eq "5319bf088cdf9cd82be336b0"
72
- end
73
-
74
- it "raises exception if it does not find done column" do
75
- expect{ @burndown.fetch_done_list_id }.to raise_error
76
- end
77
- end
78
-
79
- describe "#fetch" do
80
- before(:each) do
81
- card_url_match = /https:\/\/trello.com\/1\/boards\/myboardid\/cards\?-*/
82
-
83
- stub_request(:any,card_url_match).to_return(:status => 200,
84
- :body => load_test_file("cards.json"), :headers => {})
85
-
86
- list_url_match = /https:\/\/trello.com\/1\/boards\/myboardid\/lists\?-*/
87
-
88
- stub_request(:any,list_url_match).to_return(:status => 200,
89
- :body => load_test_file("lists.json"), :headers => {})
90
- end
91
-
92
- it "returns story points" do
93
- @burndown.fetch
94
-
95
- expect( @burndown.story_points.total ).to eq 16
96
- expect( @burndown.story_points.open ).to eq 13
97
- expect( @burndown.story_points.done ).to eq 3
98
- end
99
-
100
- it "returns extra story points" do
101
- @burndown.fetch
102
-
103
- expect( @burndown.extra_story_points.total ).to eq 8
104
- expect( @burndown.extra_story_points.open ).to eq 8
105
- expect( @burndown.extra_story_points.done ).to eq 0
106
- end
107
-
108
- it "returns tasks" do
109
- @burndown.fetch
110
-
111
- expect( @burndown.tasks.total ).to eq 13
112
- expect( @burndown.tasks.open ).to eq 9
113
- expect( @burndown.tasks.done ).to eq 4
114
- end
115
-
116
- it "returns extra tasks" do
117
- @burndown.fetch
118
-
119
- expect( @burndown.extra_tasks.total ).to eq 1
120
- expect( @burndown.extra_tasks.open ).to eq 1
121
- expect( @burndown.extra_tasks.done ).to eq 0
122
- end
123
- end
124
-
125
- end
@@ -1,15 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Card do
4
- it "extracts single digit story point value from card name" do
5
- expect(Card.name_to_points("(3) P1: Refactor cards")).to eq(3)
6
- end
7
-
8
- it "extracts double digit story point value from card name" do
9
- expect(Card.name_to_points("(13) P1: Refactor cards")).to eq(13)
10
- end
11
-
12
- it "extracts fractional story point value from card name" do
13
- expect(Card.name_to_points("(0.5) P1: Refactor cards")).to eq(0.5)
14
- end
15
- end
@@ -1,18 +0,0 @@
1
- require_relative 'spec_helper'
2
-
3
- describe Cli do
4
-
5
- before(:each) do
6
- Cli.settings = dummy_settings
7
- @cli = Cli.new
8
-
9
- allow(STDOUT).to receive(:puts)
10
- end
11
-
12
- it "fetches burndown data" do
13
- expect_any_instance_of(BurndownData).to receive(:fetch)
14
-
15
- @cli.fetch_burndown_data
16
- end
17
-
18
- end
@@ -1,1002 +0,0 @@
1
- [
2
- {
3
- "subscribed": false,
4
- "idBoard": "53186e8391ef8671265eba9d",
5
- "dateLastActivity": "2014-03-07T12:52:07.236Z",
6
- "closed": false,
7
- "id": "5319bf244cc53afd5afd991f",
8
- "badges": {
9
- "subscribed": false,
10
- "checkItems": 0,
11
- "description": false,
12
- "votes": 0,
13
- "attachments": 0,
14
- "comments": 0,
15
- "viewingMemberVoted": false,
16
- "fogbugz": "",
17
- "due": null,
18
- "checkItemsChecked": 0
19
- },
20
- "url": "https://trello.com/c/GRsvY3vZ/3-sprint-3",
21
- "shortUrl": "https://trello.com/c/GRsvY3vZ",
22
- "descData": null,
23
- "shortLink": "GRsvY3vZ",
24
- "idShort": 3,
25
- "checkItemStates": [
26
-
27
- ],
28
- "idAttachmentCover": null,
29
- "idMembersVoted": [
30
-
31
- ],
32
- "idMembers": [
33
-
34
- ],
35
- "pos": 65535,
36
- "name": "Sprint 3",
37
- "idChecklists": [
38
-
39
- ],
40
- "due": null,
41
- "manualCoverAttachment": false,
42
- "desc": "",
43
- "labels": [
44
- {
45
- "color": "blue",
46
- "name": "Sticky"
47
- }
48
- ],
49
- "idList": "53186e8391ef8671265eba9e"
50
- },
51
- {
52
- "subscribed": false,
53
- "idBoard": "53186e8391ef8671265eba9d",
54
- "dateLastActivity": "2014-03-07T13:00:17.162Z",
55
- "closed": false,
56
- "id": "5319c16d9d04708d450d65f1",
57
- "badges": {
58
- "subscribed": false,
59
- "checkItems": 4,
60
- "description": false,
61
- "votes": 0,
62
- "attachments": 0,
63
- "comments": 0,
64
- "viewingMemberVoted": false,
65
- "fogbugz": "",
66
- "due": null,
67
- "checkItemsChecked": 0
68
- },
69
- "url": "https://trello.com/c/pOLDMtPW/16-3-p1-fill-backlog-column",
70
- "shortUrl": "https://trello.com/c/pOLDMtPW",
71
- "descData": null,
72
- "shortLink": "pOLDMtPW",
73
- "idShort": 16,
74
- "checkItemStates": [
75
-
76
- ],
77
- "idAttachmentCover": null,
78
- "idMembersVoted": [
79
-
80
- ],
81
- "idMembers": [
82
-
83
- ],
84
- "pos": 131071,
85
- "name": "(3) P1: Fill Backlog column",
86
- "idChecklists": [
87
- "5319c22c584448bf2c314936"
88
- ],
89
- "due": null,
90
- "manualCoverAttachment": false,
91
- "desc": "",
92
- "labels": [
93
-
94
- ],
95
- "idList": "53186e8391ef8671265eba9e"
96
- },
97
- {
98
- "subscribed": false,
99
- "idBoard": "53186e8391ef8671265eba9d",
100
- "dateLastActivity": "2014-03-14T12:09:14.263Z",
101
- "closed": false,
102
- "id": "5319c57ff6be845f428aa7a3",
103
- "badges": {
104
- "subscribed": false,
105
- "checkItems": 2,
106
- "description": false,
107
- "votes": 0,
108
- "attachments": 0,
109
- "comments": 0,
110
- "viewingMemberVoted": false,
111
- "fogbugz": "",
112
- "due": null,
113
- "checkItemsChecked": 0
114
- },
115
- "url": "https://trello.com/c/d7ZeVHVH/18-5-p4-read-data-from-trollolo",
116
- "shortUrl": "https://trello.com/c/d7ZeVHVH",
117
- "descData": null,
118
- "shortLink": "d7ZeVHVH",
119
- "idShort": 18,
120
- "checkItemStates": [
121
-
122
- ],
123
- "idAttachmentCover": null,
124
- "idMembersVoted": [
125
-
126
- ],
127
- "idMembers": [
128
-
129
- ],
130
- "pos": 163839,
131
- "name": "(5) P4: Read data from Trollolo",
132
- "idChecklists": [
133
- "5319c5b3d9e20a072df0400a"
134
- ],
135
- "due": null,
136
- "manualCoverAttachment": false,
137
- "desc": "",
138
- "labels": [
139
-
140
- ],
141
- "idList": "53186e8391ef8671265eba9e"
142
- },
143
- {
144
- "subscribed": false,
145
- "idBoard": "53186e8391ef8671265eba9d",
146
- "dateLastActivity": "2014-03-14T12:09:20.214Z",
147
- "closed": false,
148
- "id": "5319c5961e530fd26f83999d",
149
- "badges": {
150
- "subscribed": false,
151
- "checkItems": 2,
152
- "description": false,
153
- "votes": 0,
154
- "attachments": 0,
155
- "comments": 0,
156
- "viewingMemberVoted": false,
157
- "fogbugz": "",
158
- "due": null,
159
- "checkItemsChecked": 0
160
- },
161
- "url": "https://trello.com/c/sSDUmT6R/19-3-p5-save-read-data-as-reference-data",
162
- "shortUrl": "https://trello.com/c/sSDUmT6R",
163
- "descData": null,
164
- "shortLink": "sSDUmT6R",
165
- "idShort": 19,
166
- "checkItemStates": [
167
-
168
- ],
169
- "idAttachmentCover": null,
170
- "idMembersVoted": [
171
-
172
- ],
173
- "idMembers": [
174
-
175
- ],
176
- "pos": 180223,
177
- "name": "(3) P5: Save read data as reference data",
178
- "idChecklists": [
179
- "5319c5ce8cf780f37d4c0b35"
180
- ],
181
- "due": null,
182
- "manualCoverAttachment": false,
183
- "desc": "",
184
- "labels": [
185
-
186
- ],
187
- "idList": "53186e8391ef8671265eba9e"
188
- },
189
- {
190
- "subscribed": false,
191
- "idBoard": "53186e8391ef8671265eba9d",
192
- "dateLastActivity": "2014-03-07T12:54:51.637Z",
193
- "closed": false,
194
- "id": "5319c197e4a1ba6215bc03c8",
195
- "badges": {
196
- "subscribed": false,
197
- "checkItems": 0,
198
- "description": false,
199
- "votes": 0,
200
- "attachments": 0,
201
- "comments": 0,
202
- "viewingMemberVoted": false,
203
- "fogbugz": "",
204
- "due": null,
205
- "checkItemsChecked": 0
206
- },
207
- "url": "https://trello.com/c/663yRhde/17-waterline",
208
- "shortUrl": "https://trello.com/c/663yRhde",
209
- "descData": null,
210
- "shortLink": "663yRhde",
211
- "idShort": 17,
212
- "checkItemStates": [
213
-
214
- ],
215
- "idAttachmentCover": null,
216
- "idMembersVoted": [
217
-
218
- ],
219
- "idMembers": [
220
-
221
- ],
222
- "pos": 196607,
223
- "name": "Waterline",
224
- "idChecklists": [
225
-
226
- ],
227
- "due": null,
228
- "manualCoverAttachment": false,
229
- "desc": "",
230
- "labels": [
231
- {
232
- "color": "blue",
233
- "name": "Sticky"
234
- }
235
- ],
236
- "idList": "53186e8391ef8671265eba9e"
237
- },
238
- {
239
- "subscribed": false,
240
- "idBoard": "53186e8391ef8671265eba9d",
241
- "dateLastActivity": "2014-03-14T12:10:26.446Z",
242
- "closed": false,
243
- "id": "5319c5a8743488047e13fcbc",
244
- "badges": {
245
- "subscribed": false,
246
- "checkItems": 1,
247
- "description": false,
248
- "votes": 0,
249
- "attachments": 0,
250
- "comments": 0,
251
- "viewingMemberVoted": false,
252
- "fogbugz": "",
253
- "due": null,
254
- "checkItemsChecked": 0
255
- },
256
- "url": "https://trello.com/c/n2g4S35q/20-8-p6-celebrate-testing-board",
257
- "shortUrl": "https://trello.com/c/n2g4S35q",
258
- "descData": null,
259
- "shortLink": "n2g4S35q",
260
- "idShort": 20,
261
- "checkItemStates": [
262
-
263
- ],
264
- "idAttachmentCover": null,
265
- "idMembersVoted": [
266
-
267
- ],
268
- "idMembers": [
269
-
270
- ],
271
- "pos": 393215,
272
- "name": "(8) P6: Celebrate testing board",
273
- "idChecklists": [
274
- "5319c5ea7b7a51a62bc907a1"
275
- ],
276
- "due": null,
277
- "manualCoverAttachment": false,
278
- "desc": "",
279
- "labels": [
280
- {
281
- "color": "yellow",
282
- "name": "Under waterline"
283
- }
284
- ],
285
- "idList": "53186e8391ef8671265eba9e"
286
- },
287
- {
288
- "subscribed": false,
289
- "idBoard": "53186e8391ef8671265eba9d",
290
- "dateLastActivity": "2014-03-07T12:57:01.715Z",
291
- "closed": false,
292
- "id": "5319c15d4a5040bb15f74655",
293
- "badges": {
294
- "subscribed": false,
295
- "checkItems": 2,
296
- "description": false,
297
- "votes": 0,
298
- "attachments": 0,
299
- "comments": 0,
300
- "viewingMemberVoted": false,
301
- "fogbugz": "",
302
- "due": null,
303
- "checkItemsChecked": 1
304
- },
305
- "url": "https://trello.com/c/QI256QAJ/15-2-p2-fill-doing-column",
306
- "shortUrl": "https://trello.com/c/QI256QAJ",
307
- "descData": null,
308
- "shortLink": "QI256QAJ",
309
- "idShort": 15,
310
- "checkItemStates": [
311
- {
312
- "idCheckItem": "5319c20b30a984c645c687ac",
313
- "state": "complete"
314
- }
315
- ],
316
- "idAttachmentCover": null,
317
- "idMembersVoted": [
318
-
319
- ],
320
- "idMembers": [
321
-
322
- ],
323
- "pos": 65535,
324
- "name": "(2) P2: Fill Doing column",
325
- "idChecklists": [
326
- "5319c1cd55ed32bd2bb998eb"
327
- ],
328
- "due": null,
329
- "manualCoverAttachment": false,
330
- "desc": "",
331
- "labels": [
332
-
333
- ],
334
- "idList": "53186e8391ef8671265eba9f"
335
- },
336
- {
337
- "subscribed": false,
338
- "idBoard": "53186e8391ef8671265eba9d",
339
- "dateLastActivity": "2014-03-07T12:53:06.043Z",
340
- "closed": false,
341
- "id": "5319c12ca78944d77d7912ea",
342
- "badges": {
343
- "subscribed": false,
344
- "checkItems": 0,
345
- "description": false,
346
- "votes": 0,
347
- "attachments": 0,
348
- "comments": 0,
349
- "viewingMemberVoted": false,
350
- "fogbugz": "",
351
- "due": null,
352
- "checkItemsChecked": 0
353
- },
354
- "url": "https://trello.com/c/m2WRyutm/14-burndown-chart",
355
- "shortUrl": "https://trello.com/c/m2WRyutm",
356
- "descData": null,
357
- "shortLink": "m2WRyutm",
358
- "idShort": 14,
359
- "checkItemStates": [
360
-
361
- ],
362
- "idAttachmentCover": null,
363
- "idMembersVoted": [
364
-
365
- ],
366
- "idMembers": [
367
-
368
- ],
369
- "pos": 32767.5,
370
- "name": "Burndown chart",
371
- "idChecklists": [
372
-
373
- ],
374
- "due": null,
375
- "manualCoverAttachment": false,
376
- "desc": "",
377
- "labels": [
378
- {
379
- "color": "blue",
380
- "name": "Sticky"
381
- }
382
- ],
383
- "idList": "5319bf088cdf9cd82be336b0"
384
- },
385
- {
386
- "subscribed": false,
387
- "idBoard": "53186e8391ef8671265eba9d",
388
- "dateLastActivity": "2014-03-07T12:54:22.043Z",
389
- "closed": false,
390
- "id": "5319c07f277eb1661503be8a",
391
- "badges": {
392
- "subscribed": false,
393
- "checkItems": 3,
394
- "description": false,
395
- "votes": 0,
396
- "attachments": 0,
397
- "comments": 0,
398
- "viewingMemberVoted": false,
399
- "fogbugz": "",
400
- "due": null,
401
- "checkItemsChecked": 3
402
- },
403
- "url": "https://trello.com/c/mbmz1nct/9-3-p3-fill-done-columns",
404
- "shortUrl": "https://trello.com/c/mbmz1nct",
405
- "descData": null,
406
- "shortLink": "mbmz1nct",
407
- "idShort": 9,
408
- "checkItemStates": [
409
- {
410
- "idCheckItem": "5319c0b4deedfe4142d2f2bc",
411
- "state": "complete"
412
- },
413
- {
414
- "idCheckItem": "5319c0b8a8f372aa2b17ab8d",
415
- "state": "complete"
416
- },
417
- {
418
- "idCheckItem": "5319c0bd66b5b18a15d6c0ac",
419
- "state": "complete"
420
- }
421
- ],
422
- "idAttachmentCover": null,
423
- "idMembersVoted": [
424
-
425
- ],
426
- "idMembers": [
427
-
428
- ],
429
- "pos": 65535,
430
- "name": "(3) P3: Fill Done columns",
431
- "idChecklists": [
432
- "5319c09cab4511c37d2a6254"
433
- ],
434
- "due": null,
435
- "manualCoverAttachment": false,
436
- "desc": "",
437
- "labels": [
438
-
439
- ],
440
- "idList": "5319bf088cdf9cd82be336b0"
441
- },
442
- {
443
- "subscribed": false,
444
- "idBoard": "53186e8391ef8671265eba9d",
445
- "dateLastActivity": "2014-03-07T12:52:52.679Z",
446
- "closed": false,
447
- "id": "5319c10ed542ef5b1591d0e4",
448
- "badges": {
449
- "subscribed": false,
450
- "checkItems": 0,
451
- "description": false,
452
- "votes": 0,
453
- "attachments": 0,
454
- "comments": 0,
455
- "viewingMemberVoted": false,
456
- "fogbugz": "",
457
- "due": null,
458
- "checkItemsChecked": 0
459
- },
460
- "url": "https://trello.com/c/WGpuHyli/13-burndown-chart",
461
- "shortUrl": "https://trello.com/c/WGpuHyli",
462
- "descData": null,
463
- "shortLink": "WGpuHyli",
464
- "idShort": 13,
465
- "checkItemStates": [
466
-
467
- ],
468
- "idAttachmentCover": null,
469
- "idMembersVoted": [
470
-
471
- ],
472
- "idMembers": [
473
-
474
- ],
475
- "pos": 65535.75,
476
- "name": "Burndown chart",
477
- "idChecklists": [
478
-
479
- ],
480
- "due": null,
481
- "manualCoverAttachment": false,
482
- "desc": "",
483
- "labels": [
484
- {
485
- "color": "blue",
486
- "name": "Sticky"
487
- }
488
- ],
489
- "idList": "5319bf045c6ef0092c55331e"
490
- },
491
- {
492
- "subscribed": false,
493
- "idBoard": "53186e8391ef8671265eba9d",
494
- "dateLastActivity": "2014-03-07T12:51:40.941Z",
495
- "closed": false,
496
- "id": "5319c0ccfb3dad67457985d0",
497
- "badges": {
498
- "subscribed": false,
499
- "checkItems": 0,
500
- "description": false,
501
- "votes": 0,
502
- "attachments": 0,
503
- "comments": 0,
504
- "viewingMemberVoted": false,
505
- "fogbugz": "",
506
- "due": null,
507
- "checkItemsChecked": 0
508
- },
509
- "url": "https://trello.com/c/tHgAV3is/10-sprint-2",
510
- "shortUrl": "https://trello.com/c/tHgAV3is",
511
- "descData": null,
512
- "shortLink": "tHgAV3is",
513
- "idShort": 10,
514
- "checkItemStates": [
515
-
516
- ],
517
- "idAttachmentCover": null,
518
- "idMembersVoted": [
519
-
520
- ],
521
- "idMembers": [
522
-
523
- ],
524
- "pos": 131071.5,
525
- "name": "Sprint 2",
526
- "idChecklists": [
527
-
528
- ],
529
- "due": null,
530
- "manualCoverAttachment": false,
531
- "desc": "",
532
- "labels": [
533
- {
534
- "color": "blue",
535
- "name": "Sticky"
536
- }
537
- ],
538
- "idList": "5319bf045c6ef0092c55331e"
539
- },
540
- {
541
- "subscribed": false,
542
- "idBoard": "53186e8391ef8671265eba9d",
543
- "dateLastActivity": "2014-03-07T12:48:06.330Z",
544
- "closed": false,
545
- "id": "5319bf851193a85e110d8460",
546
- "badges": {
547
- "subscribed": false,
548
- "checkItems": 0,
549
- "description": false,
550
- "votes": 0,
551
- "attachments": 0,
552
- "comments": 0,
553
- "viewingMemberVoted": false,
554
- "fogbugz": "",
555
- "due": null,
556
- "checkItemsChecked": 0
557
- },
558
- "url": "https://trello.com/c/xIBbjlRQ/7-2-p1-explain-purpose",
559
- "shortUrl": "https://trello.com/c/xIBbjlRQ",
560
- "descData": null,
561
- "shortLink": "xIBbjlRQ",
562
- "idShort": 7,
563
- "checkItemStates": [
564
-
565
- ],
566
- "idAttachmentCover": null,
567
- "idMembersVoted": [
568
-
569
- ],
570
- "idMembers": [
571
-
572
- ],
573
- "pos": 262143,
574
- "name": "(2) P1: Explain purpose",
575
- "idChecklists": [
576
-
577
- ],
578
- "due": null,
579
- "manualCoverAttachment": false,
580
- "desc": "",
581
- "labels": [
582
-
583
- ],
584
- "idList": "5319bf045c6ef0092c55331e"
585
- },
586
- {
587
- "subscribed": false,
588
- "idBoard": "53186e8391ef8671265eba9d",
589
- "dateLastActivity": "2014-03-07T12:49:44.474Z",
590
- "closed": false,
591
- "id": "5319c0409a567dc62b68aa6b",
592
- "badges": {
593
- "subscribed": false,
594
- "checkItems": 3,
595
- "description": false,
596
- "votes": 0,
597
- "attachments": 0,
598
- "comments": 0,
599
- "viewingMemberVoted": false,
600
- "fogbugz": "",
601
- "due": null,
602
- "checkItemsChecked": 3
603
- },
604
- "url": "https://trello.com/c/afmNzjbW/8-2-p2-create-scrum-columns",
605
- "shortUrl": "https://trello.com/c/afmNzjbW",
606
- "descData": null,
607
- "shortLink": "afmNzjbW",
608
- "idShort": 8,
609
- "checkItemStates": [
610
- {
611
- "idCheckItem": "5319c052d86da6cb6fa2a9e0",
612
- "state": "complete"
613
- },
614
- {
615
- "idCheckItem": "5319c0548163d08c11d36a07",
616
- "state": "complete"
617
- },
618
- {
619
- "idCheckItem": "5319c0562fef3bc511c79279",
620
- "state": "complete"
621
- }
622
- ],
623
- "idAttachmentCover": null,
624
- "idMembersVoted": [
625
-
626
- ],
627
- "idMembers": [
628
-
629
- ],
630
- "pos": 327679,
631
- "name": "(2) P2: Create Scrum columns",
632
- "idChecklists": [
633
- "5319c04d592a9182153db831"
634
- ],
635
- "due": null,
636
- "manualCoverAttachment": false,
637
- "desc": "",
638
- "labels": [
639
-
640
- ],
641
- "idList": "5319bf045c6ef0092c55331e"
642
- },
643
- {
644
- "subscribed": false,
645
- "idBoard": "53186e8391ef8671265eba9d",
646
- "dateLastActivity": "2014-03-07T12:52:49.208Z",
647
- "closed": false,
648
- "id": "5319c1062d3cd2de456c3127",
649
- "badges": {
650
- "subscribed": false,
651
- "checkItems": 0,
652
- "description": false,
653
- "votes": 0,
654
- "attachments": 0,
655
- "comments": 0,
656
- "viewingMemberVoted": false,
657
- "fogbugz": "",
658
- "due": null,
659
- "checkItemsChecked": 0
660
- },
661
- "url": "https://trello.com/c/dBvqdCxL/12-burndown-chart",
662
- "shortUrl": "https://trello.com/c/dBvqdCxL",
663
- "descData": null,
664
- "shortLink": "dBvqdCxL",
665
- "idShort": 12,
666
- "checkItemStates": [
667
-
668
- ],
669
- "idAttachmentCover": null,
670
- "idMembersVoted": [
671
-
672
- ],
673
- "idMembers": [
674
-
675
- ],
676
- "pos": 16383.75,
677
- "name": "Burndown chart",
678
- "idChecklists": [
679
-
680
- ],
681
- "due": null,
682
- "manualCoverAttachment": false,
683
- "desc": "",
684
- "labels": [
685
- {
686
- "color": "blue",
687
- "name": "Sticky"
688
- }
689
- ],
690
- "idList": "53186e8391ef8671265ebaa0"
691
- },
692
- {
693
- "subscribed": false,
694
- "idBoard": "53186e8391ef8671265eba9d",
695
- "dateLastActivity": "2014-03-07T12:51:57.432Z",
696
- "closed": false,
697
- "id": "5319c0cf0c9c84b0450b41ce",
698
- "badges": {
699
- "subscribed": false,
700
- "checkItems": 0,
701
- "description": false,
702
- "votes": 0,
703
- "attachments": 0,
704
- "comments": 0,
705
- "viewingMemberVoted": false,
706
- "fogbugz": "",
707
- "due": null,
708
- "checkItemsChecked": 0
709
- },
710
- "url": "https://trello.com/c/kyPwZhls/11-sprint-1",
711
- "shortUrl": "https://trello.com/c/kyPwZhls",
712
- "descData": null,
713
- "shortLink": "kyPwZhls",
714
- "idShort": 11,
715
- "checkItemStates": [
716
-
717
- ],
718
- "idAttachmentCover": null,
719
- "idMembersVoted": [
720
-
721
- ],
722
- "idMembers": [
723
-
724
- ],
725
- "pos": 32767.5,
726
- "name": "Sprint 1",
727
- "idChecklists": [
728
-
729
- ],
730
- "due": null,
731
- "manualCoverAttachment": false,
732
- "desc": "",
733
- "labels": [
734
- {
735
- "color": "blue",
736
- "name": "Sticky"
737
- }
738
- ],
739
- "idList": "53186e8391ef8671265ebaa0"
740
- },
741
- {
742
- "subscribed": false,
743
- "idBoard": "53186e8391ef8671265eba9d",
744
- "dateLastActivity": "2014-03-07T12:48:42.185Z",
745
- "closed": false,
746
- "id": "5319bf6980da466e451848bb",
747
- "badges": {
748
- "subscribed": false,
749
- "checkItems": 2,
750
- "description": false,
751
- "votes": 0,
752
- "attachments": 0,
753
- "comments": 0,
754
- "viewingMemberVoted": false,
755
- "fogbugz": "",
756
- "due": null,
757
- "checkItemsChecked": 2
758
- },
759
- "url": "https://trello.com/c/jK3lHglS/4-1-p1-create-trello-testing-board",
760
- "shortUrl": "https://trello.com/c/jK3lHglS",
761
- "descData": null,
762
- "shortLink": "jK3lHglS",
763
- "idShort": 4,
764
- "checkItemStates": [
765
- {
766
- "idCheckItem": "5319bfd806b13b906faa1705",
767
- "state": "complete"
768
- },
769
- {
770
- "idCheckItem": "5319bfdb43b3177d1112b8b4",
771
- "state": "complete"
772
- }
773
- ],
774
- "idAttachmentCover": null,
775
- "idMembersVoted": [
776
-
777
- ],
778
- "idMembers": [
779
-
780
- ],
781
- "pos": 65535,
782
- "name": "(1) P1: Create Trello Testing Board",
783
- "idChecklists": [
784
- "5319bfca9876ce6d4591c4b2"
785
- ],
786
- "due": null,
787
- "manualCoverAttachment": false,
788
- "desc": "",
789
- "labels": [
790
-
791
- ],
792
- "idList": "53186e8391ef8671265ebaa0"
793
- },
794
- {
795
- "subscribed": false,
796
- "idBoard": "53186e8391ef8671265eba9d",
797
- "dateLastActivity": "2014-03-07T12:46:58.957Z",
798
- "closed": false,
799
- "id": "5319bf7099ee686d15b3e966",
800
- "badges": {
801
- "subscribed": false,
802
- "checkItems": 4,
803
- "description": false,
804
- "votes": 0,
805
- "attachments": 0,
806
- "comments": 0,
807
- "viewingMemberVoted": false,
808
- "fogbugz": "",
809
- "due": null,
810
- "checkItemsChecked": 4
811
- },
812
- "url": "https://trello.com/c/Ph2XGEwl/5-5-p2-add-fancy-background",
813
- "shortUrl": "https://trello.com/c/Ph2XGEwl",
814
- "descData": null,
815
- "shortLink": "Ph2XGEwl",
816
- "idShort": 5,
817
- "checkItemStates": [
818
- {
819
- "idCheckItem": "5319bfae5a24d7037e79a726",
820
- "state": "complete"
821
- },
822
- {
823
- "idCheckItem": "5319bfb5b0d2cfb56fa08a3b",
824
- "state": "complete"
825
- },
826
- {
827
- "idCheckItem": "5319bfb7eeecdca82bffe3d4",
828
- "state": "complete"
829
- },
830
- {
831
- "idCheckItem": "5319bfbe5b4bd5c845e3c598",
832
- "state": "complete"
833
- }
834
- ],
835
- "idAttachmentCover": null,
836
- "idMembersVoted": [
837
-
838
- ],
839
- "idMembers": [
840
-
841
- ],
842
- "pos": 131071,
843
- "name": "(5) P2: Add fancy background",
844
- "idChecklists": [
845
- "5319bfaa8ff351c22b123ad0"
846
- ],
847
- "due": null,
848
- "manualCoverAttachment": false,
849
- "desc": "",
850
- "labels": [
851
-
852
- ],
853
- "idList": "53186e8391ef8671265ebaa0"
854
- },
855
- {
856
- "subscribed": false,
857
- "idBoard": "53186e8391ef8671265eba9d",
858
- "dateLastActivity": "2014-03-07T12:48:38.152Z",
859
- "closed": false,
860
- "id": "5319bf7bf2c8ecce45c2f5bb",
861
- "badges": {
862
- "subscribed": false,
863
- "checkItems": 1,
864
- "description": false,
865
- "votes": 0,
866
- "attachments": 0,
867
- "comments": 0,
868
- "viewingMemberVoted": false,
869
- "fogbugz": "",
870
- "due": null,
871
- "checkItemsChecked": 1
872
- },
873
- "url": "https://trello.com/c/02broblM/6-1-p4-add-legend",
874
- "shortUrl": "https://trello.com/c/02broblM",
875
- "descData": null,
876
- "shortLink": "02broblM",
877
- "idShort": 6,
878
- "checkItemStates": [
879
- {
880
- "idCheckItem": "5319bff6c1d6da8742926989",
881
- "state": "complete"
882
- }
883
- ],
884
- "idAttachmentCover": null,
885
- "idMembersVoted": [
886
-
887
- ],
888
- "idMembers": [
889
-
890
- ],
891
- "pos": 196607,
892
- "name": "(1) P4: Add legend",
893
- "idChecklists": [
894
- "5319bfeb2d638eb411117815"
895
- ],
896
- "due": null,
897
- "manualCoverAttachment": false,
898
- "desc": "",
899
- "labels": [
900
-
901
- ],
902
- "idList": "53186e8391ef8671265ebaa0"
903
- },
904
- {
905
- "subscribed": false,
906
- "idBoard": "53186e8391ef8671265eba9d",
907
- "dateLastActivity": "2014-03-07T12:36:34.037Z",
908
- "closed": false,
909
- "id": "5319bd1a8b60144a4255b294",
910
- "badges": {
911
- "subscribed": false,
912
- "checkItems": 0,
913
- "description": true,
914
- "votes": 0,
915
- "attachments": 0,
916
- "comments": 0,
917
- "viewingMemberVoted": false,
918
- "fogbugz": "",
919
- "due": null,
920
- "checkItemsChecked": 0
921
- },
922
- "url": "https://trello.com/c/APlDWOc8/2-purpose",
923
- "shortUrl": "https://trello.com/c/APlDWOc8",
924
- "descData": {
925
- "emoji": {
926
- }
927
- },
928
- "shortLink": "APlDWOc8",
929
- "idShort": 2,
930
- "checkItemStates": [
931
-
932
- ],
933
- "idAttachmentCover": null,
934
- "idMembersVoted": [
935
-
936
- ],
937
- "idMembers": [
938
-
939
- ],
940
- "pos": 32767.5,
941
- "name": "Purpose",
942
- "idChecklists": [
943
-
944
- ],
945
- "due": null,
946
- "manualCoverAttachment": false,
947
- "desc": "This board is used for testing the command line application \"Trollolo\", which is used by Team Alfred to extract data from their Scrum board to create Burndown charts.",
948
- "labels": [
949
-
950
- ],
951
- "idList": "5319bc0aa338308d42f108d6"
952
- },
953
- {
954
- "subscribed": false,
955
- "idBoard": "53186e8391ef8671265eba9d",
956
- "dateLastActivity": "2014-03-07T12:35:23.121Z",
957
- "closed": false,
958
- "id": "5319bc12f1ac326d11e3f46c",
959
- "badges": {
960
- "subscribed": false,
961
- "checkItems": 0,
962
- "description": true,
963
- "votes": 0,
964
- "attachments": 0,
965
- "comments": 0,
966
- "viewingMemberVoted": false,
967
- "fogbugz": "",
968
- "due": null,
969
- "checkItemsChecked": 0
970
- },
971
- "url": "https://trello.com/c/C46wQCD2/1-background-image",
972
- "shortUrl": "https://trello.com/c/C46wQCD2",
973
- "descData": {
974
- "emoji": {
975
- }
976
- },
977
- "shortLink": "C46wQCD2",
978
- "idShort": 1,
979
- "checkItemStates": [
980
-
981
- ],
982
- "idAttachmentCover": null,
983
- "idMembersVoted": [
984
-
985
- ],
986
- "idMembers": [
987
-
988
- ],
989
- "pos": 65535,
990
- "name": "Background image",
991
- "idChecklists": [
992
-
993
- ],
994
- "due": null,
995
- "manualCoverAttachment": false,
996
- "desc": "[Lots of thirty-second notes with a legato above by Horia Varlan, on Flickr](http://www.flickr.com/photos/horiavarlan/4268316033/) (CC BY 2.0)\n",
997
- "labels": [
998
-
999
- ],
1000
- "idList": "5319bc0aa338308d42f108d6"
1001
- }
1002
- ]