forked from codeforamerica/git-jekyll-preview
-
Notifications
You must be signed in to change notification settings - Fork 5
/
test.py
831 lines (650 loc) · 686 KB
/
test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
# coding: utf-8
import doctest
import unittest
import tempfile
import importlib
from os.path import basename
from urllib import urlencode
from urlparse import urlparse, parse_qsl
from httmock import HTTMock, response
from mock import patch, Mock
from shutil import rmtree
from time import sleep
import hmac, hashlib
import json
import util
import href
import git
app = importlib.import_module('make-it-so').app
def signed(data, key):
''' Get a signature header for a string of data.
'''
hash = hmac.new(key, data.encode('utf8'), hashlib.sha1)
signature = 'sha1={}'.format(hash.hexdigest())
return {'X-Hub-Signature': signature}
class TestGit (unittest.TestCase):
def setUp(self):
self.GET = git.Getter(tuple(), dict()).get
self.old_tempdir = tempfile.tempdir
tempfile.tempdir = tempfile.mkdtemp(prefix='TestGit-')
def tearDown(self):
rmtree(tempfile.tempdir)
tempfile.tempdir = self.old_tempdir
def response_content(self, url, request):
'''
'''
MHP = request.method, url.hostname, url.path
MHPQ = request.method, url.hostname, url.path, url.query
GH, CC = 'api.github.com', 'circleci.com'
response_headers = {'Content-Type': 'application/json; charset=utf-8'}
if MHP == ('GET', 'api.github.com', '/user'):
if request.headers.get('Authorization') == 'Basic dmFsaWQ6eC1vYXV0aC1iYXNpYw==':
data = u'''{\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false,\r "name": null,\r "company": null,\r "blog": null,\r "location": null,\r "email": "[email protected]",\r "hireable": null,\r "bio": null,\r "public_repos": 91,\r "public_gists": 45,\r "followers": 439,\r "following": 94,\r "created_at": "2009-02-27T23:44:32Z",\r "updated_at": "2015-12-26T20:09:55Z",\r "private_gists": 23,\r "total_private_repos": 1,\r "owned_private_repos": 0,\r "disk_usage": 249156,\r "collaborators": 0,\r "plan": {\r "name": "free",\r "space": 976562499,\r "collaborators": 0,\r "private_repos": 0\r }\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
else:
data = u'''{\r "message": "Bad credentials",\r "documentation_url": "https://developer.github.com/v3"\r}'''
return response(401, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/statuses/master'):
data = u'''[\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/6f82dac4d909926b2d099ef9ef2db7bd3e97e1a7",\r "id": 403320253,\r "state": "success",\r "description": "Your tests passed on CircleCI!",\r "target_url": "https://circleci.com/gh/migurski/circlejek/13",\r "context": "ci/circleci",\r "created_at": "2015-12-30T22:49:42Z",\r "updated_at": "2015-12-30T22:49:42Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/6f82dac4d909926b2d099ef9ef2db7bd3e97e1a7",\r "id": 403319747,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/migurski/circlejek/13",\r "context": "ci/circleci",\r "created_at": "2015-12-30T22:48:48Z",\r "updated_at": "2015-12-30T22:48:48Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/6f82dac4d909926b2d099ef9ef2db7bd3e97e1a7",\r "id": 403319729,\r "state": "pending",\r "description": "Your tests are queued behind your running builds",\r "target_url": "https://circleci.com/gh/migurski/circlejek/13",\r "context": "ci/circleci",\r "created_at": "2015-12-30T22:48:47Z",\r "updated_at": "2015-12-30T22:48:47Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/6f82dac4d909926b2d099ef9ef2db7bd3e97e1a7",\r "id": 403274989,\r "state": "success",\r "description": "Your tests passed on CircleCI!",\r "target_url": "https://circleci.com/gh/migurski/circlejek/12",\r "context": "ci/circleci",\r "created_at": "2015-12-30T21:38:53Z",\r "updated_at": "2015-12-30T21:38:53Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/6f82dac4d909926b2d099ef9ef2db7bd3e97e1a7",\r "id": 403274443,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/migurski/circlejek/12",\r "context": "ci/circleci",\r "created_at": "2015-12-30T21:38:00Z",\r "updated_at": "2015-12-30T21:38:00Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/6f82dac4d909926b2d099ef9ef2db7bd3e97e1a7",\r "id": 403274434,\r "state": "pending",\r "description": "Your tests are queued behind your running builds",\r "target_url": "https://circleci.com/gh/migurski/circlejek/12",\r "context": "ci/circleci",\r "created_at": "2015-12-30T21:37:59Z",\r "updated_at": "2015-12-30T21:37:59Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r }\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/statuses/tarballize'):
data = u'''[\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/ceeddb6dc2a0656265ab494a31020547ed400b5e",\r "id": 480857709,\r "state": "success",\r "description": "Your tests passed on CircleCI!",\r "target_url": "https://circleci.com/gh/migurski/circlejek/28",\r "context": "ci/circleci",\r "created_at": "2016-03-09T22:57:27Z",\r "updated_at": "2016-03-09T22:57:27Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/ceeddb6dc2a0656265ab494a31020547ed400b5e",\r "id": 480856605,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/migurski/circlejek/28",\r "context": "ci/circleci",\r "created_at": "2016-03-09T22:56:40Z",\r "updated_at": "2016-03-09T22:56:40Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/ceeddb6dc2a0656265ab494a31020547ed400b5e",\r "id": 480856584,\r "state": "pending",\r "description": "Your tests are queued behind your running builds",\r "target_url": "https://circleci.com/gh/migurski/circlejek/28",\r "context": "ci/circleci",\r "created_at": "2016-03-09T22:56:40Z",\r "updated_at": "2016-03-09T22:56:40Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r }\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/statuses/untested'):
data = u'''[\r\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads/drew/dc-transit-events-2016/blog/mapzen-in-dc') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads/drew/dc-transit-events-2016/blog/') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads/drew/dc-transit-events-2016/blog') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads/drew/dc-transit-events-2016/') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/commits/drew'):
data = u'''{\r "message": "Not Found",\r "documentation_url": "https://developer.github.com/v3"\r}'''
return response(404, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads/drew'):
data = u'''[\r {\r "ref": "refs/heads/drew/dc-transit-events-2016",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/drew/dc-transit-events-2016",\r "object": {\r "sha": "8ee949969fe93f3cffa0e2f4d0e208fa848d4028",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/8ee949969fe93f3cffa0e2f4d0e208fa848d4028"\r }\r },\r {\r "ref": "refs/heads/drew/period",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/drew/period",\r "object": {\r "sha": "7b6a60ee7f70bc73a9866cf15aef9632470571ec",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/7b6a60ee7f70bc73a9866cf15aef9632470571ec"\r }\r }\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/commits/8d0c610'):
data = u'''{\r "sha": "8d0c61056cf9d04deaa85193abab1c621dfe9ac3",\r "commit": {\r "author": {\r "name": "burritojustice",\r "email": "[email protected]",\r "date": "2016-01-06T20:00:24Z"\r },\r "committer": {\r "name": "burritojustice",\r "email": "[email protected]",\r "date": "2016-01-06T20:00:24Z"\r },\r "message": "Merge pull request #645 from mapzen/drew/dc-transit-events-2016\\n\\nTransportation Research Board 2016 blog post",\r "tree": {\r "sha": "8979e25929b9c9fce63c75e65b08b2d3edaafac6",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/8979e25929b9c9fce63c75e65b08b2d3edaafac6"\r },\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/8d0c61056cf9d04deaa85193abab1c621dfe9ac3",\r "comment_count": 0\r },\r "url": "https://api.github.com/repos/mapzen/blog/commits/8d0c61056cf9d04deaa85193abab1c621dfe9ac3",\r "html_url": "https://github.com/mapzen/blog/commit/8d0c61056cf9d04deaa85193abab1c621dfe9ac3",\r "comments_url": "https://api.github.com/repos/mapzen/blog/commits/8d0c61056cf9d04deaa85193abab1c621dfe9ac3/comments",\r "author": {\r "login": "burritojustice",\r "id": 3979711,\r "avatar_url": "https://avatars.githubusercontent.com/u/3979711?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/burritojustice",\r "html_url": "https://github.com/burritojustice",\r "followers_url": "https://api.github.com/users/burritojustice/followers",\r "following_url": "https://api.github.com/users/burritojustice/following{/other_user}",\r "gists_url": "https://api.github.com/users/burritojustice/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/burritojustice/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/burritojustice/subscriptions",\r "organizations_url": "https://api.github.com/users/burritojustice/orgs",\r "repos_url": "https://api.github.com/users/burritojustice/repos",\r "events_url": "https://api.github.com/users/burritojustice/events{/privacy}",\r "received_events_url": "https://api.github.com/users/burritojustice/received_events",\r "type": "User",\r "site_admin": false\r },\r "committer": {\r "login": "burritojustice",\r "id": 3979711,\r "avatar_url": "https://avatars.githubusercontent.com/u/3979711?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/burritojustice",\r "html_url": "https://github.com/burritojustice",\r "followers_url": "https://api.github.com/users/burritojustice/followers",\r "following_url": "https://api.github.com/users/burritojustice/following{/other_user}",\r "gists_url": "https://api.github.com/users/burritojustice/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/burritojustice/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/burritojustice/subscriptions",\r "organizations_url": "https://api.github.com/users/burritojustice/orgs",\r "repos_url": "https://api.github.com/users/burritojustice/repos",\r "events_url": "https://api.github.com/users/burritojustice/events{/privacy}",\r "received_events_url": "https://api.github.com/users/burritojustice/received_events",\r "type": "User",\r "site_admin": false\r },\r "parents": [\r {\r "sha": "682362db1dba88cf90b5123b801e3e4be9203ebc",\r "url": "https://api.github.com/repos/mapzen/blog/commits/682362db1dba88cf90b5123b801e3e4be9203ebc",\r "html_url": "https://github.com/mapzen/blog/commit/682362db1dba88cf90b5123b801e3e4be9203ebc"\r },\r {\r "sha": "8ee949969fe93f3cffa0e2f4d0e208fa848d4028",\r "url": "https://api.github.com/repos/mapzen/blog/commits/8ee949969fe93f3cffa0e2f4d0e208fa848d4028",\r "html_url": "https://github.com/mapzen/blog/commit/8ee949969fe93f3cffa0e2f4d0e208fa848d4028"\r }\r ],\r "stats": {\r "total": 21,\r "additions": 21,\r "deletions": 0\r },\r "files": [\r {\r "sha": "736a678befc18eb0b65078e2ed009329d381c917",\r "filename": "_posts/2016-01-05-mapzen-in-dc.md",\r "status": "added",\r "additions": 21,\r "deletions": 0,\r "changes": 21,\r "blob_url": "https://github.com/mapzen/blog/blob/8d0c61056cf9d04deaa85193abab1c621dfe9ac3/_posts/2016-01-05-mapzen-in-dc.md",\r "raw_url": "https://github.com/mapzen/blog/raw/8d0c61056cf9d04deaa85193abab1c621dfe9ac3/_posts/2016-01-05-mapzen-in-dc.md",\r "contents_url": "https://api.github.com/repos/mapzen/blog/contents/_posts/2016-01-05-mapzen-in-dc.md?ref=8d0c61056cf9d04deaa85193abab1c621dfe9ac3",\r "patch": "@@ -0,0 +1,21 @@\\n+---\\n+layout: page\\n+category: blog\\n+published: true\\n+title: Mapzen \"transpo\" in DC\\n+excerpt: Mapzen's joining thousands of enthusiasts and professionals in Washington, D.C. to start off a new year of transportation research, planning, and advocacy.\\n+image: \"/images/mapzen-in-dc/dcmetro.jpg\"\\n+authors: [drewda]\\n+tags: [transitland]\\n+---\\n+![DC Metro](/images/mapzen-in-dc/dcmetro.jpg)\\n+\\n+Each January brings thousands of \"transpo\" professionals and enthusiasts to Washington, D.C. to discuss train schedules, road pavement, bridge engineering, and the many other intricacies of transportation. [Transportation Camp](http://transportationcamp.org/events/dc-2016/) is an unconference that welcomes enthusiasts of all stripes, while the [Transportation Research Board's annual meeting](http://www.trb.org/AnnualMeeting/AnnualMeeting.aspx) is a more staid if also more massive meeting of professionals.\\n+\\n+Mapzen will be at the TRB meeting to discuss the [Transitland open transit data service](https://transit.land) and the [Mapzen Turn-by-Turn routing engine](https://mapzen.com/projects/valhalla). We'll be presenting at a TRB workshop called ***[Transformative Trends in Transit Data: General Transit Feed Specifications Bonanza](https://annualmeeting.mytrb.org/Workshop/Details/2446)*** on Sunday, January 10. Bring a laptop and learn how to create transit data from our colleagues at [The World Bank](http://www.worldbank.org/en/topic/transport), [Trillium Solutions](http://trilliumtransit.com/), [SUNY Albany](http://www.albany.edu/avail/), [MIT](http://www.civicdatadesignlab.org/), and [Azavea](http://www.azavea.com/). (TRB registration is required to attend.)\\n+\\n+And for a second year in a row, Mapzen is joining up with our colleagues at [Conveyal](http://conveyal.com/) and [TransitScreen](http://transitscreen.com/) to host a happy hour for mapping and \"transpo\" types of all sorts. All are welcome on the evening of Tuesday, January 12—TRB registration is not required to attend—but ***[please RSVP if you'll be joining us at the happy hour](https://trbparty.splashthat.com/)***. \\n+\\n+Can't make it to D.C. next week? Transportation Camp is popping up in at least [four more cities around the U.S. later in 2016](http://transportationcamp.org/). And in the meantime, you're invited to try out [Transitland](https://transit.land) and [Mapzen Turn-by-Turn](https://mapzen.com/projects/valhalla) here on the Internet.\\n+\\n+*[photo by Jeremy Segrott](https://www.flickr.com/photos/126337928@N05/18246320916/), CC BY 2.0*"\r }\r ]\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads/drew/dc-transit-events-2016'):
data = u'''{\r "object": {\r "sha": "d2bb1bd6ef04bb0a0542acc6d5e07e150c960118",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/d2bb1bd6ef04bb0a0542acc6d5e07e150c960118"\r },\r "ref": "refs/heads/drew/dc-transit-events-2016",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/drew/dc-transit-events-2016"\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/git/trees/master'):
data = u'''{\r "sha": "4872caf3203972ebbe13e3863e4c47c407ee4bbf",\r "url": "https://api.github.com/repos/migurski/circlejek/git/trees/4872caf3203972ebbe13e3863e4c47c407ee4bbf",\r "tree": [\r {\r "path": "Gemfile",\r "mode": "100644",\r "type": "blob",\r "sha": "e8a7006386e7ce6b8920b6d6e4283d0d833455d8",\r "size": 44,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/e8a7006386e7ce6b8920b6d6e4283d0d833455d8"\r },\r {\r "path": "_config.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "2701f62dc8b87aa6770518de051a938e7aa4e0fa",\r "size": 53,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/2701f62dc8b87aa6770518de051a938e7aa4e0fa"\r },\r {\r "path": "circle.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "52184fb8556ceb99165444a3388867e6664386d0",\r "size": 106,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/52184fb8556ceb99165444a3388867e6664386d0"\r },\r {\r "path": "goodbye.md",\r "mode": "100644",\r "type": "blob",\r "sha": "2e4003d64f16a43a6d1e03de11c94b48e02fb1ff",\r "size": 39,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/2e4003d64f16a43a6d1e03de11c94b48e02fb1ff"\r },\r {\r "path": "index.md",\r "mode": "100644",\r "type": "blob",\r "sha": "67e14c453494b9e4ee84b4d393a4ef5854ca9b33",\r "size": 41,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/67e14c453494b9e4ee84b4d393a4ef5854ca9b33"\r }\r ],\r "truncated": false\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/git/trees/tarballize'):
data = u'''{\r "sha": "ceeddb6dc2a0656265ab494a31020547ed400b5e",\r "url": "https://api.github.com/repos/migurski/circlejek/git/trees/ceeddb6dc2a0656265ab494a31020547ed400b5e",\r "tree": [\r {\r "path": "Gemfile",\r "mode": "100644",\r "type": "blob",\r "sha": "e8a7006386e7ce6b8920b6d6e4283d0d833455d8",\r "size": 44,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/e8a7006386e7ce6b8920b6d6e4283d0d833455d8"\r },\r {\r "path": "_config.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "2701f62dc8b87aa6770518de051a938e7aa4e0fa",\r "size": 53,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/2701f62dc8b87aa6770518de051a938e7aa4e0fa"\r },\r {\r "path": "circle.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "e920941d3ea8b362dcf74c32e6e07f60bb0b63f1",\r "size": 152,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/e920941d3ea8b362dcf74c32e6e07f60bb0b63f1"\r },\r {\r "path": "goodbye.md",\r "mode": "100644",\r "type": "blob",\r "sha": "2e4003d64f16a43a6d1e03de11c94b48e02fb1ff",\r "size": 39,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/2e4003d64f16a43a6d1e03de11c94b48e02fb1ff"\r },\r {\r "path": "index.md",\r "mode": "100644",\r "type": "blob",\r "sha": "67e14c453494b9e4ee84b4d393a4ef5854ca9b33",\r "size": 41,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/67e14c453494b9e4ee84b4d393a4ef5854ca9b33"\r }\r ],\r "truncated": false\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/git/blobs/52184fb8556ceb99165444a3388867e6664386d0'):
data = u'''{\r "sha": "52184fb8556ceb99165444a3388867e6664386d0",\r "size": 106,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/52184fb8556ceb99165444a3388867e6664386d0",\r "content": "bWFjaGluZToKICBydWJ5OgogICAgdmVyc2lvbjogMi4yLjMKdGVzdDoKICBv\\ndmVycmlkZToKICAgIC0gYnVuZGxlIGV4ZWMgamVreWxsIGJ1aWxkIC1kICRD\\nSVJDTEVfQVJUSUZBQ1RTCg==\\n",\r "encoding": "base64"\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/git/blobs/e920941d3ea8b362dcf74c32e6e07f60bb0b63f1'):
data = u'''{\r "sha": "e920941d3ea8b362dcf74c32e6e07f60bb0b63f1",\r "size": 152,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/e920941d3ea8b362dcf74c32e6e07f60bb0b63f1",\r "content": "bWFjaGluZToKICBydWJ5OgogICAgdmVyc2lvbjogMi4yLjMKdGVzdDoKICBv\\ndmVycmlkZToKICAgIC0gYnVuZGxlIGV4ZWMgamVreWxsIGJ1aWxkCiAgICAt\\nIHRhciAtQyBfc2l0ZSAtY3p2ZiAkQ0lSQ0xFX0FSVElGQUNUUy9wcmVjb2ct\\nY29udGVudC50YXIuZ3ogLgo=\\n",\r "encoding": "base64"\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/git/trees/tinker-with-config'):
data = u'''{\r "sha": "3c6431c3c1fa730b792bc039877623ef60435a77",\r "url": "https://api.github.com/repos/migurski/circlejek/git/trees/3c6431c3c1fa730b792bc039877623ef60435a77",\r "tree": [\r {\r "path": "Gemfile",\r "mode": "100644",\r "type": "blob",\r "sha": "e8a7006386e7ce6b8920b6d6e4283d0d833455d8",\r "size": 44,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/e8a7006386e7ce6b8920b6d6e4283d0d833455d8"\r },\r {\r "path": "_config.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "2701f62dc8b87aa6770518de051a938e7aa4e0fa",\r "size": 53,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/2701f62dc8b87aa6770518de051a938e7aa4e0fa"\r },\r {\r "path": "circle.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "8bcc4f764bf2213d8fdfc34395e80abce9866e5d",\r "size": 195,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/8bcc4f764bf2213d8fdfc34395e80abce9866e5d"\r },\r {\r "path": "goodbye.md",\r "mode": "100644",\r "type": "blob",\r "sha": "2e4003d64f16a43a6d1e03de11c94b48e02fb1ff",\r "size": 39,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/2e4003d64f16a43a6d1e03de11c94b48e02fb1ff"\r },\r {\r "path": "index.md",\r "mode": "100644",\r "type": "blob",\r "sha": "67e14c453494b9e4ee84b4d393a4ef5854ca9b33",\r "size": 41,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/67e14c453494b9e4ee84b4d393a4ef5854ca9b33"\r }\r ],\r "truncated": false\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/git/blobs/8bcc4f764bf2213d8fdfc34395e80abce9866e5d'):
data = u'''{\r "sha": "8bcc4f764bf2213d8fdfc34395e80abce9866e5d",\r "size": 195,\r "url": "https://api.github.com/repos/migurski/circlejek/git/blobs/8bcc4f764bf2213d8fdfc34395e80abce9866e5d",\r "content": "bWFjaGluZToKICBydWJ5OgogICAgdmVyc2lvbjogMi4yLjMKdGVzdDoKICBv\\ndmVycmlkZToKICAgIC0gYnVuZGxlIGV4ZWMgamVreWxsIGJ1aWxkCiAgICAt\\nIGNwIC0tcmVjdXJzaXZlIC0tbm8tdGFyZ2V0LWRpcmVjdG9yeSAtLWxpbmsg\\nX3NpdGUgJENJUkNMRV9BUlRJRkFDVFMKZ2VuZXJhbDoKICBhcnRpZmFjdHM6\\nCiAgICAtICJfc2l0ZSIK\\n",\r "encoding": "base64"\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek'):
data = u'''{\r "id": 48819185,\r "name": "circlejek",\r "full_name": "migurski/circlejek",\r "owner": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/migurski/circlejek",\r "description": "",\r "fork": false,\r "url": "https://api.github.com/repos/migurski/circlejek",\r "forks_url": "https://api.github.com/repos/migurski/circlejek/forks",\r "keys_url": "https://api.github.com/repos/migurski/circlejek/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/migurski/circlejek/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/migurski/circlejek/teams",\r "hooks_url": "https://api.github.com/repos/migurski/circlejek/hooks",\r "issue_events_url": "https://api.github.com/repos/migurski/circlejek/issues/events{/number}",\r "events_url": "https://api.github.com/repos/migurski/circlejek/events",\r "assignees_url": "https://api.github.com/repos/migurski/circlejek/assignees{/user}",\r "branches_url": "https://api.github.com/repos/migurski/circlejek/branches{/branch}",\r "tags_url": "https://api.github.com/repos/migurski/circlejek/tags",\r "blobs_url": "https://api.github.com/repos/migurski/circlejek/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/migurski/circlejek/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/migurski/circlejek/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/migurski/circlejek/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/migurski/circlejek/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/migurski/circlejek/languages",\r "stargazers_url": "https://api.github.com/repos/migurski/circlejek/stargazers",\r "contributors_url": "https://api.github.com/repos/migurski/circlejek/contributors",\r "subscribers_url": "https://api.github.com/repos/migurski/circlejek/subscribers",\r "subscription_url": "https://api.github.com/repos/migurski/circlejek/subscription",\r "commits_url": "https://api.github.com/repos/migurski/circlejek/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/migurski/circlejek/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/migurski/circlejek/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/migurski/circlejek/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/migurski/circlejek/contents/{+path}",\r "compare_url": "https://api.github.com/repos/migurski/circlejek/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/migurski/circlejek/merges",\r "archive_url": "https://api.github.com/repos/migurski/circlejek/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/migurski/circlejek/downloads",\r "issues_url": "https://api.github.com/repos/migurski/circlejek/issues{/number}",\r "pulls_url": "https://api.github.com/repos/migurski/circlejek/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/migurski/circlejek/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/migurski/circlejek/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/migurski/circlejek/labels{/name}",\r "releases_url": "https://api.github.com/repos/migurski/circlejek/releases{/id}",\r "created_at": "2015-12-30T20:58:26Z",\r "updated_at": "2015-12-30T21:03:10Z",\r "pushed_at": "2016-01-06T05:36:42Z",\r "git_url": "git://github.com/migurski/circlejek.git",\r "ssh_url": "[email protected]:migurski/circlejek.git",\r "clone_url": "https://github.com/migurski/circlejek.git",\r "svn_url": "https://github.com/migurski/circlejek",\r "homepage": null,\r "size": 6,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": "Ruby",\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 0,\r "mirror_url": null,\r "open_issues_count": 0,\r "forks": 0,\r "open_issues": 0,\r "watchers": 0,\r "default_branch": "master",\r "permissions": {\r "admin": true,\r "push": true,\r "pull": true\r },\r "network_count": 0,\r "subscribers_count": 1\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/no-repo'):
data = u'''{\r "message": "Not Found",\r "documentation_url": "https://developer.github.com/v3"\r}'''
return response(404, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/no-repo/statuses/master'):
data = u'''{\r "message": "Not Found",\r "documentation_url": "https://developer.github.com/v3"\r}'''
return response(404, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/statuses/4872caf32'):
data = u'''[\r {\r "context": "ci/circleci",\r "created_at": "2016-01-06T05:36:44Z",\r "creator": {\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "gravatar_id": "",\r "html_url": "https://github.com/migurski",\r "id": 58730,\r "login": "migurski",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "site_admin": false,\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "type": "User",\r "url": "https://api.github.com/users/migurski"\r },\r "description": "CircleCI is running your tests",\r "id": 406914381,\r "state": "pending",\r "target_url": "https://circleci.com/gh/migurski/circlejek/21",\r "updated_at": "2016-01-06T05:36:44Z",\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/4872caf3203972ebbe13e3863e4c47c407ee4bbf"\r },\r {\r "context": "ci/circleci",\r "created_at": "2016-01-06T05:36:43Z",\r "creator": {\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "gravatar_id": "",\r "html_url": "https://github.com/migurski",\r "id": 58730,\r "login": "migurski",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "site_admin": false,\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "type": "User",\r "url": "https://api.github.com/users/migurski"\r },\r "description": "Your tests are queued behind your running builds",\r "id": 406914377,\r "state": "pending",\r "target_url": "https://circleci.com/gh/migurski/circlejek/21",\r "updated_at": "2016-01-06T05:36:43Z",\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/4872caf3203972ebbe13e3863e4c47c407ee4bbf"\r }\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/statuses/d6f1c445e'):
data = u'''[\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/d6f1c445e6525fa34cbd172d86caeb0e80ba92a6",\r "id": 403269845,\r "state": "error",\r "description": "Your CircleCI tests were canceled",\r "target_url": "https://circleci.com/gh/migurski/circlejek/7",\r "context": "ci/circleci",\r "created_at": "2015-12-30T21:30:43Z",\r "updated_at": "2015-12-30T21:30:43Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/d6f1c445e6525fa34cbd172d86caeb0e80ba92a6",\r "id": 403269837,\r "state": "error",\r "description": "Your CircleCI tests were canceled",\r "target_url": "https://circleci.com/gh/migurski/circlejek/7",\r "context": "ci/circleci",\r "created_at": "2015-12-30T21:30:43Z",\r "updated_at": "2015-12-30T21:30:43Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/d6f1c445e6525fa34cbd172d86caeb0e80ba92a6",\r "id": 403264982,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/migurski/circlejek/7",\r "context": "ci/circleci",\r "created_at": "2015-12-30T21:23:08Z",\r "updated_at": "2015-12-30T21:23:08Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/d6f1c445e6525fa34cbd172d86caeb0e80ba92a6",\r "id": 403264972,\r "state": "pending",\r "description": "Your tests have been scheduled to run again",\r "target_url": "https://circleci.com/gh/migurski/circlejek/7",\r "context": "ci/circleci",\r "created_at": "2015-12-30T21:23:07Z",\r "updated_at": "2015-12-30T21:23:07Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/d6f1c445e6525fa34cbd172d86caeb0e80ba92a6",\r "id": 403264971,\r "state": "pending",\r "description": "Your tests have been scheduled to run again",\r "target_url": "https://circleci.com/gh/migurski/circlejek/7",\r "context": "ci/circleci",\r "created_at": "2015-12-30T21:23:07Z",\r "updated_at": "2015-12-30T21:23:07Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/d6f1c445e6525fa34cbd172d86caeb0e80ba92a6",\r "id": 403264783,\r "state": "failure",\r "description": "Your tests failed on CircleCI",\r "target_url": "https://circleci.com/gh/migurski/circlejek/6",\r "context": "ci/circleci",\r "created_at": "2015-12-30T21:22:52Z",\r "updated_at": "2015-12-30T21:22:52Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/d6f1c445e6525fa34cbd172d86caeb0e80ba92a6",\r "id": 403263934,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/migurski/circlejek/6",\r "context": "ci/circleci",\r "created_at": "2015-12-30T21:21:44Z",\r "updated_at": "2015-12-30T21:21:44Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/migurski/circlejek/statuses/d6f1c445e6525fa34cbd172d86caeb0e80ba92a6",\r "id": 403263911,\r "state": "pending",\r "description": "Your tests are queued behind your running builds",\r "target_url": "https://circleci.com/gh/migurski/circlejek/6",\r "context": "ci/circleci",\r "created_at": "2015-12-30T21:21:43Z",\r "updated_at": "2015-12-30T21:21:43Z",\r "creator": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r }\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHPQ == ('GET', 'circleci.com', '/api/v1/project/migurski/circlejek/13/artifacts', 'circle-token=a17131792f4c4bcb97f2f66d9c58258a0ee0e621'):
data = u'''[{"path":"/tmp/circle-artifacts.6VLZE7m/goodbye.html","pretty_path":"$CIRCLE_ARTIFACTS/goodbye.html","node_index":0,"url":"https://circle-artifacts.com/gh/migurski/circlejek/13/artifacts/0/tmp/circle-artifacts.6VLZE7m/goodbye.html"},{"path":"/tmp/circle-artifacts.6VLZE7m/index.html","pretty_path":"$CIRCLE_ARTIFACTS/index.html","node_index":0,"url":"https://circle-artifacts.com/gh/migurski/circlejek/13/artifacts/0/tmp/circle-artifacts.6VLZE7m/index.html"}]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHPQ == ('GET', 'circleci.com', '/api/v1/project/migurski/circlejek/28/artifacts', 'circle-token=a17131792f4c4bcb97f2f66d9c58258a0ee0e621'):
data = u'''[ {\r "path" : "/tmp/circle-artifacts.RyBi4pI/precog-content.tar.gz",\r "pretty_path" : "$CIRCLE_ARTIFACTS/precog-content.tar.gz",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/migurski/circlejek/28/artifacts/0/tmp/circle-artifacts.RyBi4pI/precog-content.tar.gz"\r} ]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHPQ == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads', ''):
data = u'''[\r {\r "ref": "refs/heads/addr-fix",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/addr-fix",\r "object": {\r "sha": "4727812cb112afad90ec70bce33b3ad137812c13",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/4727812cb112afad90ec70bce33b3ad137812c13"\r }\r },\r {\r "ref": "refs/heads/address-fix",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/address-fix",\r "object": {\r "sha": "f5cea70e5bba05c97b1cc37ef0bd29561f04a33e",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/f5cea70e5bba05c97b1cc37ef0bd29561f04a33e"\r }\r },\r {\r "ref": "refs/heads/baldur/docker",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/baldur/docker",\r "object": {\r "sha": "a19b0ec40c0817e421e19b24d5cfe62c363141cc",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/a19b0ec40c0817e421e19b24d5cfe62c363141cc"\r }\r },\r {\r "ref": "refs/heads/baldur/engineering-series",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/baldur/engineering-series",\r "object": {\r "sha": "a781daf557079f22a071bb42675c29f45168cff0",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/a781daf557079f22a071bb42675c29f45168cff0"\r }\r },\r {\r "ref": "refs/heads/dan-about",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/dan-about",\r "object": {\r "sha": "226431b463fa52176623424450d2501e569c38d5",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/226431b463fa52176623424450d2501e569c38d5"\r }\r },\r {\r "ref": "refs/heads/dr/AtMozillaFestival",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/dr/AtMozillaFestival",\r "object": {\r "sha": "e29fe7960089a87e8068ad8027a2c84bcd1c960c",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/e29fe7960089a87e8068ad8027a2c84bcd1c960c"\r }\r },\r {\r "ref": "refs/heads/dr/SearchDocsUpdate",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/dr/SearchDocsUpdate",\r "object": {\r "sha": "7b48997fb382b652afea829a9582b7f0ee88e2c6",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/7b48997fb382b652afea829a9582b7f0ee88e2c6"\r }\r },\r {\r "ref": "refs/heads/dr/why-pelias",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/dr/why-pelias",\r "object": {\r "sha": "211b4f4ce8418adb292c4fb4e2fe6cb8495b4d5d",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/211b4f4ce8418adb292c4fb4e2fe6cb8495b4d5d"\r }\r },\r {\r "ref": "refs/heads/drew/period",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/drew/period",\r "object": {\r "sha": "7b6a60ee7f70bc73a9866cf15aef9632470571ec",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/7b6a60ee7f70bc73a9866cf15aef9632470571ec"\r }\r },\r {\r "ref": "refs/heads/drwhat-is-geocode1",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/drwhat-is-geocode1",\r "object": {\r "sha": "4f2469474ea8a1bc9f667ce4d1288fafd151647e",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/4f2469474ea8a1bc9f667ce4d1288fafd151647e"\r }\r },\r {\r "ref": "refs/heads/ekta/links-bold",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/ekta/links-bold",\r "object": {\r "sha": "094f87bfd9a5a8a29072fac033b3ffd46be2d18b",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/094f87bfd9a5a8a29072fac033b3ffd46be2d18b"\r }\r },\r {\r "ref": "refs/heads/ekta/map-assets-new",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/ekta/map-assets-new",\r "object": {\r "sha": "0a9a561ab64b724fd55e54e216ef6510688cdca6",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/0a9a561ab64b724fd55e54e216ef6510688cdca6"\r }\r },\r {\r "ref": "refs/heads/ekta/md-styling",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/ekta/md-styling",\r "object": {\r "sha": "9fcfe06f75ebfb9195e2579176f3e48b28058d7f",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/9fcfe06f75ebfb9195e2579176f3e48b28058d7f"\r }\r },\r {\r "ref": "refs/heads/ekta/style-nitpicking",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/ekta/style-nitpicking",\r "object": {\r "sha": "bb2a0edb04c6e3fd1aff19f7b9d8b0d2e92f9295",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/bb2a0edb04c6e3fd1aff19f7b9d8b0d2e92f9295"\r }\r },\r {\r "ref": "refs/heads/evan/author_pages",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/evan/author_pages",\r "object": {\r "sha": "f5f731aaf5b2735c38778981d995d95994265944",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/f5f731aaf5b2735c38778981d995d95994265944"\r }\r },\r {\r "ref": "refs/heads/evan/tag_pages",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/evan/tag_pages",\r "object": {\r "sha": "7b500e5cf2532eaf0e5700037f33d814dd09fb32",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/7b500e5cf2532eaf0e5700037f33d814dd09fb32"\r }\r },\r {\r "ref": "refs/heads/geraldine/lines",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/geraldine/lines",\r "object": {\r "sha": "103995b0e313d018d10baad657b5a3d0c5658a27",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/103995b0e313d018d10baad657b5a3d0c5658a27"\r }\r }\r]'''
response_headers.update(Link='<https://api.github.com/repositories/34413671/git/refs?page=2>; rel="next", <https://api.github.com/repositories/34413671/git/refs?page=2>; rel="last"')
return response(200, data.encode('utf8'), headers=response_headers)
if MHPQ == ('GET', 'api.github.com', '/repositories/34413671/git/refs', 'page=2'):
data = u'''[\r {\r "ref": "refs/heads/heffergm/pelias-build",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/heffergm/pelias-build",\r "object": {\r "sha": "59123caa7ba6d6494868528d4247bd4bfd37f608",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/59123caa7ba6d6494868528d4247bd4bfd37f608"\r }\r },\r {\r "ref": "refs/heads/ian/schedule-api-finalize",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/ian/schedule-api-finalize",\r "object": {\r "sha": "97742c684e943806f938209819f876a59a470de8",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/97742c684e943806f938209819f876a59a470de8"\r }\r },\r {\r "ref": "refs/heads/indy/Name-That-Building",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/indy/Name-That-Building",\r "object": {\r "sha": "49ecd93ec6f70c597e1e6c0ca1d4e462fee2bc5d",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/49ecd93ec6f70c597e1e6c0ca1d4e462fee2bc5d"\r }\r },\r {\r "ref": "refs/heads/indy/airport",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/indy/airport",\r "object": {\r "sha": "64bf6adc62bd28f0539a6c528957b2317dba6d8f",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/64bf6adc62bd28f0539a6c528957b2317dba6d8f"\r }\r },\r {\r "ref": "refs/heads/indy/updated-targeted-editing-hiatus",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/indy/updated-targeted-editing-hiatus",\r "object": {\r "sha": "53bf63fda6bd6f493b46f9d54fa459d3adbeac1e",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/53bf63fda6bd6f493b46f9d54fa459d3adbeac1e"\r }\r },\r {\r "ref": "refs/heads/indyhurt/targeted-editing-holiday-hiatus",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/indyhurt/targeted-editing-holiday-hiatus",\r "object": {\r "sha": "998265cf08eef84f2b007b64c87a26e6427791e2",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/998265cf08eef84f2b007b64c87a26e6427791e2"\r }\r },\r {\r "ref": "refs/heads/john/test",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/john/test",\r "object": {\r "sha": "159d528d17b234349141309094b5c8807173682c",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/159d528d17b234349141309094b5c8807173682c"\r }\r },\r {\r "ref": "refs/heads/lou/fonts",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/lou/fonts",\r "object": {\r "sha": "803b9e2fe230916f249278bd5f8c8f2a256a427a",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/803b9e2fe230916f249278bd5f8c8f2a256a427a"\r }\r },\r {\r "ref": "refs/heads/lou/future-posts",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/lou/future-posts",\r "object": {\r "sha": "9b0727becbf74887d22a730fa1c51a0ac2f8b8d0",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/9b0727becbf74887d22a730fa1c51a0ac2f8b8d0"\r }\r },\r {\r "ref": "refs/heads/lou/project-nav-mobile",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/lou/project-nav-mobile",\r "object": {\r "sha": "aed68f2d32496c5ae8908d531d6ba04953b53f88",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/aed68f2d32496c5ae8908d531d6ba04953b53f88"\r }\r },\r {\r "ref": "refs/heads/master",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/master",\r "object": {\r "sha": "159d528d17b234349141309094b5c8807173682c",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/159d528d17b234349141309094b5c8807173682c"\r }\r },\r {\r "ref": "refs/heads/migurski/update-ui-engineer-job",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/migurski/update-ui-engineer-job",\r "object": {\r "sha": "e464c47fbbac6e16306700898071c1e5dc09e3e3",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/e464c47fbbac6e16306700898071c1e5dc09e3e3"\r }\r },\r {\r "ref": "refs/heads/nvkelso/fix-intro-map-styles-post",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/nvkelso/fix-intro-map-styles-post",\r "object": {\r "sha": "486d01e41103e66f44b4875263a6392428192c31",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/486d01e41103e66f44b4875263a6392428192c31"\r }\r },\r {\r "ref": "refs/heads/nvkelso/traditional-style",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/nvkelso/traditional-style",\r "object": {\r "sha": "cbc135319feccbe01b39a05e3888f106d01d4eaf",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/cbc135319feccbe01b39a05e3888f106d01d4eaf"\r }\r },\r {\r "ref": "refs/heads/orangejulius-patch-1",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/orangejulius-patch-1",\r "object": {\r "sha": "287b866fc48efe39cc1c4b42d7983b8ed098e92f",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/287b866fc48efe39cc1c4b42d7983b8ed098e92f"\r }\r },\r {\r "ref": "refs/heads/peter/kotlin",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/peter/kotlin",\r "object": {\r "sha": "e5fdb0247fde743bd9294afc820f13c345b842f0",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/e5fdb0247fde743bd9294afc820f13c345b842f0"\r }\r },\r {\r "ref": "refs/heads/production",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/production",\r "object": {\r "sha": "4f208d9d3ab640e8e29ccbba8a27ada6584a5c1c",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/4f208d9d3ab640e8e29ccbba8a27ada6584a5c1c"\r }\r }\r]'''
response_headers.update(Link='<https://api.github.com/repositories/34413671/git/refs?page=1>; rel="first", <https://api.github.com/repositories/34413671/git/refs?page=1>; rel="prev"')
return response(200, data.encode('utf8'), headers=response_headers)
if MHPQ == ('GET', 'circle-artifacts.com', '/gh/migurski/circlejek/28/artifacts/0/tmp/circle-artifacts.RyBi4pI/precog-content.tar.gz', 'circle-token=a17131792f4c4bcb97f2f66d9c58258a0ee0e621'):
return response(302, '', headers={'Location': 'https://circle-artifacts.com/gh/migurski/circlejek/28/artifacts/0/tmp/circle-artifacts.RyBi4pI/precog-content.tar.gz'})
if MHP == ('GET', 'circle-artifacts.com', '/gh/migurski/circlejek/28/artifacts/0/tmp/circle-artifacts.RyBi4pI/precog-content.tar.gz'):
data = b'\x1f\x8b\x08\x00J\xaa\xe0V\x00\x03\xed\xd5Kn\xc20\x14\x05P\x8fY\x85\x95\x05\xd8~\x0e\xb6\'\xc1S\xba\x8d\xa0\x84\x8f\x14\x08\n\x89\x80YW\xd3\x85u%mZ!\x12$`\x82\xf9\x88{&\x1e8\x92\x9ft}c!Yp\xea\x97s\xa6]\xc9\x19\xd5]\x0f\x18i\xeb\x14iCDL\x91\xb2\xb1c\xdc\x84\x1f\x8d\xb1fS\xa7\x15\xe7\xac\x994\xab\xba\xb9\xf0\xdd\x95\xfd\x17%\xe4\xac,\xb3\xc9>\x17\xf3zY\x849\xa3\r\xd8\xda\xe1\xf9\xfc\xedi\xfe1\x19b\\\x85\x19\xa7\xef\xcd\xf3O\xd6>I\xf9\xbc\xca\xa7\xa3H.VY\xbe\xfb\xbb\x08\x91\x1f\xff_\x0b\xbe-\xab"Kd\xeaE"\xd7~\xf0\xe8y\xe1\xb6D\'\xf4Pg\\\xef\xbf>\xe9\xbf\xb6\xb1F\xff\xef\xa1\xd7\xff\xeeS\x10\xf9\x8f\xbc(\xcac\xff\xbf?\xbf\xf0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00xJ?\xe9\xe1\x06\xd0\x00(\x00\x00'
return response(200, data, headers={'Content-Type': 'application/x-gzip'})
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/git/refs/heads'):
data = u'''[\r {\r "ref": "refs/heads/make-it-pop",\r "url": "https://api.github.com/repos/migurski/circlejek/git/refs/heads/make-it-pop",\r "object": {\r "sha": "992071bebb72e99ef8293dc77b74c03ab07ffa1b",\r "type": "commit",\r "url": "https://api.github.com/repos/migurski/circlejek/git/commits/992071bebb72e99ef8293dc77b74c03ab07ffa1b"\r }\r },\r {\r "ref": "refs/heads/many-little-files",\r "url": "https://api.github.com/repos/migurski/circlejek/git/refs/heads/many-little-files",\r "object": {\r "sha": "b7b85c936205ca72db80f05d11d2f4962facb9e5",\r "type": "(something other than) commit",\r "url": "https://api.github.com/repos/migurski/circlejek/git/commits/b7b85c936205ca72db80f05d11d2f4962facb9e5"\r }\r },\r {\r "ref": "refs/heads/master",\r "url": "https://api.github.com/repos/migurski/circlejek/git/refs/heads/master",\r "object": {\r "sha": "4872caf3203972ebbe13e3863e4c47c407ee4bbf",\r "type": "commit",\r "url": "https://api.github.com/repos/migurski/circlejek/git/commits/4872caf3203972ebbe13e3863e4c47c407ee4bbf"\r }\r },\r {\r "ref": "refs/heads/tinker-with-config",\r "url": "https://api.github.com/repos/migurski/circlejek/git/refs/heads/tinker-with-config",\r "object": {\r "sha": "3c6431c3c1fa730b792bc039877623ef60435a77",\r "type": "(something other than) commit",\r "url": "https://api.github.com/repos/migurski/circlejek/git/commits/3c6431c3c1fa730b792bc039877623ef60435a77"\r }\r }\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/git/commits/992071bebb72e99ef8293dc77b74c03ab07ffa1b'):
data = u'''{\r "sha": "992071bebb72e99ef8293dc77b74c03ab07ffa1b",\r "url": "https://api.github.com/repos/migurski/circlejek/git/commits/992071bebb72e99ef8293dc77b74c03ab07ffa1b",\r "html_url": "https://github.com/migurski/circlejek/commit/992071bebb72e99ef8293dc77b74c03ab07ffa1b",\r "author": {\r "name": "Michal Migurski",\r "email": "[email protected]",\r "date": "2015-12-30T22:50:18Z"\r },\r "committer": {\r "name": "Michal Migurski",\r "email": "[email protected]",\r "date": "2015-12-30T22:50:18Z"\r },\r "tree": {\r "sha": "3019fa8e88512b6e325b2116997b527834ff5f71",\r "url": "https://api.github.com/repos/migurski/circlejek/git/trees/3019fa8e88512b6e325b2116997b527834ff5f71"\r },\r "message": "Added exclamation points",\r "parents": [\r {\r "sha": "6f82dac4d909926b2d099ef9ef2db7bd3e97e1a7",\r "url": "https://api.github.com/repos/migurski/circlejek/git/commits/6f82dac4d909926b2d099ef9ef2db7bd3e97e1a7",\r "html_url": "https://github.com/migurski/circlejek/commit/6f82dac4d909926b2d099ef9ef2db7bd3e97e1a7"\r }\r ]\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/migurski/circlejek/git/commits/4872caf3203972ebbe13e3863e4c47c407ee4bbf'):
data = u'''{\r "sha": "4872caf3203972ebbe13e3863e4c47c407ee4bbf",\r "url": "https://api.github.com/repos/migurski/circlejek/git/commits/4872caf3203972ebbe13e3863e4c47c407ee4bbf",\r "html_url": "https://github.com/migurski/circlejek/commit/4872caf3203972ebbe13e3863e4c47c407ee4bbf",\r "author": {\r "name": "migurski",\r "email": "[email protected]",\r "date": "2016-01-06T05:36:42Z"\r },\r "committer": {\r "name": "migurski",\r "email": "[email protected]",\r "date": "2016-01-06T05:36:42Z"\r },\r "tree": {\r "sha": "f890f98bd0d50cf5ddba3d59e9dec2e282075d9b",\r "url": "https://api.github.com/repos/migurski/circlejek/git/trees/f890f98bd0d50cf5ddba3d59e9dec2e282075d9b"\r },\r "message": "Update index.md",\r "parents": [\r {\r "sha": "6f82dac4d909926b2d099ef9ef2db7bd3e97e1a7",\r "url": "https://api.github.com/repos/migurski/circlejek/git/commits/6f82dac4d909926b2d099ef9ef2db7bd3e97e1a7",\r "html_url": "https://github.com/migurski/circlejek/commit/6f82dac4d909926b2d099ef9ef2db7bd3e97e1a7"\r }\r ]\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/metro-extracts/git/trees/1cc0a0db8'):
data = u'''{\r "sha": "1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/trees/1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "tree": [\r {\r "path": ".gitignore",\r "mode": "100644",\r "type": "blob",\r "sha": "2f13b0ce6c0180fac624e0d92c6900f70120ea70",\r "size": 46,\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/blobs/2f13b0ce6c0180fac624e0d92c6900f70120ea70"\r },\r {\r "path": "circle.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "62291dddd1a41bc4f6d1b73a33ce64162d2dcf73",\r "size": 158,\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/blobs/62291dddd1a41bc4f6d1b73a33ce64162d2dcf73"\r },\r {\r "path": "dist",\r "mode": "040000",\r "type": "tree",\r "sha": "d564d0bc3dd917926892c55e3706cc116d5b165e",\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/trees/d564d0bc3dd917926892c55e3706cc116d5b165e"\r },\r {\r "path": "lib",\r "mode": "040000",\r "type": "tree",\r "sha": "1955c19dcdda8ce54966482e76188a4338a9205f",\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/trees/1955c19dcdda8ce54966482e76188a4338a9205f"\r },\r {\r "path": "package.json",\r "mode": "100644",\r "type": "blob",\r "sha": "07ba74ca0f5f50992336f793e7eed612c0b243cc",\r "size": 724,\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/blobs/07ba74ca0f5f50992336f793e7eed612c0b243cc"\r },\r {\r "path": "src",\r "mode": "040000",\r "type": "tree",\r "sha": "b63402bd4262fbf61262ea14506bf4df803641aa",\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/trees/b63402bd4262fbf61262ea14506bf4df803641aa"\r }\r ],\r "truncated": false\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/metro-extracts/git/blobs/62291dddd1a41bc4f6d1b73a33ce64162d2dcf73'):
data = u'''{\r "sha": "62291dddd1a41bc4f6d1b73a33ce64162d2dcf73",\r "size": 158,\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/blobs/62291dddd1a41bc4f6d1b73a33ce64162d2dcf73",\r "content": "bWFjaGluZToKICBub2RlOgogICAgdmVyc2lvbjogNC4yCgpkZXBlbmRlbmNp\\nZXM6CiAgcG9zdDoKICAgIC0gbnBtIHJ1biBidWlsZAoKdGVzdDoKICBvdmVy\\ncmlkZToKICAgIC0gZWNobyAnTm8gdGVzdHMg8J+OqScKCmdlbmVyYWw6CiAg\\nYXJ0aWZhY3RzOgogICAgLSAiZGlzdCI=\\n",\r "encoding": "base64"\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
raise Exception(MHPQ)
def test_getter_timeout(self):
with patch('requests.get') as get:
get.side_effect = lambda url, headers, auth, timeout: [url]
got1 = self.GET('http://example.com/', .2)
sleep(.1)
got2 = self.GET('http://example.com/', .2)
self.assertIs(got1, got2)
sleep(.3)
got3 = self.GET('http://example.com/')
self.assertIsNot(got3, got2)
def test_authenticated_user(self):
with HTTMock(self.response_content):
self.assertFalse(git.is_authenticated(git.Getter(('invalid', 'x-oauth-basic')).get))
self.assertTrue(git.is_authenticated(git.Getter(('valid', 'x-oauth-basic')).get))
def test_existing_repo(self):
with HTTMock(self.response_content):
self.assertFalse(git.repo_exists('migurski', 'no-repo', self.GET))
self.assertTrue(git.repo_exists('migurski', 'circlejek', self.GET))
def test_split_branch_path(self):
with HTTMock(self.response_content):
self.assertEqual(git.split_branch_path('mapzen', 'blog', 'drew/dc-transit-events-2016/blog/mapzen-in-dc', self.GET), ('drew/dc-transit-events-2016', 'blog/mapzen-in-dc'))
self.assertEqual(git.split_branch_path('mapzen', 'blog', 'drew/dc-transit-events-2016/blog/', self.GET), ('drew/dc-transit-events-2016', 'blog/'))
self.assertEqual(git.split_branch_path('mapzen', 'blog', 'drew/dc-transit-events-2016/', self.GET), ('drew/dc-transit-events-2016', ''))
self.assertEqual(git.split_branch_path('mapzen', 'blog', 'drew/dc-transit-events-2016', self.GET), ('drew/dc-transit-events-2016', ''))
self.assertEqual(git.split_branch_path('mapzen', 'blog', 'drew', self.GET), (None, 'drew'))
self.assertEqual(git.split_branch_path('mapzen', 'blog', '8d0c610/etc.', self.GET), ('8d0c610', 'etc.'))
def test_find_base_path(self):
with HTTMock(self.response_content):
self.assertEqual(git.find_base_path('migurski', 'circlejek', 'master', self.GET), '$CIRCLE_ARTIFACTS')
self.assertEqual(git.find_base_path('migurski', 'circlejek', 'tinker-with-config', self.GET), '/home/ubuntu/circlejek/_site')
with self.assertRaises(RuntimeError) as r:
git.find_base_path('mapzen', 'metro-extracts', '1cc0a0db8', self.GET), '/home/ubuntu/metro-extracts/dist'
self.assertIn('Problem reading configuration from circle.yml', r.exception.message)
def test_existing_master(self):
with HTTMock(self.response_content):
artifacts = git.get_circle_artifacts('migurski', 'circlejek', 'master', self.GET)
self.assertIn('index.html', artifacts)
def test_existing_tarball(self):
with HTTMock(self.response_content):
artifacts = git.get_circle_artifacts('migurski', 'circlejek', 'tarballize', self.GET)
self.assertIn('index.html', artifacts)
def test_untested_branch(self):
with HTTMock(self.response_content):
with self.assertRaises(RuntimeError) as r:
git.get_circle_artifacts('migurski', 'circlejek', 'untested', self.GET)
self.assertEqual(r.exception.args[0], git.ERR_NO_REF_STATUS)
def test_nonexistent_repository(self):
with HTTMock(self.response_content):
with self.assertRaises(RuntimeError) as r:
git.get_circle_artifacts('migurski', 'no-repo', 'master', self.GET)
self.assertEqual(r.exception.args[0], git.ERR_NO_REPOSITORY)
def test_unfinished_test(self):
with HTTMock(self.response_content):
with self.assertRaises(RuntimeError) as r:
git.get_circle_artifacts('migurski', 'circlejek', '4872caf32', self.GET)
self.assertEqual(r.exception.args[0], git.ERR_TESTS_PENDING)
def test_failed_test(self):
with HTTMock(self.response_content):
with self.assertRaises(RuntimeError) as r:
git.get_circle_artifacts('migurski', 'circlejek', 'd6f1c445e', self.GET)
self.assertEqual(r.exception.args[0], git.ERR_TESTS_FAILED)
def test_select_path(self):
self.assertEqual(git.select_path(tuple(), ''), 'index.html')
self.assertEqual(git.select_path(tuple(), 'foo'), 'foo/index.html')
self.assertEqual(git.select_path(('foo', ), 'foo'), 'foo')
def test_branch_link(self):
link1 = git.get_branch_link('migurski', 'circlejek', 'master')
self.assertIsNone(link1)
link2 = git.get_branch_link('migurski', 'circlejek', 'migurski/blog')
self.assertIsNone(link2)
link3 = git.get_branch_link('mapzen', 'styleguide', 'migurski/blog')
self.assertIsNone(link3)
link4 = git.get_branch_link('mapzen', 'blog', 'migurski/blog')
self.assertEqual(link4, 'blog')
link5 = git.get_branch_link('mapzen', 'blog', 'migurski/blog-hello')
self.assertEqual(link5, 'blog')
link6 = git.get_branch_link('mapzen', 'blog', 'migurski/blog/hello')
self.assertEqual(link6, 'blog')
link7 = git.get_branch_link('mapzen', 'blog', 'migurski/slog-hello')
self.assertIsNone(link7)
link8 = git.get_branch_link('mapzen', 'blog', 'migurski/blog_hello')
self.assertIsNone(link8)
def test_get_branch_info(self):
with HTTMock(self.response_content):
branch_info = git.get_branch_info('migurski', 'circlejek', self.GET)
self.assertIn('make-it-pop', [branch.name for branch in branch_info])
self.assertEqual(len(branch_info), 2)
class TestApp (unittest.TestCase):
def setUp(self):
self.okhand = urlencode({'go': u'\U0001f44c'.encode('utf8')}) # go=%F0%9F%91%8C or go=👌
self.client = app.test_client()
git._defaultcache.clear()
webhook_configs = 'blah:blah:blah', 'openaddresses/hooked-on-sources:hos-secret:abracadabra', 'pelias/pelias:peliant:abracadabra'
app.config['HOOK_SECRETS_TOKENS'] = util.parse_webhook_config(*webhook_configs)
@staticmethod
def scrub_query(url):
'''
'''
if url.hostname != 'api.github.com':
return url.query
raw_query = dict(parse_qsl(url.query))
args = {k: v for (k, v) in raw_query.items()
if k not in ('client_id', 'client_secret')}
return urlencode(args)
def response_content(self, url, request):
'''
'''
clean_query = TestApp.scrub_query(url)
MHP = request.method, url.hostname, url.path
MHPQ = request.method, url.hostname, url.path, clean_query
GH, CC = 'api.github.com', 'circleci.com'
response_headers = {'Content-Type': 'application/json; charset=utf-8'}
if MHP == ('GET', 'api.github.com', '/user'):
data = u'''{\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false,\r "name": null,\r "company": null,\r "blog": null,\r "location": null,\r "email": "[email protected]",\r "hireable": null,\r "bio": null,\r "public_repos": 91,\r "public_gists": 45,\r "followers": 439,\r "following": 94,\r "created_at": "2009-02-27T23:44:32Z",\r "updated_at": "2015-12-26T20:09:55Z",\r "private_gists": 23,\r "total_private_repos": 1,\r "owned_private_repos": 0,\r "disk_usage": 249156,\r "collaborators": 0,\r "plan": {\r "name": "free",\r "space": 976562499,\r "collaborators": 0,\r "private_repos": 0\r }\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/commits/master'):
data = u'''{\r "sha": "159d528d17b234349141309094b5c8807173682c",\r "commit": {\r "author": {\r "name": "Grant Heffernan",\r "email": "[email protected]",\r "date": "2016-01-07T21:57:03Z"\r },\r "committer": {\r "name": "Grant Heffernan",\r "email": "[email protected]",\r "date": "2016-01-07T21:57:03Z"\r },\r "message": "Merge pull request #653 from mapzen/orangejulius-patch-2\\n\\nElastic -> ElasticSearch",\r "tree": {\r "sha": "f925b118a2e712984ee33afdea85b83d5264d787",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/f925b118a2e712984ee33afdea85b83d5264d787"\r },\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/159d528d17b234349141309094b5c8807173682c",\r "comment_count": 0\r },\r "url": "https://api.github.com/repos/mapzen/blog/commits/159d528d17b234349141309094b5c8807173682c",\r "html_url": "https://github.com/mapzen/blog/commit/159d528d17b234349141309094b5c8807173682c",\r "comments_url": "https://api.github.com/repos/mapzen/blog/commits/159d528d17b234349141309094b5c8807173682c/comments",\r "author": {\r "login": "heffergm",\r "id": 629729,\r "avatar_url": "https://avatars.githubusercontent.com/u/629729?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/heffergm",\r "html_url": "https://github.com/heffergm",\r "followers_url": "https://api.github.com/users/heffergm/followers",\r "following_url": "https://api.github.com/users/heffergm/following{/other_user}",\r "gists_url": "https://api.github.com/users/heffergm/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/heffergm/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/heffergm/subscriptions",\r "organizations_url": "https://api.github.com/users/heffergm/orgs",\r "repos_url": "https://api.github.com/users/heffergm/repos",\r "events_url": "https://api.github.com/users/heffergm/events{/privacy}",\r "received_events_url": "https://api.github.com/users/heffergm/received_events",\r "type": "User",\r "site_admin": false\r },\r "committer": {\r "login": "heffergm",\r "id": 629729,\r "avatar_url": "https://avatars.githubusercontent.com/u/629729?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/heffergm",\r "html_url": "https://github.com/heffergm",\r "followers_url": "https://api.github.com/users/heffergm/followers",\r "following_url": "https://api.github.com/users/heffergm/following{/other_user}",\r "gists_url": "https://api.github.com/users/heffergm/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/heffergm/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/heffergm/subscriptions",\r "organizations_url": "https://api.github.com/users/heffergm/orgs",\r "repos_url": "https://api.github.com/users/heffergm/repos",\r "events_url": "https://api.github.com/users/heffergm/events{/privacy}",\r "received_events_url": "https://api.github.com/users/heffergm/received_events",\r "type": "User",\r "site_admin": false\r },\r "parents": [\r {\r "sha": "06e61c93d2e26b20578ef12eaac13263424b7f73",\r "url": "https://api.github.com/repos/mapzen/blog/commits/06e61c93d2e26b20578ef12eaac13263424b7f73",\r "html_url": "https://github.com/mapzen/blog/commit/06e61c93d2e26b20578ef12eaac13263424b7f73"\r },\r {\r "sha": "58f2857f747b10a4df6d1052f55992a305123b7a",\r "url": "https://api.github.com/repos/mapzen/blog/commits/58f2857f747b10a4df6d1052f55992a305123b7a",\r "html_url": "https://github.com/mapzen/blog/commit/58f2857f747b10a4df6d1052f55992a305123b7a"\r }\r ],\r "stats": {\r "total": 2,\r "additions": 1,\r "deletions": 1\r },\r "files": [\r {\r "sha": "055b67fe2f4ec36da3dd067532cfc226c73fc7a3",\r "filename": "_posts/2016-01-07-mapzen-search-data-pipeline.md",\r "status": "modified",\r "additions": 1,\r "deletions": 1,\r "changes": 2,\r "blob_url": "https://github.com/mapzen/blog/blob/159d528d17b234349141309094b5c8807173682c/_posts/2016-01-07-mapzen-search-data-pipeline.md",\r "raw_url": "https://github.com/mapzen/blog/raw/159d528d17b234349141309094b5c8807173682c/_posts/2016-01-07-mapzen-search-data-pipeline.md",\r "contents_url": "https://api.github.com/repos/mapzen/blog/contents/_posts/2016-01-07-mapzen-search-data-pipeline.md?ref=159d528d17b234349141309094b5c8807173682c",\r "patch": "@@ -13,7 +13,7 @@ date: 2016-01-07\\n \\n *This is the first in a [series of posts about engineering at Mapzen](https://mapzen.com/tag/engineering) -- [learn more here](/blog/engineering-series).*\\n \\n-Operationally, Mapzen Search is comprised at a very basic level of an API and an Elastic cluster. Where things get complicated is in the building of a pipeline that keeps the data in that cluster both up to date and highly available.\\n+Operationally, Mapzen Search is comprised at a very basic level of an API and an ElasticSearch cluster. Where things get complicated is in the building of a pipeline that keeps the data in that cluster both up to date and highly available.\\n \\n ### Overview\\n "\r }\r ]\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/commits/john'):
data = u'''{\r "message": "Not Found",\r "documentation_url": "https://developer.github.com/v3"\r}'''
return response(404, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/commits/dde72b5'):
data = u'''{\r "sha": "dde72b53d70ba7d5c2526c75745580df336380e1",\r "commit": {\r "author": {\r "name": "Mike Cunningham",\r "email": "[email protected]",\r "date": "2016-01-13T19:09:43Z"\r },\r "committer": {\r "name": "Mike Cunningham",\r "email": "[email protected]",\r "date": "2016-01-13T19:09:43Z"\r },\r "message": "Merge pull request #658 from mapzen/migurski/update-ui-engineer-job\\n\\nUpdate UI engineer job",\r "tree": {\r "sha": "45a3d4bf65dcbd7c9595445f55896c91e1639543",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/45a3d4bf65dcbd7c9595445f55896c91e1639543"\r },\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/dde72b53d70ba7d5c2526c75745580df336380e1",\r "comment_count": 0\r },\r "url": "https://api.github.com/repos/mapzen/blog/commits/dde72b53d70ba7d5c2526c75745580df336380e1",\r "html_url": "https://github.com/mapzen/blog/commit/dde72b53d70ba7d5c2526c75745580df336380e1",\r "comments_url": "https://api.github.com/repos/mapzen/blog/commits/dde72b53d70ba7d5c2526c75745580df336380e1/comments",\r "author": {\r "login": "mjcunningham",\r "id": 307758,\r "avatar_url": "https://avatars.githubusercontent.com/u/307758?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/mjcunningham",\r "html_url": "https://github.com/mjcunningham",\r "followers_url": "https://api.github.com/users/mjcunningham/followers",\r "following_url": "https://api.github.com/users/mjcunningham/following{/other_user}",\r "gists_url": "https://api.github.com/users/mjcunningham/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/mjcunningham/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/mjcunningham/subscriptions",\r "organizations_url": "https://api.github.com/users/mjcunningham/orgs",\r "repos_url": "https://api.github.com/users/mjcunningham/repos",\r "events_url": "https://api.github.com/users/mjcunningham/events{/privacy}",\r "received_events_url": "https://api.github.com/users/mjcunningham/received_events",\r "type": "User",\r "site_admin": false\r },\r "committer": {\r "login": "mjcunningham",\r "id": 307758,\r "avatar_url": "https://avatars.githubusercontent.com/u/307758?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/mjcunningham",\r "html_url": "https://github.com/mjcunningham",\r "followers_url": "https://api.github.com/users/mjcunningham/followers",\r "following_url": "https://api.github.com/users/mjcunningham/following{/other_user}",\r "gists_url": "https://api.github.com/users/mjcunningham/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/mjcunningham/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/mjcunningham/subscriptions",\r "organizations_url": "https://api.github.com/users/mjcunningham/orgs",\r "repos_url": "https://api.github.com/users/mjcunningham/repos",\r "events_url": "https://api.github.com/users/mjcunningham/events{/privacy}",\r "received_events_url": "https://api.github.com/users/mjcunningham/received_events",\r "type": "User",\r "site_admin": false\r },\r "parents": [\r {\r "sha": "aead7b034a45acf2db7e8148e2bc17e5615db959",\r "url": "https://api.github.com/repos/mapzen/blog/commits/aead7b034a45acf2db7e8148e2bc17e5615db959",\r "html_url": "https://github.com/mapzen/blog/commit/aead7b034a45acf2db7e8148e2bc17e5615db959"\r },\r {\r "sha": "940d83d5042223dbc3bafb282eaf936b7b955777",\r "url": "https://api.github.com/repos/mapzen/blog/commits/940d83d5042223dbc3bafb282eaf936b7b955777",\r "html_url": "https://github.com/mapzen/blog/commit/940d83d5042223dbc3bafb282eaf936b7b955777"\r }\r ],\r "stats": {\r "total": 106,\r "additions": 67,\r "deletions": 39\r },\r "files": [\r {\r "sha": "e35607de25bae4f034a4aa9133f145158edc3a60",\r "filename": "_jobs/senior-ui-engineer.md",\r "status": "added",\r "additions": 67,\r "deletions": 0,\r "changes": 67,\r "blob_url": "https://github.com/mapzen/blog/blob/dde72b53d70ba7d5c2526c75745580df336380e1/_jobs/senior-ui-engineer.md",\r "raw_url": "https://github.com/mapzen/blog/raw/dde72b53d70ba7d5c2526c75745580df336380e1/_jobs/senior-ui-engineer.md",\r "contents_url": "https://api.github.com/repos/mapzen/blog/contents/_jobs/senior-ui-engineer.md?ref=dde72b53d70ba7d5c2526c75745580df336380e1",\r "patch": "@@ -0,0 +1,67 @@\\n+---\\n+title: Senior UI Engineer\\n+layout: job\\n+published: true\\n+excerpt: \"Mapzen is looking for that special someone to join our demo team and make important improvements to open-source mapping and open data.\"\\n+category: jobs\\n+team: web\\n+locations: San Francisco, New York\\n+---\\n+\\n+Mapzen is looking for an experienced UI Engineer to join our demo team and make important improvements to open-source mapping and open data. With your enthusiasm for design, code, and maps you’ll be collaborating with engineering teams across the company to build and showcase awesome products using our Mapzen APIs and services. You’ll work with a [diverse team of veterans](https://mapzen.com/about/#team) from world-class mapping, design, and technology organizations in our San Francisco or New York offices. During a typical week, you might build a new interface for our groundbreaking WebGL toolkit, advance internal development processes for team members, demonstrate new capabilities of our search and routing services, and brainstorm with our data team on new ways to publish open geographic information on the web.\\n+\\n+At Mapzen we take a different approach to the core components of mapping—we do it open. Open source, open data, open access. We make modular tools for building better maps because we believe that healthy mapping ecosystems are ones that are diverse, sustainable, and accessible to all. Come join us to make our work in data, search, navigation, and design easy to understand and easy to use.\\n+\\n+Why Join Mapzen?\\n+---\\n+\\n+* [Commitment to exclusively open tools and data](https://mapzen.com/blog/our-magna-carto) for real change\\n+* Work alongside and learn from top experts and leaders in digital mapping\\n+* Everything you do will be public and open source:\\n+ * Open source navigation engine: [github.com/valhalla](https://github.com/valhalla)\\n+ * Distributed full-text geographic search engine: [github.com/pelias](https://github.com/pelias)\\n+ * Gazetteer and location data: [github.com/whosonfirst](https://github.com/whosonfirst)\\n+ * WebGL rendering library: [github.com/tangrams](https://github.com/tangrams)\\n+ * …and loads more: [github.com/mapzen](https://github.com/mapzen)\\n+* Healthy grownup working hours\\n+* World-class benefits\\n+\\n+Responsibilities\\n+---\\n+\\n+* Design and develop interfaces and demos for Mapzen services.\\n+* Mentor front-end developers on code and maintenance process.\\n+* Collaborate with engineering teams working on new features and services.\\n+* Design concepts for new demos and products building on Mapzen’s work.\\n+\\n+Requirements\\n+---\\n+\\n+* 3-5 years fluency in front-end desktop and mobile Javascript development.\\n+* Portfolio of creative, effective browser-based interactive design and the ability to clearly communicate your process.\\n+* Experience assessing project scope and timelines, balancing internal needs with external communications.\\n+* Ability to understand interface goals from a user, technical, and business perspective.\\n+\\n+Bonus Points\\n+---\\n+\\n+* You like maps!\\n+* Experience in an agency environment, with clients and deadlines.\\n+* Experience with agile, test-driven development and deployment.\\n+* Curiosity and a commitment to learning and teaching.\\n+* Contributions to open source projects.\\n+* Contributions to open source geospatial projects.\\n+\\n+Join Us!\\n+---\\n+\\n+If any of this sounds interesting to you, write to [[email protected]](mailto:[email protected]?subject=Senior%20UI%20Engineer). Please include “Senior UI Engineer” in the subject line and three items:\\n+\\n+1. Something résumé-like, e.g. your website, LinkedIn, or an attachment.\\n+2. Other links you’d like us to see, such as a blog, Github, or a sample project.\\n+3. A short answer to just one of these:\\n+ * What was the last good book, article, or presentation you saw on design or development? What made it stand out for you?\\n+ * What’s a favorite open-source library? What do you like about it?\\n+ * What’s the tool you learned most recently but haven’t yet had a chance to use in production? What have you learned from it so far?\\n+ * What methods did you most recently mentor a colleague on? How did it go?\\n+ * What are three things you’d change about the tool you’ve done most of your recent work with?"\r },\r {\r "sha": "59729bac5895786362a9a772d9bebd99800633cc",\r "filename": "_jobs/ui-engineer-ny.md",\r "status": "removed",\r "additions": 0,\r "deletions": 17,\r "changes": 17,\r "blob_url": "https://github.com/mapzen/blog/blob/aead7b034a45acf2db7e8148e2bc17e5615db959/_jobs/ui-engineer-ny.md",\r "raw_url": "https://github.com/mapzen/blog/raw/aead7b034a45acf2db7e8148e2bc17e5615db959/_jobs/ui-engineer-ny.md",\r "contents_url": "https://api.github.com/repos/mapzen/blog/contents/_jobs/ui-engineer-ny.md?ref=aead7b034a45acf2db7e8148e2bc17e5615db959",\r "patch": "@@ -1,17 +0,0 @@\\n----\\n-layout: job\\n-published: false\\n-title: UI Engineer, New York\\n-excerpt: \"We are looking for someone who can help us improve open-source mapping and open data. You'll be collaborating with our team to design and build awesome products using Mapzen APIs and services.\"\\n-category: jobs\\n-locations: New York\\n----\\n-We are looking for someone who can help us improve open-source mapping and open data. You'll be collaborating with our team to design and build awesome products using Mapzen APIs and services. The ideal candidate should be enthusiastic about design, code, and maps.\\n-\\n-### Requirements\\n-\\n-* Curiosity and a commitment to learning and teaching – your interest in picking up new skills is as important as your existing ones.\\n-* A portfolio of creative, effective web design and the ability to clearly communicate your process\\n-* Having a background in mapping isn’t as important as having a passion for maps – most of our team came to maps from different paths (ha ha, paths, maps), and we want to know about yours.\\n-* Pragmatic, user-focused approach, ability to understand requirements from a user perspective, as well as a technical perspective.\\n-* Everything else a front-end job description asks for: fluency in HTML, CSS, JavaScript; experience designing and developing responsive webpages; a great grasp of typography, composition and grid systems; ability to assess project scope and timelines."\r },\r {\r "sha": "10fcf407b5ca69066a5ec7c3b61b6e102152e050",\r "filename": "_jobs/ui-engineer-sf.md",\r "status": "removed",\r "additions": 0,\r "deletions": 22,\r "changes": 22,\r "blob_url": "https://github.com/mapzen/blog/blob/aead7b034a45acf2db7e8148e2bc17e5615db959/_jobs/ui-engineer-sf.md",\r "raw_url": "https://github.com/mapzen/blog/raw/aead7b034a45acf2db7e8148e2bc17e5615db959/_jobs/ui-engineer-sf.md",\r "contents_url": "https://api.github.com/repos/mapzen/blog/contents/_jobs/ui-engineer-sf.md?ref=aead7b034a45acf2db7e8148e2bc17e5615db959",\r "patch": "@@ -1,22 +0,0 @@\\n----\\n-layout: job\\n-published: true\\n-title: UI Engineer\\n-excerpt: \"We are looking for someone who can help us improve open-source mapping and open data. You'll be collaborating with our team to design and build awesome products using Mapzen APIs and services.\"\\n-category: jobs\\n-team: web\\n-locations: San Francisco\\n----\\n-We are looking for someone who can help us improve open-source mapping and open data. You'll be collaborating with our teams to design and build awesome products using Mapzen APIs and services. The ideal candidate should be enthusiastic about design, code, and maps.\\n-\\n-### Requirements\\n-\\n-* Curiosity and a commitment to learning and teaching. Your interest in picking up new skills is as important as your existing ones.\\n-\\n-* A portfolio of creative, effective web design and the ability to clearly communicate your process.\\n-\\n-* Having a background in geographic data isn't as important as having an interest in a geographic topic, like mapping, exploring, guiding, navigating, planning, designing... What types of problems do you want to tackle with geographic data?\\n-\\n-* Ability to understand requirements from a user perspective, as well as a technical perspective — and to communicate and collaborate with engineers, visual designers, and others on interdisciplinary teams.\\n-\\n-* Everything else a front-end job description asks for: fluency in HTML, CSS, JavaScript; experience designing and developing responsive webpages; a sense for when to use a framework and when to code from scratch; a great grasp of typography, composition and grid systems; ability to assess project scope and timelines."\r }\r ]\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/statuses/dde72b5'):
data = u'''[\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/dde72b53d70ba7d5c2526c75745580df336380e1",\r "id": 415321995,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/mapzen/blog/1987",\r "context": "ci/circleci",\r "created_at": "2016-01-14T05:19:03Z",\r "updated_at": "2016-01-14T05:19:03Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/dde72b53d70ba7d5c2526c75745580df336380e1",\r "id": 415321981,\r "state": "pending",\r "description": "Your tests have been scheduled to run again",\r "target_url": "https://circleci.com/gh/mapzen/blog/1987",\r "context": "ci/circleci",\r "created_at": "2016-01-14T05:19:01Z",\r "updated_at": "2016-01-14T05:19:01Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/dde72b53d70ba7d5c2526c75745580df336380e1",\r "id": 415321980,\r "state": "pending",\r "description": "Your tests have been scheduled to run again",\r "target_url": "https://circleci.com/gh/mapzen/blog/1987",\r "context": "ci/circleci",\r "created_at": "2016-01-14T05:19:00Z",\r "updated_at": "2016-01-14T05:19:00Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r }\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/styleguide/commits/91e4950'):
data = u'''{\r "sha": "91e495054f3a5aa089556800447666ebd559927a",\r "commit": {\r "author": {\r "name": "Evan Griffiths",\r "email": "[email protected]",\r "date": "2016-01-08T19:18:00Z"\r },\r "committer": {\r "name": "Evan Griffiths",\r "email": "[email protected]",\r "date": "2016-01-08T19:18:00Z"\r },\r "message": "Merge pull request #40 from mapzen/hanb/bugfix\\n\\nfixing documentation h1 style",\r "tree": {\r "sha": "3f78b98ee66fe47af1c74ac271f2ecba9db7c463",\r "url": "https://api.github.com/repos/mapzen/styleguide/git/trees/3f78b98ee66fe47af1c74ac271f2ecba9db7c463"\r },\r "url": "https://api.github.com/repos/mapzen/styleguide/git/commits/91e495054f3a5aa089556800447666ebd559927a",\r "comment_count": 0\r },\r "url": "https://api.github.com/repos/mapzen/styleguide/commits/91e495054f3a5aa089556800447666ebd559927a",\r "html_url": "https://github.com/mapzen/styleguide/commit/91e495054f3a5aa089556800447666ebd559927a",\r "comments_url": "https://api.github.com/repos/mapzen/styleguide/commits/91e495054f3a5aa089556800447666ebd559927a/comments",\r "author": {\r "login": "sleepylemur",\r "id": 5049698,\r "avatar_url": "https://avatars.githubusercontent.com/u/5049698?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/sleepylemur",\r "html_url": "https://github.com/sleepylemur",\r "followers_url": "https://api.github.com/users/sleepylemur/followers",\r "following_url": "https://api.github.com/users/sleepylemur/following{/other_user}",\r "gists_url": "https://api.github.com/users/sleepylemur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/sleepylemur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/sleepylemur/subscriptions",\r "organizations_url": "https://api.github.com/users/sleepylemur/orgs",\r "repos_url": "https://api.github.com/users/sleepylemur/repos",\r "events_url": "https://api.github.com/users/sleepylemur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/sleepylemur/received_events",\r "type": "User",\r "site_admin": false\r },\r "committer": {\r "login": "sleepylemur",\r "id": 5049698,\r "avatar_url": "https://avatars.githubusercontent.com/u/5049698?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/sleepylemur",\r "html_url": "https://github.com/sleepylemur",\r "followers_url": "https://api.github.com/users/sleepylemur/followers",\r "following_url": "https://api.github.com/users/sleepylemur/following{/other_user}",\r "gists_url": "https://api.github.com/users/sleepylemur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/sleepylemur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/sleepylemur/subscriptions",\r "organizations_url": "https://api.github.com/users/sleepylemur/orgs",\r "repos_url": "https://api.github.com/users/sleepylemur/repos",\r "events_url": "https://api.github.com/users/sleepylemur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/sleepylemur/received_events",\r "type": "User",\r "site_admin": false\r },\r "parents": [\r {\r "sha": "87aa7e3518830cef511ae7e04db2cf3938dbcfb5",\r "url": "https://api.github.com/repos/mapzen/styleguide/commits/87aa7e3518830cef511ae7e04db2cf3938dbcfb5",\r "html_url": "https://github.com/mapzen/styleguide/commit/87aa7e3518830cef511ae7e04db2cf3938dbcfb5"\r },\r {\r "sha": "201b8ba1c4f7f0014d17165e57fbadbc101bc87a",\r "url": "https://api.github.com/repos/mapzen/styleguide/commits/201b8ba1c4f7f0014d17165e57fbadbc101bc87a",\r "html_url": "https://github.com/mapzen/styleguide/commit/201b8ba1c4f7f0014d17165e57fbadbc101bc87a"\r }\r ],\r "stats": {\r "total": 2,\r "additions": 1,\r "deletions": 1\r },\r "files": [\r {\r "sha": "4335eac28aa62aaac53923cf633c9b25c031906d",\r "filename": "src/stylesheets/common/_documentation.scss",\r "status": "modified",\r "additions": 1,\r "deletions": 1,\r "changes": 2,\r "blob_url": "https://github.com/mapzen/styleguide/blob/91e495054f3a5aa089556800447666ebd559927a/src/stylesheets/common/_documentation.scss",\r "raw_url": "https://github.com/mapzen/styleguide/raw/91e495054f3a5aa089556800447666ebd559927a/src/stylesheets/common/_documentation.scss",\r "contents_url": "https://api.github.com/repos/mapzen/styleguide/contents/src/stylesheets/common/_documentation.scss?ref=91e495054f3a5aa089556800447666ebd559927a",\r "patch": "@@ -12,8 +12,8 @@\\n padding: 40px 20px;\\n \\n h1 {\\n- font-family: 'Playfair Display';\\n padding-top: 20px,\\n+ color: #fff\\n }\\n \\n p {"\r }\r ]\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/styleguide/statuses/91e4950'):
data = u'''[\r {\r "url": "https://api.github.com/repos/mapzen/styleguide/statuses/91e495054f3a5aa089556800447666ebd559927a",\r "id": 410107703,\r "state": "failure",\r "description": "Your tests failed on CircleCI",\r "target_url": "https://circleci.com/gh/mapzen/styleguide/86",\r "context": "ci/circleci",\r "created_at": "2016-01-08T19:19:17Z",\r "updated_at": "2016-01-08T19:19:17Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/styleguide/statuses/91e495054f3a5aa089556800447666ebd559927a",\r "id": 410106389,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/mapzen/styleguide/86",\r "context": "ci/circleci",\r "created_at": "2016-01-08T19:18:04Z",\r "updated_at": "2016-01-08T19:18:04Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/styleguide/statuses/91e495054f3a5aa089556800447666ebd559927a",\r "id": 410106347,\r "state": "pending",\r "description": "Your tests are queued behind your running builds",\r "target_url": "https://circleci.com/gh/mapzen/styleguide/86",\r "context": "ci/circleci",\r "created_at": "2016-01-08T19:18:03Z",\r "updated_at": "2016-01-08T19:18:03Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r }\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads/john'):
data = u'''[\r {\r "ref": "refs/heads/john/test",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/john/test",\r "object": {\r "sha": "159d528d17b234349141309094b5c8807173682c",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/159d528d17b234349141309094b5c8807173682c"\r }\r }\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads/john/test'):
data = u'''{\r "ref": "refs/heads/john/test",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/john/test",\r "object": {\r "sha": "159d528d17b234349141309094b5c8807173682c",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/159d528d17b234349141309094b5c8807173682c"\r }\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/statuses/john/test'):
data = u'''[\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 411881422,\r "state": "success",\r "description": "Your tests passed on CircleCI!",\r "target_url": "https://circleci.com/gh/mapzen/blog/1961",\r "context": "ci/circleci",\r "created_at": "2016-01-11T18:26:45Z",\r "updated_at": "2016-01-11T18:26:45Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 411879068,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/mapzen/blog/1961",\r "context": "ci/circleci",\r "created_at": "2016-01-11T18:24:32Z",\r "updated_at": "2016-01-11T18:24:32Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 411866466,\r "state": "pending",\r "description": "Your tests are queued behind your running builds",\r "target_url": "https://circleci.com/gh/mapzen/blog/1961",\r "context": "ci/circleci",\r "created_at": "2016-01-11T18:13:47Z",\r "updated_at": "2016-01-11T18:13:47Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 409191209,\r "state": "success",\r "description": "Your tests passed on CircleCI!",\r "target_url": "https://circleci.com/gh/mapzen/blog/1947",\r "context": "ci/circleci",\r "created_at": "2016-01-07T23:50:14Z",\r "updated_at": "2016-01-07T23:50:14Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 409189879,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/mapzen/blog/1947",\r "context": "ci/circleci",\r "created_at": "2016-01-07T23:48:58Z",\r "updated_at": "2016-01-07T23:48:58Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 409189865,\r "state": "pending",\r "description": "Your tests are queued behind your running builds",\r "target_url": "https://circleci.com/gh/mapzen/blog/1947",\r "context": "ci/circleci",\r "created_at": "2016-01-07T23:48:57Z",\r "updated_at": "2016-01-07T23:48:57Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 409065397,\r "state": "success",\r "description": "Your tests passed on CircleCI!",\r "target_url": "https://circleci.com/gh/mapzen/blog/1946",\r "context": "ci/circleci",\r "created_at": "2016-01-07T22:00:31Z",\r "updated_at": "2016-01-07T22:00:31Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 409061069,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/mapzen/blog/1946",\r "context": "ci/circleci",\r "created_at": "2016-01-07T21:57:05Z",\r "updated_at": "2016-01-07T21:57:05Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 409061047,\r "state": "pending",\r "description": "Your tests are queued behind your running builds",\r "target_url": "https://circleci.com/gh/mapzen/blog/1946",\r "context": "ci/circleci",\r "created_at": "2016-01-07T21:57:04Z",\r "updated_at": "2016-01-07T21:57:04Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r }\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/trees/john/test'):
data = u'''{\r "sha": "159d528d17b234349141309094b5c8807173682c",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/159d528d17b234349141309094b5c8807173682c",\r "tree": [\r {\r "path": ".gitattributes",\r "mode": "100644",\r "type": "blob",\r "sha": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",\r "size": 0,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/e69de29bb2d1d6434b8b29ae775ad8c2e48c5391"\r },\r {\r "path": ".gitignore",\r "mode": "100644",\r "type": "blob",\r "sha": "f206e3a61cf17c18442e8fe5b58c6e9c2b911f9f",\r "size": 221,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/f206e3a61cf17c18442e8fe5b58c6e9c2b911f9f"\r },\r {\r "path": ".ruby-version",\r "mode": "100644",\r "type": "blob",\r "sha": "585940699b5b99df6541c819a773ef738985a956",\r "size": 6,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/585940699b5b99df6541c819a773ef738985a956"\r },\r {\r "path": "401.html",\r "mode": "100644",\r "type": "blob",\r "sha": "b612633d4c7d58238598a2a0176636a067010c1f",\r "size": 348,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/b612633d4c7d58238598a2a0176636a067010c1f"\r },\r {\r "path": "422.html",\r "mode": "100644",\r "type": "blob",\r "sha": "b1abe0f92a2e1594e01b44636da6f5b3f35c27f8",\r "size": 435,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/b1abe0f92a2e1594e01b44636da6f5b3f35c27f8"\r },\r {\r "path": "500.html",\r "mode": "100644",\r "type": "blob",\r "sha": "0145f2963732e9d258637ee7b847402f2c152670",\r "size": 422,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/0145f2963732e9d258637ee7b847402f2c152670"\r },\r {\r "path": "Gemfile",\r "mode": "100644",\r "type": "blob",\r "sha": "063b71e2ce4d0d1b1f751bad336fd8360be21485",\r "size": 189,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/063b71e2ce4d0d1b1f751bad336fd8360be21485"\r },\r {\r "path": "Gemfile.lock",\r "mode": "100644",\r "type": "blob",\r "sha": "26af57f31b892a0a473602fc200f526615d00229",\r "size": 2508,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/26af57f31b892a0a473602fc200f526615d00229"\r },\r {\r "path": "README.md",\r "mode": "100644",\r "type": "blob",\r "sha": "f52a6f96ab08611bcfe6297e72fd5a726549ebe1",\r "size": 20554,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/f52a6f96ab08611bcfe6297e72fd5a726549ebe1"\r },\r {\r "path": "Rakefile",\r "mode": "100644",\r "type": "blob",\r "sha": "afb6dda590d561e49cfca0c394b08aea14b590e7",\r "size": 296,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/afb6dda590d561e49cfca0c394b08aea14b590e7"\r },\r {\r "path": "_config.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "4f7076b55083b212226e026a2da52f16048fbdf2",\r "size": 824,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/4f7076b55083b212226e026a2da52f16048fbdf2"\r },\r {\r "path": "_config_production.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "d031cf8664d17c8a2725d2519f2f66202493a401",\r "size": 270,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/d031cf8664d17c8a2725d2519f2f66202493a401"\r },\r {\r "path": "_data",\r "mode": "040000",\r "type": "tree",\r "sha": "759bb27c0d27d9e4e68b0e4e6415b9e3279c6f5d",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/759bb27c0d27d9e4e68b0e4e6415b9e3279c6f5d"\r },\r {\r "path": "_includes",\r "mode": "040000",\r "type": "tree",\r "sha": "e03b4acfd762b4e1ad40104c494be5ebe78393fb",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/e03b4acfd762b4e1ad40104c494be5ebe78393fb"\r },\r {\r "path": "_jobs",\r "mode": "040000",\r "type": "tree",\r "sha": "9a7fe95fc2008723835601f3f04f4b08a2c79c5d",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/9a7fe95fc2008723835601f3f04f4b08a2c79c5d"\r },\r {\r "path": "_layouts",\r "mode": "040000",\r "type": "tree",\r "sha": "c359ec94abac329d9fffc69dae52e5af0b77432d",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/c359ec94abac329d9fffc69dae52e5af0b77432d"\r },\r {\r "path": "_plugins",\r "mode": "040000",\r "type": "tree",\r "sha": "695a09d282688de5cbbc49422559166ec70dc74c",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/695a09d282688de5cbbc49422559166ec70dc74c"\r },\r {\r "path": "_posts",\r "mode": "040000",\r "type": "tree",\r "sha": "7c57a3664a0ad29fc197638924d6cb72ac69342f",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/7c57a3664a0ad29fc197638924d6cb72ac69342f"\r },\r {\r "path": "_projects",\r "mode": "040000",\r "type": "tree",\r "sha": "e4b3a3b57b07ec2edd7cb03ff3476b3f9edead47",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/e4b3a3b57b07ec2edd7cb03ff3476b3f9edead47"\r },\r {\r "path": "about.html",\r "mode": "100644",\r "type": "blob",\r "sha": "6d5335463482ed2a401adc3d09ab5f527a9c424b",\r "size": 1876,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/6d5335463482ed2a401adc3d09ab5f527a9c424b"\r },\r {\r "path": "atom.xml",\r "mode": "100644",\r "type": "blob",\r "sha": "6ab91d2261599f9264f7c598f04363e5daa01000",\r "size": 610,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/6ab91d2261599f9264f7c598f04363e5daa01000"\r },\r {\r "path": "circle.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "0912526f97d03d48830788c2bc9213306412b172",\r "size": 293,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/0912526f97d03d48830788c2bc9213306412b172"\r },\r {\r "path": "config",\r "mode": "040000",\r "type": "tree",\r "sha": "cd70a5ddbad50f1a55db89060133762c0303fd8f",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/cd70a5ddbad50f1a55db89060133762c0303fd8f"\r },\r {\r "path": "data.html",\r "mode": "100644",\r "type": "blob",\r "sha": "46d7795285c819bcf8ba1a7880b06c85182c1a50",\r "size": 3376,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/46d7795285c819bcf8ba1a7880b06c85182c1a50"\r },\r {\r "path": "deploy",\r "mode": "040000",\r "type": "tree",\r "sha": "6b8041d0c17672ca94da4908bcf2f8d03f3883af",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/6b8041d0c17672ca94da4908bcf2f8d03f3883af"\r },\r {\r "path": "documentation",\r "mode": "040000",\r "type": "tree",\r "sha": "a2cca6c2489cfa1e8b17d895ceda716472b05e28",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/a2cca6c2489cfa1e8b17d895ceda716472b05e28"\r },\r {\r "path": "feed.xml",\r "mode": "100644",\r "type": "blob",\r "sha": "a6628bd842af95a7f423155dd95510941d3a78dc",\r "size": 1291,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/a6628bd842af95a7f423155dd95510941d3a78dc"\r },\r {\r "path": "gallery",\r "mode": "040000",\r "type": "tree",\r "sha": "d6643b3e2e6bf433c9783152b213a5f9e1966fe6",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/d6643b3e2e6bf433c9783152b213a5f9e1966fe6"\r },\r {\r "path": "images",\r "mode": "040000",\r "type": "tree",\r "sha": "29a422c19251aeaeb907175e9b3219a9bed6c616",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/29a422c19251aeaeb907175e9b3219a9bed6c616"\r },\r {\r "path": "index.html",\r "mode": "100644",\r "type": "blob",\r "sha": "cb7c180891514f6c90a2c2eadc84dbe03ef3080d",\r "size": 3364,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/cb7c180891514f6c90a2c2eadc84dbe03ef3080d"\r },\r {\r "path": "jobs.html",\r "mode": "100644",\r "type": "blob",\r "sha": "c3b2025b9daefcb204543b2b1408765b9bdb8558",\r "size": 1572,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/c3b2025b9daefcb204543b2b1408765b9bdb8558"\r },\r {\r "path": "lib",\r "mode": "040000",\r "type": "tree",\r "sha": "4e704ad78cc21370af178e0ae9f09334a26c887b",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/4e704ad78cc21370af178e0ae9f09334a26c887b"\r },\r {\r "path": "licenses.md",\r "mode": "100644",\r "type": "blob",\r "sha": "9e977ca3079bb7d6af4729ec6d3c7e19f5f9e840",\r "size": 638,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/9e977ca3079bb7d6af4729ec6d3c7e19f5f9e840"\r },\r {\r "path": "media-resources.html",\r "mode": "100644",\r "type": "blob",\r "sha": "985d74ef4f49a89a69105a901dda3452f39f3341",\r "size": 1710,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/985d74ef4f49a89a69105a901dda3452f39f3341"\r },\r {\r "path": "open.html",\r "mode": "100644",\r "type": "blob",\r "sha": "68ea5050c372515f66b5f8701001d81c1e8733b3",\r "size": 78,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/68ea5050c372515f66b5f8701001d81c1e8733b3"\r },\r {\r "path": "open",\r "mode": "040000",\r "type": "tree",\r "sha": "380ba6caaa437a209c9d509455aa5fcc4ca01611",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/380ba6caaa437a209c9d509455aa5fcc4ca01611"\r },\r {\r "path": "privacy.md",\r "mode": "100644",\r "type": "blob",\r "sha": "bdfe5e2da06bd27e499a1912fa412d4f9506cc90",\r "size": 7327,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/bdfe5e2da06bd27e499a1912fa412d4f9506cc90"\r },\r {\r "path": "projects.html",\r "mode": "100644",\r "type": "blob",\r "sha": "0c4539068dbb0b529c6ce7b329312ecf5e5ec8ce",\r "size": 3858,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/0c4539068dbb0b529c6ce7b329312ecf5e5ec8ce"\r },\r {\r "path": "resources",\r "mode": "040000",\r "type": "tree",\r "sha": "1a9a5dcc53184362206f35e8ba162a1f0ca4d7c4",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/1a9a5dcc53184362206f35e8ba162a1f0ca4d7c4"\r },\r {\r "path": "rss.xml",\r "mode": "100644",\r "type": "blob",\r "sha": "6625e3d055f3a2d10604b951bb70d77cb7b2f3ad",\r "size": 527,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/6625e3d055f3a2d10604b951bb70d77cb7b2f3ad"\r },\r {\r "path": "stylesheets",\r "mode": "040000",\r "type": "tree",\r "sha": "85c583c79689d0d2907eccf255658c7476c6c06d",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/85c583c79689d0d2907eccf255658c7476c6c06d"\r },\r {\r "path": "terms.html",\r "mode": "100644",\r "type": "blob",\r "sha": "511368f1aa08ab4e86b3b15d449b8156cec7a65d",\r "size": 23156,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/511368f1aa08ab4e86b3b15d449b8156cec7a65d"\r }\r ],\r "truncated": false\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog'):
data = u'''{\r "id": 34413671,\r "name": "blog",\r "full_name": "mapzen/blog",\r "owner": {\r "login": "mapzen",\r "id": 5435747,\r "avatar_url": "https://avatars.githubusercontent.com/u/5435747?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/mapzen",\r "html_url": "https://github.com/mapzen",\r "followers_url": "https://api.github.com/users/mapzen/followers",\r "following_url": "https://api.github.com/users/mapzen/following{/other_user}",\r "gists_url": "https://api.github.com/users/mapzen/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/mapzen/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/mapzen/subscriptions",\r "organizations_url": "https://api.github.com/users/mapzen/orgs",\r "repos_url": "https://api.github.com/users/mapzen/repos",\r "events_url": "https://api.github.com/users/mapzen/events{/privacy}",\r "received_events_url": "https://api.github.com/users/mapzen/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "private": true,\r "html_url": "https://github.com/mapzen/blog",\r "description": "Here we blog",\r "fork": false,\r "url": "https://api.github.com/repos/mapzen/blog",\r "forks_url": "https://api.github.com/repos/mapzen/blog/forks",\r "keys_url": "https://api.github.com/repos/mapzen/blog/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/mapzen/blog/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/mapzen/blog/teams",\r "hooks_url": "https://api.github.com/repos/mapzen/blog/hooks",\r "issue_events_url": "https://api.github.com/repos/mapzen/blog/issues/events{/number}",\r "events_url": "https://api.github.com/repos/mapzen/blog/events",\r "assignees_url": "https://api.github.com/repos/mapzen/blog/assignees{/user}",\r "branches_url": "https://api.github.com/repos/mapzen/blog/branches{/branch}",\r "tags_url": "https://api.github.com/repos/mapzen/blog/tags",\r "blobs_url": "https://api.github.com/repos/mapzen/blog/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/mapzen/blog/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/mapzen/blog/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/mapzen/blog/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/mapzen/blog/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/mapzen/blog/languages",\r "stargazers_url": "https://api.github.com/repos/mapzen/blog/stargazers",\r "contributors_url": "https://api.github.com/repos/mapzen/blog/contributors",\r "subscribers_url": "https://api.github.com/repos/mapzen/blog/subscribers",\r "subscription_url": "https://api.github.com/repos/mapzen/blog/subscription",\r "commits_url": "https://api.github.com/repos/mapzen/blog/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/mapzen/blog/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/mapzen/blog/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/mapzen/blog/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/mapzen/blog/contents/{+path}",\r "compare_url": "https://api.github.com/repos/mapzen/blog/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/mapzen/blog/merges",\r "archive_url": "https://api.github.com/repos/mapzen/blog/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/mapzen/blog/downloads",\r "issues_url": "https://api.github.com/repos/mapzen/blog/issues{/number}",\r "pulls_url": "https://api.github.com/repos/mapzen/blog/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/mapzen/blog/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/mapzen/blog/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/mapzen/blog/labels{/name}",\r "releases_url": "https://api.github.com/repos/mapzen/blog/releases{/id}",\r "created_at": "2015-04-22T20:19:44Z",\r "updated_at": "2015-10-15T19:37:07Z",\r "pushed_at": "2016-01-08T23:06:49Z",\r "git_url": "git://github.com/mapzen/blog.git",\r "ssh_url": "[email protected]:mapzen/blog.git",\r "clone_url": "https://github.com/mapzen/blog.git",\r "svn_url": "https://github.com/mapzen/blog",\r "homepage": null,\r "size": 35092,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": "HTML",\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 0,\r "mirror_url": null,\r "open_issues_count": 20,\r "forks": 0,\r "open_issues": 20,\r "watchers": 0,\r "default_branch": "master",\r "permissions": {\r "admin": true,\r "push": true,\r "pull": true\r },\r "organization": {\r "login": "mapzen",\r "id": 5435747,\r "avatar_url": "https://avatars.githubusercontent.com/u/5435747?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/mapzen",\r "html_url": "https://github.com/mapzen",\r "followers_url": "https://api.github.com/users/mapzen/followers",\r "following_url": "https://api.github.com/users/mapzen/following{/other_user}",\r "gists_url": "https://api.github.com/users/mapzen/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/mapzen/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/mapzen/subscriptions",\r "organizations_url": "https://api.github.com/users/mapzen/orgs",\r "repos_url": "https://api.github.com/users/mapzen/repos",\r "events_url": "https://api.github.com/users/mapzen/events{/privacy}",\r "received_events_url": "https://api.github.com/users/mapzen/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "network_count": 0,\r "subscribers_count": 27\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/styleguide'):
data = u'''{\r "id": 45061234,\r "name": "styleguide",\r "full_name": "mapzen/styleguide",\r "owner": {\r "login": "mapzen",\r "id": 5435747,\r "avatar_url": "https://avatars.githubusercontent.com/u/5435747?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/mapzen",\r "html_url": "https://github.com/mapzen",\r "followers_url": "https://api.github.com/users/mapzen/followers",\r "following_url": "https://api.github.com/users/mapzen/following{/other_user}",\r "gists_url": "https://api.github.com/users/mapzen/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/mapzen/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/mapzen/subscriptions",\r "organizations_url": "https://api.github.com/users/mapzen/orgs",\r "repos_url": "https://api.github.com/users/mapzen/repos",\r "events_url": "https://api.github.com/users/mapzen/events{/privacy}",\r "received_events_url": "https://api.github.com/users/mapzen/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/mapzen/styleguide",\r "description": "A living styleguide powering the Mapzen brand (TM)",\r "fork": false,\r "url": "https://api.github.com/repos/mapzen/styleguide",\r "forks_url": "https://api.github.com/repos/mapzen/styleguide/forks",\r "keys_url": "https://api.github.com/repos/mapzen/styleguide/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/mapzen/styleguide/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/mapzen/styleguide/teams",\r "hooks_url": "https://api.github.com/repos/mapzen/styleguide/hooks",\r "issue_events_url": "https://api.github.com/repos/mapzen/styleguide/issues/events{/number}",\r "events_url": "https://api.github.com/repos/mapzen/styleguide/events",\r "assignees_url": "https://api.github.com/repos/mapzen/styleguide/assignees{/user}",\r "branches_url": "https://api.github.com/repos/mapzen/styleguide/branches{/branch}",\r "tags_url": "https://api.github.com/repos/mapzen/styleguide/tags",\r "blobs_url": "https://api.github.com/repos/mapzen/styleguide/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/mapzen/styleguide/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/mapzen/styleguide/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/mapzen/styleguide/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/mapzen/styleguide/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/mapzen/styleguide/languages",\r "stargazers_url": "https://api.github.com/repos/mapzen/styleguide/stargazers",\r "contributors_url": "https://api.github.com/repos/mapzen/styleguide/contributors",\r "subscribers_url": "https://api.github.com/repos/mapzen/styleguide/subscribers",\r "subscription_url": "https://api.github.com/repos/mapzen/styleguide/subscription",\r "commits_url": "https://api.github.com/repos/mapzen/styleguide/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/mapzen/styleguide/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/mapzen/styleguide/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/mapzen/styleguide/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/mapzen/styleguide/contents/{+path}",\r "compare_url": "https://api.github.com/repos/mapzen/styleguide/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/mapzen/styleguide/merges",\r "archive_url": "https://api.github.com/repos/mapzen/styleguide/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/mapzen/styleguide/downloads",\r "issues_url": "https://api.github.com/repos/mapzen/styleguide/issues{/number}",\r "pulls_url": "https://api.github.com/repos/mapzen/styleguide/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/mapzen/styleguide/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/mapzen/styleguide/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/mapzen/styleguide/labels{/name}",\r "releases_url": "https://api.github.com/repos/mapzen/styleguide/releases{/id}",\r "created_at": "2015-10-27T18:24:08Z",\r "updated_at": "2016-01-12T19:04:14Z",\r "pushed_at": "2016-01-13T23:06:26Z",\r "git_url": "git://github.com/mapzen/styleguide.git",\r "ssh_url": "[email protected]:mapzen/styleguide.git",\r "clone_url": "https://github.com/mapzen/styleguide.git",\r "svn_url": "https://github.com/mapzen/styleguide",\r "homepage": "",\r "size": 338,\r "stargazers_count": 1,\r "watchers_count": 1,\r "language": "HTML",\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 0,\r "mirror_url": null,\r "open_issues_count": 10,\r "forks": 0,\r "open_issues": 10,\r "watchers": 1,\r "default_branch": "master",\r "permissions": {\r "admin": true,\r "push": true,\r "pull": true\r },\r "organization": {\r "login": "mapzen",\r "id": 5435747,\r "avatar_url": "https://avatars.githubusercontent.com/u/5435747?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/mapzen",\r "html_url": "https://github.com/mapzen",\r "followers_url": "https://api.github.com/users/mapzen/followers",\r "following_url": "https://api.github.com/users/mapzen/following{/other_user}",\r "gists_url": "https://api.github.com/users/mapzen/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/mapzen/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/mapzen/subscriptions",\r "organizations_url": "https://api.github.com/users/mapzen/orgs",\r "repos_url": "https://api.github.com/users/mapzen/repos",\r "events_url": "https://api.github.com/users/mapzen/events{/privacy}",\r "received_events_url": "https://api.github.com/users/mapzen/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "network_count": 0,\r "subscribers_count": 7\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/statuses/master'):
data = u'''[\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 409191209,\r "state": "success",\r "description": "Your tests passed on CircleCI!",\r "target_url": "https://circleci.com/gh/mapzen/blog/1947",\r "context": "ci/circleci",\r "created_at": "2016-01-07T23:50:14Z",\r "updated_at": "2016-01-07T23:50:14Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 409189879,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/mapzen/blog/1947",\r "context": "ci/circleci",\r "created_at": "2016-01-07T23:48:58Z",\r "updated_at": "2016-01-07T23:48:58Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 409189865,\r "state": "pending",\r "description": "Your tests are queued behind your running builds",\r "target_url": "https://circleci.com/gh/mapzen/blog/1947",\r "context": "ci/circleci",\r "created_at": "2016-01-07T23:48:57Z",\r "updated_at": "2016-01-07T23:48:57Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 409065397,\r "state": "success",\r "description": "Your tests passed on CircleCI!",\r "target_url": "https://circleci.com/gh/mapzen/blog/1946",\r "context": "ci/circleci",\r "created_at": "2016-01-07T22:00:31Z",\r "updated_at": "2016-01-07T22:00:31Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 409061069,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/mapzen/blog/1946",\r "context": "ci/circleci",\r "created_at": "2016-01-07T21:57:05Z",\r "updated_at": "2016-01-07T21:57:05Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/blog/statuses/159d528d17b234349141309094b5c8807173682c",\r "id": 409061047,\r "state": "pending",\r "description": "Your tests are queued behind your running builds",\r "target_url": "https://circleci.com/gh/mapzen/blog/1946",\r "context": "ci/circleci",\r "created_at": "2016-01-07T21:57:04Z",\r "updated_at": "2016-01-07T21:57:04Z",\r "creator": {\r "login": "baldur",\r "id": 759,\r "avatar_url": "https://avatars.githubusercontent.com/u/759?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/baldur",\r "html_url": "https://github.com/baldur",\r "followers_url": "https://api.github.com/users/baldur/followers",\r "following_url": "https://api.github.com/users/baldur/following{/other_user}",\r "gists_url": "https://api.github.com/users/baldur/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/baldur/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/baldur/subscriptions",\r "organizations_url": "https://api.github.com/users/baldur/orgs",\r "repos_url": "https://api.github.com/users/baldur/repos",\r "events_url": "https://api.github.com/users/baldur/events{/privacy}",\r "received_events_url": "https://api.github.com/users/baldur/received_events",\r "type": "User",\r "site_admin": false\r }\r }\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/trees/master'):
data = u'''{\r "sha": "159d528d17b234349141309094b5c8807173682c",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/159d528d17b234349141309094b5c8807173682c",\r "tree": [\r {\r "path": ".gitattributes",\r "mode": "100644",\r "type": "blob",\r "sha": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",\r "size": 0,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/e69de29bb2d1d6434b8b29ae775ad8c2e48c5391"\r },\r {\r "path": ".gitignore",\r "mode": "100644",\r "type": "blob",\r "sha": "f206e3a61cf17c18442e8fe5b58c6e9c2b911f9f",\r "size": 221,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/f206e3a61cf17c18442e8fe5b58c6e9c2b911f9f"\r },\r {\r "path": ".ruby-version",\r "mode": "100644",\r "type": "blob",\r "sha": "585940699b5b99df6541c819a773ef738985a956",\r "size": 6,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/585940699b5b99df6541c819a773ef738985a956"\r },\r {\r "path": "401.html",\r "mode": "100644",\r "type": "blob",\r "sha": "b612633d4c7d58238598a2a0176636a067010c1f",\r "size": 348,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/b612633d4c7d58238598a2a0176636a067010c1f"\r },\r {\r "path": "422.html",\r "mode": "100644",\r "type": "blob",\r "sha": "b1abe0f92a2e1594e01b44636da6f5b3f35c27f8",\r "size": 435,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/b1abe0f92a2e1594e01b44636da6f5b3f35c27f8"\r },\r {\r "path": "500.html",\r "mode": "100644",\r "type": "blob",\r "sha": "0145f2963732e9d258637ee7b847402f2c152670",\r "size": 422,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/0145f2963732e9d258637ee7b847402f2c152670"\r },\r {\r "path": "Gemfile",\r "mode": "100644",\r "type": "blob",\r "sha": "063b71e2ce4d0d1b1f751bad336fd8360be21485",\r "size": 189,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/063b71e2ce4d0d1b1f751bad336fd8360be21485"\r },\r {\r "path": "Gemfile.lock",\r "mode": "100644",\r "type": "blob",\r "sha": "26af57f31b892a0a473602fc200f526615d00229",\r "size": 2508,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/26af57f31b892a0a473602fc200f526615d00229"\r },\r {\r "path": "README.md",\r "mode": "100644",\r "type": "blob",\r "sha": "f52a6f96ab08611bcfe6297e72fd5a726549ebe1",\r "size": 20554,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/f52a6f96ab08611bcfe6297e72fd5a726549ebe1"\r },\r {\r "path": "Rakefile",\r "mode": "100644",\r "type": "blob",\r "sha": "afb6dda590d561e49cfca0c394b08aea14b590e7",\r "size": 296,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/afb6dda590d561e49cfca0c394b08aea14b590e7"\r },\r {\r "path": "_config.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "4f7076b55083b212226e026a2da52f16048fbdf2",\r "size": 824,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/4f7076b55083b212226e026a2da52f16048fbdf2"\r },\r {\r "path": "_config_production.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "d031cf8664d17c8a2725d2519f2f66202493a401",\r "size": 270,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/d031cf8664d17c8a2725d2519f2f66202493a401"\r },\r {\r "path": "_data",\r "mode": "040000",\r "type": "tree",\r "sha": "759bb27c0d27d9e4e68b0e4e6415b9e3279c6f5d",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/759bb27c0d27d9e4e68b0e4e6415b9e3279c6f5d"\r },\r {\r "path": "_includes",\r "mode": "040000",\r "type": "tree",\r "sha": "e03b4acfd762b4e1ad40104c494be5ebe78393fb",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/e03b4acfd762b4e1ad40104c494be5ebe78393fb"\r },\r {\r "path": "_jobs",\r "mode": "040000",\r "type": "tree",\r "sha": "9a7fe95fc2008723835601f3f04f4b08a2c79c5d",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/9a7fe95fc2008723835601f3f04f4b08a2c79c5d"\r },\r {\r "path": "_layouts",\r "mode": "040000",\r "type": "tree",\r "sha": "c359ec94abac329d9fffc69dae52e5af0b77432d",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/c359ec94abac329d9fffc69dae52e5af0b77432d"\r },\r {\r "path": "_plugins",\r "mode": "040000",\r "type": "tree",\r "sha": "695a09d282688de5cbbc49422559166ec70dc74c",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/695a09d282688de5cbbc49422559166ec70dc74c"\r },\r {\r "path": "_posts",\r "mode": "040000",\r "type": "tree",\r "sha": "7c57a3664a0ad29fc197638924d6cb72ac69342f",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/7c57a3664a0ad29fc197638924d6cb72ac69342f"\r },\r {\r "path": "_projects",\r "mode": "040000",\r "type": "tree",\r "sha": "e4b3a3b57b07ec2edd7cb03ff3476b3f9edead47",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/e4b3a3b57b07ec2edd7cb03ff3476b3f9edead47"\r },\r {\r "path": "about.html",\r "mode": "100644",\r "type": "blob",\r "sha": "6d5335463482ed2a401adc3d09ab5f527a9c424b",\r "size": 1876,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/6d5335463482ed2a401adc3d09ab5f527a9c424b"\r },\r {\r "path": "atom.xml",\r "mode": "100644",\r "type": "blob",\r "sha": "6ab91d2261599f9264f7c598f04363e5daa01000",\r "size": 610,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/6ab91d2261599f9264f7c598f04363e5daa01000"\r },\r {\r "path": "circle.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "0912526f97d03d48830788c2bc9213306412b172",\r "size": 293,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/0912526f97d03d48830788c2bc9213306412b172"\r },\r {\r "path": "config",\r "mode": "040000",\r "type": "tree",\r "sha": "cd70a5ddbad50f1a55db89060133762c0303fd8f",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/cd70a5ddbad50f1a55db89060133762c0303fd8f"\r },\r {\r "path": "data.html",\r "mode": "100644",\r "type": "blob",\r "sha": "46d7795285c819bcf8ba1a7880b06c85182c1a50",\r "size": 3376,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/46d7795285c819bcf8ba1a7880b06c85182c1a50"\r },\r {\r "path": "deploy",\r "mode": "040000",\r "type": "tree",\r "sha": "6b8041d0c17672ca94da4908bcf2f8d03f3883af",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/6b8041d0c17672ca94da4908bcf2f8d03f3883af"\r },\r {\r "path": "documentation",\r "mode": "040000",\r "type": "tree",\r "sha": "a2cca6c2489cfa1e8b17d895ceda716472b05e28",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/a2cca6c2489cfa1e8b17d895ceda716472b05e28"\r },\r {\r "path": "feed.xml",\r "mode": "100644",\r "type": "blob",\r "sha": "a6628bd842af95a7f423155dd95510941d3a78dc",\r "size": 1291,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/a6628bd842af95a7f423155dd95510941d3a78dc"\r },\r {\r "path": "gallery",\r "mode": "040000",\r "type": "tree",\r "sha": "d6643b3e2e6bf433c9783152b213a5f9e1966fe6",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/d6643b3e2e6bf433c9783152b213a5f9e1966fe6"\r },\r {\r "path": "images",\r "mode": "040000",\r "type": "tree",\r "sha": "29a422c19251aeaeb907175e9b3219a9bed6c616",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/29a422c19251aeaeb907175e9b3219a9bed6c616"\r },\r {\r "path": "index.html",\r "mode": "100644",\r "type": "blob",\r "sha": "cb7c180891514f6c90a2c2eadc84dbe03ef3080d",\r "size": 3364,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/cb7c180891514f6c90a2c2eadc84dbe03ef3080d"\r },\r {\r "path": "jobs.html",\r "mode": "100644",\r "type": "blob",\r "sha": "c3b2025b9daefcb204543b2b1408765b9bdb8558",\r "size": 1572,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/c3b2025b9daefcb204543b2b1408765b9bdb8558"\r },\r {\r "path": "lib",\r "mode": "040000",\r "type": "tree",\r "sha": "4e704ad78cc21370af178e0ae9f09334a26c887b",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/4e704ad78cc21370af178e0ae9f09334a26c887b"\r },\r {\r "path": "licenses.md",\r "mode": "100644",\r "type": "blob",\r "sha": "9e977ca3079bb7d6af4729ec6d3c7e19f5f9e840",\r "size": 638,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/9e977ca3079bb7d6af4729ec6d3c7e19f5f9e840"\r },\r {\r "path": "media-resources.html",\r "mode": "100644",\r "type": "blob",\r "sha": "985d74ef4f49a89a69105a901dda3452f39f3341",\r "size": 1710,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/985d74ef4f49a89a69105a901dda3452f39f3341"\r },\r {\r "path": "open.html",\r "mode": "100644",\r "type": "blob",\r "sha": "68ea5050c372515f66b5f8701001d81c1e8733b3",\r "size": 78,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/68ea5050c372515f66b5f8701001d81c1e8733b3"\r },\r {\r "path": "open",\r "mode": "040000",\r "type": "tree",\r "sha": "380ba6caaa437a209c9d509455aa5fcc4ca01611",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/380ba6caaa437a209c9d509455aa5fcc4ca01611"\r },\r {\r "path": "privacy.md",\r "mode": "100644",\r "type": "blob",\r "sha": "bdfe5e2da06bd27e499a1912fa412d4f9506cc90",\r "size": 7327,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/bdfe5e2da06bd27e499a1912fa412d4f9506cc90"\r },\r {\r "path": "projects.html",\r "mode": "100644",\r "type": "blob",\r "sha": "0c4539068dbb0b529c6ce7b329312ecf5e5ec8ce",\r "size": 3858,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/0c4539068dbb0b529c6ce7b329312ecf5e5ec8ce"\r },\r {\r "path": "resources",\r "mode": "040000",\r "type": "tree",\r "sha": "1a9a5dcc53184362206f35e8ba162a1f0ca4d7c4",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/1a9a5dcc53184362206f35e8ba162a1f0ca4d7c4"\r },\r {\r "path": "rss.xml",\r "mode": "100644",\r "type": "blob",\r "sha": "6625e3d055f3a2d10604b951bb70d77cb7b2f3ad",\r "size": 527,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/6625e3d055f3a2d10604b951bb70d77cb7b2f3ad"\r },\r {\r "path": "stylesheets",\r "mode": "040000",\r "type": "tree",\r "sha": "85c583c79689d0d2907eccf255658c7476c6c06d",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/85c583c79689d0d2907eccf255658c7476c6c06d"\r },\r {\r "path": "terms.html",\r "mode": "100644",\r "type": "blob",\r "sha": "511368f1aa08ab4e86b3b15d449b8156cec7a65d",\r "size": 23156,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/511368f1aa08ab4e86b3b15d449b8156cec7a65d"\r }\r ],\r "truncated": false\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/blobs/0912526f97d03d48830788c2bc9213306412b172'):
data = u'''{\r "sha": "0912526f97d03d48830788c2bc9213306412b172",\r "size": 293,\r "url": "https://api.github.com/repos/mapzen/blog/git/blobs/0912526f97d03d48830788c2bc9213306412b172",\r "content": "bWFjaGluZToKICBydWJ5OgogICAgdmVyc2lvbjogMi4yLjMKdGVzdDoKICBv\\ndmVycmlkZToKICAgIC0gYnVuZGxlIGV4ZWMgamVreWxsIGJ1aWxkCgpnZW5l\\ncmFsOgogIGFydGlmYWN0czoKICAgIC0gIl9zaXRlIgoKZGVwbG95bWVudDoK\\nICBzdGFnaW5nOgogICAgYnJhbmNoOiBtYXN0ZXIKICAgIGNvbW1hbmRzOgog\\nICAgICAtIC4vZGVwbG95L2Vudi5yYiBkZXYKICBwcm9kdWN0aW9uOgogICAg\\nYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBjb21tYW5kczoKICAgICAgLSAuL2Rl\\ncGxveS9lbnYucmIgcHJvZHVjdGlvbgo=\\n",\r "encoding": "base64"\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/metro-extracts/commits/1cc0a0db8'):
data = u'''{\r "sha": "1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "commit": {\r "author": {\r "name": "Lou Huang",\r "email": "[email protected]",\r "date": "2016-02-01T20:14:47Z"\r },\r "committer": {\r "name": "Lou Huang",\r "email": "[email protected]",\r "date": "2016-02-01T20:14:47Z"\r },\r "message": "🎩 No tests for circle",\r "tree": {\r "sha": "8c2deef78d548003087512316a31dcc200f99366",\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/trees/8c2deef78d548003087512316a31dcc200f99366"\r },\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/commits/1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "comment_count": 0\r },\r "url": "https://api.github.com/repos/mapzen/metro-extracts/commits/1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "html_url": "https://github.com/mapzen/metro-extracts/commit/1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "comments_url": "https://api.github.com/repos/mapzen/metro-extracts/commits/1cc0a0db873499b79e1cf81d75c50b203665ce96/comments",\r "author": {\r "login": "louh",\r "id": 2553268,\r "avatar_url": "https://avatars.githubusercontent.com/u/2553268?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/louh",\r "html_url": "https://github.com/louh",\r "followers_url": "https://api.github.com/users/louh/followers",\r "following_url": "https://api.github.com/users/louh/following{/other_user}",\r "gists_url": "https://api.github.com/users/louh/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/louh/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/louh/subscriptions",\r "organizations_url": "https://api.github.com/users/louh/orgs",\r "repos_url": "https://api.github.com/users/louh/repos",\r "events_url": "https://api.github.com/users/louh/events{/privacy}",\r "received_events_url": "https://api.github.com/users/louh/received_events",\r "type": "User",\r "site_admin": false\r },\r "committer": {\r "login": "louh",\r "id": 2553268,\r "avatar_url": "https://avatars.githubusercontent.com/u/2553268?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/louh",\r "html_url": "https://github.com/louh",\r "followers_url": "https://api.github.com/users/louh/followers",\r "following_url": "https://api.github.com/users/louh/following{/other_user}",\r "gists_url": "https://api.github.com/users/louh/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/louh/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/louh/subscriptions",\r "organizations_url": "https://api.github.com/users/louh/orgs",\r "repos_url": "https://api.github.com/users/louh/repos",\r "events_url": "https://api.github.com/users/louh/events{/privacy}",\r "received_events_url": "https://api.github.com/users/louh/received_events",\r "type": "User",\r "site_admin": false\r },\r "parents": [\r {\r "sha": "d476b52e0f67b87a96ce1da0cb6e21fd43e9120c",\r "url": "https://api.github.com/repos/mapzen/metro-extracts/commits/d476b52e0f67b87a96ce1da0cb6e21fd43e9120c",\r "html_url": "https://github.com/mapzen/metro-extracts/commit/d476b52e0f67b87a96ce1da0cb6e21fd43e9120c"\r }\r ],\r "stats": {\r "total": 4,\r "additions": 4,\r "deletions": 0\r },\r "files": [\r {\r "sha": "62291dddd1a41bc4f6d1b73a33ce64162d2dcf73",\r "filename": "circle.yml",\r "status": "modified",\r "additions": 4,\r "deletions": 0,\r "changes": 4,\r "blob_url": "https://github.com/mapzen/metro-extracts/blob/1cc0a0db873499b79e1cf81d75c50b203665ce96/circle.yml",\r "raw_url": "https://github.com/mapzen/metro-extracts/raw/1cc0a0db873499b79e1cf81d75c50b203665ce96/circle.yml",\r "contents_url": "https://api.github.com/repos/mapzen/metro-extracts/contents/circle.yml?ref=1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "patch": "@@ -6,6 +6,10 @@ dependencies:\n post:\n - npm run build\n \n+test:\n+ override:\n+ - echo 'No tests 🎩'\n+\n general:\n artifacts:\n - \"dist\"\n\\ No newline at end of file"\r }\r ]\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/metro-extracts'):
data = u'''{\r "id": 50864971,\r "name": "metro-extracts",\r "full_name": "mapzen/metro-extracts",\r "owner": {\r "login": "mapzen",\r "id": 5435747,\r "avatar_url": "https://avatars.githubusercontent.com/u/5435747?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/mapzen",\r "html_url": "https://github.com/mapzen",\r "followers_url": "https://api.github.com/users/mapzen/followers",\r "following_url": "https://api.github.com/users/mapzen/following{/other_user}",\r "gists_url": "https://api.github.com/users/mapzen/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/mapzen/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/mapzen/subscriptions",\r "organizations_url": "https://api.github.com/users/mapzen/orgs",\r "repos_url": "https://api.github.com/users/mapzen/repos",\r "events_url": "https://api.github.com/users/mapzen/events{/privacy}",\r "received_events_url": "https://api.github.com/users/mapzen/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "private": true,\r "html_url": "https://github.com/mapzen/metro-extracts",\r "description": "Proof of concept.",\r "fork": false,\r "url": "https://api.github.com/repos/mapzen/metro-extracts",\r "forks_url": "https://api.github.com/repos/mapzen/metro-extracts/forks",\r "keys_url": "https://api.github.com/repos/mapzen/metro-extracts/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/mapzen/metro-extracts/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/mapzen/metro-extracts/teams",\r "hooks_url": "https://api.github.com/repos/mapzen/metro-extracts/hooks",\r "issue_events_url": "https://api.github.com/repos/mapzen/metro-extracts/issues/events{/number}",\r "events_url": "https://api.github.com/repos/mapzen/metro-extracts/events",\r "assignees_url": "https://api.github.com/repos/mapzen/metro-extracts/assignees{/user}",\r "branches_url": "https://api.github.com/repos/mapzen/metro-extracts/branches{/branch}",\r "tags_url": "https://api.github.com/repos/mapzen/metro-extracts/tags",\r "blobs_url": "https://api.github.com/repos/mapzen/metro-extracts/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/mapzen/metro-extracts/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/mapzen/metro-extracts/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/mapzen/metro-extracts/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/mapzen/metro-extracts/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/mapzen/metro-extracts/languages",\r "stargazers_url": "https://api.github.com/repos/mapzen/metro-extracts/stargazers",\r "contributors_url": "https://api.github.com/repos/mapzen/metro-extracts/contributors",\r "subscribers_url": "https://api.github.com/repos/mapzen/metro-extracts/subscribers",\r "subscription_url": "https://api.github.com/repos/mapzen/metro-extracts/subscription",\r "commits_url": "https://api.github.com/repos/mapzen/metro-extracts/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/mapzen/metro-extracts/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/mapzen/metro-extracts/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/mapzen/metro-extracts/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/mapzen/metro-extracts/contents/{+path}",\r "compare_url": "https://api.github.com/repos/mapzen/metro-extracts/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/mapzen/metro-extracts/merges",\r "archive_url": "https://api.github.com/repos/mapzen/metro-extracts/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/mapzen/metro-extracts/downloads",\r "issues_url": "https://api.github.com/repos/mapzen/metro-extracts/issues{/number}",\r "pulls_url": "https://api.github.com/repos/mapzen/metro-extracts/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/mapzen/metro-extracts/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/mapzen/metro-extracts/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/mapzen/metro-extracts/labels{/name}",\r "releases_url": "https://api.github.com/repos/mapzen/metro-extracts/releases{/id}",\r "deployments_url": "https://api.github.com/repos/mapzen/metro-extracts/deployments",\r "created_at": "2016-02-01T19:31:09Z",\r "updated_at": "2016-02-01T20:12:38Z",\r "pushed_at": "2016-02-02T00:40:39Z",\r "git_url": "git://github.com/mapzen/metro-extracts.git",\r "ssh_url": "[email protected]:mapzen/metro-extracts.git",\r "clone_url": "https://github.com/mapzen/metro-extracts.git",\r "svn_url": "https://github.com/mapzen/metro-extracts",\r "homepage": null,\r "size": 10,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": "JavaScript",\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": false,\r "has_pages": false,\r "forks_count": 0,\r "mirror_url": null,\r "open_issues_count": 0,\r "forks": 0,\r "open_issues": 0,\r "watchers": 0,\r "default_branch": "master",\r "permissions": {\r "admin": true,\r "push": true,\r "pull": true\r },\r "organization": {\r "login": "mapzen",\r "id": 5435747,\r "avatar_url": "https://avatars.githubusercontent.com/u/5435747?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/mapzen",\r "html_url": "https://github.com/mapzen",\r "followers_url": "https://api.github.com/users/mapzen/followers",\r "following_url": "https://api.github.com/users/mapzen/following{/other_user}",\r "gists_url": "https://api.github.com/users/mapzen/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/mapzen/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/mapzen/subscriptions",\r "organizations_url": "https://api.github.com/users/mapzen/orgs",\r "repos_url": "https://api.github.com/users/mapzen/repos",\r "events_url": "https://api.github.com/users/mapzen/events{/privacy}",\r "received_events_url": "https://api.github.com/users/mapzen/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "network_count": 0,\r "subscribers_count": 7\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/metro-extracts/statuses/1cc0a0db8'):
data = u'''[\r {\r "url": "https://api.github.com/repos/mapzen/metro-extracts/statuses/1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "id": 435416267,\r "state": "success",\r "description": "Your tests passed on CircleCI!",\r "target_url": "https://circleci.com/gh/mapzen/metro-extracts/3",\r "context": "ci/circleci",\r "created_at": "2016-02-01T20:16:43Z",\r "updated_at": "2016-02-01T20:16:43Z",\r "creator": {\r "login": "louh",\r "id": 2553268,\r "avatar_url": "https://avatars.githubusercontent.com/u/2553268?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/louh",\r "html_url": "https://github.com/louh",\r "followers_url": "https://api.github.com/users/louh/followers",\r "following_url": "https://api.github.com/users/louh/following{/other_user}",\r "gists_url": "https://api.github.com/users/louh/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/louh/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/louh/subscriptions",\r "organizations_url": "https://api.github.com/users/louh/orgs",\r "repos_url": "https://api.github.com/users/louh/repos",\r "events_url": "https://api.github.com/users/louh/events{/privacy}",\r "received_events_url": "https://api.github.com/users/louh/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/metro-extracts/statuses/1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "id": 435416266,\r "state": "success",\r "description": "Your tests passed on CircleCI!",\r "target_url": "https://circleci.com/gh/mapzen/metro-extracts/3",\r "context": "ci/circleci",\r "created_at": "2016-02-01T20:16:43Z",\r "updated_at": "2016-02-01T20:16:43Z",\r "creator": {\r "login": "louh",\r "id": 2553268,\r "avatar_url": "https://avatars.githubusercontent.com/u/2553268?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/louh",\r "html_url": "https://github.com/louh",\r "followers_url": "https://api.github.com/users/louh/followers",\r "following_url": "https://api.github.com/users/louh/following{/other_user}",\r "gists_url": "https://api.github.com/users/louh/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/louh/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/louh/subscriptions",\r "organizations_url": "https://api.github.com/users/louh/orgs",\r "repos_url": "https://api.github.com/users/louh/repos",\r "events_url": "https://api.github.com/users/louh/events{/privacy}",\r "received_events_url": "https://api.github.com/users/louh/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/metro-extracts/statuses/1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "id": 435413788,\r "state": "pending",\r "description": "CircleCI is running your tests",\r "target_url": "https://circleci.com/gh/mapzen/metro-extracts/3",\r "context": "ci/circleci",\r "created_at": "2016-02-01T20:14:54Z",\r "updated_at": "2016-02-01T20:14:54Z",\r "creator": {\r "login": "louh",\r "id": 2553268,\r "avatar_url": "https://avatars.githubusercontent.com/u/2553268?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/louh",\r "html_url": "https://github.com/louh",\r "followers_url": "https://api.github.com/users/louh/followers",\r "following_url": "https://api.github.com/users/louh/following{/other_user}",\r "gists_url": "https://api.github.com/users/louh/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/louh/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/louh/subscriptions",\r "organizations_url": "https://api.github.com/users/louh/orgs",\r "repos_url": "https://api.github.com/users/louh/repos",\r "events_url": "https://api.github.com/users/louh/events{/privacy}",\r "received_events_url": "https://api.github.com/users/louh/received_events",\r "type": "User",\r "site_admin": false\r }\r },\r {\r "url": "https://api.github.com/repos/mapzen/metro-extracts/statuses/1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "id": 435413765,\r "state": "pending",\r "description": "Your tests are queued behind your running builds",\r "target_url": "https://circleci.com/gh/mapzen/metro-extracts/3",\r "context": "ci/circleci",\r "created_at": "2016-02-01T20:14:52Z",\r "updated_at": "2016-02-01T20:14:52Z",\r "creator": {\r "login": "louh",\r "id": 2553268,\r "avatar_url": "https://avatars.githubusercontent.com/u/2553268?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/louh",\r "html_url": "https://github.com/louh",\r "followers_url": "https://api.github.com/users/louh/followers",\r "following_url": "https://api.github.com/users/louh/following{/other_user}",\r "gists_url": "https://api.github.com/users/louh/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/louh/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/louh/subscriptions",\r "organizations_url": "https://api.github.com/users/louh/orgs",\r "repos_url": "https://api.github.com/users/louh/repos",\r "events_url": "https://api.github.com/users/louh/events{/privacy}",\r "received_events_url": "https://api.github.com/users/louh/received_events",\r "type": "User",\r "site_admin": false\r }\r }\r]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/metro-extracts/git/trees/1cc0a0db8'):
data = u'''{\r "sha": "1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/trees/1cc0a0db873499b79e1cf81d75c50b203665ce96",\r "tree": [\r {\r "path": ".gitignore",\r "mode": "100644",\r "type": "blob",\r "sha": "2f13b0ce6c0180fac624e0d92c6900f70120ea70",\r "size": 46,\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/blobs/2f13b0ce6c0180fac624e0d92c6900f70120ea70"\r },\r {\r "path": "circle.yml",\r "mode": "100644",\r "type": "blob",\r "sha": "62291dddd1a41bc4f6d1b73a33ce64162d2dcf73",\r "size": 158,\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/blobs/62291dddd1a41bc4f6d1b73a33ce64162d2dcf73"\r },\r {\r "path": "dist",\r "mode": "040000",\r "type": "tree",\r "sha": "d564d0bc3dd917926892c55e3706cc116d5b165e",\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/trees/d564d0bc3dd917926892c55e3706cc116d5b165e"\r },\r {\r "path": "lib",\r "mode": "040000",\r "type": "tree",\r "sha": "1955c19dcdda8ce54966482e76188a4338a9205f",\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/trees/1955c19dcdda8ce54966482e76188a4338a9205f"\r },\r {\r "path": "package.json",\r "mode": "100644",\r "type": "blob",\r "sha": "07ba74ca0f5f50992336f793e7eed612c0b243cc",\r "size": 724,\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/blobs/07ba74ca0f5f50992336f793e7eed612c0b243cc"\r },\r {\r "path": "src",\r "mode": "040000",\r "type": "tree",\r "sha": "b63402bd4262fbf61262ea14506bf4df803641aa",\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/trees/b63402bd4262fbf61262ea14506bf4df803641aa"\r }\r ],\r "truncated": false\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/metro-extracts/git/blobs/62291dddd1a41bc4f6d1b73a33ce64162d2dcf73'):
data = u'''{\r "sha": "62291dddd1a41bc4f6d1b73a33ce64162d2dcf73",\r "size": 158,\r "url": "https://api.github.com/repos/mapzen/metro-extracts/git/blobs/62291dddd1a41bc4f6d1b73a33ce64162d2dcf73",\r "content": "bWFjaGluZToKICBub2RlOgogICAgdmVyc2lvbjogNC4yCgpkZXBlbmRlbmNp\\nZXM6CiAgcG9zdDoKICAgIC0gbnBtIHJ1biBidWlsZAoKdGVzdDoKICBvdmVy\\ncmlkZToKICAgIC0gZWNobyAnTm8gdGVzdHMg8J+OqScKCmdlbmVyYWw6CiAg\\nYXJ0aWZhY3RzOgogICAgLSAiZGlzdCI=\\n",\r "encoding": "base64"\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/4727812cb112afad90ec70bce33b3ad137812c13') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/f5cea70e5bba05c97b1cc37ef0bd29561f04a33e') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/a19b0ec40c0817e421e19b24d5cfe62c363141cc') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/a781daf557079f22a071bb42675c29f45168cff0') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/226431b463fa52176623424450d2501e569c38d5') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/e29fe7960089a87e8068ad8027a2c84bcd1c960c') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/7b48997fb382b652afea829a9582b7f0ee88e2c6') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/211b4f4ce8418adb292c4fb4e2fe6cb8495b4d5d') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/7b6a60ee7f70bc73a9866cf15aef9632470571ec') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/4f2469474ea8a1bc9f667ce4d1288fafd151647e') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/094f87bfd9a5a8a29072fac033b3ffd46be2d18b') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/0a9a561ab64b724fd55e54e216ef6510688cdca6') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/9fcfe06f75ebfb9195e2579176f3e48b28058d7f') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/bb2a0edb04c6e3fd1aff19f7b9d8b0d2e92f9295') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/f5f731aaf5b2735c38778981d995d95994265944') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/7b500e5cf2532eaf0e5700037f33d814dd09fb32') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/103995b0e313d018d10baad657b5a3d0c5658a27') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/59123caa7ba6d6494868528d4247bd4bfd37f608') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/97742c684e943806f938209819f876a59a470de8') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/49ecd93ec6f70c597e1e6c0ca1d4e462fee2bc5d') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/64bf6adc62bd28f0539a6c528957b2317dba6d8f') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/53bf63fda6bd6f493b46f9d54fa459d3adbeac1e') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/998265cf08eef84f2b007b64c87a26e6427791e2') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/159d528d17b234349141309094b5c8807173682c') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/803b9e2fe230916f249278bd5f8c8f2a256a427a') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/9b0727becbf74887d22a730fa1c51a0ac2f8b8d0') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/aed68f2d32496c5ae8908d531d6ba04953b53f88') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/e464c47fbbac6e16306700898071c1e5dc09e3e3') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/486d01e41103e66f44b4875263a6392428192c31') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/cbc135319feccbe01b39a05e3888f106d01d4eaf') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/287b866fc48efe39cc1c4b42d7983b8ed098e92f') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/e5fdb0247fde743bd9294afc820f13c345b842f0') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/commits/4f208d9d3ab640e8e29ccbba8a27ada6584a5c1c'):
data = u'''{\r "sha": "fake-sha-fake-sha-fake-sha-fake-sha-fake-sha",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/fake-sha-fake-sha-fake-sha-fake-sha-fake-sha",\r "html_url": "https://github.com/mapzen/blog/commit/fake-sha-fake-sha-fake-sha-fake-sha-fake-sha",\r "author": {\r "name": "Riordan",\r "email": "[email protected]",\r "date": "2015-12-16T21:57:56Z"\r },\r "committer": {\r "name": "Riordan",\r "email": "[email protected]",\r "date": "2015-12-16T21:57:56Z"\r },\r "tree": {\r "sha": "fake-sha-fake-sha-fake-sha-fake-sha-fake-sha",\r "url": "https://api.github.com/repos/mapzen/blog/git/trees/fake-sha-fake-sha-fake-sha-fake-sha-fake-sha"\r },\r "message": "fixes queens address example in footnote, thx @amandabee",\r "parents": [\r {\r "sha": "fake-sha-fake-sha-fake-sha-fake-sha-fake-sha",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/fake-sha-fake-sha-fake-sha-fake-sha-fake-sha",\r "html_url": "https://github.com/mapzen/blog/commit/fake-sha-fake-sha-fake-sha-fake-sha-fake-sha"\r }\r ]\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHPQ == ('GET', 'circleci.com', '/api/v1/project/mapzen/blog/1947/artifacts', 'circle-token=a17131792f4c4bcb97f2f66d9c58258a0ee0e621'):
data = u'''[ {\r "path" : "/home/ubuntu/blog/_site/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/feed.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/feed.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/feed.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/422.html",\r "pretty_path" : "/home/ubuntu/blog/_site/422.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/422.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/500.html",\r "pretty_path" : "/home/ubuntu/blog/_site/500.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/500.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/401.html",\r "pretty_path" : "/home/ubuntu/blog/_site/401.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/401.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g8-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g8-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g8-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/key.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/key.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/key.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g3-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g3-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g3-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g4-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g4-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g4-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/social.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/social.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/social.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g7-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g7-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g7-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g5-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g5-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g5-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/page4/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page4/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/page4/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/transitland.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/transitland.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/transitland.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/default.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/default.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/default.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/media-resources/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/media-resources/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/media-resources/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/vector-tile-service_1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/vector-tile-service_1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/vector-tile-service_1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/cfa.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/cfa.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/cfa.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/page11/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page11/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/page11/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/metro-extracts.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/metro-extracts.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/metro-extracts.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/documentation/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/documentation/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/documentation/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g0-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g0-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g0-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g9-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g9-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g9-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g5-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g5-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g5-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g7-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g7-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g7-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g10-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g10-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g10-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/open/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/open/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/open/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g2-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g2-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g2-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/mapzen_logo_hover.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/mapzen_logo_hover.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/mapzen_logo_hover.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/page5/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page5/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/page5/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/compass-blue.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/compass-blue.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/compass-blue.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g6-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g6-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g6-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g1-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g1-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g1-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g1-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g1-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g1-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/mapzen-logo_h_hover.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/mapzen-logo_h_hover.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/mapzen-logo_h_hover.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/marker.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/marker.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/marker.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/borders.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/borders.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/borders.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g2-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g2-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g2-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g11-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g11-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g11-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g8-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g8-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g8-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/search-bakerst-960px.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/search-bakerst-960px.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/search-bakerst-960px.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/female.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/female.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/female.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/vector-tile-service.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/vector-tile-service.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/vector-tile-service.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/terms/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/terms/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/terms/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/privacy/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/privacy/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/privacy/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/mapzen_cover4.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/mapzen_cover4.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/mapzen_cover4.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/favicon.ico",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/favicon.ico",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/favicon.ico"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g3-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g3-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g3-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/compass-red.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/compass-red.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/compass-red.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/california.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/california.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/california.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/routing.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/routing.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/routing.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g6-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g6-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g6-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g5-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g5-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g5-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/mapzen-logo.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/mapzen-logo.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/mapzen-logo.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g8-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g8-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g8-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/licenses/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/licenses/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/licenses/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/stylesheets/pygments.css",\r "pretty_path" : "/home/ubuntu/blog/_site/stylesheets/pygments.css",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/stylesheets/pygments.css"\r}, {\r "path" : "/home/ubuntu/blog/_site/page7/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page7/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/page7/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/valhalla.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/valhalla.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/valhalla.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/demo-switcher.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/demo-switcher.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/demo-switcher.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g6-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g6-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g6-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/pelias.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/pelias.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/pelias.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/page2/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page2/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/page2/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g9-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g9-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g9-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/page10/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page10/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/page10/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g11-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g11-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g11-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/lrm-valhalla.zip",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/lrm-valhalla.zip",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/lrm-valhalla.zip"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/metro-extracts_1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/metro-extracts_1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/metro-extracts_1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/lrm-mapzen-0.1.2.zip",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/lrm-mapzen-0.1.2.zip",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/lrm-mapzen-0.1.2.zip"\r}, {\r "path" : "/home/ubuntu/blog/_site/projects/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/projects/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/projects/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/compass-lg-blue.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/compass-lg-blue.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/compass-lg-blue.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g2-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g2-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g2-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/about/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/about/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/about/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g11-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g11-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g11-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g10-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g10-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g10-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/quattroshapes.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/quattroshapes.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/quattroshapes.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g3-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g3-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g3-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/analytics.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/analytics.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/analytics.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/quattroshapes_1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/quattroshapes_1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/quattroshapes_1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/page9/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page9/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/page9/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g4-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g4-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g4-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/android_1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/android_1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/android_1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g10-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g10-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g10-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/male.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/male.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/male.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/android.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/android.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/android.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g9-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g9-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g9-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/key_h.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/key_h.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/key_h.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/page12/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page12/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/page12/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/page8/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page8/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/page8/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/section-nav.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/section-nav.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/section-nav.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/pelias_1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/pelias_1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/pelias_1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g0-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g0-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g0-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g0-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g0-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g0-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/page3/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page3/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/page3/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/admin-polygons.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/admin-polygons.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/admin-polygons.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/community-lg-blue.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/community-lg-blue.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/community-lg-blue.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/mapzen-logo_h.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/mapzen-logo_h.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/mapzen-logo_h.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/tangram.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/tangram.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/tangram.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/osrm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/osrm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/osrm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/marker1.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/marker1.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/marker1.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/mapzen_logo.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/mapzen_logo.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/mapzen_logo.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/admin-polygons_1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/admin-polygons_1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/admin-polygons_1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/data/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/data/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/data/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g4-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g4-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g4-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g1-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g1-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g1-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/page6/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page6/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/page6/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/compass-lg-red.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/compass-lg-red.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/compass-lg-red.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/lrm-valhalla-0.0.9.zip",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/lrm-valhalla-0.0.9.zip",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/lrm-valhalla-0.0.9.zip"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g7-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g7-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/gallery/g7-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/application.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/application.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/application.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-lit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-lit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-lit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/targeted-editing-airport-polygons/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/targeted-editing-airport-polygons/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/targeted-editing-airport-polygons/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/scenes-from-a-siggraph/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/scenes-from-a-siggraph/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/scenes-from-a-siggraph/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/elevation/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/elevation/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/elevation/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/nacis/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/nacis/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/nacis/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/Valhalla/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/Valhalla/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/Valhalla/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page8/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page8/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/page8/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/docs/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/docs/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/docs/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/data-quality/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/data-quality/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/data-quality/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/our-magna-carto/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/our-magna-carto/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/our-magna-carto/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/styles/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/styles/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/styles/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/school/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/school/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/school/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/escape-from-mercator/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/escape-from-mercator/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/escape-from-mercator/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-unlit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-unlit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-unlit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/newbs/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/newbs/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/newbs/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/intros/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/intros/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/intros/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/openstreetmap/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/openstreetmap/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/openstreetmap/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-lit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-lit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-lit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page5/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page5/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/page5/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/meaningfulgeocoding/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/meaningfulgeocoding/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/meaningfulgeocoding/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/valhalla/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/valhalla/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/valhalla/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/dynamic-costing-via-sif/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/dynamic-costing-via-sif/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/dynamic-costing-via-sif/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/mapzensearch/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/mapzensearch/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/mapzensearch/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/josm/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/josm/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/josm/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/targeted-editing-hospital-polygons/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/targeted-editing-hospital-polygons/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/targeted-editing-hospital-polygons/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-unlit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-unlit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-unlit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-acquires-mission-integers/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-acquires-mission-integers/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-acquires-mission-integers/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/nyc/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/nyc/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/nyc/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/line-of-sight/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/line-of-sight/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/line-of-sight/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/id/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/id/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/id/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/nacis/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/nacis/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/nacis/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/engineering/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/engineering/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/engineering/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page7/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page7/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/page7/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/schools/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/schools/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/schools/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/meaningful-geocoding-address-search-the-two-core-principles-of-geocoding/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/meaningful-geocoding-address-search-the-two-core-principles-of-geocoding/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/meaningful-geocoding-address-search-the-two-core-principles-of-geocoding/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/feed/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/feed/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/feed/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/halloween/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/halloween/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/halloween/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-unlit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-unlit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-unlit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tutorial/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tutorial/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/tutorial/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/launch/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/launch/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/launch/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/OSM/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/OSM/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/OSM/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/metro-extracts-101/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/metro-extracts-101/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/metro-extracts-101/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/event/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/event/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/event/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/valhalla/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/valhalla/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/valhalla/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sotmus/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sotmus/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/sotmus/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/point-clouds/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/point-clouds/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/point-clouds/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/roads/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/roads/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/roads/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/odin/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/odin/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/odin/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/vector-tiles/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/vector-tiles/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/vector-tiles/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/getting-crafty/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/getting-crafty/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/getting-crafty/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/nyc/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/nyc/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/nyc/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/help/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/help/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/help/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/projects/vector-tiles/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/projects/vector-tiles/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/projects/vector-tiles/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/technical-writer/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/technical-writer/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/technical-writer/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/find-your-community/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/find-your-community/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/find-your-community/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/state-of-the-map-2015-wrapup/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/state-of-the-map-2015-wrapup/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/state-of-the-map-2015-wrapup/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/doc-site/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/doc-site/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/doc-site/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/odin/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/odin/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/odin/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/data-quality/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/data-quality/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/data-quality/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/hospital/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/hospital/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/hospital/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/interns/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/interns/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/interns/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/geonyc/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/geonyc/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/geonyc/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-at-ces/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-at-ces/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-at-ces/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/introducing-valhalla/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/introducing-valhalla/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/introducing-valhalla/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapillary/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapillary/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/mapillary/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/projection/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/projection/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/projection/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/matrix/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/matrix/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/matrix/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/opendata/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/opendata/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/opendata/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/documentation/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/documentation/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/documentation/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/open/privacy/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/open/privacy/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/open/privacy/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/tangram/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/open-transit-in-open-street-maps/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/open-transit-in-open-street-maps/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/open-transit-in-open-street-maps/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/routing/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/routing/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/routing/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/search/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/search/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/search/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-lit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-lit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-lit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sotmus/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sotmus/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/sotmus/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/license/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/license/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/license/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/geocoding/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/geocoding/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/geocoding/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/feed-registry/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/feed-registry/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/feed-registry/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/bicycles/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/bicycles/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/bicycles/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/josm/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/josm/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/josm/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/conference/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/conference/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/conference/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/launch/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/launch/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/launch/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/evaluation/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/evaluation/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/evaluation/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/look-upon-our-squares-of-math-in-three-dimensions/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/look-upon-our-squares-of-math-in-three-dimensions/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/look-upon-our-squares-of-math-in-three-dimensions/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page9/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page9/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/page9/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/graphics/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/graphics/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/graphics/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/hospital/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/hospital/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/hospital/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/metro-extract/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/metro-extract/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/metro-extract/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/odin-at-sotmus/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/odin-at-sotmus/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/odin-at-sotmus/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/valhalla/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/valhalla/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/valhalla/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/events/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/events/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/events/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/whosonfirst/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/whosonfirst/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/whosonfirst/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/streets/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/streets/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/streets/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/moving-on-up/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/moving-on-up/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/moving-on-up/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-unlit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-unlit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-unlit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/names/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/names/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/names/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/events/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/events/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/events/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/code-for-america/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/code-for-america/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/code-for-america/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/event/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/event/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/event/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/transportation-camp/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/transportation-camp/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/transportation-camp/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/government-and-osm/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/government-and-osm/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/government-and-osm/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/demo/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/demo/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/demo/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page11/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page11/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/page11/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-unlit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-unlit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-unlit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/matrix/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/matrix/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/matrix/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/search/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/search/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/search/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/demo/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/demo/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/demo/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/cfa-announcement/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/cfa-announcement/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/cfa-announcement/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/this-is-it-mapzen-search-is-now-live/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/this-is-it-mapzen-search-is-now-live/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/this-is-it-mapzen-search-is-now-live/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/ui-engineer-sf/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/ui-engineer-sf/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/ui-engineer-sf/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/android-engineer/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/android-engineer/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/android-engineer/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/some-of-our-favorite-mapzen-search-projects-of-2015/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/some-of-our-favorite-mapzen-search-projects-of-2015/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/some-of-our-favorite-mapzen-search-projects-of-2015/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/costing/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/costing/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/costing/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/targeted-editing-no-name-roads/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/targeted-editing-no-name-roads/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/targeted-editing-no-name-roads/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/mapzensearch/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/mapzensearch/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/mapzensearch/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-search-data-pipeline/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-search-data-pipeline/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-search-data-pipeline/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/vector-tiles/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/vector-tiles/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/vector-tiles/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/data/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/data/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/data/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/valhalla-bicycle-routing-options/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/valhalla-bicycle-routing-options/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/valhalla-bicycle-routing-options/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/demo/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/demo/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/demo/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/id/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/id/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/id/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/spooky-vector-tiles/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/spooky-vector-tiles/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/spooky-vector-tiles/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/valhalla-why_tiles/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/valhalla-why_tiles/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/valhalla-why_tiles/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/schools/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/schools/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/schools/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/CfA/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/CfA/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/CfA/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/nacis/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/nacis/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/nacis/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/tangram-a-mapping-library/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/tangram-a-mapping-library/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/tangram-a-mapping-library/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/intros/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/intros/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/intros/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/barcelona-bound/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/barcelona-bound/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/barcelona-bound/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/airport/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/airport/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/airport/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/mapzensearch/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/mapzensearch/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/mapzensearch/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-lit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-lit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-lit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/ios-engineer/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/ios-engineer/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/ios-engineer/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/openstreetmap-and-the-fourth-wall/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/openstreetmap-and-the-fourth-wall/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/openstreetmap-and-the-fourth-wall/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/costing/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/costing/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/costing/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/help/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/help/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/help/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/we-made-an-app/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/we-made-an-app/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/we-made-an-app/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-lit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-lit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-lit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/customers/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/customers/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/customers/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/projects/search/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/projects/search/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/projects/search/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/osm/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/osm/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/osm/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/pelias/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/pelias/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/pelias/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram-es/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram-es/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/tangram-es/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/a-frighteningly-open-halloween-map/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/a-frighteningly-open-halloween-map/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/a-frighteningly-open-halloween-map/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/airport/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/airport/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/airport/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/ui-engineer-ny/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/ui-engineer-ny/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/ui-engineer-ny/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/on-the-road/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/on-the-road/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/on-the-road/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/randy-in-berlin/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/randy-in-berlin/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/randy-in-berlin/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/meaningfulgeocoding/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/meaningfulgeocoding/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/meaningfulgeocoding/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/halloween/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/halloween/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/halloween/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/search-product-manager/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/search-product-manager/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/search-product-manager/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/matrix/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/matrix/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/matrix/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/customers/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/customers/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/customers/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/roads/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/roads/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/roads/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-sf-happy-hour-demo-time/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-sf-happy-hour-demo-time/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-sf-happy-hour-demo-time/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/engineering/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/engineering/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/engineering/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/targeted-editing-school-polygons/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/targeted-editing-school-polygons/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/targeted-editing-school-polygons/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/vectorizing-matt-blair/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/vectorizing-matt-blair/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/vectorizing-matt-blair/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/developer-transit/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/developer-transit/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/developer-transit/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/geocoding/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/geocoding/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/geocoding/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/elevation/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/elevation/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/elevation/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/search-engineer-node/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/search-engineer-node/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/search-engineer-node/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-in-dc/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-in-dc/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-in-dc/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/foss-outreach-program-hot/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/foss-outreach-program-hot/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/foss-outreach-program-hot/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/docs/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/docs/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/docs/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/blog/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/blog/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/blog/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/ghosts/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/ghosts/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/ghosts/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page2/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page2/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/page2/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/Valhalla/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/Valhalla/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/Valhalla/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/geocoding/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/geocoding/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/geocoding/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/transitland-open-transit-data-for-all/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/transitland-open-transit-data-for-all/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/transitland-open-transit-data-for-all/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/interns/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/interns/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/interns/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/extracting-value-from-sotmus/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/extracting-value-from-sotmus/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/extracting-value-from-sotmus/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/geohashes-and-you/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/geohashes-and-you/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/geohashes-and-you/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/josm/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/josm/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/josm/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/opendata/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/opendata/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/opendata/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/license/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/license/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/license/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sif/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sif/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/sif/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/targeted-editing/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/targeted-editing/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/targeted-editing/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/plugin/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/plugin/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/plugin/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/web-engineer/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/web-engineer/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/web-engineer/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/transitland/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/transitland/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/transitland/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/welcome-to-the-transitland-playground/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/welcome-to-the-transitland-playground/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/welcome-to-the-transitland-playground/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/plugin/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/plugin/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/plugin/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/data-scientist/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/data-scientist/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/data-scientist/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/lets-get-lost/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/lets-get-lost/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/lets-get-lost/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/documentation/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/documentation/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/documentation/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/outreachy-interview-kate/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/outreachy-interview-kate/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/outreachy-interview-kate/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/spelunker-jumping-into-who-s-on-first/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/spelunker-jumping-into-who-s-on-first/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/spelunker-jumping-into-who-s-on-first/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/projects/tangram/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/projects/tangram/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/projects/tangram/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/license/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/license/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/license/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/evaluation/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/evaluation/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/evaluation/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/join-osm/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/join-osm/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/join-osm/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/total-perspective-vortex/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/total-perspective-vortex/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/total-perspective-vortex/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/openstreetmap/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/openstreetmap/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/openstreetmap/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/viva-la-revolution-de-carta/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/viva-la-revolution-de-carta/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/viva-la-revolution-de-carta/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/newbs/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/newbs/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/newbs/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/routing/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/routing/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/routing/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/transitland/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/transitland/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/transitland/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/osm/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/osm/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/osm/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/bicycles/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/bicycles/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/bicycles/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/you-me-and-connectivity/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/you-me-and-connectivity/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/you-me-and-connectivity/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/intros/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/intros/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/intros/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/outreachy-interview-jessica/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/outreachy-interview-jessica/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/outreachy-interview-jessica/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/streets/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/streets/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/streets/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/bicycle/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/bicycle/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/bicycle/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/ghosts/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/ghosts/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/ghosts/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/routing/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/routing/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/routing/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/school/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/school/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/school/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/making-the-grade-elevation-influenced-bicycle-routing/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/making-the-grade-elevation-influenced-bicycle-routing/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/making-the-grade-elevation-influenced-bicycle-routing/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/geonyc-september-16/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/geonyc-september-16/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/geonyc-september-16/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/id/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/id/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/id/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/feed/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/feed/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/feed/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page4/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page4/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/page4/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/conference/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/conference/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/conference/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/whosonfirst/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/whosonfirst/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/whosonfirst/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/596-acres/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/596-acres/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/596-acres/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/street/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/street/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/street/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/targeted-editing-holiday-hiatus/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/targeted-editing-holiday-hiatus/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/targeted-editing-holiday-hiatus/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/who-s-on-first/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/who-s-on-first/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/who-s-on-first/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page10/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page10/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/page10/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/civic tech/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/civic tech/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/civic tech/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/data-quality/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/data-quality/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/data-quality/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/targeted-editing/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/targeted-editing/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/targeted-editing/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/elevation/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/elevation/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/elevation/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/feed/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/feed/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/feed/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/documentation/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/documentation/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/documentation/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/bicycle/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/bicycle/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/bicycle/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page6/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page6/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/page6/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/pelias-setup-tutorial/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/pelias-setup-tutorial/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/pelias-setup-tutorial/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/customers/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/customers/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/customers/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/geonyc/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/geonyc/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/geonyc/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/meaningfulgeocoding/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/meaningfulgeocoding/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/meaningfulgeocoding/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/leaflet/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/leaflet/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/leaflet/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/nyc/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/nyc/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/nyc/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/plugin/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/plugin/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/plugin/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/cfa-summit/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/cfa-summit/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/cfa-summit/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/school/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/school/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/school/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/openstreetmap/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/openstreetmap/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/openstreetmap/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/halloween/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/halloween/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/halloween/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/an-open-letter-to-audi-ag-bmw-group-and-daimler-ag/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/an-open-letter-to-audi-ag-bmw-group-and-daimler-ag/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/an-open-letter-to-audi-ag-bmw-group-and-daimler-ag/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/docs/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/docs/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/docs/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/mapillary/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/mapillary/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/mapillary/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/code-for-america/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/code-for-america/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/code-for-america/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/osm-server-thon/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/osm-server-thon/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/osm-server-thon/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/CfA/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/CfA/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/CfA/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/geoweb-comes-to-brooklyn/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/geoweb-comes-to-brooklyn/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/geoweb-comes-to-brooklyn/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/costing/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/costing/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/costing/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/metro-extracts/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/metro-extracts/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/metro-extracts/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/OSM/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/OSM/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/OSM/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-unlit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-unlit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-unlit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/airport/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/airport/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/airport/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/graphics/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/graphics/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/graphics/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/raspberrypi-gps-at-sotmus/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/raspberrypi-gps-at-sotmus/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/raspberrypi-gps-at-sotmus/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/code-for-america/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/code-for-america/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/code-for-america/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/projects/valhalla/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/projects/valhalla/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/projects/valhalla/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-unlit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-unlit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-unlit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/apps/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/apps/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/apps/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/open/terms/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/open/terms/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/open/terms/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page12/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page12/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/page12/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/data/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/data/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/data/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram-es/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram-es/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/tangram-es/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/tangram/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/newbs/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/newbs/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/newbs/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sif/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sif/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/sif/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-lit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-lit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-lit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/streets/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/streets/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/streets/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/blog/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/blog/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/blog/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/ladders-for-leaders/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/ladders-for-leaders/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/ladders-for-leaders/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/schools/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/schools/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/schools/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/ghosts/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/ghosts/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/ghosts/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/whosonfirst/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/whosonfirst/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/whosonfirst/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/data/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/data/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/data/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/street/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/street/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/street/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/an-open-letter-mapzens-ceo/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/an-open-letter-mapzens-ceo/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/an-open-letter-mapzens-ceo/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzens-support-for-code-for-america-and-openaddresses/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzens-support-for-code-for-america-and-openaddresses/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/mapzens-support-for-code-for-america-and-openaddresses/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/search/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/search/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/search/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/tilting-ikeda/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/tilting-ikeda/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/tilting-ikeda/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/CfA/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/CfA/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/CfA/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/names/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/names/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/names/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-unlit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-unlit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-unlit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/styles/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/styles/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/styles/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/nacis-recap/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/nacis-recap/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/nacis-recap/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-lit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-lit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-lit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/apps/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/apps/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/apps/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-search-and-pelias-plugin-pulse/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-search-and-pelias-plugin-pulse/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-search-and-pelias-plugin-pulse/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/event/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/event/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/event/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/events/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/events/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/events/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/geonyc/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/geonyc/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/geonyc/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/launch/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/launch/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/launch/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/roads/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/roads/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/roads/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/philly-code-sprint/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/philly-code-sprint/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/philly-code-sprint/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/crash-mba-course-in-openstreetmap/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/crash-mba-course-in-openstreetmap/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/crash-mba-course-in-openstreetmap/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/hospital/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/hospital/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/hospital/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/projection/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/projection/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/projection/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tutorial/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tutorial/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/tutorial/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/metro-extracts/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/metro-extracts/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/metro-extracts/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/pelias/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/pelias/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/pelias/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/OSM/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/OSM/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/OSM/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/engineering/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/engineering/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/engineering/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/names/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/names/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/names/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/Valhalla/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/Valhalla/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/Valhalla/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/osrm-sunset/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/osrm-sunset/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/osrm-sunset/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/matrix/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/matrix/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/matrix/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/conference/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/conference/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/conference/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/metro-extract/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/metro-extract/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/metro-extract/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/help/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/help/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/help/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/blog/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/blog/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/blog/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/vector-tiles/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/vector-tiles/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/vector-tiles/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/opendata/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/opendata/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/opendata/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/starting-where-we-are/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/starting-where-we-are/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/starting-where-we-are/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/civic tech/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/civic tech/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/civic tech/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/mobile-web-application-engineer/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/mobile-web-application-engineer/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/mobile-web-application-engineer/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/the-world-is-yours-announcing-mapzen-search/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/the-world-is-yours-announcing-mapzen-search/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/the-world-is-yours-announcing-mapzen-search/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/apps/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/apps/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/apps/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/use-metro-extracts-in-qgis/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/use-metro-extracts-in-qgis/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/use-metro-extracts-in-qgis/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/street/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/street/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/street/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/bicycles/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/bicycles/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/bicycles/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/valhalla-intro/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/valhalla-intro/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/valhalla-intro/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/engineering-series/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/engineering-series/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/engineering-series/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram-es/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram-es/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/tangram-es/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/civic tech/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/civic tech/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/civic tech/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sotmus/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sotmus/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/sotmus/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/styles/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/styles/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/styles/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/data-gardener/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/data-gardener/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/data-gardener/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/leaflet/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/leaflet/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/leaflet/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/evaluation/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/evaluation/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/evaluation/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/tangram/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/mapillary/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/mapillary/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/mapillary/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/open/about/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/open/about/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/open/about/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/the-transit-dimension-transit-land-schedule-api/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/the-transit-dimension-transit-land-schedule-api/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/the-transit-dimension-transit-land-schedule-api/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-code-of-conduct/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-code-of-conduct/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-code-of-conduct/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/targeted-editing/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/targeted-editing/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/targeted-editing/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sif/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sif/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/sif/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tutorial/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tutorial/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/tutorial/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/projection/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/projection/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/projection/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/osm/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/osm/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/osm/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/interns/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/interns/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/interns/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/leaflet/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/leaflet/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/leaflet/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/search-engineer-lucene/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/search-engineer-lucene/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/jobs/search-engineer-lucene/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/outreachy-interview-nitika/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/outreachy-interview-nitika/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/outreachy-interview-nitika/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/transitland/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/transitland/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/transitland/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/metro-extracts/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/metro-extracts/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/metro-extracts/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/learn-tangram/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/learn-tangram/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/learn-tangram/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/add-valhalla-routing-to-a-map/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/add-valhalla-routing-to-a-map/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/add-valhalla-routing-to-a-map/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/bicycle/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/bicycle/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/bicycle/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/introducing-refill-cinnabar-and-zinc-styles-for-tangram/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/introducing-refill-cinnabar-and-zinc-styles-for-tangram/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/introducing-refill-cinnabar-and-zinc-styles-for-tangram/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/graphics/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/graphics/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/graphics/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/odin/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/odin/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/odin/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/pelias/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/pelias/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/pelias/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/metro-extract/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/metro-extract/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/metro-extract/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/mapillary/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/mapillary/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/mapillary/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/office-hours/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/office-hours/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/office-hours/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page3/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page3/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/blog/page3/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-lit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-lit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-lit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/highways.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/highways.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/highways.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/halftone.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/halftone.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/halftone.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-dust.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-dust.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tangram-dust.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/leaflet-routing-machine.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/leaflet-routing-machine.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/leaflet-routing-machine.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/reducing_maneuvers.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/reducing_maneuvers.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/reducing_maneuvers.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/walk.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/walk.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/walk.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/traditional.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/traditional.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/traditional.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tron.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tron.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tron.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/daynight.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/daynight.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/daynight.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/vector-tiles/square-of-math.gif",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/vector-tiles/square-of-math.gif",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/vector-tiles/square-of-math.gif"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/scene.yaml",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/scene.yaml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/scene.yaml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/L.Routing.Valhalla.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/L.Routing.Valhalla.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/L.Routing.Valhalla.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/hide.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/hide.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/hide.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/leaflet_routing.css",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/leaflet_routing.css",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/leaflet_routing.css"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/vector-tiles/mapzen_carousel-3.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/vector-tiles/mapzen_carousel-3.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/vector-tiles/mapzen_carousel-3.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/osm/page2/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/osm/page2/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/osm/page2/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/routing.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/routing.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/routing.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/valhalla/page2/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/valhalla/page2/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/valhalla/page2/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-sandbox.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-sandbox.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tangram-sandbox.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-patterns.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-patterns.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tangram-patterns.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/vector-tiles/square-of-math.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/vector-tiles/square-of-math.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/vector-tiles/square-of-math.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tronish.yaml",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tronish.yaml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tronish.yaml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/show.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/show.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/show.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/bike.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/bike.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/bike.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-crosshatch.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-crosshatch.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tangram-crosshatch.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/crosshatch.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/crosshatch.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/crosshatch.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/dot.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/dot.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/dot.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/search/desktop.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/search/desktop.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/search/desktop.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/projects/tangram/guides/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/projects/tangram/guides/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/projects/tangram/guides/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sotmus/page2/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sotmus/page2/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/sotmus/page2/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/drive.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/drive.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/drive.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/2.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/2.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/2.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/search/LargeSampleImage.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/search/LargeSampleImage.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/search/LargeSampleImage.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/pin.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/pin.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/pin.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-lego.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-lego.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tangram-lego.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram/page2/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram/page2/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/tag/tangram/page2/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/search/mobile.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/search/mobile.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/search/mobile.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-matrix.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-matrix.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tangram-matrix.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/scripts/404/scene.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/scripts/404/scene.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/scripts/404/scene.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/route.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/route.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/route.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/valhalla.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/valhalla.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/valhalla.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]"\r} ]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHPQ == ('GET', 'circle-artifacts.com', '/gh/mapzen/blog/1947/artifacts/0/home/ubuntu/blog/_site/index.html', 'circle-token=a17131792f4c4bcb97f2f66d9c58258a0ee0e621'):
data = u'''<!DOCTYPE html>\r<html lang='en-us'>\r<head>\r <meta charset='utf-8'>\r<meta http-equiv='X-UA-Compatible' content='IE=edge'>\r<meta name='viewport' content='width=device-width, initial-scale=1'>\r\r<title>Mapzen · an open-source mapping lab.</title>\r\r<meta name='description' content='Start where you are'>\r\r\r\r<link rel='shortcut icon' href='/resources/favicon.ico'>\r\r<link rel='stylesheet' href='/stylesheets/pygments.css' type='text/css'>\r<link rel='stylesheet' href='https://mapzen.com/common/styleguide/styles/blog.css' type='text/css'>\r<link rel='canonical' href='https://mapzen.com/'>\r\r\r <link rel='alternate' type='application/atom+xml' title='Mapzen (Atom)' href='/atom.xml'>\r <link rel='alternate' type='application/rss+xml' title='Mapzen (RSS)' href='/rss.xml'>\r\r\r</head>\r<body class='default'>\r <nav class='navbar navbar-default navbar-fixed-top' role='navigation'>\r <div class='container'>\r <div class='navbar-header'>\r <button type='button' class='navbar-toggle' data-toggle='collapse' data-target='#navbar-menu'>\r <span class='sr-only'>Toggle navigation</span>\r <span class='icon-bar'></span>\r <span class='icon-bar'></span>\r <span class='icon-bar'></span>\r </button>\r <a class='navbar-brand' href='/'>\r <div class='mapzen-logo'></div>\r <h1 class='sr-only'>Mapzen</h1>\r </a>\r </div>\r <div class='collapse navbar-collapse' id='navbar-menu'>\r <ul class='nav navbar-nav navbar-right'>\r <li class='inactive'><a href='/projects/'>Projects</a></li>\r <li class='inactive'><a href='/data/'>Data</a></li>\r <li class='inactive'><a href='/documentation/'>Documentation</a></li>\r <li class='inactive'><a href='/blog/'>Blog</a></li>\r <li class='inactive'><a href='/developers/'><div class='animated-key'></div>Developers</a></li>\r </ul>\r </div>\r </div>\r</nav>\r\r\r <div class='gallery full' id='gallery'>\r <img class='gallery-image' id='gallery-image' alt='' sizes='100vw'>\r <script>\r (function () {\r var el = document.getElementById('gallery-image')\r var l = 12 // Number of images\r var d = new Date()\r var t = Math.floor(d.getMinutes() / 5) % l // every five minutes\r el.src = '/gallery/g{i}-sm.jpg'.replace(/\{i\}/, t)\r el.srcset = '/gallery/g{i}-sm.jpg 600w, /gallery/g{i}-md.jpg 1300w, /gallery/g{i}-lg.jpg'.replace(/\{i\}/g, t)\r }())\r </script>\r</div>\r\r <div class='container' id='content'>\r \r<div class='row headroom-large'>\r <div class='col-xs-12 text-center'>\r <h1 class='red-text'>\r an open-source mapping lab\r </h1>\r \r <h3 class='gray-text headroom'>\r Mapzen builds open-source mapping tools and collaborates on open geodata initiatives.\r </h3>\r \r </div>\r</div>\r\r<div class='row'>\r <div class='col-xs-12 text-center headroom-extra-large footroom-extra-large'>\r <img class='red-compass' src='/resources/compass-red.png'>\r </div>\r</div>\r\r\r <div class="row">\r <div class="col-md-6 no-padding">\r <div class="background-image-lg" style='background-image: url("/resources/tangram.jpg");'></div>\r </div>\r <div class="col-md-6 featured-item hor-pad-left">\r <span class="red-text">Tangram</span> is a flexible mapping engine, designed for real-time rendering of 2D and 3D maps.\r <span class="row">\r <a class="btn btn-mapzen headroom-large horz-marg-right" href="/projects/tangram">LEARN MORE</a>\r <a class="btn btn-transparent headroom-large" href="https://github.com/tangram-map/tangram" target="_blank">VIEW ON GITHUB</a>\r </span>\r </div>\r</div>\r\r<div class='row'>\r <div class='col-xs-12 text-center headroom-large footroom-large'>\r <img src='/resources/compass-blue.png'>\r </div>\r</div>\r\r<div class="row">\r <div class="col-md-6 col-md-push-6 no-padding">\r <div class="background-image-lg" style='background-image: url("/resources/valhalla.png");'></div>\r </div>\r <div class="col-md-6 col-md-pull-6 featured-item hor-pad-right">\r <span class="red-text">Mapzen Turn-by-Turn</span> is an open-source routing service for client-side routing applications.\r <span class="row">\r <a class="btn btn-mapzen headroom-large horz-marg-right" href="/projects/valhalla">LEARN MORE</a>\r <a class="btn btn-transparent headroom-large" href="https://github.com/valhalla" target="_blank">VIEW ON GITHUB</a>\r </span>\r </div>\r</div>\r\r<div class='row'>\r <div class='col-xs-12 text-center headroom-large footroom-large'>\r <img src='/resources/compass-blue.png'>\r </div>\r</div>\r\r<div class="row">\r <div class="col-md-6 no-padding">\r <div class="background-image-lg" style='background-image: url("/resources/search-bakerst-960px.png");'></div>\r </div>\r <div class="col-md-6 featured-item hor-pad-left">\r <span class="red-text">Mapzen Search</span> is a geographic search engine for places based entirely on open-source tools and powered by entirely open data.\r <span class="row">\r <a class="btn btn-mapzen headroom-large" href="/projects/search">Learn more</a>\r </span>\r </span>\r </div>\r</div>\r\r<div class="text-center headroom-extra-large">\r <img src="/resources/community-lg-blue.png"/>\r <h5 class="dark-gray-text headroom">Blog</h5>\r</div>\r\r<div class='row headroom'>\r <div class='col-md-4 sm-no-padding'>\r \r <div class='headroom-med'><a href='/blog/mapzen-search-data-pipeline'>\r \r <div class='background-image' style='background-image: url(https://s3.amazonaws.com/assets-staging.mapzen.com/images/mapzen-search-data-pipeline/pelias_build_pipeline_small.png);'>\r </div>\r \r <div class='blog-excerpt'>\r <div class='blog-title-sm footroom-sm vert-pad'>\r <a href='/blog/mapzen-search-data-pipeline'>\r Mapzen Search Data Pipeline\r </a>\r </div>\r <div class='footroom text-16 gray-text'>\r Building a data pipeline to keep Mapzen Search data fresh and available.\r </div>\r <div class='text-center'>\r <a class='btn btn-default btn-transparent headroom footroom-large' href='/blog/mapzen-search-data-pipeline'>Read More</a>\r </div>\r </div>\r </div>\r \r \r </div><div class='col-md-4 sm-no-padding'>\r \r \r <div class='headroom-med'><a href='/blog/engineering-series'>\r \r <div class='background-image' style='background-image: url(https://s3.amazonaws.com/assets-staging.mapzen.com/images/engineering-series/matrix.gif);'>\r </div>\r \r <div class='blog-excerpt'>\r <div class='blog-title-sm footroom-sm vert-pad'>\r <a href='/blog/engineering-series'>\r What We Talk About When We Talk About Engineering\r </a>\r </div>\r <div class='footroom text-16 gray-text'>\r “Pain is inevitable. Suffering is optional.” <i>What I Talk About When I Talk About Running, Haruki Murakami</i>\r </div>\r <div class='text-center'>\r <a class='btn btn-default btn-transparent headroom footroom-large' href='/blog/engineering-series'>Read More</a>\r </div>\r </div>\r </div>\r \r \r </div><div class='col-md-4 sm-no-padding'>\r \r \r <div class='headroom-med'><a href='/blog/mapzen-in-dc'>\r \r <div class='background-image' style='background-image: url(https://s3.amazonaws.com/assets-staging.mapzen.com/images/mapzen-in-dc/dcmetro.jpg);'>\r </div>\r \r <div class='blog-excerpt'>\r <div class='blog-title-sm footroom-sm vert-pad'>\r <a href='/blog/mapzen-in-dc'>\r Mapzen "transpo" in DC\r </a>\r </div>\r <div class='footroom text-16 gray-text'>\r Mapzen's joining thousands of enthusiasts and professionals in Washington, D.C. to start off a new year of transportation research, planning, and advocacy.\r </div>\r <div class='text-center'>\r <a class='btn btn-default btn-transparent headroom footroom-large' href='/blog/mapzen-in-dc'>Read More</a>\r </div>\r </div>\r </div>\r \r \r </div><div class='col-md-4 sm-no-padding'>\r \r \r </div>\r</div>\r\r<div class="text-center headroom-extra-large footroom-large">\r <a class="btn btn-mapzen" href="/blog">MORE POSTS</a>\r</div>\r\r </div>\r\r <footer>\r <div class='container hidden-print'>\r <div class='row headroom-extra-large'>\r <div class='col-xs-12 text-center'>\r <img src='/resources/compass-lg-red.png'>\r <h5 class="headroom">Get involved</h5>\r </div>\r </div>\r <div class='row headroom footroom-large'>\r <div class='col-xs-12 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 text-center text-18 gray-text'>\r <p>\r Got an interesting problem? Want to know more about things we’re doing?\r Just want to say hi?\r <a href='https://twitter.com/mapzen/' target='_blank'>Send us <3</a>\r </p>\r </div>\r </div>\r </div>\r\r <div class='headroom-large footer-background'>\r <div class='container'>\r <div class='row headroom'>\r <div class='col-xs-12 text-center'>\r <img height='81px' src='/resources/[email protected]'>\r <div class='text-18 gray-text headroom'>\r <span class='slogan'>start where you are</span>\r </div>\r </div>\r </div>\r <div class='row headroom-large footer-menu hidden-print'>\r <div class='col-xs-5 col-xs-offset-1 col-sm-6 col-sm-offset-0 col-md-6 footer-column'>\r <div class='row'>\r <div class='col-xs-12 col-sm-6 col-md-6 footer-section'>\r <h6><a href='/projects/'>Projects</a></h6>\r <ul>\r <li><a href='/projects/tangram/'>Tangram</a></li>\r <li><a href='/projects/search'>Mapzen Search</a></li>\r <li><a href='/projects/valhalla'>Mapzen Turn-by-Turn</a></li>\r <li><a href='/projects/vector-tiles/'>Vector Tile Service</a></li>\r </ul>\r </div>\r <div class='col-xs-12 col-sm-6 col-md-6 footer-section'>\r <h6><a href='/data/'>Data</a></h6>\r <ul>\r <li><a href='/data/metro-extracts/'>Metro Extracts</a></li>\r <li><a href='/data/borders/'>Borders</a></li>\r <li><a href='https://transit.land/'>Transitland</a></li>\r <li><a href='https://whosonfirst.mapzen.com/'>Who’s On First</a></li>\r </ul>\r\r <h6>Developers</h6>\r <ul>\r <li><a href='/developers/'>Developer Platform</a></li>\r <li><a href='/documentation/'>Documentation</a></li>\r </ul>\r </div>\r </div>\r </div>\r <div class='col-xs-5 col-sm-6 col-md-6 footer-column'>\r <div class='row'>\r <div class='col-xs-12 col-sm-6 col-md-6 footer-section'>\r <h6>About</h6>\r <ul>\r <li><a href='/about/'>Who we are</a></li>\r <li><a href='/about/#team'>Team</a></li>\r <li><a href='/jobs/'>Jobs</a></li>\r <li><a href='/terms/'>Terms</a></li>\r <li><a href='/privacy/'>Privacy</a></li>\r <li><a href='/media-resources/'>Media resources</a></li>\r </ul>\r </div>\r <div class='col-xs-12 col-sm-6 col-md-6 footer-section'>\r <h6>Hello</h6>\r <ul>\r <li><a href='/blog/'><i class='fa fa-fw fa-rss'></i>Blog</a></li>\r <li><a href='https://github.com/mapzen/'><i class='fa fa-fw fa-github'></i>GitHub</a></li>\r <li><a href='https://twitter.com/mapzen/'><i class='fa fa-fw fa-twitter'></i>Twitter</a></li>\r <li><a href='https://www.pinterest.com/mapzen/'><i class='fa fa-fw fa-pinterest'></i>Pinterest</a></li>\r <li><a href='mailto:[email protected]'><i class='fa fa-fw fa-envelope'></i>E-mail</a></li>\r </ul>\r </div>\r </div>\r </div>\r </div>\r <div class='row headroom-large footroom-large'>\r <div class='col-xs-12 text-center'>\r <small class='copyright'>© 2016 Mapzen</small>\r </div>\r </div>\r </div>\r </div>\r</footer>\r\r\r <script src='/resources/application.js'></script>\r <script src='/resources/social.js'></script>\r <script src='/resources/analytics.js'></script>\r</body>\r</html>\r'''
return response(200, data.encode('utf8'), headers={'Content-Type': 'text/html'})
if MHPQ == ('GET', 'circleci.com', '/api/v1/project/mapzen/blog/1961/artifacts', 'circle-token=a17131792f4c4bcb97f2f66d9c58258a0ee0e621'):
data = u'''[ {\r "path" : "/home/ubuntu/blog/_site/401.html",\r "pretty_path" : "/home/ubuntu/blog/_site/401.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/401.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/feed.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/feed.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/feed.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/500.html",\r "pretty_path" : "/home/ubuntu/blog/_site/500.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/500.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/422.html",\r "pretty_path" : "/home/ubuntu/blog/_site/422.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/422.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/key_h.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/key_h.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/key_h.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/community-lg-blue.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/community-lg-blue.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/community-lg-blue.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g8-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g8-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g8-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g6-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g6-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g6-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g10-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g10-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g10-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/lrm-valhalla.zip",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/lrm-valhalla.zip",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/lrm-valhalla.zip"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/osrm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/osrm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/osrm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g1-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g1-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g1-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/lrm-valhalla-0.0.9.zip",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/lrm-valhalla-0.0.9.zip",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/lrm-valhalla-0.0.9.zip"\r}, {\r "path" : "/home/ubuntu/blog/_site/page9/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page9/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/page9/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/page5/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page5/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/page5/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/valhalla.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/valhalla.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/valhalla.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g2-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g2-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g2-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/page7/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page7/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/page7/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/marker.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/marker.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/marker.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/android.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/android.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/android.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/mapzen-logo.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/mapzen-logo.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/mapzen-logo.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g8-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g8-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g8-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g7-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g7-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g7-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g6-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g6-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g6-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g11-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g11-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g11-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g5-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g5-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g5-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/section-nav.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/section-nav.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/section-nav.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/vector-tile-service_1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/vector-tile-service_1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/vector-tile-service_1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/routing.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/routing.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/routing.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g2-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g2-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g2-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g7-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g7-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g7-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/admin-polygons.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/admin-polygons.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/admin-polygons.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g1-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g1-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g1-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g2-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g2-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g2-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/vector-tile-service.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/vector-tile-service.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/vector-tile-service.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/metro-extracts.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/metro-extracts.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/metro-extracts.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/default.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/default.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/default.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/mapzen-logo_h_hover.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/mapzen-logo_h_hover.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/mapzen-logo_h_hover.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g11-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g11-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g11-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/mapzen_logo.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/mapzen_logo.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/mapzen_logo.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g1-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g1-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g1-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/android_1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/android_1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/android_1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g3-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g3-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g3-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/analytics.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/analytics.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/analytics.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g4-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g4-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g4-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/about/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/about/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/about/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/key.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/key.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/key.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/terms/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/terms/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/terms/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/california.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/california.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/california.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/marker1.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/marker1.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/marker1.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/compass-red.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/compass-red.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/compass-red.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/privacy/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/privacy/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/privacy/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/page4/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page4/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/page4/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/projects/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/projects/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/projects/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/favicon.ico",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/favicon.ico",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/favicon.ico"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/pelias_1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/pelias_1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/pelias_1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g0-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g0-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g0-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g5-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g5-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g5-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g5-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g5-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g5-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/compass-blue.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/compass-blue.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/compass-blue.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g11-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g11-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g11-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/male.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/male.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/male.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/tangram.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/tangram.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/tangram.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/page10/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page10/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/page10/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/mapzen_logo_hover.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/mapzen_logo_hover.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/mapzen_logo_hover.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g10-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g10-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g10-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g10-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g10-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g10-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g3-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g3-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g3-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/open/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/open/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/open/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/media-resources/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/media-resources/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/media-resources/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/mapzen-logo_h.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/mapzen-logo_h.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/mapzen-logo_h.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/transitland.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/transitland.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/transitland.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g0-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g0-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g0-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g6-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g6-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g6-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/compass-lg-red.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/compass-lg-red.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/compass-lg-red.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/quattroshapes.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/quattroshapes.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/quattroshapes.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/female.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/female.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/female.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/data/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/data/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/data/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/metro-extracts_1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/metro-extracts_1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/metro-extracts_1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/licenses/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/licenses/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/licenses/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/lrm-mapzen-0.1.2.zip",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/lrm-mapzen-0.1.2.zip",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/lrm-mapzen-0.1.2.zip"\r}, {\r "path" : "/home/ubuntu/blog/_site/page6/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page6/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/page6/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g4-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g4-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g4-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/stylesheets/pygments.css",\r "pretty_path" : "/home/ubuntu/blog/_site/stylesheets/pygments.css",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/stylesheets/pygments.css"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/admin-polygons_1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/admin-polygons_1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/admin-polygons_1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/borders.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/borders.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/borders.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/page11/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page11/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/page11/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g9-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g9-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g9-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/mapzen_cover4.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/mapzen_cover4.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/mapzen_cover4.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/quattroshapes_1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/quattroshapes_1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/quattroshapes_1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/pelias.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/pelias.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/pelias.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g7-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g7-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g7-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g4-md.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g4-md.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g4-md.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/social.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/social.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/social.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/documentation/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/documentation/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/documentation/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/compass-lg-blue.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/compass-lg-blue.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/compass-lg-blue.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/page12/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page12/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/page12/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g0-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g0-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g0-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/search-bakerst-960px.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/search-bakerst-960px.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/search-bakerst-960px.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g9-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g9-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g9-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g3-sm.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g3-sm.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g3-sm.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/page8/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page8/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/page8/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/demo-switcher.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/demo-switcher.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/demo-switcher.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/page3/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page3/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/page3/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/application.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/application.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/application.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/page2/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/page2/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/page2/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g8-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g8-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g8-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/cfa.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/cfa.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/cfa.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/gallery/g9-lg.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/gallery/g9-lg.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/gallery/g9-lg.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/mapzensearch/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/mapzensearch/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/mapzensearch/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/nacis/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/nacis/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/nacis/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/bicycle/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/bicycle/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/bicycle/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/OSM/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/OSM/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/OSM/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/geonyc/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/geonyc/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/geonyc/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/technical-writer/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/technical-writer/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/technical-writer/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page2/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page2/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/page2/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/scenes-from-a-siggraph/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/scenes-from-a-siggraph/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/scenes-from-a-siggraph/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/line-of-sight/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/line-of-sight/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/line-of-sight/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/valhalla-bicycle-routing-options/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/valhalla-bicycle-routing-options/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/valhalla-bicycle-routing-options/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/feed/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/feed/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/feed/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-sf-happy-hour-demo-time/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-sf-happy-hour-demo-time/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-sf-happy-hour-demo-time/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page9/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page9/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/page9/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/nacis/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/nacis/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/nacis/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/596-acres/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/596-acres/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/596-acres/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/whosonfirst/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/whosonfirst/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/whosonfirst/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/pelias/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/pelias/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/pelias/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/extracting-value-from-sotmus/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/extracting-value-from-sotmus/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/extracting-value-from-sotmus/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-code-of-conduct/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-code-of-conduct/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-code-of-conduct/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/targeted-editing/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/targeted-editing/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/targeted-editing/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/randy-in-berlin/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/randy-in-berlin/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/randy-in-berlin/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/whosonfirst/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/whosonfirst/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/whosonfirst/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/styles/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/styles/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/styles/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/matrix/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/matrix/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/matrix/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/metro-extract/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/metro-extract/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/metro-extract/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/civic tech/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/civic tech/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/civic tech/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-search-and-pelias-plugin-pulse/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-search-and-pelias-plugin-pulse/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-search-and-pelias-plugin-pulse/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/graphics/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/graphics/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/graphics/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/streets/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/streets/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/streets/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/metro-extracts/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/metro-extracts/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/metro-extracts/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/engineering/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/engineering/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/engineering/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page6/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page6/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/page6/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/halloween/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/halloween/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/halloween/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/opendata/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/opendata/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/opendata/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/blog/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/blog/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/blog/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/openstreetmap-and-the-fourth-wall/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/openstreetmap-and-the-fourth-wall/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/openstreetmap-and-the-fourth-wall/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/cfa-announcement/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/cfa-announcement/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/cfa-announcement/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/CfA/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/CfA/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/CfA/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/look-upon-our-squares-of-math-in-three-dimensions/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/look-upon-our-squares-of-math-in-three-dimensions/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/look-upon-our-squares-of-math-in-three-dimensions/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/valhalla/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/valhalla/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/valhalla/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/help/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/help/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/help/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/josm/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/josm/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/josm/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/use-metro-extracts-in-qgis/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/use-metro-extracts-in-qgis/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/use-metro-extracts-in-qgis/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/Valhalla/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/Valhalla/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/Valhalla/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/feed/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/feed/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/feed/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/nyc/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/nyc/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/nyc/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/who-s-on-first/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/who-s-on-first/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/who-s-on-first/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapillary/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapillary/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/mapillary/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/making-the-grade-elevation-influenced-bicycle-routing/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/making-the-grade-elevation-influenced-bicycle-routing/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/making-the-grade-elevation-influenced-bicycle-routing/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/intros/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/intros/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/intros/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-lit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-lit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-lit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/android-engineer/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/android-engineer/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/android-engineer/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/whosonfirst/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/whosonfirst/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/whosonfirst/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/raspberrypi-gps-at-sotmus/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/raspberrypi-gps-at-sotmus/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/raspberrypi-gps-at-sotmus/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/plugin/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/plugin/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/plugin/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/you-me-and-connectivity/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/you-me-and-connectivity/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/you-me-and-connectivity/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/data-scientist/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/data-scientist/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/data-scientist/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/engineering-series/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/engineering-series/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/engineering-series/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/help/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/help/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/help/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/civic tech/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/civic tech/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/civic tech/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/code-for-america/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/code-for-america/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/code-for-america/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/government-and-osm/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/government-and-osm/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/government-and-osm/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sif/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sif/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/sif/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/on-the-road/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/on-the-road/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/on-the-road/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/costing/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/costing/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/costing/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/lets-get-lost/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/lets-get-lost/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/lets-get-lost/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/customers/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/customers/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/customers/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/customers/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/customers/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/customers/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/roads/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/roads/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/roads/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/geonyc/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/geonyc/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/geonyc/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/styles/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/styles/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/styles/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page12/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page12/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/page12/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/blog/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/blog/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/blog/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-at-ces/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-at-ces/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-at-ces/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/opendata/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/opendata/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/opendata/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/total-perspective-vortex/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/total-perspective-vortex/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/total-perspective-vortex/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/routing/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/routing/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/routing/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tutorial/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tutorial/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/tutorial/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-lit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-lit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-lit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/odin-at-sotmus/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/odin-at-sotmus/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/odin-at-sotmus/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/crash-mba-course-in-openstreetmap/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/crash-mba-course-in-openstreetmap/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/crash-mba-course-in-openstreetmap/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/event/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/event/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/event/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/airport/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/airport/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/airport/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/mapillary/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/mapillary/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/mapillary/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-lit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-lit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-lit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/school/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/school/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/school/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-lit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-lit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-lit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/metro-extracts/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/metro-extracts/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/metro-extracts/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/geocoding/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/geocoding/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/geocoding/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/ui-engineer-sf/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/ui-engineer-sf/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/ui-engineer-sf/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/search/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/search/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/search/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/targeted-editing-school-polygons/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/targeted-editing-school-polygons/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/targeted-editing-school-polygons/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/leaflet/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/leaflet/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/leaflet/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sif/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sif/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/sif/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/elevation/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/elevation/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/elevation/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/find-your-community/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/find-your-community/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/find-your-community/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/search-product-manager/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/search-product-manager/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/search-product-manager/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/feed/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/feed/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/feed/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/Valhalla/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/Valhalla/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/Valhalla/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/data-gardener/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/data-gardener/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/data-gardener/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/mapzensearch/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/mapzensearch/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/mapzensearch/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/routing/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/routing/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/routing/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/geonyc/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/geonyc/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/geonyc/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/schools/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/schools/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/schools/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/opendata/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/opendata/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/opendata/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/our-magna-carto/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/our-magna-carto/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/our-magna-carto/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/nacis-recap/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/nacis-recap/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/nacis-recap/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/help/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/help/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/help/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/blog/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/blog/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/blog/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/CfA/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/CfA/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/CfA/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/ios-engineer/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/ios-engineer/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/ios-engineer/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/odin/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/odin/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/odin/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/dynamic-costing-via-sif/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/dynamic-costing-via-sif/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/dynamic-costing-via-sif/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/graphics/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/graphics/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/graphics/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/code-for-america/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/code-for-america/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/code-for-america/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/halloween/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/halloween/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/halloween/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/streets/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/streets/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/streets/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/targeted-editing-no-name-roads/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/targeted-editing-no-name-roads/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/targeted-editing-no-name-roads/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/bicycles/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/bicycles/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/bicycles/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/openstreetmap/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/openstreetmap/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/openstreetmap/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/odin/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/odin/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/odin/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram-es/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram-es/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/tangram-es/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/ghosts/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/ghosts/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/ghosts/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/this-is-it-mapzen-search-is-now-live/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/this-is-it-mapzen-search-is-now-live/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/this-is-it-mapzen-search-is-now-live/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram-es/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram-es/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/tangram-es/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/targeted-editing/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/targeted-editing/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/targeted-editing/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/schools/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/schools/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/schools/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tutorial/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tutorial/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/tutorial/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page11/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page11/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/page11/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/data/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/data/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/data/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/meaningfulgeocoding/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/meaningfulgeocoding/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/meaningfulgeocoding/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-lit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-lit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-lit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sotmus/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sotmus/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/sotmus/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/conference/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/conference/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/conference/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/events/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/events/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/events/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/names/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/names/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/names/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/osm/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/osm/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/osm/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/josm/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/josm/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/josm/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/projection/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/projection/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/projection/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/office-hours/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/office-hours/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/office-hours/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/data-quality/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/data-quality/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/data-quality/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/airport/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/airport/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/airport/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/projects/valhalla/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/projects/valhalla/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/projects/valhalla/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/data-quality/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/data-quality/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/data-quality/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/web-engineer/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/web-engineer/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/web-engineer/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/interns/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/interns/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/interns/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/halloween/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/halloween/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/halloween/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sotmus/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sotmus/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/sotmus/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/transitland-open-transit-data-for-all/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/transitland-open-transit-data-for-all/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/transitland-open-transit-data-for-all/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-unlit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-unlit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-unlit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/projects/tangram/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/projects/tangram/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/projects/tangram/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-lit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-lit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-lit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/welcome-to-the-transitland-playground/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/welcome-to-the-transitland-playground/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/welcome-to-the-transitland-playground/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/state-of-the-map-2015-wrapup/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/state-of-the-map-2015-wrapup/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/state-of-the-map-2015-wrapup/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/events/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/events/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/events/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/meaningfulgeocoding/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/meaningfulgeocoding/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/meaningfulgeocoding/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/docs/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/docs/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/docs/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/OSM/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/OSM/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/OSM/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/openstreetmap/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/openstreetmap/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/openstreetmap/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/intros/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/intros/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/intros/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sotmus/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sotmus/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/sotmus/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/plugin/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/plugin/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/plugin/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/id/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/id/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/id/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/viva-la-revolution-de-carta/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/viva-la-revolution-de-carta/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/viva-la-revolution-de-carta/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/docs/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/docs/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/docs/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/transitland/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/transitland/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/transitland/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/open-transit-in-open-street-maps/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/open-transit-in-open-street-maps/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/open-transit-in-open-street-maps/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-in-dc/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-in-dc/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-in-dc/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/customers/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/customers/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/customers/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/street/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/street/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/street/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/intros/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/intros/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/intros/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-unlit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-unlit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-unlit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tutorial/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tutorial/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/tutorial/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/vector-tiles/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/vector-tiles/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/vector-tiles/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/josm/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/josm/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/josm/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/geonyc-september-16/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/geonyc-september-16/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/geonyc-september-16/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/routing/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/routing/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/routing/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/barcelona-bound/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/barcelona-bound/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/barcelona-bound/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/metro-extract/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/metro-extract/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/metro-extract/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/nyc/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/nyc/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/nyc/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sif/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sif/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/sif/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/feed-registry/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/feed-registry/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/feed-registry/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/license/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/license/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/license/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/add-valhalla-routing-to-a-map/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/add-valhalla-routing-to-a-map/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/add-valhalla-routing-to-a-map/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/escape-from-mercator/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/escape-from-mercator/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/escape-from-mercator/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-search-data-pipeline/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-search-data-pipeline/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-search-data-pipeline/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-unlit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-unlit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-unlit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/data/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/data/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/data/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/an-open-letter-mapzens-ceo/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/an-open-letter-mapzens-ceo/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/an-open-letter-mapzens-ceo/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram-es/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram-es/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/tangram-es/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/valhalla-why_tiles/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/valhalla-why_tiles/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/valhalla-why_tiles/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/targeted-editing/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/targeted-editing/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/targeted-editing/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page3/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page3/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/page3/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/open/terms/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/open/terms/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/open/terms/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/events/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/events/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/events/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/ghosts/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/ghosts/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/ghosts/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/evaluation/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/evaluation/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/evaluation/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/tangram/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/targeted-editing-airport-polygons/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/targeted-editing-airport-polygons/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/targeted-editing-airport-polygons/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/outreachy-interview-jessica/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/outreachy-interview-jessica/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/outreachy-interview-jessica/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/meaningful-geocoding-address-search-the-two-core-principles-of-geocoding/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/meaningful-geocoding-address-search-the-two-core-principles-of-geocoding/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/meaningful-geocoding-address-search-the-two-core-principles-of-geocoding/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/vector-tiles/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/vector-tiles/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/vector-tiles/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/the-world-is-yours-announcing-mapzen-search/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/the-world-is-yours-announcing-mapzen-search/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/the-world-is-yours-announcing-mapzen-search/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/matrix/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/matrix/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/matrix/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/metro-extracts-101/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/metro-extracts-101/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/metro-extracts-101/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/school/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/school/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/school/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/ui-engineer-ny/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/ui-engineer-ny/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/ui-engineer-ny/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/geoweb-comes-to-brooklyn/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/geoweb-comes-to-brooklyn/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/geoweb-comes-to-brooklyn/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/hospital/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/hospital/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/hospital/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-unlit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-unlit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-unlit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/documentation/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/documentation/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/documentation/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/bicycle/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/bicycle/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/bicycle/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/we-made-an-app/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/we-made-an-app/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/we-made-an-app/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/transportation-camp/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/transportation-camp/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/transportation-camp/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/apps/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/apps/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/apps/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/cfa-summit/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/cfa-summit/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/cfa-summit/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/developer-transit/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/developer-transit/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/developer-transit/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/data/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/data/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/data/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/launch/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/launch/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/launch/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/hospital/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/hospital/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/hospital/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/id/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/id/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/id/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/school/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/school/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/school/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/nacis/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/nacis/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/nacis/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/leaflet/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/leaflet/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/leaflet/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/tangram/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/metro-extract/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/metro-extract/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/metro-extract/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/elevation/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/elevation/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/elevation/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/mapzensearch/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/mapzensearch/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/mapzensearch/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/point-clouds/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/point-clouds/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/point-clouds/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/bicycles/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/bicycles/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/bicycles/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/transitland/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/transitland/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/transitland/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/osm/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/osm/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/osm/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/CfA/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/CfA/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/CfA/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/street/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/street/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/street/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/outreachy-interview-nitika/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/outreachy-interview-nitika/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/outreachy-interview-nitika/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/projection/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/projection/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/projection/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/doc-site/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/doc-site/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/doc-site/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/id/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/id/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/id/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/newbs/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/newbs/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/newbs/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/moving-on-up/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/moving-on-up/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/moving-on-up/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/event/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/event/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/event/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/interns/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/interns/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/interns/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-lit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-lit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-bw-lit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/tangram-a-mapping-library/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/tangram-a-mapping-library/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/tangram-a-mapping-library/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/OSM/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/OSM/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/OSM/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/conference/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/conference/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/conference/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/meaningfulgeocoding/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/meaningfulgeocoding/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/meaningfulgeocoding/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/foss-outreach-program-hot/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/foss-outreach-program-hot/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/foss-outreach-program-hot/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/valhalla/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/valhalla/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/valhalla/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzens-support-for-code-for-america-and-openaddresses/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzens-support-for-code-for-america-and-openaddresses/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/mapzens-support-for-code-for-america-and-openaddresses/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/starting-where-we-are/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/starting-where-we-are/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/starting-where-we-are/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/ladders-for-leaders/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/ladders-for-leaders/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/ladders-for-leaders/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/spooky-vector-tiles/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/spooky-vector-tiles/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/spooky-vector-tiles/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/pelias-setup-tutorial/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/pelias-setup-tutorial/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/pelias-setup-tutorial/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/launch/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/launch/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/launch/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page10/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page10/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/page10/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page7/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page7/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/page7/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/search/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/search/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/search/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/ghosts/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/ghosts/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/ghosts/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/launch/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/launch/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/launch/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/valhalla/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/valhalla/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/valhalla/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/streets/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/streets/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/streets/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/search/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/search/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/search/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/odin/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/odin/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/odin/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/newbs/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/newbs/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/newbs/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/nyc/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/nyc/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/nyc/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/evaluation/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/evaluation/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/evaluation/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/introducing-valhalla/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/introducing-valhalla/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/introducing-valhalla/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/matrix/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/matrix/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/matrix/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/street/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/street/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/street/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-unlit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-unlit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-unlit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/tangram/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/learn-tangram/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/learn-tangram/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/learn-tangram/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/airport/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/airport/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/airport/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/an-open-letter-to-audi-ag-bmw-group-and-daimler-ag/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/an-open-letter-to-audi-ag-bmw-group-and-daimler-ag/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/an-open-letter-to-audi-ag-bmw-group-and-daimler-ag/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/civic tech/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/civic tech/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/civic tech/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/introducing-refill-cinnabar-and-zinc-styles-for-tangram/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/introducing-refill-cinnabar-and-zinc-styles-for-tangram/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/introducing-refill-cinnabar-and-zinc-styles-for-tangram/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/license/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/license/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/license/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/apps/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/apps/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/apps/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/search-engineer-node/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/search-engineer-node/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/search-engineer-node/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page5/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page5/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/page5/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/leaflet/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/leaflet/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/leaflet/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/engineering/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/engineering/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/engineering/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/graphics/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/graphics/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/graphics/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-unlit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-unlit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-unlit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/getting-crafty/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/getting-crafty/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/getting-crafty/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/bicycles/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/bicycles/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/bicycles/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/vectorizing-matt-blair/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/vectorizing-matt-blair/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/vectorizing-matt-blair/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/projects/vector-tiles/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/projects/vector-tiles/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/projects/vector-tiles/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/bicycle/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/bicycle/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/bicycle/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/projection/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/projection/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/projection/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/open/privacy/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/open/privacy/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/open/privacy/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/tilting-ikeda/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/tilting-ikeda/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/tilting-ikeda/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/mapillary/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/mapillary/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/mapillary/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/demo/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/demo/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/demo/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-unlit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-unlit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-color-unlit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/mapillary/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/mapillary/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/mapillary/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/targeted-editing-hospital-polygons/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/targeted-editing-hospital-polygons/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/targeted-editing-hospital-polygons/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/hospital/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/hospital/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/hospital/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/styles/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/styles/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/styles/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/plugin/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/plugin/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/plugin/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/code-for-america/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/code-for-america/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/code-for-america/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/geohashes-and-you/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/geohashes-and-you/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/geohashes-and-you/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/roads/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/roads/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/roads/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/transitland/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/transitland/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/transitland/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page4/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page4/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/page4/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/some-of-our-favorite-mapzen-search-projects-of-2015/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/some-of-our-favorite-mapzen-search-projects-of-2015/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/some-of-our-favorite-mapzen-search-projects-of-2015/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/mobile-web-application-engineer/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/mobile-web-application-engineer/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/mobile-web-application-engineer/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/join-osm/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/join-osm/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/join-osm/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/newbs/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/newbs/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/newbs/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/elevation/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/elevation/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/elevation/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/vector-tiles/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/vector-tiles/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/vector-tiles/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/engineering/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/engineering/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/engineering/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/demo/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/demo/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/demo/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/pelias/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/pelias/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/pelias/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/osm-server-thon/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/osm-server-thon/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/osm-server-thon/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/matrix/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/matrix/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/matrix/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/data-quality/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/data-quality/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/data-quality/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/event/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/event/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/event/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/projects/search/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/projects/search/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/projects/search/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/mapzen-acquires-mission-integers/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/mapzen-acquires-mission-integers/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/mapzen-acquires-mission-integers/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/apps/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/apps/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/apps/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/targeted-editing-holiday-hiatus/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/targeted-editing-holiday-hiatus/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/targeted-editing-holiday-hiatus/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/Valhalla/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/Valhalla/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/Valhalla/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/open/about/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/open/about/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/open/about/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/demo/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/demo/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/demo/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-unlit.eps",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-unlit.eps",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-horiz-bw-unlit.eps"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/philly-code-sprint/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/philly-code-sprint/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/philly-code-sprint/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/metro-extracts/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/metro-extracts/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/metro-extracts/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/docs/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/docs/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/docs/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/the-transit-dimension-transit-land-schedule-api/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/the-transit-dimension-transit-land-schedule-api/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/the-transit-dimension-transit-land-schedule-api/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/costing/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/costing/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/costing/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/a-frighteningly-open-halloween-map/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/a-frighteningly-open-halloween-map/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/a-frighteningly-open-halloween-map/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/names/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/names/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/names/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/license/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/license/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/license/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/page8/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/page8/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/page8/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/roads/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/roads/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/roads/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/spelunker-jumping-into-who-s-on-first/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/spelunker-jumping-into-who-s-on-first/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/spelunker-jumping-into-who-s-on-first/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/schools/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/schools/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/schools/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/osrm-sunset/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/osrm-sunset/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/osrm-sunset/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/interns/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/interns/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/interns/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/evaluation/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/evaluation/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/evaluation/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/documentation/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/documentation/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/documentation/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/geocoding/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/geocoding/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/geocoding/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/openstreetmap/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/openstreetmap/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/openstreetmap/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/jobs/search-engineer-lucene/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/jobs/search-engineer-lucene/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/jobs/search-engineer-lucene/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/valhalla-intro/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/valhalla-intro/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/valhalla-intro/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/blog/outreachy-interview-kate/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/blog/outreachy-interview-kate/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/blog/outreachy-interview-kate/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/names/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/names/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/names/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-lit.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-lit.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/logos/mapzen-logo-square-color-lit.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/geocoding/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/geocoding/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/geocoding/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/costing/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/costing/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/costing/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/pelias/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/pelias/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/pelias/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/osm/atom.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/osm/atom.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/osm/atom.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/documentation/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/documentation/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/documentation/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/conference/rss.xml",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/conference/rss.xml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/conference/rss.xml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/dot.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/dot.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/dot.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/sotmus/page2/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/sotmus/page2/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/sotmus/page2/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/leaflet-routing-machine.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/leaflet-routing-machine.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/leaflet-routing-machine.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/bike.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/bike.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/bike.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/valhalla/page2/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/valhalla/page2/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/valhalla/page2/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-lego.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-lego.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tangram-lego.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/traditional.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/traditional.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/traditional.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/search/LargeSampleImage.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/search/LargeSampleImage.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/search/LargeSampleImage.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/show.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/show.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/show.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-dust.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-dust.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tangram-dust.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/hide.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/hide.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/hide.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/scene.yaml",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/scene.yaml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/scene.yaml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/crosshatch.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/crosshatch.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/crosshatch.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/vector-tiles/square-of-math.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/vector-tiles/square-of-math.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/vector-tiles/square-of-math.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/osm/page2/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/osm/page2/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/osm/page2/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/search/desktop.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/search/desktop.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/search/desktop.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/projects/tangram/guides/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/projects/tangram/guides/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/projects/tangram/guides/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-crosshatch.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-crosshatch.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tangram-crosshatch.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/2.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/2.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/2.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/leaflet_routing.css",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/leaflet_routing.css",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/leaflet_routing.css"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-sandbox.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-sandbox.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tangram-sandbox.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/vector-tiles/mapzen_carousel-3.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/vector-tiles/mapzen_carousel-3.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/vector-tiles/mapzen_carousel-3.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tronish.yaml",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tronish.yaml",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tronish.yaml"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/[email protected]"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/halftone.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/halftone.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/halftone.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/valhalla.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/valhalla.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/valhalla.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/route.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/route.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/route.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/L.Routing.Valhalla.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/L.Routing.Valhalla.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/L.Routing.Valhalla.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/daynight.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/daynight.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/daynight.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/vector-tiles/square-of-math.gif",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/vector-tiles/square-of-math.gif",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/vector-tiles/square-of-math.gif"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/highways.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/highways.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/highways.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/1.jpg",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/1.jpg",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/1.jpg"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/scripts/404/scene.js",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/scripts/404/scene.js",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/scripts/404/scene.js"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tron.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tron.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tron.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/search/mobile.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/search/mobile.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/search/mobile.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/pin.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/pin.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/pin.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/drive.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/drive.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/drive.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/routing.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/routing.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/routing.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/reducing_maneuvers.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/reducing_maneuvers.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/reducing_maneuvers.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/tag/tangram/page2/index.html",\r "pretty_path" : "/home/ubuntu/blog/_site/tag/tangram/page2/index.html",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/tag/tangram/page2/index.html"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-matrix.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-matrix.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tangram-matrix.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-patterns.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/tangram/tangram-patterns.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/tangram/tangram-patterns.png"\r}, {\r "path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/walk.png",\r "pretty_path" : "/home/ubuntu/blog/_site/resources/projects/valhalla/walk.png",\r "node_index" : 0,\r "url" : "https://circle-artifacts.com/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/resources/projects/valhalla/walk.png"\r} ]'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHPQ == ('GET', 'circle-artifacts.com', '/gh/mapzen/blog/1961/artifacts/0/home/ubuntu/blog/_site/index.html', 'circle-token=a17131792f4c4bcb97f2f66d9c58258a0ee0e621'):
data = u'''<!DOCTYPE html>\r<html lang='en-us'>\r<head>\r <meta charset='utf-8'>\r<meta http-equiv='X-UA-Compatible' content='IE=edge'>\r<meta name='viewport' content='width=device-width, initial-scale=1'>\r\r<title>Mapzen · an open-source mapping lab.</title>\r\r<meta name='description' content='Start where you are'>\r\r\r\r<link rel='shortcut icon' href='/resources/favicon.ico'>\r\r<link rel='stylesheet' href='/stylesheets/pygments.css' type='text/css'>\r<link rel='stylesheet' href='https://mapzen.com/common/styleguide/styles/blog.css' type='text/css'>\r<link rel='canonical' href='https://mapzen.com/'>\r\r\r <link rel='alternate' type='application/atom+xml' title='Mapzen (Atom)' href='/atom.xml'>\r <link rel='alternate' type='application/rss+xml' title='Mapzen (RSS)' href='/rss.xml'>\r\r\r</head>\r<body class='default'>\r <nav class='navbar navbar-default navbar-fixed-top' role='navigation'>\r <div class='container'>\r <div class='navbar-header'>\r <button type='button' class='navbar-toggle' data-toggle='collapse' data-target='#navbar-menu'>\r <span class='sr-only'>Toggle navigation</span>\r <span class='icon-bar'></span>\r <span class='icon-bar'></span>\r <span class='icon-bar'></span>\r </button>\r <a class='navbar-brand' href='/'>\r <div class='mapzen-logo'></div>\r <h1 class='sr-only'>Mapzen</h1>\r </a>\r </div>\r <div class='collapse navbar-collapse' id='navbar-menu'>\r <ul class='nav navbar-nav navbar-right'>\r <li class='inactive'><a href='/projects/'>Projects</a></li>\r <li class='inactive'><a href='/data/'>Data</a></li>\r <li class='inactive'><a href='/documentation/'>Documentation</a></li>\r <li class='inactive'><a href='/blog/'>Blog</a></li>\r <li class='inactive'><a href='/developers/'><div class='animated-key'></div>Developers</a></li>\r </ul>\r </div>\r </div>\r</nav>\r\r\r <div class='gallery full' id='gallery'>\r <img class='gallery-image' id='gallery-image' alt='' sizes='100vw'>\r <script>\r (function () {\r var el = document.getElementById('gallery-image')\r var l = 12 // Number of images\r var d = new Date()\r var t = Math.floor(d.getMinutes() / 5) % l // every five minutes\r el.src = '/gallery/g{i}-sm.jpg'.replace(/\{i\}/, t)\r el.srcset = '/gallery/g{i}-sm.jpg 600w, /gallery/g{i}-md.jpg 1300w, /gallery/g{i}-lg.jpg'.replace(/\{i\}/g, t)\r }())\r </script>\r</div>\r\r <div class='container' id='content'>\r \r<div class='row headroom-large'>\r <div class='col-xs-12 text-center'>\r <h1 class='red-text'>\r an open-source mapping lab\r </h1>\r \r <h3 class='gray-text headroom'>\r Mapzen builds open-source mapping tools and collaborates on open geodata initiatives.\r </h3>\r \r </div>\r</div>\r\r<div class='row'>\r <div class='col-xs-12 text-center headroom-extra-large footroom-extra-large'>\r <img class='red-compass' src='/resources/compass-red.png'>\r </div>\r</div>\r\r\r <div class="row">\r <div class="col-md-6 no-padding">\r <div class="background-image-lg" style='background-image: url("/resources/tangram.jpg");'></div>\r </div>\r <div class="col-md-6 featured-item hor-pad-left">\r <span class="red-text">Tangram</span> is a flexible mapping engine, designed for real-time rendering of 2D and 3D maps.\r <span class="row">\r <a class="btn btn-mapzen headroom-large horz-marg-right" href="/projects/tangram">LEARN MORE</a>\r <a class="btn btn-transparent headroom-large" href="https://github.com/tangram-map/tangram" target="_blank">VIEW ON GITHUB</a>\r </span>\r </div>\r</div>\r\r<div class='row'>\r <div class='col-xs-12 text-center headroom-large footroom-large'>\r <img src='/resources/compass-blue.png'>\r </div>\r</div>\r\r<div class="row">\r <div class="col-md-6 col-md-push-6 no-padding">\r <div class="background-image-lg" style='background-image: url("/resources/valhalla.png");'></div>\r </div>\r <div class="col-md-6 col-md-pull-6 featured-item hor-pad-right">\r <span class="red-text">Mapzen Turn-by-Turn</span> is an open-source routing service for client-side routing applications.\r <span class="row">\r <a class="btn btn-mapzen headroom-large horz-marg-right" href="/projects/valhalla">LEARN MORE</a>\r <a class="btn btn-transparent headroom-large" href="https://github.com/valhalla" target="_blank">VIEW ON GITHUB</a>\r </span>\r </div>\r</div>\r\r<div class='row'>\r <div class='col-xs-12 text-center headroom-large footroom-large'>\r <img src='/resources/compass-blue.png'>\r </div>\r</div>\r\r<div class="row">\r <div class="col-md-6 no-padding">\r <div class="background-image-lg" style='background-image: url("/resources/search-bakerst-960px.png");'></div>\r </div>\r <div class="col-md-6 featured-item hor-pad-left">\r <span class="red-text">Mapzen Search</span> is a geographic search engine for places based entirely on open-source tools and powered by entirely open data.\r <span class="row">\r <a class="btn btn-mapzen headroom-large" href="/projects/search">Learn more</a>\r </span>\r </span>\r </div>\r</div>\r\r<div class="text-center headroom-extra-large">\r <img src="/resources/community-lg-blue.png"/>\r <h5 class="dark-gray-text headroom">Blog</h5>\r</div>\r\r<div class='row headroom'>\r <div class='col-md-4 sm-no-padding'>\r \r <div class='headroom-med'><a href='/blog/mapzen-search-data-pipeline'>\r \r <div class='background-image' style='background-image: url(https://s3.amazonaws.com/assets-staging.mapzen.com/images/mapzen-search-data-pipeline/pelias_build_pipeline_small.png);'>\r </div>\r \r <div class='blog-excerpt'>\r <div class='blog-title-sm footroom-sm vert-pad'>\r <a href='/blog/mapzen-search-data-pipeline'>\r Mapzen Search Data Pipeline\r </a>\r </div>\r <div class='footroom text-16 gray-text'>\r Building a data pipeline to keep Mapzen Search data fresh and available.\r </div>\r <div class='text-center'>\r <a class='btn btn-default btn-transparent headroom footroom-large' href='/blog/mapzen-search-data-pipeline'>Read More</a>\r </div>\r </div>\r </div>\r \r \r </div><div class='col-md-4 sm-no-padding'>\r \r \r <div class='headroom-med'><a href='/blog/engineering-series'>\r \r <div class='background-image' style='background-image: url(https://s3.amazonaws.com/assets-staging.mapzen.com/images/engineering-series/matrix.gif);'>\r </div>\r \r <div class='blog-excerpt'>\r <div class='blog-title-sm footroom-sm vert-pad'>\r <a href='/blog/engineering-series'>\r What We Talk About When We Talk About Engineering\r </a>\r </div>\r <div class='footroom text-16 gray-text'>\r “Pain is inevitable. Suffering is optional.” <i>What I Talk About When I Talk About Running, Haruki Murakami</i>\r </div>\r <div class='text-center'>\r <a class='btn btn-default btn-transparent headroom footroom-large' href='/blog/engineering-series'>Read More</a>\r </div>\r </div>\r </div>\r \r \r </div><div class='col-md-4 sm-no-padding'>\r \r \r <div class='headroom-med'><a href='/blog/mapzen-in-dc'>\r \r <div class='background-image' style='background-image: url(https://s3.amazonaws.com/assets-staging.mapzen.com/images/mapzen-in-dc/dcmetro.jpg);'>\r </div>\r \r <div class='blog-excerpt'>\r <div class='blog-title-sm footroom-sm vert-pad'>\r <a href='/blog/mapzen-in-dc'>\r Mapzen "transpo" in DC\r </a>\r </div>\r <div class='footroom text-16 gray-text'>\r Mapzen's joining thousands of enthusiasts and professionals in Washington, D.C. to start off a new year of transportation research, planning, and advocacy.\r </div>\r <div class='text-center'>\r <a class='btn btn-default btn-transparent headroom footroom-large' href='/blog/mapzen-in-dc'>Read More</a>\r </div>\r </div>\r </div>\r \r \r </div><div class='col-md-4 sm-no-padding'>\r \r \r </div>\r</div>\r\r<div class="text-center headroom-extra-large footroom-large">\r <a class="btn btn-mapzen" href="/blog">MORE POSTS</a>\r</div>\r\r </div>\r\r <footer>\r <div class='container hidden-print'>\r <div class='row headroom-extra-large'>\r <div class='col-xs-12 text-center'>\r <img src='/resources/compass-lg-red.png'>\r <h5 class="headroom">Get involved</h5>\r </div>\r </div>\r <div class='row headroom footroom-large'>\r <div class='col-xs-12 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 text-center text-18 gray-text'>\r <p>\r Got an interesting problem? Want to know more about things we’re doing?\r Just want to say hi?\r <a href='https://twitter.com/mapzen/' target='_blank'>Send us <3</a>\r </p>\r </div>\r </div>\r </div>\r\r <div class='headroom-large footer-background'>\r <div class='container'>\r <div class='row headroom'>\r <div class='col-xs-12 text-center'>\r <img height='81px' src='/resources/[email protected]'>\r <div class='text-18 gray-text headroom'>\r <span class='slogan'>start where you are</span>\r </div>\r </div>\r </div>\r <div class='row headroom-large footer-menu hidden-print'>\r <div class='col-xs-5 col-xs-offset-1 col-sm-6 col-sm-offset-0 col-md-6 footer-column'>\r <div class='row'>\r <div class='col-xs-12 col-sm-6 col-md-6 footer-section'>\r <h6><a href='/projects/'>Projects</a></h6>\r <ul>\r <li><a href='/projects/tangram/'>Tangram</a></li>\r <li><a href='/projects/search'>Mapzen Search</a></li>\r <li><a href='/projects/valhalla'>Mapzen Turn-by-Turn</a></li>\r <li><a href='/projects/vector-tiles/'>Vector Tile Service</a></li>\r </ul>\r </div>\r <div class='col-xs-12 col-sm-6 col-md-6 footer-section'>\r <h6><a href='/data/'>Data</a></h6>\r <ul>\r <li><a href='/data/metro-extracts/'>Metro Extracts</a></li>\r <li><a href='/data/borders/'>Borders</a></li>\r <li><a href='https://transit.land/'>Transitland</a></li>\r <li><a href='https://whosonfirst.mapzen.com/'>Who’s On First</a></li>\r </ul>\r\r <h6>Developers</h6>\r <ul>\r <li><a href='/developers/'>Developer Platform</a></li>\r <li><a href='/documentation/'>Documentation</a></li>\r </ul>\r </div>\r </div>\r </div>\r <div class='col-xs-5 col-sm-6 col-md-6 footer-column'>\r <div class='row'>\r <div class='col-xs-12 col-sm-6 col-md-6 footer-section'>\r <h6>About</h6>\r <ul>\r <li><a href='/about/'>Who we are</a></li>\r <li><a href='/about/#team'>Team</a></li>\r <li><a href='/jobs/'>Jobs</a></li>\r <li><a href='/terms/'>Terms</a></li>\r <li><a href='/privacy/'>Privacy</a></li>\r <li><a href='/media-resources/'>Media resources</a></li>\r </ul>\r </div>\r <div class='col-xs-12 col-sm-6 col-md-6 footer-section'>\r <h6>Hello</h6>\r <ul>\r <li><a href='/blog/'><i class='fa fa-fw fa-rss'></i>Blog</a></li>\r <li><a href='https://github.com/mapzen/'><i class='fa fa-fw fa-github'></i>GitHub</a></li>\r <li><a href='https://twitter.com/mapzen/'><i class='fa fa-fw fa-twitter'></i>Twitter</a></li>\r <li><a href='https://www.pinterest.com/mapzen/'><i class='fa fa-fw fa-pinterest'></i>Pinterest</a></li>\r <li><a href='mailto:[email protected]'><i class='fa fa-fw fa-envelope'></i>E-mail</a></li>\r </ul>\r </div>\r </div>\r </div>\r </div>\r <div class='row headroom-large footroom-large'>\r <div class='col-xs-12 text-center'>\r <small class='copyright'>© 2016 Mapzen</small>\r </div>\r </div>\r </div>\r </div>\r</footer>\r\r\r <script src='/resources/application.js'></script>\r <script src='/resources/social.js'></script>\r <script src='/resources/analytics.js'></script>\r</body>\r</html>\r'''
return response(200, data.encode('utf8'), headers={'Content-Type': 'text/html'})
if MHPQ == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads', ''):
data = u'''[\r {\r "ref": "refs/heads/addr-fix",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/addr-fix",\r "object": {\r "sha": "4727812cb112afad90ec70bce33b3ad137812c13",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/4727812cb112afad90ec70bce33b3ad137812c13"\r }\r },\r {\r "ref": "refs/heads/address-fix",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/address-fix",\r "object": {\r "sha": "f5cea70e5bba05c97b1cc37ef0bd29561f04a33e",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/f5cea70e5bba05c97b1cc37ef0bd29561f04a33e"\r }\r },\r {\r "ref": "refs/heads/baldur/docker",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/baldur/docker",\r "object": {\r "sha": "a19b0ec40c0817e421e19b24d5cfe62c363141cc",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/a19b0ec40c0817e421e19b24d5cfe62c363141cc"\r }\r },\r {\r "ref": "refs/heads/baldur/engineering-series",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/baldur/engineering-series",\r "object": {\r "sha": "a781daf557079f22a071bb42675c29f45168cff0",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/a781daf557079f22a071bb42675c29f45168cff0"\r }\r },\r {\r "ref": "refs/heads/dan-about",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/dan-about",\r "object": {\r "sha": "226431b463fa52176623424450d2501e569c38d5",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/226431b463fa52176623424450d2501e569c38d5"\r }\r },\r {\r "ref": "refs/heads/dr/AtMozillaFestival",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/dr/AtMozillaFestival",\r "object": {\r "sha": "e29fe7960089a87e8068ad8027a2c84bcd1c960c",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/e29fe7960089a87e8068ad8027a2c84bcd1c960c"\r }\r },\r {\r "ref": "refs/heads/dr/SearchDocsUpdate",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/dr/SearchDocsUpdate",\r "object": {\r "sha": "7b48997fb382b652afea829a9582b7f0ee88e2c6",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/7b48997fb382b652afea829a9582b7f0ee88e2c6"\r }\r },\r {\r "ref": "refs/heads/dr/why-pelias",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/dr/why-pelias",\r "object": {\r "sha": "211b4f4ce8418adb292c4fb4e2fe6cb8495b4d5d",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/211b4f4ce8418adb292c4fb4e2fe6cb8495b4d5d"\r }\r },\r {\r "ref": "refs/heads/drew/period",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/drew/period",\r "object": {\r "sha": "7b6a60ee7f70bc73a9866cf15aef9632470571ec",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/7b6a60ee7f70bc73a9866cf15aef9632470571ec"\r }\r },\r {\r "ref": "refs/heads/drwhat-is-geocode1",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/drwhat-is-geocode1",\r "object": {\r "sha": "4f2469474ea8a1bc9f667ce4d1288fafd151647e",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/4f2469474ea8a1bc9f667ce4d1288fafd151647e"\r }\r },\r {\r "ref": "refs/heads/ekta/links-bold",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/ekta/links-bold",\r "object": {\r "sha": "094f87bfd9a5a8a29072fac033b3ffd46be2d18b",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/094f87bfd9a5a8a29072fac033b3ffd46be2d18b"\r }\r },\r {\r "ref": "refs/heads/ekta/map-assets-new",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/ekta/map-assets-new",\r "object": {\r "sha": "0a9a561ab64b724fd55e54e216ef6510688cdca6",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/0a9a561ab64b724fd55e54e216ef6510688cdca6"\r }\r },\r {\r "ref": "refs/heads/ekta/md-styling",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/ekta/md-styling",\r "object": {\r "sha": "9fcfe06f75ebfb9195e2579176f3e48b28058d7f",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/9fcfe06f75ebfb9195e2579176f3e48b28058d7f"\r }\r },\r {\r "ref": "refs/heads/ekta/style-nitpicking",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/ekta/style-nitpicking",\r "object": {\r "sha": "bb2a0edb04c6e3fd1aff19f7b9d8b0d2e92f9295",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/bb2a0edb04c6e3fd1aff19f7b9d8b0d2e92f9295"\r }\r },\r {\r "ref": "refs/heads/evan/author_pages",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/evan/author_pages",\r "object": {\r "sha": "f5f731aaf5b2735c38778981d995d95994265944",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/f5f731aaf5b2735c38778981d995d95994265944"\r }\r },\r {\r "ref": "refs/heads/evan/tag_pages",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/evan/tag_pages",\r "object": {\r "sha": "7b500e5cf2532eaf0e5700037f33d814dd09fb32",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/7b500e5cf2532eaf0e5700037f33d814dd09fb32"\r }\r },\r {\r "ref": "refs/heads/geraldine/lines",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/geraldine/lines",\r "object": {\r "sha": "103995b0e313d018d10baad657b5a3d0c5658a27",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/103995b0e313d018d10baad657b5a3d0c5658a27"\r }\r }\r]'''
response_headers.update(Link='<https://api.github.com/repositories/34413671/git/refs?page=2>; rel="next", <https://api.github.com/repositories/34413671/git/refs?page=2>; rel="last"')
return response(200, data.encode('utf8'), headers=response_headers)
if MHPQ == ('GET', 'api.github.com', '/repositories/34413671/git/refs', 'page=2'):
data = u'''[\r {\r "ref": "refs/heads/heffergm/pelias-build",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/heffergm/pelias-build",\r "object": {\r "sha": "59123caa7ba6d6494868528d4247bd4bfd37f608",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/59123caa7ba6d6494868528d4247bd4bfd37f608"\r }\r },\r {\r "ref": "refs/heads/ian/schedule-api-finalize",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/ian/schedule-api-finalize",\r "object": {\r "sha": "97742c684e943806f938209819f876a59a470de8",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/97742c684e943806f938209819f876a59a470de8"\r }\r },\r {\r "ref": "refs/heads/indy/Name-That-Building",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/indy/Name-That-Building",\r "object": {\r "sha": "49ecd93ec6f70c597e1e6c0ca1d4e462fee2bc5d",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/49ecd93ec6f70c597e1e6c0ca1d4e462fee2bc5d"\r }\r },\r {\r "ref": "refs/heads/indy/airport",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/indy/airport",\r "object": {\r "sha": "64bf6adc62bd28f0539a6c528957b2317dba6d8f",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/64bf6adc62bd28f0539a6c528957b2317dba6d8f"\r }\r },\r {\r "ref": "refs/heads/indy/updated-targeted-editing-hiatus",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/indy/updated-targeted-editing-hiatus",\r "object": {\r "sha": "53bf63fda6bd6f493b46f9d54fa459d3adbeac1e",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/53bf63fda6bd6f493b46f9d54fa459d3adbeac1e"\r }\r },\r {\r "ref": "refs/heads/indyhurt/targeted-editing-holiday-hiatus",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/indyhurt/targeted-editing-holiday-hiatus",\r "object": {\r "sha": "998265cf08eef84f2b007b64c87a26e6427791e2",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/998265cf08eef84f2b007b64c87a26e6427791e2"\r }\r },\r {\r "ref": "refs/heads/john/test",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/john/test",\r "object": {\r "sha": "159d528d17b234349141309094b5c8807173682c",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/159d528d17b234349141309094b5c8807173682c"\r }\r },\r {\r "ref": "refs/heads/lou/fonts",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/lou/fonts",\r "object": {\r "sha": "803b9e2fe230916f249278bd5f8c8f2a256a427a",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/803b9e2fe230916f249278bd5f8c8f2a256a427a"\r }\r },\r {\r "ref": "refs/heads/lou/future-posts",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/lou/future-posts",\r "object": {\r "sha": "9b0727becbf74887d22a730fa1c51a0ac2f8b8d0",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/9b0727becbf74887d22a730fa1c51a0ac2f8b8d0"\r }\r },\r {\r "ref": "refs/heads/lou/project-nav-mobile",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/lou/project-nav-mobile",\r "object": {\r "sha": "aed68f2d32496c5ae8908d531d6ba04953b53f88",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/aed68f2d32496c5ae8908d531d6ba04953b53f88"\r }\r },\r {\r "ref": "refs/heads/master",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/master",\r "object": {\r "sha": "159d528d17b234349141309094b5c8807173682c",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/159d528d17b234349141309094b5c8807173682c"\r }\r },\r {\r "ref": "refs/heads/migurski/update-ui-engineer-job",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/migurski/update-ui-engineer-job",\r "object": {\r "sha": "e464c47fbbac6e16306700898071c1e5dc09e3e3",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/e464c47fbbac6e16306700898071c1e5dc09e3e3"\r }\r },\r {\r "ref": "refs/heads/nvkelso/fix-intro-map-styles-post",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/nvkelso/fix-intro-map-styles-post",\r "object": {\r "sha": "486d01e41103e66f44b4875263a6392428192c31",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/486d01e41103e66f44b4875263a6392428192c31"\r }\r },\r {\r "ref": "refs/heads/nvkelso/traditional-style",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/nvkelso/traditional-style",\r "object": {\r "sha": "cbc135319feccbe01b39a05e3888f106d01d4eaf",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/cbc135319feccbe01b39a05e3888f106d01d4eaf"\r }\r },\r {\r "ref": "refs/heads/orangejulius-patch-1",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/orangejulius-patch-1",\r "object": {\r "sha": "287b866fc48efe39cc1c4b42d7983b8ed098e92f",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/287b866fc48efe39cc1c4b42d7983b8ed098e92f"\r }\r },\r {\r "ref": "refs/heads/peter/kotlin",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/peter/kotlin",\r "object": {\r "sha": "e5fdb0247fde743bd9294afc820f13c345b842f0",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/e5fdb0247fde743bd9294afc820f13c345b842f0"\r }\r },\r {\r "ref": "refs/heads/production",\r "url": "https://api.github.com/repos/mapzen/blog/git/refs/heads/production",\r "object": {\r "sha": "4f208d9d3ab640e8e29ccbba8a27ada6584a5c1c",\r "type": "commit",\r "url": "https://api.github.com/repos/mapzen/blog/git/commits/4f208d9d3ab640e8e29ccbba8a27ada6584a5c1c"\r }\r }\r]'''
response_headers.update(Link='<https://api.github.com/repositories/34413671/git/refs?page=1>; rel="first", <https://api.github.com/repositories/34413671/git/refs?page=1>; rel="prev"')
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('POST', GH, '/repos/openaddresses/hooked-on-sources/statuses/e91fbc420f08890960f50f863626e1062f922522') \
or MHP == ('POST', GH, '/repos/openaddresses/hooked-on-sources/statuses/6460668909a85d9db8df871d91e9b25bc5192add') \
or MHP == ('POST', GH, '/repos/openaddresses/hooked-on-sources/statuses/8dd262c2f30a70b27e371869c54315b1abc32247') \
or MHP == ('POST', GH, '/repos/openaddresses/hooked-on-sources/statuses/aed74b0784f696c3cf10e8e260865ae18ffd3aa8'):
input = json.loads(request.body)
self.last_status_state = input['state']
self.last_status_message = input['description']
self.assertEqual(input['context'], 'mapzen/precog')
self.assertEqual(request.headers['Authorization'], 'Basic YWJyYWNhZGFicmE6eC1vYXV0aC1iYXNpYw==')
target_path = urlparse(input['target_url']).path
self.assertIn(basename(url.path), target_path)
data = '''{{\r "context": "openaddresses/hooked", \r "created_at": "2015-04-26T23:45:39Z", \r "creator": {{\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3", \r "events_url": "https://api.github.com/users/migurski/events{{/privacy}}", \r "followers_url": "https://api.github.com/users/migurski/followers", \r "following_url": "https://api.github.com/users/migurski/following{{/other_user}}", \r "gists_url": "https://api.github.com/users/migurski/gists{{/gist_id}}", \r "gravatar_id": "", \r "html_url": "https://github.com/migurski", \r "id": 58730, \r "login": "migurski", \r "organizations_url": "https://api.github.com/users/migurski/orgs", \r "received_events_url": "https://api.github.com/users/migurski/received_events", \r "repos_url": "https://api.github.com/users/migurski/repos", \r "site_admin": false, \r "starred_url": "https://api.github.com/users/migurski/starred{{/owner}}{{/repo}}", \r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions", \r "type": "User", \r "url": "https://api.github.com/users/migurski"\r }}, \r "description": "Checking ", \r "id": 999999999, \r "state": "{state}", \r "target_url": null, \r "updated_at": "2015-04-26T23:45:39Z", \r "url": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/xxxxxxxxx"\r }}'''
return response(201, data.format(**input).encode('utf8'), headers=response_headers)
if MHP == ('POST', GH, '/repos/pelias/pelias/statuses/12daee642185b7975ecb80bd79dd2364c41786bb'):
data = '''{\r "message": "Not Found",\r "documentation_url": "https://developer.github.com/v3"\r}'''
return response(404, data, headers=response_headers)
raise Exception(url)
def test_index(self):
'''
'''
with HTTMock(self.response_content):
index = self.client.get('/')
self.assertEqual(index.status_code, 200)
self.assertIn('Precog', index.data)
def test_login(self):
'''
'''
def response_content1(url, request):
'''
'''
MHP = request.method, url.hostname, url.path
response_headers = {'Content-Type': 'application/json; charset=utf-8'}
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/commits/master') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads/master') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads/master/') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog'):
data = u'''{\r "message": "Not Found",\r "documentation_url": "https://developer.github.com/v3"\r}'''
return response(404, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/user'):
data = u'''{\r "message": "Requires authentication",\r "documentation_url": "https://developer.github.com/v3"\r}'''
return response(401, data.encode('utf8'), headers=response_headers)
raise Exception(request.method, url, request.headers, request.body)
with HTTMock(response_content1):
blog1 = self.client.get('/mapzen/blog/master/')
redirect1 = urlparse(blog1.headers.get('X-Redirect', ''))
self.assertEqual(blog1.status_code, 401)
self.assertEqual(redirect1.hostname, 'github.com')
self.assertEqual(redirect1.path, '/login/oauth/authorize')
query = dict(parse_qsl(redirect1.query))
def response_content2(url, request):
'''
'''
MHP = request.method, url.hostname, url.path
response_headers = {'Content-Type': 'application/json; charset=utf-8'}
if MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/commits/master') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads/master') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads/master/') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog/git/refs/heads') \
or MHP == ('GET', 'api.github.com', '/repos/mapzen/blog'):
data = u'''{\r "message": "Not Found",\r "documentation_url": "https://developer.github.com/v3"\r}'''
return response(404, data.encode('utf8'), headers=response_headers)
if MHP == ('POST', 'github.com', '/login/oauth/access_token'):
form = dict(parse_qsl(request.body))
if form['code'] == 'let-me-in':
data = u'''{"access_token":"working-access-token", "scope":"user,repo", "token_type":"bearer"}'''
return response(200, data.encode('utf8'), headers=response_headers)
if MHP == ('GET', 'api.github.com', '/user'):
if request.headers['Authorization'] == 'Bearer working-access-token':
data = u'''{\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false,\r "name": null,\r "company": null,\r "blog": null,\r "location": null,\r "email": "[email protected]",\r "hireable": null,\r "bio": null,\r "public_repos": 91,\r "public_gists": 45,\r "followers": 439,\r "following": 94,\r "created_at": "2009-02-27T23:44:32Z",\r "updated_at": "2015-12-26T20:09:55Z",\r "private_gists": 23,\r "total_private_repos": 1,\r "owned_private_repos": 0,\r "disk_usage": 249156,\r "collaborators": 0,\r "plan": {\r "name": "free",\r "space": 976562499,\r "collaborators": 0,\r "private_repos": 0\r }\r}'''
return response(200, data.encode('utf8'), headers=response_headers)
raise Exception(request.method, url, request.headers, request.body)
with HTTMock(response_content2):
auth2 = self.client.get('/oauth/callback?code=let-me-in&state={state}'.format(**query))
redirect2 = urlparse(auth2.headers.get('Location'))
self.assertEqual(auth2.status_code, 302)
self.assertEqual(redirect2.hostname, 'localhost')
self.assertEqual(redirect2.path, '/mapzen/blog/master/')
logout3 = self.client.post('/logout')
for path in ['/mapzen/blog/master/', '/mapzen/blog/master', '/mapzen/blog/', '/mapzen/blog']:
blog4 = self.client.get(path)
redirect4 = urlparse(blog4.headers.get('X-Redirect', ''))
self.assertEqual(blog4.status_code, blog1.status_code, 'Status {} instead of {} for path {}'.format(blog4.status_code, blog1.status_code, path))
self.assertEqual(redirect4.hostname, redirect1.hostname, 'Hostname {} instead of {} for path {}'.format(redirect4.hostname, redirect1.hostname, path))
self.assertEqual(redirect4.path, redirect1.path, 'Path {} instead of {} for path {}'.format(redirect4.path, redirect1.path, path))
def test_branch_listing(self):
'''
'''
with HTTMock(self.response_content):
blog = self.client.get('/mapzen/blog')
self.assertIn(blog.status_code, (301, 302))
redirect = urlparse(blog.headers['Location'])
self.assertEqual(redirect.path, '/mapzen/blog/')
branches = self.client.get(redirect.path)
self.assertEqual(branches.status_code, 200)
self.assertIn('"migurski/update-ui-engineer-job"', branches.data)
self.assertIn('days ago', branches.data)
def test_redirect_addslash(self):
'''
'''
with HTTMock(self.response_content):
root1 = self.client.get('/mapzen/blog/master')
self.assertIn(root1.status_code, (301, 302))
redirect1 = urlparse(root1.headers['Location'])
self.assertEqual(redirect1.path, '/mapzen/blog/master/')
root2 = self.client.get('/mapzen/blog/john/test')
self.assertIn(root2.status_code, (301, 302))
redirect2 = urlparse(root2.headers['Location'])
self.assertEqual(redirect2.path, '/mapzen/blog/john/test/')
root3 = self.client.get('/mapzen/blog/master?{}'.format(self.okhand))
self.assertEqual(root3.status_code, 200)
# # This should actually work, but handle_authentication() changed.
# root4 = self.client.get('/mapzen/blog/john/test?{}'.format(self.okhand))
# self.assertEqual(root4.status_code, 200)
def test_redirect_site_root(self):
'''
'''
with HTTMock(self.response_content):
root1 = self.client.get('/', headers={'Referer': 'http://localhost/mapzen/blog/master/page'})
self.assertIn(root1.status_code, (301, 302))
redirect1 = urlparse(root1.headers['Location'])
self.assertEqual(redirect1.path, '/mapzen/blog/master/')
root2 = self.client.get('/', headers={'Referer': 'http://localhost/mapzen/blog/john/test/page'})
self.assertIn(root2.status_code, (301, 302))
redirect2 = urlparse(root2.headers['Location'])
self.assertEqual(redirect2.path, '/mapzen/blog/john/test/')
root3 = self.client.get('/?{}'.format(self.okhand), headers={'Referer': 'http://localhost/mapzen/blog/master/page'})
self.assertEqual(root3.status_code, 200)
root4 = self.client.get('/?{}'.format(self.okhand), headers={'Referer': 'http://localhost/mapzen/blog/john/test/page'})
self.assertEqual(root4.status_code, 200)
root5 = self.client.get('/', headers={'X-Forwarded-Proto': 'https', 'Referer': 'https://localhost/mapzen/blog/master/page'})
self.assertIn(root5.status_code, (301, 302))
redirect5 = urlparse(root5.headers['Location'])
self.assertEqual(redirect5.scheme, 'https')
self.assertEqual(redirect5.path, '/mapzen/blog/master/')
def test_redirect_site_page(self):
'''
'''
with HTTMock(self.response_content):
root1 = self.client.get('/projects?q=Hi', headers={'Referer': 'http://localhost/mapzen/blog/master/page'})
self.assertIn(root1.status_code, (301, 302))
redirect1 = urlparse(root1.headers['Location'])
self.assertEqual(redirect1.path, '/mapzen/blog/master/projects')
self.assertEqual(redirect1.query, 'q=Hi')
root2 = self.client.get('/projects?q=Hi', headers={'Referer': 'http://localhost/mapzen/blog/john/test/page'})
self.assertIn(root2.status_code, (301, 302))
redirect2 = urlparse(root2.headers['Location'])
self.assertEqual(redirect2.path, '/mapzen/blog/john/test/projects')
self.assertEqual(redirect2.query, 'q=Hi')
root3 = self.client.get('/projects?{}'.format(self.okhand), headers={'Referer': 'http://localhost/mapzen/blog/master/page'})
self.assertEqual(root3.status_code, 200)
root4 = self.client.get('/projects?{}'.format(self.okhand), headers={'Referer': 'http://localhost/mapzen/blog/john/test/page'})
self.assertEqual(root4.status_code, 200)
root5 = self.client.get('/projects/tangram?q=Hi', headers={'Referer': 'http://localhost/mapzen/blog/master/page'})
self.assertIn(root5.status_code, (301, 302))
redirect5 = urlparse(root5.headers['Location'])
self.assertEqual(redirect5.path, '/mapzen/blog/master/projects/tangram')
self.assertEqual(redirect5.query, 'q=Hi')
root6 = self.client.get('/projects/tangram/tron?q=Hi', headers={'Referer': 'http://localhost/mapzen/blog/master/page'})
self.assertIn(root6.status_code, (301, 302))
redirect6 = urlparse(root6.headers['Location'])
self.assertEqual(redirect6.path, '/mapzen/blog/master/projects/tangram/tron')
self.assertEqual(redirect6.query, 'q=Hi')
root7 = self.client.get('/projects/tangram/tron/etc?q=Hi', headers={'Referer': 'http://localhost/mapzen/blog/master/page'})
self.assertIn(root7.status_code, (301, 302))
redirect7 = urlparse(root7.headers['Location'])
self.assertEqual(redirect7.path, '/mapzen/blog/master/projects/tangram/tron/etc')
self.assertEqual(redirect7.query, 'q=Hi')
def test_site_index(self):
'''
'''
with HTTMock(self.response_content):
index = self.client.get('/mapzen/blog/master/')
self.assertEqual(index.status_code, 200)
self.assertIn('Mapzen', index.data)
def test_circle_pending(self):
'''
'''
with HTTMock(self.response_content):
index = self.client.get('/mapzen/blog/dde72b5/')
self.assertEqual(index.status_code, 200)
self.assertIn('Hold Your Horses', index.data)
self.assertIn('https://circleci.com/gh/mapzen/blog/1987', index.data)
self.assertIn('<meta http-equiv="refresh" content="15; url=/mapzen/blog/dde72b5/">', index.data)
page = self.client.get('/mapzen/blog/dde72b5/page')
self.assertEqual(page.status_code, 200)
self.assertIn('<meta http-equiv="refresh" content="15; url=/mapzen/blog/dde72b5/page">', page.data)
def test_circle_failed(self):
'''
'''
with HTTMock(self.response_content):
index = self.client.get('/mapzen/styleguide/91e4950/')
self.assertEqual(index.status_code, 200)
self.assertIn('Preview Failed', index.data)
self.assertIn('https://circleci.com/gh/mapzen/styleguide/86', index.data)
def test_circle_yaml_reader_error(self):
'''
'''
with HTTMock(self.response_content):
index = self.client.get('/mapzen/metro-extracts/1cc0a0db8/')
self.assertEqual(index.status_code, 400)
self.assertIn('Precog Error', index.data)
self.assertIn('Problem reading configuration from circle.yml', index.data)
def test_webhook_bad_signature(self):
''' Send a request to /hook with an invalid signature.
'''
data = '''{ }'''
with HTTMock(self.response_content):
posted = self.client.post('/hook', data=data, headers=signed(data, 'junk'))
self.assertEqual(posted.status_code, 401)
def test_webhook_missing_signature(self):
''' Send a request to /hook with no signature.
'''
data = '''{ }'''
with HTTMock(self.response_content):
posted = self.client.post('/hook', data=data)
self.assertEqual(posted.status_code, 401)
def test_webhook_github_permissions(self):
''' Send a request to /hook.
'''
data = '''{\r "action": "unlabeled",\r "number": 481,\r "pull_request": {\r "url": "https://api.github.com/repos/pelias/pelias/pulls/481",\r "id": 97166982,\r "html_url": "https://github.com/pelias/pelias/pull/481",\r "diff_url": "https://github.com/pelias/pelias/pull/481.diff",\r "patch_url": "https://github.com/pelias/pelias/pull/481.patch",\r "issue_url": "https://api.github.com/repos/pelias/pelias/issues/481",\r "number": 481,\r "state": "closed",\r "locked": false,\r "title": "Refresh the installation docs",\r "user": {\r "login": "orangejulius",\r "id": 111716,\r "avatar_url": "https://avatars.githubusercontent.com/u/111716?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/orangejulius",\r "html_url": "https://github.com/orangejulius",\r "followers_url": "https://api.github.com/users/orangejulius/followers",\r "following_url": "https://api.github.com/users/orangejulius/following{/other_user}",\r "gists_url": "https://api.github.com/users/orangejulius/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/orangejulius/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/orangejulius/subscriptions",\r "organizations_url": "https://api.github.com/users/orangejulius/orgs",\r "repos_url": "https://api.github.com/users/orangejulius/repos",\r "events_url": "https://api.github.com/users/orangejulius/events{/privacy}",\r "received_events_url": "https://api.github.com/users/orangejulius/received_events",\r "type": "User",\r "site_admin": false\r },\r "body": "Includes a once over the documentation in general, additional information about server configuration for full planet builds, and some quick examples of queries to run on a newly installed Pelias instance.\\r\\n",\r "created_at": "2016-12-08T17:35:43Z",\r "updated_at": "2016-12-08T17:41:57Z",\r "closed_at": "2016-12-08T17:41:53Z",\r "merged_at": "2016-12-08T17:41:53Z",\r "merge_commit_sha": "38602fc830e6623c15061923b2188f43fc873822",\r "assignee": {\r "login": "orangejulius",\r "id": 111716,\r "avatar_url": "https://avatars.githubusercontent.com/u/111716?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/orangejulius",\r "html_url": "https://github.com/orangejulius",\r "followers_url": "https://api.github.com/users/orangejulius/followers",\r "following_url": "https://api.github.com/users/orangejulius/following{/other_user}",\r "gists_url": "https://api.github.com/users/orangejulius/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/orangejulius/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/orangejulius/subscriptions",\r "organizations_url": "https://api.github.com/users/orangejulius/orgs",\r "repos_url": "https://api.github.com/users/orangejulius/repos",\r "events_url": "https://api.github.com/users/orangejulius/events{/privacy}",\r "received_events_url": "https://api.github.com/users/orangejulius/received_events",\r "type": "User",\r "site_admin": false\r },\r "assignees": [\r {\r "login": "orangejulius",\r "id": 111716,\r "avatar_url": "https://avatars.githubusercontent.com/u/111716?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/orangejulius",\r "html_url": "https://github.com/orangejulius",\r "followers_url": "https://api.github.com/users/orangejulius/followers",\r "following_url": "https://api.github.com/users/orangejulius/following{/other_user}",\r "gists_url": "https://api.github.com/users/orangejulius/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/orangejulius/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/orangejulius/subscriptions",\r "organizations_url": "https://api.github.com/users/orangejulius/orgs",\r "repos_url": "https://api.github.com/users/orangejulius/repos",\r "events_url": "https://api.github.com/users/orangejulius/events{/privacy}",\r "received_events_url": "https://api.github.com/users/orangejulius/received_events",\r "type": "User",\r "site_admin": false\r }\r ],\r "milestone": null,\r "commits_url": "https://api.github.com/repos/pelias/pelias/pulls/481/commits",\r "review_comments_url": "https://api.github.com/repos/pelias/pelias/pulls/481/comments",\r "review_comment_url": "https://api.github.com/repos/pelias/pelias/pulls/comments{/number}",\r "comments_url": "https://api.github.com/repos/pelias/pelias/issues/481/comments",\r "statuses_url": "https://api.github.com/repos/pelias/pelias/statuses/12daee642185b7975ecb80bd79dd2364c41786bb",\r "head": {\r "label": "pelias:install-docs-improvements",\r "ref": "install-docs-improvements",\r "sha": "12daee642185b7975ecb80bd79dd2364c41786bb",\r "user": {\r "login": "pelias",\r "id": 8240367,\r "avatar_url": "https://avatars.githubusercontent.com/u/8240367?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/pelias",\r "html_url": "https://github.com/pelias",\r "followers_url": "https://api.github.com/users/pelias/followers",\r "following_url": "https://api.github.com/users/pelias/following{/other_user}",\r "gists_url": "https://api.github.com/users/pelias/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/pelias/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/pelias/subscriptions",\r "organizations_url": "https://api.github.com/users/pelias/orgs",\r "repos_url": "https://api.github.com/users/pelias/repos",\r "events_url": "https://api.github.com/users/pelias/events{/privacy}",\r "received_events_url": "https://api.github.com/users/pelias/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "repo": {\r "id": 14150535,\r "name": "pelias",\r "full_name": "pelias/pelias",\r "owner": {\r "login": "pelias",\r "id": 8240367,\r "avatar_url": "https://avatars.githubusercontent.com/u/8240367?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/pelias",\r "html_url": "https://github.com/pelias",\r "followers_url": "https://api.github.com/users/pelias/followers",\r "following_url": "https://api.github.com/users/pelias/following{/other_user}",\r "gists_url": "https://api.github.com/users/pelias/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/pelias/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/pelias/subscriptions",\r "organizations_url": "https://api.github.com/users/pelias/orgs",\r "repos_url": "https://api.github.com/users/pelias/repos",\r "events_url": "https://api.github.com/users/pelias/events{/privacy}",\r "received_events_url": "https://api.github.com/users/pelias/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/pelias/pelias",\r "description": "Pelias is a modular open-source geocoder using ElasticSearch for fast geocoding. ",\r "fork": false,\r "url": "https://api.github.com/repos/pelias/pelias",\r "forks_url": "https://api.github.com/repos/pelias/pelias/forks",\r "keys_url": "https://api.github.com/repos/pelias/pelias/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/pelias/pelias/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/pelias/pelias/teams",\r "hooks_url": "https://api.github.com/repos/pelias/pelias/hooks",\r "issue_events_url": "https://api.github.com/repos/pelias/pelias/issues/events{/number}",\r "events_url": "https://api.github.com/repos/pelias/pelias/events",\r "assignees_url": "https://api.github.com/repos/pelias/pelias/assignees{/user}",\r "branches_url": "https://api.github.com/repos/pelias/pelias/branches{/branch}",\r "tags_url": "https://api.github.com/repos/pelias/pelias/tags",\r "blobs_url": "https://api.github.com/repos/pelias/pelias/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/pelias/pelias/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/pelias/pelias/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/pelias/pelias/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/pelias/pelias/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/pelias/pelias/languages",\r "stargazers_url": "https://api.github.com/repos/pelias/pelias/stargazers",\r "contributors_url": "https://api.github.com/repos/pelias/pelias/contributors",\r "subscribers_url": "https://api.github.com/repos/pelias/pelias/subscribers",\r "subscription_url": "https://api.github.com/repos/pelias/pelias/subscription",\r "commits_url": "https://api.github.com/repos/pelias/pelias/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/pelias/pelias/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/pelias/pelias/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/pelias/pelias/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/pelias/pelias/contents/{+path}",\r "compare_url": "https://api.github.com/repos/pelias/pelias/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/pelias/pelias/merges",\r "archive_url": "https://api.github.com/repos/pelias/pelias/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/pelias/pelias/downloads",\r "issues_url": "https://api.github.com/repos/pelias/pelias/issues{/number}",\r "pulls_url": "https://api.github.com/repos/pelias/pelias/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/pelias/pelias/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/pelias/pelias/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/pelias/pelias/labels{/name}",\r "releases_url": "https://api.github.com/repos/pelias/pelias/releases{/id}",\r "deployments_url": "https://api.github.com/repos/pelias/pelias/deployments",\r "created_at": "2013-11-05T18:47:02Z",\r "updated_at": "2016-12-07T22:46:10Z",\r "pushed_at": "2016-12-08T17:41:53Z",\r "git_url": "git://github.com/pelias/pelias.git",\r "ssh_url": "[email protected]:pelias/pelias.git",\r "clone_url": "https://github.com/pelias/pelias.git",\r "svn_url": "https://github.com/pelias/pelias",\r "homepage": "https://mapzen.com/pelias",\r "size": 7200,\r "stargazers_count": 878,\r "watchers_count": 878,\r "language": "CSS",\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 64,\r "mirror_url": null,\r "open_issues_count": 168,\r "forks": 64,\r "open_issues": 168,\r "watchers": 878,\r "default_branch": "master"\r }\r },\r "base": {\r "label": "pelias:master",\r "ref": "master",\r "sha": "66b443120bdc8e542f3b0654e2a6c273b3f13841",\r "user": {\r "login": "pelias",\r "id": 8240367,\r "avatar_url": "https://avatars.githubusercontent.com/u/8240367?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/pelias",\r "html_url": "https://github.com/pelias",\r "followers_url": "https://api.github.com/users/pelias/followers",\r "following_url": "https://api.github.com/users/pelias/following{/other_user}",\r "gists_url": "https://api.github.com/users/pelias/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/pelias/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/pelias/subscriptions",\r "organizations_url": "https://api.github.com/users/pelias/orgs",\r "repos_url": "https://api.github.com/users/pelias/repos",\r "events_url": "https://api.github.com/users/pelias/events{/privacy}",\r "received_events_url": "https://api.github.com/users/pelias/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "repo": {\r "id": 14150535,\r "name": "pelias",\r "full_name": "pelias/pelias",\r "owner": {\r "login": "pelias",\r "id": 8240367,\r "avatar_url": "https://avatars.githubusercontent.com/u/8240367?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/pelias",\r "html_url": "https://github.com/pelias",\r "followers_url": "https://api.github.com/users/pelias/followers",\r "following_url": "https://api.github.com/users/pelias/following{/other_user}",\r "gists_url": "https://api.github.com/users/pelias/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/pelias/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/pelias/subscriptions",\r "organizations_url": "https://api.github.com/users/pelias/orgs",\r "repos_url": "https://api.github.com/users/pelias/repos",\r "events_url": "https://api.github.com/users/pelias/events{/privacy}",\r "received_events_url": "https://api.github.com/users/pelias/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/pelias/pelias",\r "description": "Pelias is a modular open-source geocoder using ElasticSearch for fast geocoding. ",\r "fork": false,\r "url": "https://api.github.com/repos/pelias/pelias",\r "forks_url": "https://api.github.com/repos/pelias/pelias/forks",\r "keys_url": "https://api.github.com/repos/pelias/pelias/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/pelias/pelias/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/pelias/pelias/teams",\r "hooks_url": "https://api.github.com/repos/pelias/pelias/hooks",\r "issue_events_url": "https://api.github.com/repos/pelias/pelias/issues/events{/number}",\r "events_url": "https://api.github.com/repos/pelias/pelias/events",\r "assignees_url": "https://api.github.com/repos/pelias/pelias/assignees{/user}",\r "branches_url": "https://api.github.com/repos/pelias/pelias/branches{/branch}",\r "tags_url": "https://api.github.com/repos/pelias/pelias/tags",\r "blobs_url": "https://api.github.com/repos/pelias/pelias/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/pelias/pelias/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/pelias/pelias/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/pelias/pelias/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/pelias/pelias/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/pelias/pelias/languages",\r "stargazers_url": "https://api.github.com/repos/pelias/pelias/stargazers",\r "contributors_url": "https://api.github.com/repos/pelias/pelias/contributors",\r "subscribers_url": "https://api.github.com/repos/pelias/pelias/subscribers",\r "subscription_url": "https://api.github.com/repos/pelias/pelias/subscription",\r "commits_url": "https://api.github.com/repos/pelias/pelias/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/pelias/pelias/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/pelias/pelias/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/pelias/pelias/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/pelias/pelias/contents/{+path}",\r "compare_url": "https://api.github.com/repos/pelias/pelias/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/pelias/pelias/merges",\r "archive_url": "https://api.github.com/repos/pelias/pelias/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/pelias/pelias/downloads",\r "issues_url": "https://api.github.com/repos/pelias/pelias/issues{/number}",\r "pulls_url": "https://api.github.com/repos/pelias/pelias/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/pelias/pelias/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/pelias/pelias/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/pelias/pelias/labels{/name}",\r "releases_url": "https://api.github.com/repos/pelias/pelias/releases{/id}",\r "deployments_url": "https://api.github.com/repos/pelias/pelias/deployments",\r "created_at": "2013-11-05T18:47:02Z",\r "updated_at": "2016-12-07T22:46:10Z",\r "pushed_at": "2016-12-08T17:41:53Z",\r "git_url": "git://github.com/pelias/pelias.git",\r "ssh_url": "[email protected]:pelias/pelias.git",\r "clone_url": "https://github.com/pelias/pelias.git",\r "svn_url": "https://github.com/pelias/pelias",\r "homepage": "https://mapzen.com/pelias",\r "size": 7200,\r "stargazers_count": 878,\r "watchers_count": 878,\r "language": "CSS",\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 64,\r "mirror_url": null,\r "open_issues_count": 168,\r "forks": 64,\r "open_issues": 168,\r "watchers": 878,\r "default_branch": "master"\r }\r },\r "_links": {\r "self": {\r "href": "https://api.github.com/repos/pelias/pelias/pulls/481"\r },\r "html": {\r "href": "https://github.com/pelias/pelias/pull/481"\r },\r "issue": {\r "href": "https://api.github.com/repos/pelias/pelias/issues/481"\r },\r "comments": {\r "href": "https://api.github.com/repos/pelias/pelias/issues/481/comments"\r },\r "review_comments": {\r "href": "https://api.github.com/repos/pelias/pelias/pulls/481/comments"\r },\r "review_comment": {\r "href": "https://api.github.com/repos/pelias/pelias/pulls/comments{/number}"\r },\r "commits": {\r "href": "https://api.github.com/repos/pelias/pelias/pulls/481/commits"\r },\r "statuses": {\r "href": "https://api.github.com/repos/pelias/pelias/statuses/12daee642185b7975ecb80bd79dd2364c41786bb"\r }\r },\r "merged": true,\r "mergeable": null,\r "mergeable_state": "unknown",\r "merged_by": {\r "login": "orangejulius",\r "id": 111716,\r "avatar_url": "https://avatars.githubusercontent.com/u/111716?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/orangejulius",\r "html_url": "https://github.com/orangejulius",\r "followers_url": "https://api.github.com/users/orangejulius/followers",\r "following_url": "https://api.github.com/users/orangejulius/following{/other_user}",\r "gists_url": "https://api.github.com/users/orangejulius/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/orangejulius/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/orangejulius/subscriptions",\r "organizations_url": "https://api.github.com/users/orangejulius/orgs",\r "repos_url": "https://api.github.com/users/orangejulius/repos",\r "events_url": "https://api.github.com/users/orangejulius/events{/privacy}",\r "received_events_url": "https://api.github.com/users/orangejulius/received_events",\r "type": "User",\r "site_admin": false\r },\r "comments": 0,\r "review_comments": 0,\r "commits": 1,\r "additions": 97,\r "deletions": 33,\r "changed_files": 1\r },\r "label": {\r "id": 183241697,\r "url": "https://api.github.com/repos/pelias/pelias/labels/in%20review",\r "name": "in review",\r "color": "ededed",\r "default": false\r },\r "repository": {\r "id": 14150535,\r "name": "pelias",\r "full_name": "pelias/pelias",\r "owner": {\r "login": "pelias",\r "id": 8240367,\r "avatar_url": "https://avatars.githubusercontent.com/u/8240367?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/pelias",\r "html_url": "https://github.com/pelias",\r "followers_url": "https://api.github.com/users/pelias/followers",\r "following_url": "https://api.github.com/users/pelias/following{/other_user}",\r "gists_url": "https://api.github.com/users/pelias/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/pelias/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/pelias/subscriptions",\r "organizations_url": "https://api.github.com/users/pelias/orgs",\r "repos_url": "https://api.github.com/users/pelias/repos",\r "events_url": "https://api.github.com/users/pelias/events{/privacy}",\r "received_events_url": "https://api.github.com/users/pelias/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/pelias/pelias",\r "description": "Pelias is a modular open-source geocoder using ElasticSearch for fast geocoding. ",\r "fork": false,\r "url": "https://api.github.com/repos/pelias/pelias",\r "forks_url": "https://api.github.com/repos/pelias/pelias/forks",\r "keys_url": "https://api.github.com/repos/pelias/pelias/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/pelias/pelias/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/pelias/pelias/teams",\r "hooks_url": "https://api.github.com/repos/pelias/pelias/hooks",\r "issue_events_url": "https://api.github.com/repos/pelias/pelias/issues/events{/number}",\r "events_url": "https://api.github.com/repos/pelias/pelias/events",\r "assignees_url": "https://api.github.com/repos/pelias/pelias/assignees{/user}",\r "branches_url": "https://api.github.com/repos/pelias/pelias/branches{/branch}",\r "tags_url": "https://api.github.com/repos/pelias/pelias/tags",\r "blobs_url": "https://api.github.com/repos/pelias/pelias/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/pelias/pelias/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/pelias/pelias/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/pelias/pelias/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/pelias/pelias/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/pelias/pelias/languages",\r "stargazers_url": "https://api.github.com/repos/pelias/pelias/stargazers",\r "contributors_url": "https://api.github.com/repos/pelias/pelias/contributors",\r "subscribers_url": "https://api.github.com/repos/pelias/pelias/subscribers",\r "subscription_url": "https://api.github.com/repos/pelias/pelias/subscription",\r "commits_url": "https://api.github.com/repos/pelias/pelias/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/pelias/pelias/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/pelias/pelias/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/pelias/pelias/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/pelias/pelias/contents/{+path}",\r "compare_url": "https://api.github.com/repos/pelias/pelias/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/pelias/pelias/merges",\r "archive_url": "https://api.github.com/repos/pelias/pelias/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/pelias/pelias/downloads",\r "issues_url": "https://api.github.com/repos/pelias/pelias/issues{/number}",\r "pulls_url": "https://api.github.com/repos/pelias/pelias/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/pelias/pelias/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/pelias/pelias/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/pelias/pelias/labels{/name}",\r "releases_url": "https://api.github.com/repos/pelias/pelias/releases{/id}",\r "deployments_url": "https://api.github.com/repos/pelias/pelias/deployments",\r "created_at": "2013-11-05T18:47:02Z",\r "updated_at": "2016-12-07T22:46:10Z",\r "pushed_at": "2016-12-08T17:41:53Z",\r "git_url": "git://github.com/pelias/pelias.git",\r "ssh_url": "[email protected]:pelias/pelias.git",\r "clone_url": "https://github.com/pelias/pelias.git",\r "svn_url": "https://github.com/pelias/pelias",\r "homepage": "https://mapzen.com/pelias",\r "size": 7200,\r "stargazers_count": 878,\r "watchers_count": 878,\r "language": "CSS",\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 64,\r "mirror_url": null,\r "open_issues_count": 168,\r "forks": 64,\r "open_issues": 168,\r "watchers": 878,\r "default_branch": "master"\r },\r "organization": {\r "login": "pelias",\r "id": 8240367,\r "url": "https://api.github.com/orgs/pelias",\r "repos_url": "https://api.github.com/orgs/pelias/repos",\r "events_url": "https://api.github.com/orgs/pelias/events",\r "hooks_url": "https://api.github.com/orgs/pelias/hooks",\r "issues_url": "https://api.github.com/orgs/pelias/issues",\r "members_url": "https://api.github.com/orgs/pelias/members{/member}",\r "public_members_url": "https://api.github.com/orgs/pelias/public_members{/member}",\r "avatar_url": "https://avatars.githubusercontent.com/u/8240367?v=3",\r "description": "A distributed full-text geographic search engine. An open source project sponsored by Mapzen."\r },\r "sender": {\r "login": "orangejulius",\r "id": 111716,\r "avatar_url": "https://avatars.githubusercontent.com/u/111716?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/orangejulius",\r "html_url": "https://github.com/orangejulius",\r "followers_url": "https://api.github.com/users/orangejulius/followers",\r "following_url": "https://api.github.com/users/orangejulius/following{/other_user}",\r "gists_url": "https://api.github.com/users/orangejulius/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/orangejulius/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/orangejulius/subscriptions",\r "organizations_url": "https://api.github.com/users/orangejulius/orgs",\r "repos_url": "https://api.github.com/users/orangejulius/repos",\r "events_url": "https://api.github.com/users/orangejulius/events{/privacy}",\r "received_events_url": "https://api.github.com/users/orangejulius/received_events",\r "type": "User",\r "site_admin": false\r }\r}'''
with HTTMock(self.response_content):
posted = self.client.post('/hook', data=data, headers=signed(data, 'peliant'))
self.assertEqual(posted.status_code, 403)
def test_webhook_commit(self):
'''
'''
data = '''{\r "after": "e91fbc420f08890960f50f863626e1062f922522", \r "base_ref": null, \r "before": "c52204fd40f17f9da243df09e6d1107d48768afd", \r "commits": [\r {\r "added": [\r "sources/us-ca-alameda_county.json"\r ], \r "author": {\r "email": "[email protected]", \r "name": "Michal Migurski", \r "username": "migurski"\r }, \r "committer": {\r "email": "[email protected]", \r "name": "Michal Migurski", \r "username": "migurski"\r }, \r "distinct": true, \r "id": "e91fbc420f08890960f50f863626e1062f922522", \r "message": "Added first source", \r "modified": [], \r "removed": [], \r "timestamp": "2015-04-25T17:16:12-07:00", \r "url": "https://github.com/openaddresses/hooked-on-sources/commit/e91fbc420f08890960f50f863626e1062f922522"\r }\r ], \r "compare": "https://github.com/openaddresses/hooked-on-sources/compare/c52204fd40f1...e91fbc420f08", \r "created": false, \r "deleted": false, \r "forced": false, \r "head_commit": {\r "added": [\r "sources/us-ca-alameda_county.json"\r ], \r "author": {\r "email": "[email protected]", \r "name": "Michal Migurski", \r "username": "migurski"\r }, \r "committer": {\r "email": "[email protected]", \r "name": "Michal Migurski", \r "username": "migurski"\r }, \r "distinct": true, \r "id": "e91fbc420f08890960f50f863626e1062f922522", \r "message": "Added first source", \r "modified": [], \r "removed": [], \r "timestamp": "2015-04-25T17:16:12-07:00", \r "url": "https://github.com/openaddresses/hooked-on-sources/commit/e91fbc420f08890960f50f863626e1062f922522"\r }, \r "organization": {\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3", \r "description": "The free and open global address collection ", \r "events_url": "https://api.github.com/orgs/openaddresses/events", \r "id": 6895392, \r "login": "openaddresses", \r "members_url": "https://api.github.com/orgs/openaddresses/members{/member}", \r "public_members_url": "https://api.github.com/orgs/openaddresses/public_members{/member}", \r "repos_url": "https://api.github.com/orgs/openaddresses/repos", \r "url": "https://api.github.com/orgs/openaddresses"\r }, \r "pusher": {\r "email": "[email protected]", \r "name": "migurski"\r }, \r "ref": "refs/heads/master", \r "repository": {\r "archive_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/{archive_format}{/ref}", \r "assignees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/assignees{/user}", \r "blobs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/blobs{/sha}", \r "branches_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/branches{/branch}", \r "clone_url": "https://github.com/openaddresses/hooked-on-sources.git", \r "collaborators_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/collaborators{/collaborator}", \r "comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/comments{/number}", \r "commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/commits{/sha}", \r "compare_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/compare/{base}...{head}", \r "contents_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contents/{+path}", \r "contributors_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contributors", \r "created_at": 1430006167, \r "default_branch": "master", \r "description": "Temporary repository for testing Github webhook features", \r "downloads_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/downloads", \r "events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/events", \r "fork": false, \r "forks": 0, \r "forks_count": 0, \r "forks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/forks", \r "full_name": "openaddresses/hooked-on-sources", \r "git_commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/commits{/sha}", \r "git_refs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/refs{/sha}", \r "git_tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/tags{/sha}", \r "git_url": "git://github.com/openaddresses/hooked-on-sources.git", \r "has_downloads": true, \r "has_issues": true, \r "has_pages": false, \r "has_wiki": true, \r "homepage": null, \r "hooks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/hooks", \r "html_url": "https://github.com/openaddresses/hooked-on-sources", \r "id": 34590951, \r "issue_comment_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/comments{/number}", \r "issue_events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/events{/number}", \r "issues_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues{/number}", \r "keys_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/keys{/key_id}", \r "labels_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/labels{/name}", \r "language": null, \r "languages_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/languages", \r "master_branch": "master", \r "merges_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/merges", \r "milestones_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/milestones{/number}", \r "mirror_url": null, \r "name": "hooked-on-sources", \r "notifications_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/notifications{?since,all,participating}", \r "open_issues": 0, \r "open_issues_count": 0, \r "organization": "openaddresses", \r "owner": {\r "email": "[email protected]", \r "name": "openaddresses"\r }, \r "private": false, \r "pulls_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls{/number}", \r "pushed_at": 1430007676, \r "releases_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/releases{/id}", \r "size": 0, \r "ssh_url": "[email protected]:openaddresses/hooked-on-sources.git", \r "stargazers": 0, \r "stargazers_count": 0, \r "stargazers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/stargazers", \r "statuses_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/{sha}", \r "subscribers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscribers", \r "subscription_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscription", \r "svn_url": "https://github.com/openaddresses/hooked-on-sources", \r "tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/tags", \r "teams_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/teams", \r "trees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/trees{/sha}", \r "updated_at": "2015-04-25T23:56:07Z", \r "url": "https://github.com/openaddresses/hooked-on-sources", \r "watchers": 0, \r "watchers_count": 0\r }, \r "sender": {\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3", \r "events_url": "https://api.github.com/users/migurski/events{/privacy}", \r "followers_url": "https://api.github.com/users/migurski/followers", \r "following_url": "https://api.github.com/users/migurski/following{/other_user}", \r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}", \r "gravatar_id": "", \r "html_url": "https://github.com/migurski", \r "id": 58730, \r "login": "migurski", \r "organizations_url": "https://api.github.com/users/migurski/orgs", \r "received_events_url": "https://api.github.com/users/migurski/received_events", \r "repos_url": "https://api.github.com/users/migurski/repos", \r "site_admin": false, \r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}", \r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions", \r "type": "User", \r "url": "https://api.github.com/users/migurski"\r }\r }'''
with HTTMock(self.response_content):
posted = self.client.post('/hook', data=data, headers=signed(data, 'hos-secret'))
self.assertEqual(posted.status_code, 200)
self.assertEqual(self.last_status_state, 'success')
def test_webhook_delete_branch(self):
''' Delete a branch.
'''
data = '''{\r "ref": "refs/heads/whitespace",\r "before": "237a09603386664658fba6bcc843044a2ede79fb",\r "after": "0000000000000000000000000000000000000000",\r "created": false,\r "deleted": true,\r "forced": true,\r "base_ref": null,\r "compare": "https://github.com/openaddresses/openaddresses/compare/237a09603386...000000000000",\r "commits": [\r\r ],\r "head_commit": null,\r "repository": {\r "id": 16594532,\r "name": "openaddresses",\r "full_name": "openaddresses/openaddresses",\r "owner": {\r "name": "openaddresses",\r "email": "[email protected]"\r },\r "private": false,\r "html_url": "https://github.com/openaddresses/openaddresses",\r "description": "A repository of address data.",\r "fork": false,\r "url": "https://github.com/openaddresses/openaddresses",\r "forks_url": "https://api.github.com/repos/openaddresses/openaddresses/forks",\r "keys_url": "https://api.github.com/repos/openaddresses/openaddresses/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/openaddresses/openaddresses/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/openaddresses/openaddresses/teams",\r "hooks_url": "https://api.github.com/repos/openaddresses/openaddresses/hooks",\r "issue_events_url": "https://api.github.com/repos/openaddresses/openaddresses/issues/events{/number}",\r "events_url": "https://api.github.com/repos/openaddresses/openaddresses/events",\r "assignees_url": "https://api.github.com/repos/openaddresses/openaddresses/assignees{/user}",\r "branches_url": "https://api.github.com/repos/openaddresses/openaddresses/branches{/branch}",\r "tags_url": "https://api.github.com/repos/openaddresses/openaddresses/tags",\r "blobs_url": "https://api.github.com/repos/openaddresses/openaddresses/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/openaddresses/openaddresses/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/openaddresses/openaddresses/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/openaddresses/openaddresses/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/openaddresses/openaddresses/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/openaddresses/openaddresses/languages",\r "stargazers_url": "https://api.github.com/repos/openaddresses/openaddresses/stargazers",\r "contributors_url": "https://api.github.com/repos/openaddresses/openaddresses/contributors",\r "subscribers_url": "https://api.github.com/repos/openaddresses/openaddresses/subscribers",\r "subscription_url": "https://api.github.com/repos/openaddresses/openaddresses/subscription",\r "commits_url": "https://api.github.com/repos/openaddresses/openaddresses/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/openaddresses/openaddresses/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/openaddresses/openaddresses/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/openaddresses/openaddresses/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/openaddresses/openaddresses/contents/{+path}",\r "compare_url": "https://api.github.com/repos/openaddresses/openaddresses/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/openaddresses/openaddresses/merges",\r "archive_url": "https://api.github.com/repos/openaddresses/openaddresses/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/openaddresses/openaddresses/downloads",\r "issues_url": "https://api.github.com/repos/openaddresses/openaddresses/issues{/number}",\r "pulls_url": "https://api.github.com/repos/openaddresses/openaddresses/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/openaddresses/openaddresses/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/openaddresses/openaddresses/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/openaddresses/openaddresses/labels{/name}",\r "releases_url": "https://api.github.com/repos/openaddresses/openaddresses/releases{/id}",\r "created_at": 1391722160,\r "updated_at": "2015-06-11T11:42:47Z",\r "pushed_at": 1434506471,\r "git_url": "git://github.com/openaddresses/openaddresses.git",\r "ssh_url": "[email protected]:openaddresses/openaddresses.git",\r "clone_url": "https://github.com/openaddresses/openaddresses.git",\r "svn_url": "https://github.com/openaddresses/openaddresses",\r "homepage": "http://openaddresses.io/",\r "size": 9790,\r "stargazers_count": 275,\r "watchers_count": 275,\r "language": "JavaScript",\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 313,\r "mirror_url": null,\r "open_issues_count": 214,\r "forks": 313,\r "open_issues": 214,\r "watchers": 275,\r "default_branch": "master",\r "stargazers": 275,\r "master_branch": "master",\r "organization": "openaddresses"\r },\r "pusher": {\r "name": "ingalls",\r "email": "[email protected]"\r },\r "organization": {\r "login": "openaddresses",\r "id": 6895392,\r "url": "https://api.github.com/orgs/openaddresses",\r "repos_url": "https://api.github.com/orgs/openaddresses/repos",\r "events_url": "https://api.github.com/orgs/openaddresses/events",\r "members_url": "https://api.github.com/orgs/openaddresses/members{/member}",\r "public_members_url": "https://api.github.com/orgs/openaddresses/public_members{/member}",\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "description": "The free and open global address collection "\r },\r "sender": {\r "login": "ingalls",\r "id": 1297009,\r "avatar_url": "https://avatars.githubusercontent.com/u/1297009?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/ingalls",\r "html_url": "https://github.com/ingalls",\r "followers_url": "https://api.github.com/users/ingalls/followers",\r "following_url": "https://api.github.com/users/ingalls/following{/other_user}",\r "gists_url": "https://api.github.com/users/ingalls/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/ingalls/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/ingalls/subscriptions",\r "organizations_url": "https://api.github.com/users/ingalls/orgs",\r "repos_url": "https://api.github.com/users/ingalls/repos",\r "events_url": "https://api.github.com/users/ingalls/events{/privacy}",\r "received_events_url": "https://api.github.com/users/ingalls/received_events",\r "type": "User",\r "site_admin": false\r }\r}'''
with HTTMock(self.response_content):
posted = self.client.post('/hook', data=data, headers=signed(data, 'hos-secret'))
self.assertEqual(posted.status_code, 401)
def test_webhook_pull_request(self):
''' Pull request from an outside contributor.
'''
with HTTMock(self.response_content):
self.last_status_state = None
data1 = u'''{\r "action": "opened",\r "number": 4,\r "pull_request": {\r "url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4",\r "id": 38716878,\r "html_url": "https://github.com/openaddresses/hooked-on-sources/pull/4",\r "diff_url": "https://github.com/openaddresses/hooked-on-sources/pull/4.diff",\r "patch_url": "https://github.com/openaddresses/hooked-on-sources/pull/4.patch",\r "issue_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/4",\r "number": 4,\r "state": "open",\r "locked": false,\r "title": "Added La Réunion",\r "user": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r },\r "body": "",\r "created_at": "2015-06-27T22:51:14Z",\r "updated_at": "2015-06-27T22:51:14Z",\r "closed_at": null,\r "merged_at": null,\r "merge_commit_sha": null,\r "assignee": null,\r "milestone": null,\r "commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4/commits",\r "review_comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4/comments",\r "review_comment_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/comments{/number}",\r "comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/4/comments",\r "statuses_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/aed74b0784f696c3cf10e8e260865ae18ffd3aa8",\r "head": {\r "label": "migurski:master",\r "ref": "master",\r "sha": "aed74b0784f696c3cf10e8e260865ae18ffd3aa8",\r "user": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r },\r "repo": {\r "id": 38178103,\r "name": "hooked-on-sources",\r "full_name": "migurski/hooked-on-sources",\r "owner": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/migurski/hooked-on-sources",\r "description": "Temporary repository for testing Github webhook features",\r "fork": true,\r "url": "https://api.github.com/repos/migurski/hooked-on-sources",\r "forks_url": "https://api.github.com/repos/migurski/hooked-on-sources/forks",\r "keys_url": "https://api.github.com/repos/migurski/hooked-on-sources/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/migurski/hooked-on-sources/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/migurski/hooked-on-sources/teams",\r "hooks_url": "https://api.github.com/repos/migurski/hooked-on-sources/hooks",\r "issue_events_url": "https://api.github.com/repos/migurski/hooked-on-sources/issues/events{/number}",\r "events_url": "https://api.github.com/repos/migurski/hooked-on-sources/events",\r "assignees_url": "https://api.github.com/repos/migurski/hooked-on-sources/assignees{/user}",\r "branches_url": "https://api.github.com/repos/migurski/hooked-on-sources/branches{/branch}",\r "tags_url": "https://api.github.com/repos/migurski/hooked-on-sources/tags",\r "blobs_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/migurski/hooked-on-sources/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/migurski/hooked-on-sources/languages",\r "stargazers_url": "https://api.github.com/repos/migurski/hooked-on-sources/stargazers",\r "contributors_url": "https://api.github.com/repos/migurski/hooked-on-sources/contributors",\r "subscribers_url": "https://api.github.com/repos/migurski/hooked-on-sources/subscribers",\r "subscription_url": "https://api.github.com/repos/migurski/hooked-on-sources/subscription",\r "commits_url": "https://api.github.com/repos/migurski/hooked-on-sources/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/migurski/hooked-on-sources/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/migurski/hooked-on-sources/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/migurski/hooked-on-sources/contents/{+path}",\r "compare_url": "https://api.github.com/repos/migurski/hooked-on-sources/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/migurski/hooked-on-sources/merges",\r "archive_url": "https://api.github.com/repos/migurski/hooked-on-sources/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/migurski/hooked-on-sources/downloads",\r "issues_url": "https://api.github.com/repos/migurski/hooked-on-sources/issues{/number}",\r "pulls_url": "https://api.github.com/repos/migurski/hooked-on-sources/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/migurski/hooked-on-sources/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/migurski/hooked-on-sources/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/migurski/hooked-on-sources/labels{/name}",\r "releases_url": "https://api.github.com/repos/migurski/hooked-on-sources/releases{/id}",\r "created_at": "2015-06-27T22:47:37Z",\r "updated_at": "2015-04-25T23:56:07Z",\r "pushed_at": "2015-06-27T22:48:55Z",\r "git_url": "git://github.com/migurski/hooked-on-sources.git",\r "ssh_url": "[email protected]:migurski/hooked-on-sources.git",\r "clone_url": "https://github.com/migurski/hooked-on-sources.git",\r "svn_url": "https://github.com/migurski/hooked-on-sources",\r "homepage": null,\r "size": 192,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": null,\r "has_issues": false,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 0,\r "mirror_url": null,\r "open_issues_count": 0,\r "forks": 0,\r "open_issues": 0,\r "watchers": 0,\r "default_branch": "master"\r }\r },\r "base": {\r "label": "openaddresses:master",\r "ref": "master",\r "sha": "c3c7de37f96d38534dc6297a2483c218994241b6",\r "user": {\r "login": "openaddresses",\r "id": 6895392,\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/openaddresses",\r "html_url": "https://github.com/openaddresses",\r "followers_url": "https://api.github.com/users/openaddresses/followers",\r "following_url": "https://api.github.com/users/openaddresses/following{/other_user}",\r "gists_url": "https://api.github.com/users/openaddresses/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/openaddresses/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/openaddresses/subscriptions",\r "organizations_url": "https://api.github.com/users/openaddresses/orgs",\r "repos_url": "https://api.github.com/users/openaddresses/repos",\r "events_url": "https://api.github.com/users/openaddresses/events{/privacy}",\r "received_events_url": "https://api.github.com/users/openaddresses/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "repo": {\r "id": 34590951,\r "name": "hooked-on-sources",\r "full_name": "openaddresses/hooked-on-sources",\r "owner": {\r "login": "openaddresses",\r "id": 6895392,\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/openaddresses",\r "html_url": "https://github.com/openaddresses",\r "followers_url": "https://api.github.com/users/openaddresses/followers",\r "following_url": "https://api.github.com/users/openaddresses/following{/other_user}",\r "gists_url": "https://api.github.com/users/openaddresses/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/openaddresses/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/openaddresses/subscriptions",\r "organizations_url": "https://api.github.com/users/openaddresses/orgs",\r "repos_url": "https://api.github.com/users/openaddresses/repos",\r "events_url": "https://api.github.com/users/openaddresses/events{/privacy}",\r "received_events_url": "https://api.github.com/users/openaddresses/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/openaddresses/hooked-on-sources",\r "description": "Temporary repository for testing Github webhook features",\r "fork": false,\r "url": "https://api.github.com/repos/openaddresses/hooked-on-sources",\r "forks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/forks",\r "keys_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/teams",\r "hooks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/hooks",\r "issue_events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/events{/number}",\r "events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/events",\r "assignees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/assignees{/user}",\r "branches_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/branches{/branch}",\r "tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/tags",\r "blobs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/languages",\r "stargazers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/stargazers",\r "contributors_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contributors",\r "subscribers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscribers",\r "subscription_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscription",\r "commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contents/{+path}",\r "compare_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/merges",\r "archive_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/downloads",\r "issues_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues{/number}",\r "pulls_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/labels{/name}",\r "releases_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/releases{/id}",\r "created_at": "2015-04-25T23:56:07Z",\r "updated_at": "2015-04-25T23:56:07Z",\r "pushed_at": "2015-06-27T22:49:30Z",\r "git_url": "git://github.com/openaddresses/hooked-on-sources.git",\r "ssh_url": "[email protected]:openaddresses/hooked-on-sources.git",\r "clone_url": "https://github.com/openaddresses/hooked-on-sources.git",\r "svn_url": "https://github.com/openaddresses/hooked-on-sources",\r "homepage": null,\r "size": 192,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": null,\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 1,\r "mirror_url": null,\r "open_issues_count": 3,\r "forks": 1,\r "open_issues": 3,\r "watchers": 0,\r "default_branch": "master"\r }\r },\r "_links": {\r "self": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4"\r },\r "html": {\r "href": "https://github.com/openaddresses/hooked-on-sources/pull/4"\r },\r "issue": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/4"\r },\r "comments": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/4/comments"\r },\r "review_comments": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4/comments"\r },\r "review_comment": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/comments{/number}"\r },\r "commits": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4/commits"\r },\r "statuses": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/aed74b0784f696c3cf10e8e260865ae18ffd3aa8"\r }\r },\r "merged": false,\r "mergeable": null,\r "mergeable_state": "unknown",\r "merged_by": null,\r "comments": 0,\r "review_comments": 0,\r "commits": 1,\r "additions": 22,\r "deletions": 0,\r "changed_files": 1\r },\r "repository": {\r "id": 34590951,\r "name": "hooked-on-sources",\r "full_name": "openaddresses/hooked-on-sources",\r "owner": {\r "login": "openaddresses",\r "id": 6895392,\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/openaddresses",\r "html_url": "https://github.com/openaddresses",\r "followers_url": "https://api.github.com/users/openaddresses/followers",\r "following_url": "https://api.github.com/users/openaddresses/following{/other_user}",\r "gists_url": "https://api.github.com/users/openaddresses/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/openaddresses/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/openaddresses/subscriptions",\r "organizations_url": "https://api.github.com/users/openaddresses/orgs",\r "repos_url": "https://api.github.com/users/openaddresses/repos",\r "events_url": "https://api.github.com/users/openaddresses/events{/privacy}",\r "received_events_url": "https://api.github.com/users/openaddresses/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/openaddresses/hooked-on-sources",\r "description": "Temporary repository for testing Github webhook features",\r "fork": false,\r "url": "https://api.github.com/repos/openaddresses/hooked-on-sources",\r "forks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/forks",\r "keys_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/teams",\r "hooks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/hooks",\r "issue_events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/events{/number}",\r "events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/events",\r "assignees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/assignees{/user}",\r "branches_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/branches{/branch}",\r "tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/tags",\r "blobs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/languages",\r "stargazers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/stargazers",\r "contributors_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contributors",\r "subscribers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscribers",\r "subscription_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscription",\r "commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contents/{+path}",\r "compare_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/merges",\r "archive_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/downloads",\r "issues_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues{/number}",\r "pulls_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/labels{/name}",\r "releases_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/releases{/id}",\r "created_at": "2015-04-25T23:56:07Z",\r "updated_at": "2015-04-25T23:56:07Z",\r "pushed_at": "2015-06-27T22:49:30Z",\r "git_url": "git://github.com/openaddresses/hooked-on-sources.git",\r "ssh_url": "[email protected]:openaddresses/hooked-on-sources.git",\r "clone_url": "https://github.com/openaddresses/hooked-on-sources.git",\r "svn_url": "https://github.com/openaddresses/hooked-on-sources",\r "homepage": null,\r "size": 192,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": null,\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 1,\r "mirror_url": null,\r "open_issues_count": 3,\r "forks": 1,\r "open_issues": 3,\r "watchers": 0,\r "default_branch": "master"\r },\r "organization": {\r "login": "openaddresses",\r "id": 6895392,\r "url": "https://api.github.com/orgs/openaddresses",\r "repos_url": "https://api.github.com/orgs/openaddresses/repos",\r "events_url": "https://api.github.com/orgs/openaddresses/events",\r "members_url": "https://api.github.com/orgs/openaddresses/members{/member}",\r "public_members_url": "https://api.github.com/orgs/openaddresses/public_members{/member}",\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "description": "The free and open global address collection "\r },\r "sender": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r}'''
posted1 = self.client.post('/hook', data=data1, headers=signed(data1, 'hos-secret'))
self.assertEqual(self.last_status_state, 'success', 'Status should be success even for a newly-opened pull request')
self.last_status_state = None
data2 = u'''{\r "action": "synchronize",\r "number": 4,\r "pull_request": {\r "url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4",\r "id": 38716878,\r "html_url": "https://github.com/openaddresses/hooked-on-sources/pull/4",\r "diff_url": "https://github.com/openaddresses/hooked-on-sources/pull/4.diff",\r "patch_url": "https://github.com/openaddresses/hooked-on-sources/pull/4.patch",\r "issue_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/4",\r "number": 4,\r "state": "open",\r "locked": false,\r "title": "Added La Réunion",\r "user": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r },\r "body": "",\r "created_at": "2015-06-27T22:51:14Z",\r "updated_at": "2015-06-27T22:53:18Z",\r "closed_at": null,\r "merged_at": null,\r "merge_commit_sha": "5a8e302cbb901925da71ab186308aa5aa2393ebe",\r "assignee": null,\r "milestone": null,\r "commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4/commits",\r "review_comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4/comments",\r "review_comment_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/comments{/number}",\r "comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/4/comments",\r "statuses_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/6460668909a85d9db8df871d91e9b25bc5192add",\r "head": {\r "label": "migurski:master",\r "ref": "master",\r "sha": "6460668909a85d9db8df871d91e9b25bc5192add",\r "user": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r },\r "repo": {\r "id": 38178103,\r "name": "hooked-on-sources",\r "full_name": "migurski/hooked-on-sources",\r "owner": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/migurski/hooked-on-sources",\r "description": "Temporary repository for testing Github webhook features",\r "fork": true,\r "url": "https://api.github.com/repos/migurski/hooked-on-sources",\r "forks_url": "https://api.github.com/repos/migurski/hooked-on-sources/forks",\r "keys_url": "https://api.github.com/repos/migurski/hooked-on-sources/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/migurski/hooked-on-sources/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/migurski/hooked-on-sources/teams",\r "hooks_url": "https://api.github.com/repos/migurski/hooked-on-sources/hooks",\r "issue_events_url": "https://api.github.com/repos/migurski/hooked-on-sources/issues/events{/number}",\r "events_url": "https://api.github.com/repos/migurski/hooked-on-sources/events",\r "assignees_url": "https://api.github.com/repos/migurski/hooked-on-sources/assignees{/user}",\r "branches_url": "https://api.github.com/repos/migurski/hooked-on-sources/branches{/branch}",\r "tags_url": "https://api.github.com/repos/migurski/hooked-on-sources/tags",\r "blobs_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/migurski/hooked-on-sources/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/migurski/hooked-on-sources/languages",\r "stargazers_url": "https://api.github.com/repos/migurski/hooked-on-sources/stargazers",\r "contributors_url": "https://api.github.com/repos/migurski/hooked-on-sources/contributors",\r "subscribers_url": "https://api.github.com/repos/migurski/hooked-on-sources/subscribers",\r "subscription_url": "https://api.github.com/repos/migurski/hooked-on-sources/subscription",\r "commits_url": "https://api.github.com/repos/migurski/hooked-on-sources/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/migurski/hooked-on-sources/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/migurski/hooked-on-sources/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/migurski/hooked-on-sources/contents/{+path}",\r "compare_url": "https://api.github.com/repos/migurski/hooked-on-sources/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/migurski/hooked-on-sources/merges",\r "archive_url": "https://api.github.com/repos/migurski/hooked-on-sources/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/migurski/hooked-on-sources/downloads",\r "issues_url": "https://api.github.com/repos/migurski/hooked-on-sources/issues{/number}",\r "pulls_url": "https://api.github.com/repos/migurski/hooked-on-sources/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/migurski/hooked-on-sources/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/migurski/hooked-on-sources/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/migurski/hooked-on-sources/labels{/name}",\r "releases_url": "https://api.github.com/repos/migurski/hooked-on-sources/releases{/id}",\r "created_at": "2015-06-27T22:47:37Z",\r "updated_at": "2015-04-25T23:56:07Z",\r "pushed_at": "2015-06-27T22:53:18Z",\r "git_url": "git://github.com/migurski/hooked-on-sources.git",\r "ssh_url": "[email protected]:migurski/hooked-on-sources.git",\r "clone_url": "https://github.com/migurski/hooked-on-sources.git",\r "svn_url": "https://github.com/migurski/hooked-on-sources",\r "homepage": null,\r "size": 192,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": null,\r "has_issues": false,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 0,\r "mirror_url": null,\r "open_issues_count": 0,\r "forks": 0,\r "open_issues": 0,\r "watchers": 0,\r "default_branch": "master"\r }\r },\r "base": {\r "label": "openaddresses:master",\r "ref": "master",\r "sha": "c3c7de37f96d38534dc6297a2483c218994241b6",\r "user": {\r "login": "openaddresses",\r "id": 6895392,\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/openaddresses",\r "html_url": "https://github.com/openaddresses",\r "followers_url": "https://api.github.com/users/openaddresses/followers",\r "following_url": "https://api.github.com/users/openaddresses/following{/other_user}",\r "gists_url": "https://api.github.com/users/openaddresses/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/openaddresses/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/openaddresses/subscriptions",\r "organizations_url": "https://api.github.com/users/openaddresses/orgs",\r "repos_url": "https://api.github.com/users/openaddresses/repos",\r "events_url": "https://api.github.com/users/openaddresses/events{/privacy}",\r "received_events_url": "https://api.github.com/users/openaddresses/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "repo": {\r "id": 34590951,\r "name": "hooked-on-sources",\r "full_name": "openaddresses/hooked-on-sources",\r "owner": {\r "login": "openaddresses",\r "id": 6895392,\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/openaddresses",\r "html_url": "https://github.com/openaddresses",\r "followers_url": "https://api.github.com/users/openaddresses/followers",\r "following_url": "https://api.github.com/users/openaddresses/following{/other_user}",\r "gists_url": "https://api.github.com/users/openaddresses/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/openaddresses/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/openaddresses/subscriptions",\r "organizations_url": "https://api.github.com/users/openaddresses/orgs",\r "repos_url": "https://api.github.com/users/openaddresses/repos",\r "events_url": "https://api.github.com/users/openaddresses/events{/privacy}",\r "received_events_url": "https://api.github.com/users/openaddresses/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/openaddresses/hooked-on-sources",\r "description": "Temporary repository for testing Github webhook features",\r "fork": false,\r "url": "https://api.github.com/repos/openaddresses/hooked-on-sources",\r "forks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/forks",\r "keys_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/teams",\r "hooks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/hooks",\r "issue_events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/events{/number}",\r "events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/events",\r "assignees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/assignees{/user}",\r "branches_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/branches{/branch}",\r "tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/tags",\r "blobs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/languages",\r "stargazers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/stargazers",\r "contributors_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contributors",\r "subscribers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscribers",\r "subscription_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscription",\r "commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contents/{+path}",\r "compare_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/merges",\r "archive_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/downloads",\r "issues_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues{/number}",\r "pulls_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/labels{/name}",\r "releases_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/releases{/id}",\r "created_at": "2015-04-25T23:56:07Z",\r "updated_at": "2015-04-25T23:56:07Z",\r "pushed_at": "2015-06-27T22:51:15Z",\r "git_url": "git://github.com/openaddresses/hooked-on-sources.git",\r "ssh_url": "[email protected]:openaddresses/hooked-on-sources.git",\r "clone_url": "https://github.com/openaddresses/hooked-on-sources.git",\r "svn_url": "https://github.com/openaddresses/hooked-on-sources",\r "homepage": null,\r "size": 192,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": null,\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 1,\r "mirror_url": null,\r "open_issues_count": 3,\r "forks": 1,\r "open_issues": 3,\r "watchers": 0,\r "default_branch": "master"\r }\r },\r "_links": {\r "self": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4"\r },\r "html": {\r "href": "https://github.com/openaddresses/hooked-on-sources/pull/4"\r },\r "issue": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/4"\r },\r "comments": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/4/comments"\r },\r "review_comments": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4/comments"\r },\r "review_comment": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/comments{/number}"\r },\r "commits": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4/commits"\r },\r "statuses": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/6460668909a85d9db8df871d91e9b25bc5192add"\r }\r },\r "merged": false,\r "mergeable": null,\r "mergeable_state": "unknown",\r "merged_by": null,\r "comments": 0,\r "review_comments": 0,\r "commits": 2,\r "additions": 23,\r "deletions": 0,\r "changed_files": 1\r },\r "repository": {\r "id": 34590951,\r "name": "hooked-on-sources",\r "full_name": "openaddresses/hooked-on-sources",\r "owner": {\r "login": "openaddresses",\r "id": 6895392,\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/openaddresses",\r "html_url": "https://github.com/openaddresses",\r "followers_url": "https://api.github.com/users/openaddresses/followers",\r "following_url": "https://api.github.com/users/openaddresses/following{/other_user}",\r "gists_url": "https://api.github.com/users/openaddresses/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/openaddresses/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/openaddresses/subscriptions",\r "organizations_url": "https://api.github.com/users/openaddresses/orgs",\r "repos_url": "https://api.github.com/users/openaddresses/repos",\r "events_url": "https://api.github.com/users/openaddresses/events{/privacy}",\r "received_events_url": "https://api.github.com/users/openaddresses/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/openaddresses/hooked-on-sources",\r "description": "Temporary repository for testing Github webhook features",\r "fork": false,\r "url": "https://api.github.com/repos/openaddresses/hooked-on-sources",\r "forks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/forks",\r "keys_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/teams",\r "hooks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/hooks",\r "issue_events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/events{/number}",\r "events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/events",\r "assignees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/assignees{/user}",\r "branches_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/branches{/branch}",\r "tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/tags",\r "blobs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/languages",\r "stargazers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/stargazers",\r "contributors_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contributors",\r "subscribers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscribers",\r "subscription_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscription",\r "commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contents/{+path}",\r "compare_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/merges",\r "archive_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/downloads",\r "issues_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues{/number}",\r "pulls_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/labels{/name}",\r "releases_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/releases{/id}",\r "created_at": "2015-04-25T23:56:07Z",\r "updated_at": "2015-04-25T23:56:07Z",\r "pushed_at": "2015-06-27T22:51:15Z",\r "git_url": "git://github.com/openaddresses/hooked-on-sources.git",\r "ssh_url": "[email protected]:openaddresses/hooked-on-sources.git",\r "clone_url": "https://github.com/openaddresses/hooked-on-sources.git",\r "svn_url": "https://github.com/openaddresses/hooked-on-sources",\r "homepage": null,\r "size": 192,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": null,\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 1,\r "mirror_url": null,\r "open_issues_count": 3,\r "forks": 1,\r "open_issues": 3,\r "watchers": 0,\r "default_branch": "master"\r },\r "organization": {\r "login": "openaddresses",\r "id": 6895392,\r "url": "https://api.github.com/orgs/openaddresses",\r "repos_url": "https://api.github.com/orgs/openaddresses/repos",\r "events_url": "https://api.github.com/orgs/openaddresses/events",\r "members_url": "https://api.github.com/orgs/openaddresses/members{/member}",\r "public_members_url": "https://api.github.com/orgs/openaddresses/public_members{/member}",\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "description": "The free and open global address collection "\r },\r "sender": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r}'''
posted2 = self.client.post('/hook', data=data2, headers=signed(data2, 'hos-secret'))
self.assertEqual(self.last_status_state, 'success', 'Status should be success even for a pull request synch')
self.last_status_state = None
data3 = u'''{\r "ref": "refs/heads/master",\r "before": "c3c7de37f96d38534dc6297a2483c218994241b6",\r "after": "8dd262c2f30a70b27e371869c54315b1abc32247",\r "created": false,\r "deleted": false,\r "forced": false,\r "base_ref": null,\r "compare": "https://github.com/openaddresses/hooked-on-sources/compare/c3c7de37f96d...8dd262c2f30a",\r "commits": [\r {\r "id": "aed74b0784f696c3cf10e8e260865ae18ffd3aa8",\r "distinct": true,\r "message": "Added La Réunion",\r "timestamp": "2015-06-27T15:48:33-07:00",\r "url": "https://github.com/openaddresses/hooked-on-sources/commit/aed74b0784f696c3cf10e8e260865ae18ffd3aa8",\r "author": {\r "name": "Michal Migurski",\r "email": "[email protected]",\r "username": "migurski"\r },\r "committer": {\r "name": "Michal Migurski",\r "email": "[email protected]",\r "username": "migurski"\r },\r "added": [\r "sources/fr/la-réunion.json"\r ],\r "removed": [\r\r ],\r "modified": [\r\r ]\r },\r {\r "id": "6460668909a85d9db8df871d91e9b25bc5192add",\r "distinct": true,\r "message": "Added Latin-1 encoding",\r "timestamp": "2015-06-27T15:53:19-07:00",\r "url": "https://github.com/openaddresses/hooked-on-sources/commit/6460668909a85d9db8df871d91e9b25bc5192add",\r "author": {\r "name": "Michal Migurski",\r "email": "[email protected]",\r "username": "migurski"\r },\r "committer": {\r "name": "Michal Migurski",\r "email": "[email protected]",\r "username": "migurski"\r },\r "added": [\r\r ],\r "removed": [\r\r ],\r "modified": [\r "sources/fr/la-réunion.json"\r ]\r },\r {\r "id": "8dd262c2f30a70b27e371869c54315b1abc32247",\r "distinct": true,\r "message": "Merge pull request #4 from migurski/master\\n\\nAdded La Réunion",\r "timestamp": "2015-06-27T15:55:38-07:00",\r "url": "https://github.com/openaddresses/hooked-on-sources/commit/8dd262c2f30a70b27e371869c54315b1abc32247",\r "author": {\r "name": "migurski",\r "email": "[email protected]",\r "username": "migurski"\r },\r "committer": {\r "name": "migurski",\r "email": "[email protected]",\r "username": "migurski"\r },\r "added": [\r "sources/fr/la-réunion.json"\r ],\r "removed": [\r\r ],\r "modified": [\r\r ]\r }\r ],\r "head_commit": {\r "id": "8dd262c2f30a70b27e371869c54315b1abc32247",\r "distinct": true,\r "message": "Merge pull request #4 from migurski/master\\n\\nAdded La Réunion",\r "timestamp": "2015-06-27T15:55:38-07:00",\r "url": "https://github.com/openaddresses/hooked-on-sources/commit/8dd262c2f30a70b27e371869c54315b1abc32247",\r "author": {\r "name": "migurski",\r "email": "[email protected]",\r "username": "migurski"\r },\r "committer": {\r "name": "migurski",\r "email": "[email protected]",\r "username": "migurski"\r },\r "added": [\r "sources/fr/la-réunion.json"\r ],\r "removed": [\r\r ],\r "modified": [\r\r ]\r },\r "repository": {\r "id": 34590951,\r "name": "hooked-on-sources",\r "full_name": "openaddresses/hooked-on-sources",\r "owner": {\r "name": "openaddresses",\r "email": "[email protected]"\r },\r "private": false,\r "html_url": "https://github.com/openaddresses/hooked-on-sources",\r "description": "Temporary repository for testing Github webhook features",\r "fork": false,\r "url": "https://github.com/openaddresses/hooked-on-sources",\r "forks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/forks",\r "keys_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/teams",\r "hooks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/hooks",\r "issue_events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/events{/number}",\r "events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/events",\r "assignees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/assignees{/user}",\r "branches_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/branches{/branch}",\r "tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/tags",\r "blobs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/languages",\r "stargazers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/stargazers",\r "contributors_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contributors",\r "subscribers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscribers",\r "subscription_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscription",\r "commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contents/{+path}",\r "compare_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/merges",\r "archive_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/downloads",\r "issues_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues{/number}",\r "pulls_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/labels{/name}",\r "releases_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/releases{/id}",\r "created_at": 1430006167,\r "updated_at": "2015-04-25T23:56:07Z",\r "pushed_at": 1435445738,\r "git_url": "git://github.com/openaddresses/hooked-on-sources.git",\r "ssh_url": "[email protected]:openaddresses/hooked-on-sources.git",\r "clone_url": "https://github.com/openaddresses/hooked-on-sources.git",\r "svn_url": "https://github.com/openaddresses/hooked-on-sources",\r "homepage": null,\r "size": 268,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": null,\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 1,\r "mirror_url": null,\r "open_issues_count": 2,\r "forks": 1,\r "open_issues": 2,\r "watchers": 0,\r "default_branch": "master",\r "stargazers": 0,\r "master_branch": "master",\r "organization": "openaddresses"\r },\r "pusher": {\r "name": "migurski",\r "email": "[email protected]"\r },\r "organization": {\r "login": "openaddresses",\r "id": 6895392,\r "url": "https://api.github.com/orgs/openaddresses",\r "repos_url": "https://api.github.com/orgs/openaddresses/repos",\r "events_url": "https://api.github.com/orgs/openaddresses/events",\r "members_url": "https://api.github.com/orgs/openaddresses/members{/member}",\r "public_members_url": "https://api.github.com/orgs/openaddresses/public_members{/member}",\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "description": "The free and open global address collection "\r },\r "sender": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r}'''
posted3 = self.client.post('/hook', data=data3, headers=signed(data3, 'hos-secret'))
self.assertEqual(self.last_status_state, 'success', 'Status should be success even for a new commit to master')
self.last_status_state = None
data4 = u'''{\r "action": "closed",\r "number": 4,\r "pull_request": {\r "url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4",\r "id": 38716878,\r "html_url": "https://github.com/openaddresses/hooked-on-sources/pull/4",\r "diff_url": "https://github.com/openaddresses/hooked-on-sources/pull/4.diff",\r "patch_url": "https://github.com/openaddresses/hooked-on-sources/pull/4.patch",\r "issue_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/4",\r "number": 4,\r "state": "closed",\r "locked": false,\r "title": "Added La Réunion",\r "user": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r },\r "body": "",\r "created_at": "2015-06-27T22:51:14Z",\r "updated_at": "2015-06-27T22:55:38Z",\r "closed_at": "2015-06-27T22:55:38Z",\r "merged_at": "2015-06-27T22:55:38Z",\r "merge_commit_sha": "a24d66f118649a3ff5bf5731f5c54933b94cac8d",\r "assignee": null,\r "milestone": null,\r "commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4/commits",\r "review_comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4/comments",\r "review_comment_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/comments{/number}",\r "comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/4/comments",\r "statuses_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/6460668909a85d9db8df871d91e9b25bc5192add",\r "head": {\r "label": "migurski:master",\r "ref": "master",\r "sha": "6460668909a85d9db8df871d91e9b25bc5192add",\r "user": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r },\r "repo": {\r "id": 38178103,\r "name": "hooked-on-sources",\r "full_name": "migurski/hooked-on-sources",\r "owner": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/migurski/hooked-on-sources",\r "description": "Temporary repository for testing Github webhook features",\r "fork": true,\r "url": "https://api.github.com/repos/migurski/hooked-on-sources",\r "forks_url": "https://api.github.com/repos/migurski/hooked-on-sources/forks",\r "keys_url": "https://api.github.com/repos/migurski/hooked-on-sources/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/migurski/hooked-on-sources/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/migurski/hooked-on-sources/teams",\r "hooks_url": "https://api.github.com/repos/migurski/hooked-on-sources/hooks",\r "issue_events_url": "https://api.github.com/repos/migurski/hooked-on-sources/issues/events{/number}",\r "events_url": "https://api.github.com/repos/migurski/hooked-on-sources/events",\r "assignees_url": "https://api.github.com/repos/migurski/hooked-on-sources/assignees{/user}",\r "branches_url": "https://api.github.com/repos/migurski/hooked-on-sources/branches{/branch}",\r "tags_url": "https://api.github.com/repos/migurski/hooked-on-sources/tags",\r "blobs_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/migurski/hooked-on-sources/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/migurski/hooked-on-sources/languages",\r "stargazers_url": "https://api.github.com/repos/migurski/hooked-on-sources/stargazers",\r "contributors_url": "https://api.github.com/repos/migurski/hooked-on-sources/contributors",\r "subscribers_url": "https://api.github.com/repos/migurski/hooked-on-sources/subscribers",\r "subscription_url": "https://api.github.com/repos/migurski/hooked-on-sources/subscription",\r "commits_url": "https://api.github.com/repos/migurski/hooked-on-sources/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/migurski/hooked-on-sources/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/migurski/hooked-on-sources/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/migurski/hooked-on-sources/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/migurski/hooked-on-sources/contents/{+path}",\r "compare_url": "https://api.github.com/repos/migurski/hooked-on-sources/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/migurski/hooked-on-sources/merges",\r "archive_url": "https://api.github.com/repos/migurski/hooked-on-sources/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/migurski/hooked-on-sources/downloads",\r "issues_url": "https://api.github.com/repos/migurski/hooked-on-sources/issues{/number}",\r "pulls_url": "https://api.github.com/repos/migurski/hooked-on-sources/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/migurski/hooked-on-sources/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/migurski/hooked-on-sources/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/migurski/hooked-on-sources/labels{/name}",\r "releases_url": "https://api.github.com/repos/migurski/hooked-on-sources/releases{/id}",\r "created_at": "2015-06-27T22:47:37Z",\r "updated_at": "2015-04-25T23:56:07Z",\r "pushed_at": "2015-06-27T22:53:18Z",\r "git_url": "git://github.com/migurski/hooked-on-sources.git",\r "ssh_url": "[email protected]:migurski/hooked-on-sources.git",\r "clone_url": "https://github.com/migurski/hooked-on-sources.git",\r "svn_url": "https://github.com/migurski/hooked-on-sources",\r "homepage": null,\r "size": 88,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": null,\r "has_issues": false,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 0,\r "mirror_url": null,\r "open_issues_count": 0,\r "forks": 0,\r "open_issues": 0,\r "watchers": 0,\r "default_branch": "master"\r }\r },\r "base": {\r "label": "openaddresses:master",\r "ref": "master",\r "sha": "c3c7de37f96d38534dc6297a2483c218994241b6",\r "user": {\r "login": "openaddresses",\r "id": 6895392,\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/openaddresses",\r "html_url": "https://github.com/openaddresses",\r "followers_url": "https://api.github.com/users/openaddresses/followers",\r "following_url": "https://api.github.com/users/openaddresses/following{/other_user}",\r "gists_url": "https://api.github.com/users/openaddresses/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/openaddresses/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/openaddresses/subscriptions",\r "organizations_url": "https://api.github.com/users/openaddresses/orgs",\r "repos_url": "https://api.github.com/users/openaddresses/repos",\r "events_url": "https://api.github.com/users/openaddresses/events{/privacy}",\r "received_events_url": "https://api.github.com/users/openaddresses/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "repo": {\r "id": 34590951,\r "name": "hooked-on-sources",\r "full_name": "openaddresses/hooked-on-sources",\r "owner": {\r "login": "openaddresses",\r "id": 6895392,\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/openaddresses",\r "html_url": "https://github.com/openaddresses",\r "followers_url": "https://api.github.com/users/openaddresses/followers",\r "following_url": "https://api.github.com/users/openaddresses/following{/other_user}",\r "gists_url": "https://api.github.com/users/openaddresses/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/openaddresses/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/openaddresses/subscriptions",\r "organizations_url": "https://api.github.com/users/openaddresses/orgs",\r "repos_url": "https://api.github.com/users/openaddresses/repos",\r "events_url": "https://api.github.com/users/openaddresses/events{/privacy}",\r "received_events_url": "https://api.github.com/users/openaddresses/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/openaddresses/hooked-on-sources",\r "description": "Temporary repository for testing Github webhook features",\r "fork": false,\r "url": "https://api.github.com/repos/openaddresses/hooked-on-sources",\r "forks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/forks",\r "keys_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/teams",\r "hooks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/hooks",\r "issue_events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/events{/number}",\r "events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/events",\r "assignees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/assignees{/user}",\r "branches_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/branches{/branch}",\r "tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/tags",\r "blobs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/languages",\r "stargazers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/stargazers",\r "contributors_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contributors",\r "subscribers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscribers",\r "subscription_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscription",\r "commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contents/{+path}",\r "compare_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/merges",\r "archive_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/downloads",\r "issues_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues{/number}",\r "pulls_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/labels{/name}",\r "releases_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/releases{/id}",\r "created_at": "2015-04-25T23:56:07Z",\r "updated_at": "2015-04-25T23:56:07Z",\r "pushed_at": "2015-06-27T22:55:38Z",\r "git_url": "git://github.com/openaddresses/hooked-on-sources.git",\r "ssh_url": "[email protected]:openaddresses/hooked-on-sources.git",\r "clone_url": "https://github.com/openaddresses/hooked-on-sources.git",\r "svn_url": "https://github.com/openaddresses/hooked-on-sources",\r "homepage": null,\r "size": 268,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": null,\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 1,\r "mirror_url": null,\r "open_issues_count": 2,\r "forks": 1,\r "open_issues": 2,\r "watchers": 0,\r "default_branch": "master"\r }\r },\r "_links": {\r "self": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4"\r },\r "html": {\r "href": "https://github.com/openaddresses/hooked-on-sources/pull/4"\r },\r "issue": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/4"\r },\r "comments": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/4/comments"\r },\r "review_comments": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4/comments"\r },\r "review_comment": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/comments{/number}"\r },\r "commits": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls/4/commits"\r },\r "statuses": {\r "href": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/6460668909a85d9db8df871d91e9b25bc5192add"\r }\r },\r "merged": true,\r "mergeable": null,\r "mergeable_state": "unknown",\r "merged_by": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r },\r "comments": 0,\r "review_comments": 0,\r "commits": 2,\r "additions": 23,\r "deletions": 0,\r "changed_files": 1\r },\r "repository": {\r "id": 34590951,\r "name": "hooked-on-sources",\r "full_name": "openaddresses/hooked-on-sources",\r "owner": {\r "login": "openaddresses",\r "id": 6895392,\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/openaddresses",\r "html_url": "https://github.com/openaddresses",\r "followers_url": "https://api.github.com/users/openaddresses/followers",\r "following_url": "https://api.github.com/users/openaddresses/following{/other_user}",\r "gists_url": "https://api.github.com/users/openaddresses/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/openaddresses/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/openaddresses/subscriptions",\r "organizations_url": "https://api.github.com/users/openaddresses/orgs",\r "repos_url": "https://api.github.com/users/openaddresses/repos",\r "events_url": "https://api.github.com/users/openaddresses/events{/privacy}",\r "received_events_url": "https://api.github.com/users/openaddresses/received_events",\r "type": "Organization",\r "site_admin": false\r },\r "private": false,\r "html_url": "https://github.com/openaddresses/hooked-on-sources",\r "description": "Temporary repository for testing Github webhook features",\r "fork": false,\r "url": "https://api.github.com/repos/openaddresses/hooked-on-sources",\r "forks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/forks",\r "keys_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/keys{/key_id}",\r "collaborators_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/collaborators{/collaborator}",\r "teams_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/teams",\r "hooks_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/hooks",\r "issue_events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/events{/number}",\r "events_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/events",\r "assignees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/assignees{/user}",\r "branches_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/branches{/branch}",\r "tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/tags",\r "blobs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/blobs{/sha}",\r "git_tags_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/tags{/sha}",\r "git_refs_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/refs{/sha}",\r "trees_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/trees{/sha}",\r "statuses_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/statuses/{sha}",\r "languages_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/languages",\r "stargazers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/stargazers",\r "contributors_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contributors",\r "subscribers_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscribers",\r "subscription_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/subscription",\r "commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/commits{/sha}",\r "git_commits_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/git/commits{/sha}",\r "comments_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/comments{/number}",\r "issue_comment_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues/comments{/number}",\r "contents_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/contents/{+path}",\r "compare_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/compare/{base}...{head}",\r "merges_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/merges",\r "archive_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/{archive_format}{/ref}",\r "downloads_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/downloads",\r "issues_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/issues{/number}",\r "pulls_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/pulls{/number}",\r "milestones_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/milestones{/number}",\r "notifications_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/notifications{?since,all,participating}",\r "labels_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/labels{/name}",\r "releases_url": "https://api.github.com/repos/openaddresses/hooked-on-sources/releases{/id}",\r "created_at": "2015-04-25T23:56:07Z",\r "updated_at": "2015-04-25T23:56:07Z",\r "pushed_at": "2015-06-27T22:55:38Z",\r "git_url": "git://github.com/openaddresses/hooked-on-sources.git",\r "ssh_url": "[email protected]:openaddresses/hooked-on-sources.git",\r "clone_url": "https://github.com/openaddresses/hooked-on-sources.git",\r "svn_url": "https://github.com/openaddresses/hooked-on-sources",\r "homepage": null,\r "size": 268,\r "stargazers_count": 0,\r "watchers_count": 0,\r "language": null,\r "has_issues": true,\r "has_downloads": true,\r "has_wiki": true,\r "has_pages": false,\r "forks_count": 1,\r "mirror_url": null,\r "open_issues_count": 2,\r "forks": 1,\r "open_issues": 2,\r "watchers": 0,\r "default_branch": "master"\r },\r "organization": {\r "login": "openaddresses",\r "id": 6895392,\r "url": "https://api.github.com/orgs/openaddresses",\r "repos_url": "https://api.github.com/orgs/openaddresses/repos",\r "events_url": "https://api.github.com/orgs/openaddresses/events",\r "members_url": "https://api.github.com/orgs/openaddresses/members{/member}",\r "public_members_url": "https://api.github.com/orgs/openaddresses/public_members{/member}",\r "avatar_url": "https://avatars.githubusercontent.com/u/6895392?v=3",\r "description": "The free and open global address collection "\r },\r "sender": {\r "login": "migurski",\r "id": 58730,\r "avatar_url": "https://avatars.githubusercontent.com/u/58730?v=3",\r "gravatar_id": "",\r "url": "https://api.github.com/users/migurski",\r "html_url": "https://github.com/migurski",\r "followers_url": "https://api.github.com/users/migurski/followers",\r "following_url": "https://api.github.com/users/migurski/following{/other_user}",\r "gists_url": "https://api.github.com/users/migurski/gists{/gist_id}",\r "starred_url": "https://api.github.com/users/migurski/starred{/owner}{/repo}",\r "subscriptions_url": "https://api.github.com/users/migurski/subscriptions",\r "organizations_url": "https://api.github.com/users/migurski/orgs",\r "repos_url": "https://api.github.com/users/migurski/repos",\r "events_url": "https://api.github.com/users/migurski/events{/privacy}",\r "received_events_url": "https://api.github.com/users/migurski/received_events",\r "type": "User",\r "site_admin": false\r }\r}'''
posted4 = self.client.post('/hook', data=data4, headers=signed(data4, 'hos-secret'))
self.assertEqual(self.last_status_state, None, 'Status should be blank for a closed pull request')
self.assertEqual(posted1.status_code, 200)
self.assertEqual(posted2.status_code, 200)
self.assertEqual(posted3.status_code, 200)
self.assertEqual(posted4.status_code, 200)
class TestFunctions (unittest.TestCase):
def test_absolute_url(self):
req1 = Mock()
req1.scheme, req1.host, req1.path = 'http', 'example.com', '/foo/'
req1.headers = dict()
self.assertEqual(href.absolute_url(req1, '/bar'), '/bar')
self.assertEqual(href.absolute_url(req1, 'http://example.org/bar'), 'http://example.org/bar')
req2 = Mock()
req2.scheme, req2.host, req2.path = 'http', 'example.com', '/foo/'
req2.headers = {'X-Forwarded-Proto': 'https'}
self.assertEqual(href.absolute_url(req2, '/bar'), 'https://example.com/bar')
self.assertEqual(href.absolute_url(req2, 'http://example.org/bar'), 'http://example.org/bar')
self.assertEqual(href.absolute_url(req2, 'bar'), 'https://example.com/foo/bar')
def test_util_doctest(self):
doctest.testmod(util, raise_on_error=True)
def test_href_doctest(self):
doctest.testmod(href, raise_on_error=True)
if __name__ == '__main__':
unittest.main()