From f31a92874b32903cd7d49a134725ec5536f1a231 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dandelion=20Man=C3=A9?= Date: Sun, 8 Sep 2019 00:20:34 +0200 Subject: [PATCH] hide `filterTimelineCred` (#1357) TimelineCred computation is implemented as follows: - Compute Distribution - Filter it down to specified node types - Wrap the filtered results into a TimelineCred I want to change how the filtering works. The new filtering logic will depend on logic we've already implemented in TimelineCred; therefore filtering should be done on the TimelineCred object and not separately. Specifically, I want to be able to filter down to the highest-scored nodes by type (dependent on the type). As a first step, I've refactored the interface to TimelineCred so that the filtering is an implementation detail, i.e. the TimelineCred constructor doesn't expect objects defined in `filterTimelineCred`. Test plan: `yarn test` passes after a snapshot update. --- .../cred.json | 2 +- src/analysis/timeline/filterTimelineCred.js | 18 --------- .../timeline/filterTimelineCred.test.js | 19 +-------- src/analysis/timeline/timelineCred.js | 39 ++++++++++++------- src/analysis/timeline/timelineCred.test.js | 11 +++--- .../TimelineCredViewInspectionTest.js | 7 +--- 6 files changed, 33 insertions(+), 63 deletions(-) diff --git a/sharness/__snapshots__/example-github-load/projects/c291cmNlY3JlZC10ZXN0L2V4YW1wbGUtZ2l0aHVi/cred.json b/sharness/__snapshots__/example-github-load/projects/c291cmNlY3JlZC10ZXN0L2V4YW1wbGUtZ2l0aHVi/cred.json index d7c5620..cf5128d 100644 --- a/sharness/__snapshots__/example-github-load/projects/c291cmNlY3JlZC10ZXN0L2V4YW1wbGUtZ2l0aHVi/cred.json +++ b/sharness/__snapshots__/example-github-load/projects/c291cmNlY3JlZC10ZXN0L2V4YW1wbGUtZ2l0aHVi/cred.json @@ -1 +1 @@ -[{"type":"sourcecred/timelineCred","version":"0.2.0"},{"graphJSON":[{"type":"sourcecred/graph","version":"0.8.0"},{"sortedNodeAddresses":[["sourcecred","git","COMMIT","0a223346b4e6dec0127b1e6aa892c4ee0424b66a"],["sourcecred","git","COMMIT","6bd1b4c0b719c22c688a74863be07a699b7b9b34"],["sourcecred","git","COMMIT","6d5b3aa31ebb68a06ceb46bbd6cf49b6ccd6f5e6"],["sourcecred","git","COMMIT","c430bd74455105f77215ece51945094ceeee6c86"],["sourcecred","git","COMMIT","ec91adb718a6045b492303f00d8e8beb957dc780"],["sourcecred","git","COMMIT","ecc889dc94cf6da17ae6eab5bb7b7155f577519d"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420811872"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813013"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813206"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813621"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768703"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768850"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576185"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576220"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576248"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576273"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576936"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768442"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768538"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","385223316"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","417104047"],["sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","3","369162222"],["sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","5","396430464"],["sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],["sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjBhMjIzMzQ2YjRlNmRlYzAxMjdiMWU2YWE4OTJjNGVlMDQyNGI2NmE="],["sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZiZDFiNGMwYjcxOWMyMmM2ODhhNzQ4NjNiZTA3YTY5OWI3YjliMzQ="],["sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZkNWIzYWEzMWViYjY4YTA2Y2ViNDZiYmQ2Y2Y0OWI2Y2NkNmY1ZTY="],["sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmM0MzBiZDc0NDU1MTA1Zjc3MjE1ZWNlNTE5NDUwOTRjZWVlZTZjODY="],["sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjOTFhZGI3MThhNjA0NWI0OTIzMDNmMDBkOGU4YmViOTU3ZGM3ODA="],["sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjYzg4OWRjOTRjZjZkYTE3YWU2ZWFiNWJiN2I3MTU1ZjU3NzUxOWQ="],["sourcecred","github","ISSUE","sourcecred-test","example-github","1"],["sourcecred","github","ISSUE","sourcecred-test","example-github","10"],["sourcecred","github","ISSUE","sourcecred-test","example-github","11"],["sourcecred","github","ISSUE","sourcecred-test","example-github","12"],["sourcecred","github","ISSUE","sourcecred-test","example-github","13"],["sourcecred","github","ISSUE","sourcecred-test","example-github","2"],["sourcecred","github","ISSUE","sourcecred-test","example-github","4"],["sourcecred","github","ISSUE","sourcecred-test","example-github","6"],["sourcecred","github","ISSUE","sourcecred-test","example-github","7"],["sourcecred","github","ISSUE","sourcecred-test","example-github","8"],["sourcecred","github","PULL","sourcecred-test","example-github","3"],["sourcecred","github","PULL","sourcecred-test","example-github","5"],["sourcecred","github","PULL","sourcecred-test","example-github","9"],["sourcecred","github","REPO","sourcecred-test","example-github"],["sourcecred","github","REVIEW","sourcecred-test","example-github","5","100313899"],["sourcecred","github","REVIEW","sourcecred-test","example-github","5","100314038"],["sourcecred","github","USERLIKE","BOT","credbot"],["sourcecred","github","USERLIKE","USER","decentralion"],["sourcecred","github","USERLIKE","USER","wchargin"]],"edges":[{"srcIndex":47,"dstIndex":28,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","BOT","credbot","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmM0MzBiZDc0NDU1MTA1Zjc3MjE1ZWNlNTE5NDUwOTRjZWVlZTZjODY="],"timestampMs":1536788634000},{"srcIndex":47,"dstIndex":21,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","BOT","credbot","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","417104047"],"timestampMs":1535576390000},{"srcIndex":48,"dstIndex":25,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjBhMjIzMzQ2YjRlNmRlYzAxMjdiMWU2YWE4OTJjNGVlMDQyNGI2NmE="],"timestampMs":1519807427000},{"srcIndex":48,"dstIndex":27,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZkNWIzYWEzMWViYjY4YTA2Y2ViNDZiYmQ2Y2Y0OWI2Y2NkNmY1ZTY="],"timestampMs":1519878354000},{"srcIndex":48,"dstIndex":29,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjOTFhZGI3MThhNjA0NWI0OTIzMDNmMDBkOGU4YmViOTU3ZGM3ODA="],"timestampMs":1519807271000},{"srcIndex":48,"dstIndex":30,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjYzg4OWRjOTRjZjZkYTE3YWU2ZWFiNWJiN2I3MTU1ZjU3NzUxOWQ="],"timestampMs":1519807329000},{"srcIndex":48,"dstIndex":31,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","1"],"timestampMs":1519807088000},{"srcIndex":48,"dstIndex":32,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","10"],"timestampMs":1530297021000},{"srcIndex":48,"dstIndex":34,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","12"],"timestampMs":1536878086000},{"srcIndex":48,"dstIndex":35,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","13"],"timestampMs":1536878137000},{"srcIndex":48,"dstIndex":36,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2"],"timestampMs":1519807129000},{"srcIndex":48,"dstIndex":37,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","4"],"timestampMs":1519807454000},{"srcIndex":48,"dstIndex":38,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","6"],"timestampMs":1521217624000},{"srcIndex":48,"dstIndex":39,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","7"],"timestampMs":1521569949000},{"srcIndex":48,"dstIndex":40,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","8"],"timestampMs":1521570243000},{"srcIndex":48,"dstIndex":41,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","PULL","sourcecred-test","example-github","3"],"timestampMs":1519807399000},{"srcIndex":48,"dstIndex":42,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","PULL","sourcecred-test","example-github","5"],"timestampMs":1519807636000},{"srcIndex":48,"dstIndex":43,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","PULL","sourcecred-test","example-github","9"],"timestampMs":1525373595000},{"srcIndex":48,"dstIndex":9,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813621"],"timestampMs":1536789965000},{"srcIndex":48,"dstIndex":10,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768703"],"timestampMs":1521217693000},{"srcIndex":48,"dstIndex":11,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768850"],"timestampMs":1521217725000},{"srcIndex":48,"dstIndex":12,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576185"],"timestampMs":1525137909000},{"srcIndex":48,"dstIndex":13,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576220"],"timestampMs":1525137925000},{"srcIndex":48,"dstIndex":14,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576248"],"timestampMs":1525137939000},{"srcIndex":48,"dstIndex":15,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576273"],"timestampMs":1525137951000},{"srcIndex":48,"dstIndex":16,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920"],"timestampMs":1525138231000},{"srcIndex":48,"dstIndex":17,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576936"],"timestampMs":1525138238000},{"srcIndex":48,"dstIndex":18,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768442"],"timestampMs":1521217642000},{"srcIndex":48,"dstIndex":19,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768538"],"timestampMs":1521217661000},{"srcIndex":48,"dstIndex":20,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","385223316"],"timestampMs":1524973307000},{"srcIndex":48,"dstIndex":22,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","3","369162222"],"timestampMs":1519807420000},{"srcIndex":49,"dstIndex":32,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","6","sourcecred","github","ISSUE","sourcecred-test","example-github","10"],"timestampMs":1530297021000},{"srcIndex":49,"dstIndex":33,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","6","sourcecred","github","ISSUE","sourcecred-test","example-github","11"],"timestampMs":1536789479000},{"srcIndex":49,"dstIndex":43,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","6","sourcecred","github","PULL","sourcecred-test","example-github","9"],"timestampMs":1525373595000},{"srcIndex":49,"dstIndex":45,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","7","sourcecred","github","REVIEW","sourcecred-test","example-github","5","100313899"],"timestampMs":1519878210000},{"srcIndex":49,"dstIndex":46,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","7","sourcecred","github","REVIEW","sourcecred-test","example-github","5","100314038"],"timestampMs":1519878296000},{"srcIndex":49,"dstIndex":7,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813013"],"timestampMs":1536789813000},{"srcIndex":49,"dstIndex":23,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","8","sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","5","396430464"],"timestampMs":1528764380000},{"srcIndex":49,"dstIndex":24,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1519878210000},{"srcIndex":25,"dstIndex":0,"address":["sourcecred","github","CORRESPONDS_TO_COMMIT_TYPE","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjBhMjIzMzQ2YjRlNmRlYzAxMjdiMWU2YWE4OTJjNGVlMDQyNGI2NmE="],"timestampMs":1519807427000},{"srcIndex":26,"dstIndex":1,"address":["sourcecred","github","CORRESPONDS_TO_COMMIT_TYPE","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZiZDFiNGMwYjcxOWMyMmM2ODhhNzQ4NjNiZTA3YTY5OWI3YjliMzQ="],"timestampMs":1536806901000},{"srcIndex":27,"dstIndex":2,"address":["sourcecred","github","CORRESPONDS_TO_COMMIT_TYPE","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZkNWIzYWEzMWViYjY4YTA2Y2ViNDZiYmQ2Y2Y0OWI2Y2NkNmY1ZTY="],"timestampMs":1519878354000},{"srcIndex":28,"dstIndex":3,"address":["sourcecred","github","CORRESPONDS_TO_COMMIT_TYPE","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmM0MzBiZDc0NDU1MTA1Zjc3MjE1ZWNlNTE5NDUwOTRjZWVlZTZjODY="],"timestampMs":1536788634000},{"srcIndex":29,"dstIndex":4,"address":["sourcecred","github","CORRESPONDS_TO_COMMIT_TYPE","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjOTFhZGI3MThhNjA0NWI0OTIzMDNmMDBkOGU4YmViOTU3ZGM3ODA="],"timestampMs":1519807271000},{"srcIndex":30,"dstIndex":5,"address":["sourcecred","github","CORRESPONDS_TO_COMMIT_TYPE","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjYzg4OWRjOTRjZjZkYTE3YWU2ZWFiNWJiN2I3MTU1ZjU3NzUxOWQ="],"timestampMs":1519807329000},{"srcIndex":31,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","1"],"timestampMs":1519807088000},{"srcIndex":32,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","10"],"timestampMs":1530297021000},{"srcIndex":33,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","11"],"timestampMs":1536789479000},{"srcIndex":34,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","12"],"timestampMs":1536878086000},{"srcIndex":35,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","13"],"timestampMs":1536878137000},{"srcIndex":36,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2"],"timestampMs":1519807129000},{"srcIndex":37,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","4"],"timestampMs":1519807454000},{"srcIndex":38,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","6"],"timestampMs":1521217624000},{"srcIndex":39,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","7"],"timestampMs":1521569949000},{"srcIndex":40,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","8"],"timestampMs":1521570243000},{"srcIndex":41,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","PULL","sourcecred-test","example-github","3"],"timestampMs":1519807399000},{"srcIndex":42,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","PULL","sourcecred-test","example-github","5"],"timestampMs":1519807636000},{"srcIndex":43,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","PULL","sourcecred-test","example-github","9"],"timestampMs":1525373595000},{"srcIndex":45,"dstIndex":42,"address":["sourcecred","github","HAS_PARENT","7","sourcecred","github","REVIEW","sourcecred-test","example-github","5","100313899"],"timestampMs":1519878210000},{"srcIndex":46,"dstIndex":42,"address":["sourcecred","github","HAS_PARENT","7","sourcecred","github","REVIEW","sourcecred-test","example-github","5","100314038"],"timestampMs":1519878296000},{"srcIndex":6,"dstIndex":33,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420811872"],"timestampMs":1536789545000},{"srcIndex":7,"dstIndex":33,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813013"],"timestampMs":1536789813000},{"srcIndex":8,"dstIndex":33,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813206"],"timestampMs":1536789858000},{"srcIndex":9,"dstIndex":33,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813621"],"timestampMs":1536789965000},{"srcIndex":10,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768703"],"timestampMs":1521217693000},{"srcIndex":11,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768850"],"timestampMs":1521217725000},{"srcIndex":12,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576185"],"timestampMs":1525137909000},{"srcIndex":13,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576220"],"timestampMs":1525137925000},{"srcIndex":14,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576248"],"timestampMs":1525137939000},{"srcIndex":15,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576273"],"timestampMs":1525137951000},{"srcIndex":16,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920"],"timestampMs":1525138231000},{"srcIndex":17,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576936"],"timestampMs":1525138238000},{"srcIndex":18,"dstIndex":38,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768442"],"timestampMs":1521217642000},{"srcIndex":19,"dstIndex":38,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768538"],"timestampMs":1521217661000},{"srcIndex":20,"dstIndex":38,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","385223316"],"timestampMs":1524973307000},{"srcIndex":21,"dstIndex":38,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","417104047"],"timestampMs":1535576390000},{"srcIndex":22,"dstIndex":41,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","3","369162222"],"timestampMs":1519807420000},{"srcIndex":23,"dstIndex":42,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","5","396430464"],"timestampMs":1528764380000},{"srcIndex":24,"dstIndex":45,"address":["sourcecred","github","HAS_PARENT","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1519878210000},{"srcIndex":41,"dstIndex":25,"address":["sourcecred","github","MERGED_AS","6","sourcecred","github","PULL","sourcecred-test","example-github","3"],"timestampMs":1519807427000},{"srcIndex":42,"dstIndex":27,"address":["sourcecred","github","MERGED_AS","6","sourcecred","github","PULL","sourcecred-test","example-github","5"],"timestampMs":1519878354000},{"srcIndex":48,"dstIndex":31,"address":["sourcecred","github","REACTS","HEART","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","1"],"timestampMs":1536878100000},{"srcIndex":48,"dstIndex":35,"address":["sourcecred","github","REACTS","HEART","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","13"],"timestampMs":1536878149000},{"srcIndex":48,"dstIndex":43,"address":["sourcecred","github","REACTS","HEART","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","PULL","sourcecred-test","example-github","9"],"timestampMs":1536952427000},{"srcIndex":48,"dstIndex":23,"address":["sourcecred","github","REACTS","HEART","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","5","396430464"],"timestampMs":1536952482000},{"srcIndex":48,"dstIndex":24,"address":["sourcecred","github","REACTS","HEART","5","sourcecred","github","USERLIKE","USER","decentralion","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1537294764000},{"srcIndex":49,"dstIndex":24,"address":["sourcecred","github","REACTS","HEART","5","sourcecred","github","USERLIKE","USER","wchargin","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1537294762000},{"srcIndex":48,"dstIndex":35,"address":["sourcecred","github","REACTS","HOORAY","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","13"],"timestampMs":1536878144000},{"srcIndex":48,"dstIndex":8,"address":["sourcecred","github","REACTS","HOORAY","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813206"],"timestampMs":1536952420000},{"srcIndex":48,"dstIndex":24,"address":["sourcecred","github","REACTS","HOORAY","5","sourcecred","github","USERLIKE","USER","decentralion","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1537294761000},{"srcIndex":49,"dstIndex":24,"address":["sourcecred","github","REACTS","HOORAY","5","sourcecred","github","USERLIKE","USER","wchargin","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1537294758000},{"srcIndex":48,"dstIndex":35,"address":["sourcecred","github","REACTS","ROCKET","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","13"],"timestampMs":1548353975000},{"srcIndex":48,"dstIndex":34,"address":["sourcecred","github","REACTS","THUMBS_UP","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","12"],"timestampMs":1536878091000},{"srcIndex":48,"dstIndex":35,"address":["sourcecred","github","REACTS","THUMBS_UP","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","13"],"timestampMs":1536878140000},{"srcIndex":48,"dstIndex":43,"address":["sourcecred","github","REACTS","THUMBS_UP","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","PULL","sourcecred-test","example-github","9"],"timestampMs":1536952428000},{"srcIndex":48,"dstIndex":8,"address":["sourcecred","github","REACTS","THUMBS_UP","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813206"],"timestampMs":1536952413000},{"srcIndex":48,"dstIndex":24,"address":["sourcecred","github","REACTS","THUMBS_UP","5","sourcecred","github","USERLIKE","USER","decentralion","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1537294756000},{"srcIndex":49,"dstIndex":24,"address":["sourcecred","github","REACTS","THUMBS_UP","5","sourcecred","github","USERLIKE","USER","wchargin","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1537294753000},{"srcIndex":25,"dstIndex":41,"address":["sourcecred","github","REFERENCES","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjBhMjIzMzQ2YjRlNmRlYzAxMjdiMWU2YWE4OTJjNGVlMDQyNGI2NmE=","6","sourcecred","github","PULL","sourcecred-test","example-github","3"],"timestampMs":1519807427000},{"srcIndex":26,"dstIndex":49,"address":["sourcecred","github","REFERENCES","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZiZDFiNGMwYjcxOWMyMmM2ODhhNzQ4NjNiZTA3YTY5OWI3YjliMzQ=","5","sourcecred","github","USERLIKE","USER","wchargin"],"timestampMs":1536806901000},{"srcIndex":27,"dstIndex":42,"address":["sourcecred","github","REFERENCES","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZkNWIzYWEzMWViYjY4YTA2Y2ViNDZiYmQ2Y2Y0OWI2Y2NkNmY1ZTY=","6","sourcecred","github","PULL","sourcecred-test","example-github","5"],"timestampMs":1519878354000},{"srcIndex":28,"dstIndex":49,"address":["sourcecred","github","REFERENCES","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmM0MzBiZDc0NDU1MTA1Zjc3MjE1ZWNlNTE5NDUwOTRjZWVlZTZjODY=","5","sourcecred","github","USERLIKE","USER","wchargin"],"timestampMs":1536788634000},{"srcIndex":32,"dstIndex":32,"address":["sourcecred","github","REFERENCES","6","sourcecred","github","ISSUE","sourcecred-test","example-github","10","6","sourcecred","github","ISSUE","sourcecred-test","example-github","10"],"timestampMs":1530297021000},{"srcIndex":32,"dstIndex":36,"address":["sourcecred","github","REFERENCES","6","sourcecred","github","ISSUE","sourcecred-test","example-github","10","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2"],"timestampMs":1530297021000},{"srcIndex":34,"dstIndex":29,"address":["sourcecred","github","REFERENCES","6","sourcecred","github","ISSUE","sourcecred-test","example-github","12","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjOTFhZGI3MThhNjA0NWI0OTIzMDNmMDBkOGU4YmViOTU3ZGM3ODA="],"timestampMs":1536878086000},{"srcIndex":34,"dstIndex":30,"address":["sourcecred","github","REFERENCES","6","sourcecred","github","ISSUE","sourcecred-test","example-github","12","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjYzg4OWRjOTRjZjZkYTE3YWU2ZWFiNWJiN2I3MTU1ZjU3NzUxOWQ="],"timestampMs":1536878086000},{"srcIndex":36,"dstIndex":31,"address":["sourcecred","github","REFERENCES","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2","6","sourcecred","github","ISSUE","sourcecred-test","example-github","1"],"timestampMs":1519807129000},{"srcIndex":42,"dstIndex":49,"address":["sourcecred","github","REFERENCES","6","sourcecred","github","PULL","sourcecred-test","example-github","5","5","sourcecred","github","USERLIKE","USER","wchargin"],"timestampMs":1519807636000},{"srcIndex":10,"dstIndex":38,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768703","6","sourcecred","github","ISSUE","sourcecred-test","example-github","6"],"timestampMs":1521217693000},{"srcIndex":11,"dstIndex":19,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768850","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768538"],"timestampMs":1521217725000},{"srcIndex":12,"dstIndex":42,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576185","6","sourcecred","github","PULL","sourcecred-test","example-github","5"],"timestampMs":1525137909000},{"srcIndex":13,"dstIndex":45,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576220","7","sourcecred","github","REVIEW","sourcecred-test","example-github","5","100313899"],"timestampMs":1525137925000},{"srcIndex":14,"dstIndex":24,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576248","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1525137939000},{"srcIndex":15,"dstIndex":49,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576273","5","sourcecred","github","USERLIKE","USER","wchargin"],"timestampMs":1525137951000},{"srcIndex":16,"dstIndex":31,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920","6","sourcecred","github","ISSUE","sourcecred-test","example-github","1"],"timestampMs":1525138231000},{"srcIndex":16,"dstIndex":36,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2"],"timestampMs":1525138231000},{"srcIndex":16,"dstIndex":41,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920","6","sourcecred","github","PULL","sourcecred-test","example-github","3"],"timestampMs":1525138231000},{"srcIndex":16,"dstIndex":45,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920","7","sourcecred","github","REVIEW","sourcecred-test","example-github","5","100313899"],"timestampMs":1525138231000},{"srcIndex":16,"dstIndex":24,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1525138231000},{"srcIndex":20,"dstIndex":36,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","385223316","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2"],"timestampMs":1524973307000},{"srcIndex":22,"dstIndex":36,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","3","369162222","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2"],"timestampMs":1519807420000}],"nodes":[{"index":6,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/11#issuecomment-420811872) on [#11](https://github.com/sourcecred-test/example-github/issues/11): An issue with a comment from a deleted user","timestampMs":1536789545000},{"index":7,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/11#issuecomment-420813013) on [#11](https://github.com/sourcecred-test/example-github/issues/11): An issue with a comment from a deleted user","timestampMs":1536789813000},{"index":8,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/11#issuecomment-420813206) on [#11](https://github.com/sourcecred-test/example-github/issues/11): An issue with a comment from a deleted user","timestampMs":1536789858000},{"index":9,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/11#issuecomment-420813621) on [#11](https://github.com/sourcecred-test/example-github/issues/11): An issue with a comment from a deleted user","timestampMs":1536789965000},{"index":10,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-373768703) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1521217693000},{"index":11,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-373768850) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1521217725000},{"index":12,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-385576185) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1525137909000},{"index":13,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-385576220) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1525137925000},{"index":14,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-385576248) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1525137939000},{"index":15,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-385576273) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1525137951000},{"index":16,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-385576920) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1525138231000},{"index":17,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-385576936) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1525138238000},{"index":18,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/6#issuecomment-373768442) on [#6](https://github.com/sourcecred-test/example-github/issues/6): An issue with comments","timestampMs":1521217642000},{"index":19,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/6#issuecomment-373768538) on [#6](https://github.com/sourcecred-test/example-github/issues/6): An issue with comments","timestampMs":1521217661000},{"index":20,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/6#issuecomment-385223316) on [#6](https://github.com/sourcecred-test/example-github/issues/6): An issue with comments","timestampMs":1524973307000},{"index":21,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/6#issuecomment-417104047) on [#6](https://github.com/sourcecred-test/example-github/issues/6): An issue with comments","timestampMs":1535576390000},{"index":22,"description":"[comment](https://github.com/sourcecred-test/example-github/pull/3#issuecomment-369162222) on [#3](https://github.com/sourcecred-test/example-github/pull/3): Add README, merge via PR.","timestampMs":1519807420000},{"index":23,"description":"[comment](https://github.com/sourcecred-test/example-github/pull/5#issuecomment-396430464) on [#5](https://github.com/sourcecred-test/example-github/pull/5): This pull request will be more contentious. I can feel it...","timestampMs":1528764380000},{"index":24,"description":"[comment](https://github.com/sourcecred-test/example-github/pull/5#discussion_r171460198) on [review](https://github.com/sourcecred-test/example-github/pull/5#pullrequestreview-100313899) on [#5](https://github.com/sourcecred-test/example-github/pull/5): This pull request will be more contentious. I can feel it...","timestampMs":1519878210000},{"index":25,"description":"[0a22334](https://github.com/sourcecred-test/example-github/commit/0a223346b4e6dec0127b1e6aa892c4ee0424b66a): Merge pull request #3 from sourcecred/add-readme","timestampMs":1519807427000},{"index":26,"description":"[6bd1b4c](https://github.com/sourcecred-test/example-github/commit/6bd1b4c0b719c22c688a74863be07a699b7b9b34): A commit from someone with no GitHub account","timestampMs":1536806901000},{"index":27,"description":"[6d5b3aa](https://github.com/sourcecred-test/example-github/commit/6d5b3aa31ebb68a06ceb46bbd6cf49b6ccd6f5e6): This pull request will be more contentious. I can feel it... (#5)","timestampMs":1519878354000},{"index":28,"description":"[c430bd7](https://github.com/sourcecred-test/example-github/commit/c430bd74455105f77215ece51945094ceeee6c86): Hello from credbot!","timestampMs":1536788634000},{"index":29,"description":"[ec91adb](https://github.com/sourcecred-test/example-github/commit/ec91adb718a6045b492303f00d8e8beb957dc780): Commit without pull request.","timestampMs":1519807271000},{"index":30,"description":"[ecc889d](https://github.com/sourcecred-test/example-github/commit/ecc889dc94cf6da17ae6eab5bb7b7155f577519d): Add README, merge via PR.","timestampMs":1519807329000},{"index":31,"description":"[#1](https://github.com/sourcecred-test/example-github/issues/1): An example issue.","timestampMs":1519807088000},{"index":32,"description":"[#10](https://github.com/sourcecred-test/example-github/issues/10): Paired with multireference","timestampMs":1530297021000},{"index":33,"description":"[#11](https://github.com/sourcecred-test/example-github/issues/11): An issue with a comment from a deleted user","timestampMs":1536789479000},{"index":34,"description":"[#12](https://github.com/sourcecred-test/example-github/issues/12): An issue with commit references","timestampMs":1536878086000},{"index":35,"description":"[#13](https://github.com/sourcecred-test/example-github/issues/13): An issue with reactions","timestampMs":1536878137000},{"index":36,"description":"[#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1519807129000},{"index":37,"description":"[#4](https://github.com/sourcecred-test/example-github/issues/4): A closed pull request","timestampMs":1519807454000},{"index":38,"description":"[#6](https://github.com/sourcecred-test/example-github/issues/6): An issue with comments","timestampMs":1521217624000},{"index":39,"description":"[#7](https://github.com/sourcecred-test/example-github/issues/7): An issue with an extremely long title, which even has a VerySuperFragicalisticialiManyCharacterUberLongTriplePlusGood word in it, and should really be truncated intelligently or something","timestampMs":1521569949000},{"index":40,"description":"[#8](https://github.com/sourcecred-test/example-github/issues/8): Issue with Unicode: ศดแˆฒ๐ฃณๆฅข๐Ÿ‘ :heart: ๐ค”๐ค๐ค€๐ค‘๐ค๐ค‰๐ค”๐คŒ๐ค„๐ค๐ค โค๏ธ","timestampMs":1521570243000},{"index":41,"description":"[#3](https://github.com/sourcecred-test/example-github/pull/3): Add README, merge via PR.","timestampMs":1519807399000},{"index":42,"description":"[#5](https://github.com/sourcecred-test/example-github/pull/5): This pull request will be more contentious. I can feel it...","timestampMs":1519807636000},{"index":43,"description":"[#9](https://github.com/sourcecred-test/example-github/pull/9): An unmerged pull request","timestampMs":1525373595000},{"index":44,"description":"[sourcecred-test/example-github](https://github.com/sourcecred-test/example-github)","timestampMs":1519807034000},{"index":45,"description":"[review](https://github.com/sourcecred-test/example-github/pull/5#pullrequestreview-100313899) on [#5](https://github.com/sourcecred-test/example-github/pull/5): This pull request will be more contentious. I can feel it...","timestampMs":1519878210000},{"index":46,"description":"[review](https://github.com/sourcecred-test/example-github/pull/5#pullrequestreview-100314038) on [#5](https://github.com/sourcecred-test/example-github/pull/5): This pull request will be more contentious. I can feel it...","timestampMs":1519878296000},{"index":47,"description":"[@credbot](https://github.com/credbot)","timestampMs":null},{"index":48,"description":"[@decentralion](https://github.com/decentralion)","timestampMs":null},{"index":49,"description":"[@wchargin](https://github.com/wchargin)","timestampMs":null}]}],"credJSON":{"intervals":[{"startTimeMs":1519516800000,"endTimeMs":1520121600000},{"startTimeMs":1520121600000,"endTimeMs":1520726400000},{"startTimeMs":1520726400000,"endTimeMs":1521331200000},{"startTimeMs":1521331200000,"endTimeMs":1521936000000},{"startTimeMs":1521936000000,"endTimeMs":1522540800000},{"startTimeMs":1522540800000,"endTimeMs":1523145600000},{"startTimeMs":1523145600000,"endTimeMs":1523750400000},{"startTimeMs":1523750400000,"endTimeMs":1524355200000},{"startTimeMs":1524355200000,"endTimeMs":1524960000000},{"startTimeMs":1524960000000,"endTimeMs":1525564800000},{"startTimeMs":1525564800000,"endTimeMs":1526169600000},{"startTimeMs":1526169600000,"endTimeMs":1526774400000},{"startTimeMs":1526774400000,"endTimeMs":1527379200000},{"startTimeMs":1527379200000,"endTimeMs":1527984000000},{"startTimeMs":1527984000000,"endTimeMs":1528588800000},{"startTimeMs":1528588800000,"endTimeMs":1529193600000},{"startTimeMs":1529193600000,"endTimeMs":1529798400000},{"startTimeMs":1529798400000,"endTimeMs":1530403200000},{"startTimeMs":1530403200000,"endTimeMs":1531008000000},{"startTimeMs":1531008000000,"endTimeMs":1531612800000},{"startTimeMs":1531612800000,"endTimeMs":1532217600000},{"startTimeMs":1532217600000,"endTimeMs":1532822400000},{"startTimeMs":1532822400000,"endTimeMs":1533427200000},{"startTimeMs":1533427200000,"endTimeMs":1534032000000},{"startTimeMs":1534032000000,"endTimeMs":1534636800000},{"startTimeMs":1534636800000,"endTimeMs":1535241600000},{"startTimeMs":1535241600000,"endTimeMs":1535846400000},{"startTimeMs":1535846400000,"endTimeMs":1536451200000},{"startTimeMs":1536451200000,"endTimeMs":1537056000000},{"startTimeMs":1537056000000,"endTimeMs":1537660800000},{"startTimeMs":1537660800000,"endTimeMs":1538265600000},{"startTimeMs":1538265600000,"endTimeMs":1538870400000},{"startTimeMs":1538870400000,"endTimeMs":1539475200000},{"startTimeMs":1539475200000,"endTimeMs":1540080000000},{"startTimeMs":1540080000000,"endTimeMs":1540684800000},{"startTimeMs":1540684800000,"endTimeMs":1541289600000},{"startTimeMs":1541289600000,"endTimeMs":1541894400000},{"startTimeMs":1541894400000,"endTimeMs":1542499200000},{"startTimeMs":1542499200000,"endTimeMs":1543104000000},{"startTimeMs":1543104000000,"endTimeMs":1543708800000},{"startTimeMs":1543708800000,"endTimeMs":1544313600000},{"startTimeMs":1544313600000,"endTimeMs":1544918400000},{"startTimeMs":1544918400000,"endTimeMs":1545523200000},{"startTimeMs":1545523200000,"endTimeMs":1546128000000},{"startTimeMs":1546128000000,"endTimeMs":1546732800000},{"startTimeMs":1546732800000,"endTimeMs":1547337600000},{"startTimeMs":1547337600000,"endTimeMs":1547942400000},{"startTimeMs":1547942400000,"endTimeMs":1548547200000}],"addressToCred":{"N\u0000sourcecred\u0000github\u0000REPO\u0000sourcecred-test\u0000example-github\u0000":[6.434277085743278,3.2187001409961105,2.9537008390444695,3.3669202249563632,1.6844790015992535,0.8432534368356913,0.4226399752299933,0.21233166427887087,0.1071748798625617,1.6535003231148968,0.8279279390642292,0.4151594830901334,0.20880775901265353,0.10568567754170251,0.05419793288678042,0.01107556028113049,0.006325160932577391,0.391887174134945,0.19781636029641406,0.10021435910895005,0.05121169842562323,0.026593742059359833,0.014158406027485857,0.007782237567626448,0.004416704702613905,0.0025597904160237863,0.3309468491022413,0.1833239543651179,3.8662293710831137,1.9280267792288135,0.9683855479057963,0.48750710772208333,0.24651468659925346,0.12576586231522624,0.06528611135866129,0.034987152889186975,0.019769892758210943,0.012046681939860636,0.007981247381836032,0.00560700369251145,0.00392227632622292,0.002514595555540504,0.00137796216092967,0.0006307162324228583,0.0002489262811051821,0.00009041906147473655,0.000032443854636261745,0.000019245966928020832],"N\u0000sourcecred\u0000github\u0000USERLIKE\u0000USER\u0000decentralion\u0000":[9.383869639663432,4.691404861944296,5.407033783069464,4.710039491158759,2.3542990795642016,1.1764257521110257,0.5874968415385614,0.2930472936432958,0.14585208714512637,3.367558953101356,1.6854511612955203,0.8443081404654077,0.4235721757793936,0.21292350141151434,0.10718062099935051,0.024900766153114956,0.01234421271106403,0.5639545904301708,0.2826874903289227,0.14116839002688855,0.07018698540293254,0.03469827124411613,0.017043428850844578,0.008340605522915224,0.004101657419219121,0.0020470494713788713,0.2330964724510903,0.11911297405802071,1.9437472461067256,1.2458984494463696,0.6241050193500056,0.3126272039780528,0.1565536991433818,0.07836083092825474,0.039204376624594785,0.019603716512520068,0.009792000539440526,0.004877883689977619,0.002415531283206432,0.0011833764411626655,0.0005707084414700211,0.00027081941634511306,0.00012783639288752084,0.00006135289874258643,0.0000305382491069489,0.000015865125198178594,0.00000853390543554515,8.18684979546365e-7],"N\u0000sourcecred\u0000github\u0000USERLIKE\u0000USER\u0000wchargin\u0000":[3.6161303603365673,1.808595138055704,0.8429662169305362,0.41496050884124025,0.2082009204357985,0.10482424788897443,0.05312815846143868,0.02726520635670421,0.014304162854873638,2.2125191718986437,1.10458790120448,0.5507113907845924,0.2739375898456065,0.13583138140098566,0.0671968204068995,0.5622879545500101,0.2812501476404985,0.5828425897456103,0.2907110997589679,0.14553090501705676,0.07316266211904013,0.03697655251687019,0.018793983029648593,0.00957810041733136,0.004857695550904171,0.0024326270136827742,0.2691433657914406,0.1320069450632447,4.1818127134539065,1.8168815303339467,0.9072849705401523,0.45306779096702615,0.22629379832915772,0.11306291780801501,0.0565074977435401,0.02825222067154737,0.014135968052593194,0.00708610060603924,0.0035664608648019987,0.00180761963284155,0.0009247895955320864,0.00047692960215594074,0.0002460381163630061,0.000125584355882677,0.00006293037820568283,0.00003086918845813727,0.00001483325139261278,0.000010864893434532599]}},"paramsJSON":{"alpha":0.05,"intervalDecay":0.5,"weights":[{"type":"sourcecred/weights","version":"0.1.0"},{"nodeTypeWeights":{},"edgeTypeWeights":{},"nodeManualWeights":{}}]},"configJSON":{"scoreNodePrefix":"N\u0000sourcecred\u0000github\u0000USERLIKE\u0000USER\u0000","filterNodePrefixes":["N\u0000sourcecred\u0000github\u0000USERLIKE\u0000USER\u0000","N\u0000sourcecred\u0000github\u0000REPO\u0000"],"types":{"nodeTypes":[{"name":"Repository","pluralName":"Repositories","prefix":"N\u0000sourcecred\u0000github\u0000REPO\u0000","defaultWeight":4,"description":"NodeType for a GitHub repository"},{"name":"Issue","pluralName":"Issues","prefix":"N\u0000sourcecred\u0000github\u0000ISSUE\u0000","defaultWeight":2,"description":"NodeType for a GitHub issue"},{"name":"Pull request","pluralName":"Pull requests","prefix":"N\u0000sourcecred\u0000github\u0000PULL\u0000","defaultWeight":4,"description":"NodeType for a GitHub pull request"},{"name":"Pull request review","pluralName":"Pull request reviews","prefix":"N\u0000sourcecred\u0000github\u0000REVIEW\u0000","defaultWeight":1,"description":"NodeType for a GitHub code review"},{"name":"Comment","pluralName":"Comments","prefix":"N\u0000sourcecred\u0000github\u0000COMMENT\u0000","defaultWeight":1,"description":"NodeType for a GitHub comment"},{"name":"Commit","pluralName":"Commits","prefix":"N\u0000sourcecred\u0000github\u0000COMMIT\u0000","defaultWeight":1,"description":"Represents a particular Git commit on GitHub, i.e. scoped to a particular repository"},{"name":"User","pluralName":"Users","prefix":"N\u0000sourcecred\u0000github\u0000USERLIKE\u0000USER\u0000","defaultWeight":1,"description":"NodeType for a GitHub user"},{"name":"Bot","pluralName":"Bots","prefix":"N\u0000sourcecred\u0000github\u0000USERLIKE\u0000BOT\u0000","defaultWeight":0.25,"description":"NodeType for a GitHub bot account"}],"edgeTypes":[{"forwardName":"authors","backwardName":"is authored by","defaultWeight":{"forwards":0.5,"backwards":1},"prefix":"E\u0000sourcecred\u0000github\u0000AUTHORS\u0000","description":"Connects a GitHub account to a post that they authored.\n\nExamples of posts include issues, pull requests, and comments.\n"},{"forwardName":"has parent","backwardName":"has child","defaultWeight":{"forwards":1,"backwards":0.25},"prefix":"E\u0000sourcecred\u0000github\u0000HAS_PARENT\u0000","description":"Connects a GitHub entity to its child entities.\n\nFor example, a Repository has Issues and Pull Requests as children, and a\nPull Request has comments and reviews as children.\n"},{"forwardName":"merges","backwardName":"is merged by","defaultWeight":{"forwards":0.5,"backwards":1},"prefix":"E\u0000sourcecred\u0000github\u0000MERGED_AS\u0000","description":"Connects a GitHub pull request to the Git commit that it merges.\n"},{"forwardName":"references","backwardName":"is referenced by","defaultWeight":{"forwards":1,"backwards":0},"prefix":"E\u0000sourcecred\u0000github\u0000REFERENCES\u0000","description":"Connects a GitHub post to an entity that it references.\n\nFor example, if you write a GitHub issue comment that says \"thanks\n@username for pull #1337\", it will create references edges to both the user\n@username, and to pull #1337 in the same repository.\n"},{"forwardName":"reacted ๐Ÿ‘ to","backwardName":"got ๐Ÿ‘ from","defaultWeight":{"forwards":1,"backwards":0},"prefix":"E\u0000sourcecred\u0000github\u0000REACTS\u0000THUMBS_UP\u0000","description":"Connects users to posts to which they gave a ๐Ÿ‘ reaction.\n"},{"forwardName":"reacted โค๏ธ to","backwardName":"got โค๏ธ from","defaultWeight":{"forwards":2,"backwards":0},"prefix":"E\u0000sourcecred\u0000github\u0000REACTS\u0000HEART\u0000","description":"Connects users to posts to which they gave a โค๏ธ reaction.\n"},{"forwardName":"reacted ๐ŸŽ‰ to","backwardName":"got ๐ŸŽ‰ from","defaultWeight":{"forwards":4,"backwards":0},"prefix":"E\u0000sourcecred\u0000github\u0000REACTS\u0000HOORAY\u0000","description":"Connects users to posts to which they gave a ๐ŸŽ‰ reaction.\n"},{"forwardName":"reacted ๐Ÿš€ to","backwardName":"got ๐Ÿš€ from","defaultWeight":{"forwards":1,"backwards":0},"prefix":"E\u0000sourcecred\u0000github\u0000REACTS\u0000ROCKET\u0000","description":"Connects users to posts to which they gave a ๐Ÿš€ reaction.\n"},{"forwardName":"corresponds to Git commit","backwardName":"merged on GitHub as","defaultWeight":{"forwards":1,"backwards":1},"prefix":"E\u0000sourcecred\u0000github\u0000CORRESPONDS_TO_COMMIT_TYPE\u0000","description":"Connects a commit on GitHub to the corresponding raw Git commit.\n"}]}}}] \ No newline at end of file +[{"type":"sourcecred/timelineCred","version":"0.2.0"},{"graphJSON":[{"type":"sourcecred/graph","version":"0.8.0"},{"sortedNodeAddresses":[["sourcecred","git","COMMIT","0a223346b4e6dec0127b1e6aa892c4ee0424b66a"],["sourcecred","git","COMMIT","6bd1b4c0b719c22c688a74863be07a699b7b9b34"],["sourcecred","git","COMMIT","6d5b3aa31ebb68a06ceb46bbd6cf49b6ccd6f5e6"],["sourcecred","git","COMMIT","c430bd74455105f77215ece51945094ceeee6c86"],["sourcecred","git","COMMIT","ec91adb718a6045b492303f00d8e8beb957dc780"],["sourcecred","git","COMMIT","ecc889dc94cf6da17ae6eab5bb7b7155f577519d"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420811872"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813013"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813206"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813621"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768703"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768850"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576185"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576220"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576248"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576273"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576936"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768442"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768538"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","385223316"],["sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","417104047"],["sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","3","369162222"],["sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","5","396430464"],["sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],["sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjBhMjIzMzQ2YjRlNmRlYzAxMjdiMWU2YWE4OTJjNGVlMDQyNGI2NmE="],["sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZiZDFiNGMwYjcxOWMyMmM2ODhhNzQ4NjNiZTA3YTY5OWI3YjliMzQ="],["sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZkNWIzYWEzMWViYjY4YTA2Y2ViNDZiYmQ2Y2Y0OWI2Y2NkNmY1ZTY="],["sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmM0MzBiZDc0NDU1MTA1Zjc3MjE1ZWNlNTE5NDUwOTRjZWVlZTZjODY="],["sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjOTFhZGI3MThhNjA0NWI0OTIzMDNmMDBkOGU4YmViOTU3ZGM3ODA="],["sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjYzg4OWRjOTRjZjZkYTE3YWU2ZWFiNWJiN2I3MTU1ZjU3NzUxOWQ="],["sourcecred","github","ISSUE","sourcecred-test","example-github","1"],["sourcecred","github","ISSUE","sourcecred-test","example-github","10"],["sourcecred","github","ISSUE","sourcecred-test","example-github","11"],["sourcecred","github","ISSUE","sourcecred-test","example-github","12"],["sourcecred","github","ISSUE","sourcecred-test","example-github","13"],["sourcecred","github","ISSUE","sourcecred-test","example-github","2"],["sourcecred","github","ISSUE","sourcecred-test","example-github","4"],["sourcecred","github","ISSUE","sourcecred-test","example-github","6"],["sourcecred","github","ISSUE","sourcecred-test","example-github","7"],["sourcecred","github","ISSUE","sourcecred-test","example-github","8"],["sourcecred","github","PULL","sourcecred-test","example-github","3"],["sourcecred","github","PULL","sourcecred-test","example-github","5"],["sourcecred","github","PULL","sourcecred-test","example-github","9"],["sourcecred","github","REPO","sourcecred-test","example-github"],["sourcecred","github","REVIEW","sourcecred-test","example-github","5","100313899"],["sourcecred","github","REVIEW","sourcecred-test","example-github","5","100314038"],["sourcecred","github","USERLIKE","BOT","credbot"],["sourcecred","github","USERLIKE","USER","decentralion"],["sourcecred","github","USERLIKE","USER","wchargin"]],"edges":[{"srcIndex":47,"dstIndex":28,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","BOT","credbot","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmM0MzBiZDc0NDU1MTA1Zjc3MjE1ZWNlNTE5NDUwOTRjZWVlZTZjODY="],"timestampMs":1536788634000},{"srcIndex":47,"dstIndex":21,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","BOT","credbot","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","417104047"],"timestampMs":1535576390000},{"srcIndex":48,"dstIndex":25,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjBhMjIzMzQ2YjRlNmRlYzAxMjdiMWU2YWE4OTJjNGVlMDQyNGI2NmE="],"timestampMs":1519807427000},{"srcIndex":48,"dstIndex":27,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZkNWIzYWEzMWViYjY4YTA2Y2ViNDZiYmQ2Y2Y0OWI2Y2NkNmY1ZTY="],"timestampMs":1519878354000},{"srcIndex":48,"dstIndex":29,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjOTFhZGI3MThhNjA0NWI0OTIzMDNmMDBkOGU4YmViOTU3ZGM3ODA="],"timestampMs":1519807271000},{"srcIndex":48,"dstIndex":30,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjYzg4OWRjOTRjZjZkYTE3YWU2ZWFiNWJiN2I3MTU1ZjU3NzUxOWQ="],"timestampMs":1519807329000},{"srcIndex":48,"dstIndex":31,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","1"],"timestampMs":1519807088000},{"srcIndex":48,"dstIndex":32,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","10"],"timestampMs":1530297021000},{"srcIndex":48,"dstIndex":34,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","12"],"timestampMs":1536878086000},{"srcIndex":48,"dstIndex":35,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","13"],"timestampMs":1536878137000},{"srcIndex":48,"dstIndex":36,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2"],"timestampMs":1519807129000},{"srcIndex":48,"dstIndex":37,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","4"],"timestampMs":1519807454000},{"srcIndex":48,"dstIndex":38,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","6"],"timestampMs":1521217624000},{"srcIndex":48,"dstIndex":39,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","7"],"timestampMs":1521569949000},{"srcIndex":48,"dstIndex":40,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","8"],"timestampMs":1521570243000},{"srcIndex":48,"dstIndex":41,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","PULL","sourcecred-test","example-github","3"],"timestampMs":1519807399000},{"srcIndex":48,"dstIndex":42,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","PULL","sourcecred-test","example-github","5"],"timestampMs":1519807636000},{"srcIndex":48,"dstIndex":43,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","PULL","sourcecred-test","example-github","9"],"timestampMs":1525373595000},{"srcIndex":48,"dstIndex":9,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813621"],"timestampMs":1536789965000},{"srcIndex":48,"dstIndex":10,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768703"],"timestampMs":1521217693000},{"srcIndex":48,"dstIndex":11,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768850"],"timestampMs":1521217725000},{"srcIndex":48,"dstIndex":12,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576185"],"timestampMs":1525137909000},{"srcIndex":48,"dstIndex":13,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576220"],"timestampMs":1525137925000},{"srcIndex":48,"dstIndex":14,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576248"],"timestampMs":1525137939000},{"srcIndex":48,"dstIndex":15,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576273"],"timestampMs":1525137951000},{"srcIndex":48,"dstIndex":16,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920"],"timestampMs":1525138231000},{"srcIndex":48,"dstIndex":17,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576936"],"timestampMs":1525138238000},{"srcIndex":48,"dstIndex":18,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768442"],"timestampMs":1521217642000},{"srcIndex":48,"dstIndex":19,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768538"],"timestampMs":1521217661000},{"srcIndex":48,"dstIndex":20,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","385223316"],"timestampMs":1524973307000},{"srcIndex":48,"dstIndex":22,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","3","369162222"],"timestampMs":1519807420000},{"srcIndex":49,"dstIndex":32,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","6","sourcecred","github","ISSUE","sourcecred-test","example-github","10"],"timestampMs":1530297021000},{"srcIndex":49,"dstIndex":33,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","6","sourcecred","github","ISSUE","sourcecred-test","example-github","11"],"timestampMs":1536789479000},{"srcIndex":49,"dstIndex":43,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","6","sourcecred","github","PULL","sourcecred-test","example-github","9"],"timestampMs":1525373595000},{"srcIndex":49,"dstIndex":45,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","7","sourcecred","github","REVIEW","sourcecred-test","example-github","5","100313899"],"timestampMs":1519878210000},{"srcIndex":49,"dstIndex":46,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","7","sourcecred","github","REVIEW","sourcecred-test","example-github","5","100314038"],"timestampMs":1519878296000},{"srcIndex":49,"dstIndex":7,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813013"],"timestampMs":1536789813000},{"srcIndex":49,"dstIndex":23,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","8","sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","5","396430464"],"timestampMs":1528764380000},{"srcIndex":49,"dstIndex":24,"address":["sourcecred","github","AUTHORS","5","sourcecred","github","USERLIKE","USER","wchargin","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1519878210000},{"srcIndex":25,"dstIndex":0,"address":["sourcecred","github","CORRESPONDS_TO_COMMIT_TYPE","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjBhMjIzMzQ2YjRlNmRlYzAxMjdiMWU2YWE4OTJjNGVlMDQyNGI2NmE="],"timestampMs":1519807427000},{"srcIndex":26,"dstIndex":1,"address":["sourcecred","github","CORRESPONDS_TO_COMMIT_TYPE","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZiZDFiNGMwYjcxOWMyMmM2ODhhNzQ4NjNiZTA3YTY5OWI3YjliMzQ="],"timestampMs":1536806901000},{"srcIndex":27,"dstIndex":2,"address":["sourcecred","github","CORRESPONDS_TO_COMMIT_TYPE","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZkNWIzYWEzMWViYjY4YTA2Y2ViNDZiYmQ2Y2Y0OWI2Y2NkNmY1ZTY="],"timestampMs":1519878354000},{"srcIndex":28,"dstIndex":3,"address":["sourcecred","github","CORRESPONDS_TO_COMMIT_TYPE","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmM0MzBiZDc0NDU1MTA1Zjc3MjE1ZWNlNTE5NDUwOTRjZWVlZTZjODY="],"timestampMs":1536788634000},{"srcIndex":29,"dstIndex":4,"address":["sourcecred","github","CORRESPONDS_TO_COMMIT_TYPE","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjOTFhZGI3MThhNjA0NWI0OTIzMDNmMDBkOGU4YmViOTU3ZGM3ODA="],"timestampMs":1519807271000},{"srcIndex":30,"dstIndex":5,"address":["sourcecred","github","CORRESPONDS_TO_COMMIT_TYPE","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjYzg4OWRjOTRjZjZkYTE3YWU2ZWFiNWJiN2I3MTU1ZjU3NzUxOWQ="],"timestampMs":1519807329000},{"srcIndex":31,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","1"],"timestampMs":1519807088000},{"srcIndex":32,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","10"],"timestampMs":1530297021000},{"srcIndex":33,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","11"],"timestampMs":1536789479000},{"srcIndex":34,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","12"],"timestampMs":1536878086000},{"srcIndex":35,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","13"],"timestampMs":1536878137000},{"srcIndex":36,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2"],"timestampMs":1519807129000},{"srcIndex":37,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","4"],"timestampMs":1519807454000},{"srcIndex":38,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","6"],"timestampMs":1521217624000},{"srcIndex":39,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","7"],"timestampMs":1521569949000},{"srcIndex":40,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","ISSUE","sourcecred-test","example-github","8"],"timestampMs":1521570243000},{"srcIndex":41,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","PULL","sourcecred-test","example-github","3"],"timestampMs":1519807399000},{"srcIndex":42,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","PULL","sourcecred-test","example-github","5"],"timestampMs":1519807636000},{"srcIndex":43,"dstIndex":44,"address":["sourcecred","github","HAS_PARENT","6","sourcecred","github","PULL","sourcecred-test","example-github","9"],"timestampMs":1525373595000},{"srcIndex":45,"dstIndex":42,"address":["sourcecred","github","HAS_PARENT","7","sourcecred","github","REVIEW","sourcecred-test","example-github","5","100313899"],"timestampMs":1519878210000},{"srcIndex":46,"dstIndex":42,"address":["sourcecred","github","HAS_PARENT","7","sourcecred","github","REVIEW","sourcecred-test","example-github","5","100314038"],"timestampMs":1519878296000},{"srcIndex":6,"dstIndex":33,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420811872"],"timestampMs":1536789545000},{"srcIndex":7,"dstIndex":33,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813013"],"timestampMs":1536789813000},{"srcIndex":8,"dstIndex":33,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813206"],"timestampMs":1536789858000},{"srcIndex":9,"dstIndex":33,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813621"],"timestampMs":1536789965000},{"srcIndex":10,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768703"],"timestampMs":1521217693000},{"srcIndex":11,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768850"],"timestampMs":1521217725000},{"srcIndex":12,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576185"],"timestampMs":1525137909000},{"srcIndex":13,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576220"],"timestampMs":1525137925000},{"srcIndex":14,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576248"],"timestampMs":1525137939000},{"srcIndex":15,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576273"],"timestampMs":1525137951000},{"srcIndex":16,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920"],"timestampMs":1525138231000},{"srcIndex":17,"dstIndex":36,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576936"],"timestampMs":1525138238000},{"srcIndex":18,"dstIndex":38,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768442"],"timestampMs":1521217642000},{"srcIndex":19,"dstIndex":38,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768538"],"timestampMs":1521217661000},{"srcIndex":20,"dstIndex":38,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","385223316"],"timestampMs":1524973307000},{"srcIndex":21,"dstIndex":38,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","417104047"],"timestampMs":1535576390000},{"srcIndex":22,"dstIndex":41,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","3","369162222"],"timestampMs":1519807420000},{"srcIndex":23,"dstIndex":42,"address":["sourcecred","github","HAS_PARENT","8","sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","5","396430464"],"timestampMs":1528764380000},{"srcIndex":24,"dstIndex":45,"address":["sourcecred","github","HAS_PARENT","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1519878210000},{"srcIndex":41,"dstIndex":25,"address":["sourcecred","github","MERGED_AS","6","sourcecred","github","PULL","sourcecred-test","example-github","3"],"timestampMs":1519807427000},{"srcIndex":42,"dstIndex":27,"address":["sourcecred","github","MERGED_AS","6","sourcecred","github","PULL","sourcecred-test","example-github","5"],"timestampMs":1519878354000},{"srcIndex":48,"dstIndex":31,"address":["sourcecred","github","REACTS","HEART","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","1"],"timestampMs":1536878100000},{"srcIndex":48,"dstIndex":35,"address":["sourcecred","github","REACTS","HEART","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","13"],"timestampMs":1536878149000},{"srcIndex":48,"dstIndex":43,"address":["sourcecred","github","REACTS","HEART","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","PULL","sourcecred-test","example-github","9"],"timestampMs":1536952427000},{"srcIndex":48,"dstIndex":23,"address":["sourcecred","github","REACTS","HEART","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","5","396430464"],"timestampMs":1536952482000},{"srcIndex":48,"dstIndex":24,"address":["sourcecred","github","REACTS","HEART","5","sourcecred","github","USERLIKE","USER","decentralion","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1537294764000},{"srcIndex":49,"dstIndex":24,"address":["sourcecred","github","REACTS","HEART","5","sourcecred","github","USERLIKE","USER","wchargin","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1537294762000},{"srcIndex":48,"dstIndex":35,"address":["sourcecred","github","REACTS","HOORAY","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","13"],"timestampMs":1536878144000},{"srcIndex":48,"dstIndex":8,"address":["sourcecred","github","REACTS","HOORAY","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813206"],"timestampMs":1536952420000},{"srcIndex":48,"dstIndex":24,"address":["sourcecred","github","REACTS","HOORAY","5","sourcecred","github","USERLIKE","USER","decentralion","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1537294761000},{"srcIndex":49,"dstIndex":24,"address":["sourcecred","github","REACTS","HOORAY","5","sourcecred","github","USERLIKE","USER","wchargin","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1537294758000},{"srcIndex":48,"dstIndex":35,"address":["sourcecred","github","REACTS","ROCKET","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","13"],"timestampMs":1548353975000},{"srcIndex":48,"dstIndex":34,"address":["sourcecred","github","REACTS","THUMBS_UP","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","12"],"timestampMs":1536878091000},{"srcIndex":48,"dstIndex":35,"address":["sourcecred","github","REACTS","THUMBS_UP","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","ISSUE","sourcecred-test","example-github","13"],"timestampMs":1536878140000},{"srcIndex":48,"dstIndex":43,"address":["sourcecred","github","REACTS","THUMBS_UP","5","sourcecred","github","USERLIKE","USER","decentralion","6","sourcecred","github","PULL","sourcecred-test","example-github","9"],"timestampMs":1536952428000},{"srcIndex":48,"dstIndex":8,"address":["sourcecred","github","REACTS","THUMBS_UP","5","sourcecred","github","USERLIKE","USER","decentralion","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","11","420813206"],"timestampMs":1536952413000},{"srcIndex":48,"dstIndex":24,"address":["sourcecred","github","REACTS","THUMBS_UP","5","sourcecred","github","USERLIKE","USER","decentralion","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1537294756000},{"srcIndex":49,"dstIndex":24,"address":["sourcecred","github","REACTS","THUMBS_UP","5","sourcecred","github","USERLIKE","USER","wchargin","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1537294753000},{"srcIndex":25,"dstIndex":41,"address":["sourcecred","github","REFERENCES","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjBhMjIzMzQ2YjRlNmRlYzAxMjdiMWU2YWE4OTJjNGVlMDQyNGI2NmE=","6","sourcecred","github","PULL","sourcecred-test","example-github","3"],"timestampMs":1519807427000},{"srcIndex":26,"dstIndex":49,"address":["sourcecred","github","REFERENCES","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZiZDFiNGMwYjcxOWMyMmM2ODhhNzQ4NjNiZTA3YTY5OWI3YjliMzQ=","5","sourcecred","github","USERLIKE","USER","wchargin"],"timestampMs":1536806901000},{"srcIndex":27,"dstIndex":42,"address":["sourcecred","github","REFERENCES","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OjZkNWIzYWEzMWViYjY4YTA2Y2ViNDZiYmQ2Y2Y0OWI2Y2NkNmY1ZTY=","6","sourcecred","github","PULL","sourcecred-test","example-github","5"],"timestampMs":1519878354000},{"srcIndex":28,"dstIndex":49,"address":["sourcecred","github","REFERENCES","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmM0MzBiZDc0NDU1MTA1Zjc3MjE1ZWNlNTE5NDUwOTRjZWVlZTZjODY=","5","sourcecred","github","USERLIKE","USER","wchargin"],"timestampMs":1536788634000},{"srcIndex":32,"dstIndex":32,"address":["sourcecred","github","REFERENCES","6","sourcecred","github","ISSUE","sourcecred-test","example-github","10","6","sourcecred","github","ISSUE","sourcecred-test","example-github","10"],"timestampMs":1530297021000},{"srcIndex":32,"dstIndex":36,"address":["sourcecred","github","REFERENCES","6","sourcecred","github","ISSUE","sourcecred-test","example-github","10","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2"],"timestampMs":1530297021000},{"srcIndex":34,"dstIndex":29,"address":["sourcecred","github","REFERENCES","6","sourcecred","github","ISSUE","sourcecred-test","example-github","12","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjOTFhZGI3MThhNjA0NWI0OTIzMDNmMDBkOGU4YmViOTU3ZGM3ODA="],"timestampMs":1536878086000},{"srcIndex":34,"dstIndex":30,"address":["sourcecred","github","REFERENCES","6","sourcecred","github","ISSUE","sourcecred-test","example-github","12","4","sourcecred","github","COMMIT","MDY6Q29tbWl0MTIzMjU1MDA2OmVjYzg4OWRjOTRjZjZkYTE3YWU2ZWFiNWJiN2I3MTU1ZjU3NzUxOWQ="],"timestampMs":1536878086000},{"srcIndex":36,"dstIndex":31,"address":["sourcecred","github","REFERENCES","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2","6","sourcecred","github","ISSUE","sourcecred-test","example-github","1"],"timestampMs":1519807129000},{"srcIndex":42,"dstIndex":49,"address":["sourcecred","github","REFERENCES","6","sourcecred","github","PULL","sourcecred-test","example-github","5","5","sourcecred","github","USERLIKE","USER","wchargin"],"timestampMs":1519807636000},{"srcIndex":10,"dstIndex":38,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768703","6","sourcecred","github","ISSUE","sourcecred-test","example-github","6"],"timestampMs":1521217693000},{"srcIndex":11,"dstIndex":19,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","373768850","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","373768538"],"timestampMs":1521217725000},{"srcIndex":12,"dstIndex":42,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576185","6","sourcecred","github","PULL","sourcecred-test","example-github","5"],"timestampMs":1525137909000},{"srcIndex":13,"dstIndex":45,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576220","7","sourcecred","github","REVIEW","sourcecred-test","example-github","5","100313899"],"timestampMs":1525137925000},{"srcIndex":14,"dstIndex":24,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576248","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1525137939000},{"srcIndex":15,"dstIndex":49,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576273","5","sourcecred","github","USERLIKE","USER","wchargin"],"timestampMs":1525137951000},{"srcIndex":16,"dstIndex":31,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920","6","sourcecred","github","ISSUE","sourcecred-test","example-github","1"],"timestampMs":1525138231000},{"srcIndex":16,"dstIndex":36,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2"],"timestampMs":1525138231000},{"srcIndex":16,"dstIndex":41,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920","6","sourcecred","github","PULL","sourcecred-test","example-github","3"],"timestampMs":1525138231000},{"srcIndex":16,"dstIndex":45,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920","7","sourcecred","github","REVIEW","sourcecred-test","example-github","5","100313899"],"timestampMs":1525138231000},{"srcIndex":16,"dstIndex":24,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","2","385576920","9","sourcecred","github","COMMENT","REVIEW","sourcecred-test","example-github","5","100313899","171460198"],"timestampMs":1525138231000},{"srcIndex":20,"dstIndex":36,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","ISSUE","sourcecred-test","example-github","6","385223316","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2"],"timestampMs":1524973307000},{"srcIndex":22,"dstIndex":36,"address":["sourcecred","github","REFERENCES","8","sourcecred","github","COMMENT","PULL","sourcecred-test","example-github","3","369162222","6","sourcecred","github","ISSUE","sourcecred-test","example-github","2"],"timestampMs":1519807420000}],"nodes":[{"index":6,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/11#issuecomment-420811872) on [#11](https://github.com/sourcecred-test/example-github/issues/11): An issue with a comment from a deleted user","timestampMs":1536789545000},{"index":7,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/11#issuecomment-420813013) on [#11](https://github.com/sourcecred-test/example-github/issues/11): An issue with a comment from a deleted user","timestampMs":1536789813000},{"index":8,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/11#issuecomment-420813206) on [#11](https://github.com/sourcecred-test/example-github/issues/11): An issue with a comment from a deleted user","timestampMs":1536789858000},{"index":9,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/11#issuecomment-420813621) on [#11](https://github.com/sourcecred-test/example-github/issues/11): An issue with a comment from a deleted user","timestampMs":1536789965000},{"index":10,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-373768703) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1521217693000},{"index":11,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-373768850) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1521217725000},{"index":12,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-385576185) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1525137909000},{"index":13,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-385576220) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1525137925000},{"index":14,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-385576248) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1525137939000},{"index":15,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-385576273) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1525137951000},{"index":16,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-385576920) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1525138231000},{"index":17,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/2#issuecomment-385576936) on [#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1525138238000},{"index":18,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/6#issuecomment-373768442) on [#6](https://github.com/sourcecred-test/example-github/issues/6): An issue with comments","timestampMs":1521217642000},{"index":19,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/6#issuecomment-373768538) on [#6](https://github.com/sourcecred-test/example-github/issues/6): An issue with comments","timestampMs":1521217661000},{"index":20,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/6#issuecomment-385223316) on [#6](https://github.com/sourcecred-test/example-github/issues/6): An issue with comments","timestampMs":1524973307000},{"index":21,"description":"[comment](https://github.com/sourcecred-test/example-github/issues/6#issuecomment-417104047) on [#6](https://github.com/sourcecred-test/example-github/issues/6): An issue with comments","timestampMs":1535576390000},{"index":22,"description":"[comment](https://github.com/sourcecred-test/example-github/pull/3#issuecomment-369162222) on [#3](https://github.com/sourcecred-test/example-github/pull/3): Add README, merge via PR.","timestampMs":1519807420000},{"index":23,"description":"[comment](https://github.com/sourcecred-test/example-github/pull/5#issuecomment-396430464) on [#5](https://github.com/sourcecred-test/example-github/pull/5): This pull request will be more contentious. I can feel it...","timestampMs":1528764380000},{"index":24,"description":"[comment](https://github.com/sourcecred-test/example-github/pull/5#discussion_r171460198) on [review](https://github.com/sourcecred-test/example-github/pull/5#pullrequestreview-100313899) on [#5](https://github.com/sourcecred-test/example-github/pull/5): This pull request will be more contentious. I can feel it...","timestampMs":1519878210000},{"index":25,"description":"[0a22334](https://github.com/sourcecred-test/example-github/commit/0a223346b4e6dec0127b1e6aa892c4ee0424b66a): Merge pull request #3 from sourcecred/add-readme","timestampMs":1519807427000},{"index":26,"description":"[6bd1b4c](https://github.com/sourcecred-test/example-github/commit/6bd1b4c0b719c22c688a74863be07a699b7b9b34): A commit from someone with no GitHub account","timestampMs":1536806901000},{"index":27,"description":"[6d5b3aa](https://github.com/sourcecred-test/example-github/commit/6d5b3aa31ebb68a06ceb46bbd6cf49b6ccd6f5e6): This pull request will be more contentious. I can feel it... (#5)","timestampMs":1519878354000},{"index":28,"description":"[c430bd7](https://github.com/sourcecred-test/example-github/commit/c430bd74455105f77215ece51945094ceeee6c86): Hello from credbot!","timestampMs":1536788634000},{"index":29,"description":"[ec91adb](https://github.com/sourcecred-test/example-github/commit/ec91adb718a6045b492303f00d8e8beb957dc780): Commit without pull request.","timestampMs":1519807271000},{"index":30,"description":"[ecc889d](https://github.com/sourcecred-test/example-github/commit/ecc889dc94cf6da17ae6eab5bb7b7155f577519d): Add README, merge via PR.","timestampMs":1519807329000},{"index":31,"description":"[#1](https://github.com/sourcecred-test/example-github/issues/1): An example issue.","timestampMs":1519807088000},{"index":32,"description":"[#10](https://github.com/sourcecred-test/example-github/issues/10): Paired with multireference","timestampMs":1530297021000},{"index":33,"description":"[#11](https://github.com/sourcecred-test/example-github/issues/11): An issue with a comment from a deleted user","timestampMs":1536789479000},{"index":34,"description":"[#12](https://github.com/sourcecred-test/example-github/issues/12): An issue with commit references","timestampMs":1536878086000},{"index":35,"description":"[#13](https://github.com/sourcecred-test/example-github/issues/13): An issue with reactions","timestampMs":1536878137000},{"index":36,"description":"[#2](https://github.com/sourcecred-test/example-github/issues/2): A referencing issue.","timestampMs":1519807129000},{"index":37,"description":"[#4](https://github.com/sourcecred-test/example-github/issues/4): A closed pull request","timestampMs":1519807454000},{"index":38,"description":"[#6](https://github.com/sourcecred-test/example-github/issues/6): An issue with comments","timestampMs":1521217624000},{"index":39,"description":"[#7](https://github.com/sourcecred-test/example-github/issues/7): An issue with an extremely long title, which even has a VerySuperFragicalisticialiManyCharacterUberLongTriplePlusGood word in it, and should really be truncated intelligently or something","timestampMs":1521569949000},{"index":40,"description":"[#8](https://github.com/sourcecred-test/example-github/issues/8): Issue with Unicode: ศดแˆฒ๐ฃณๆฅข๐Ÿ‘ :heart: ๐ค”๐ค๐ค€๐ค‘๐ค๐ค‰๐ค”๐คŒ๐ค„๐ค๐ค โค๏ธ","timestampMs":1521570243000},{"index":41,"description":"[#3](https://github.com/sourcecred-test/example-github/pull/3): Add README, merge via PR.","timestampMs":1519807399000},{"index":42,"description":"[#5](https://github.com/sourcecred-test/example-github/pull/5): This pull request will be more contentious. I can feel it...","timestampMs":1519807636000},{"index":43,"description":"[#9](https://github.com/sourcecred-test/example-github/pull/9): An unmerged pull request","timestampMs":1525373595000},{"index":44,"description":"[sourcecred-test/example-github](https://github.com/sourcecred-test/example-github)","timestampMs":1519807034000},{"index":45,"description":"[review](https://github.com/sourcecred-test/example-github/pull/5#pullrequestreview-100313899) on [#5](https://github.com/sourcecred-test/example-github/pull/5): This pull request will be more contentious. I can feel it...","timestampMs":1519878210000},{"index":46,"description":"[review](https://github.com/sourcecred-test/example-github/pull/5#pullrequestreview-100314038) on [#5](https://github.com/sourcecred-test/example-github/pull/5): This pull request will be more contentious. I can feel it...","timestampMs":1519878296000},{"index":47,"description":"[@credbot](https://github.com/credbot)","timestampMs":null},{"index":48,"description":"[@decentralion](https://github.com/decentralion)","timestampMs":null},{"index":49,"description":"[@wchargin](https://github.com/wchargin)","timestampMs":null}]}],"intervalsJSON":[{"startTimeMs":1519516800000,"endTimeMs":1520121600000},{"startTimeMs":1520121600000,"endTimeMs":1520726400000},{"startTimeMs":1520726400000,"endTimeMs":1521331200000},{"startTimeMs":1521331200000,"endTimeMs":1521936000000},{"startTimeMs":1521936000000,"endTimeMs":1522540800000},{"startTimeMs":1522540800000,"endTimeMs":1523145600000},{"startTimeMs":1523145600000,"endTimeMs":1523750400000},{"startTimeMs":1523750400000,"endTimeMs":1524355200000},{"startTimeMs":1524355200000,"endTimeMs":1524960000000},{"startTimeMs":1524960000000,"endTimeMs":1525564800000},{"startTimeMs":1525564800000,"endTimeMs":1526169600000},{"startTimeMs":1526169600000,"endTimeMs":1526774400000},{"startTimeMs":1526774400000,"endTimeMs":1527379200000},{"startTimeMs":1527379200000,"endTimeMs":1527984000000},{"startTimeMs":1527984000000,"endTimeMs":1528588800000},{"startTimeMs":1528588800000,"endTimeMs":1529193600000},{"startTimeMs":1529193600000,"endTimeMs":1529798400000},{"startTimeMs":1529798400000,"endTimeMs":1530403200000},{"startTimeMs":1530403200000,"endTimeMs":1531008000000},{"startTimeMs":1531008000000,"endTimeMs":1531612800000},{"startTimeMs":1531612800000,"endTimeMs":1532217600000},{"startTimeMs":1532217600000,"endTimeMs":1532822400000},{"startTimeMs":1532822400000,"endTimeMs":1533427200000},{"startTimeMs":1533427200000,"endTimeMs":1534032000000},{"startTimeMs":1534032000000,"endTimeMs":1534636800000},{"startTimeMs":1534636800000,"endTimeMs":1535241600000},{"startTimeMs":1535241600000,"endTimeMs":1535846400000},{"startTimeMs":1535846400000,"endTimeMs":1536451200000},{"startTimeMs":1536451200000,"endTimeMs":1537056000000},{"startTimeMs":1537056000000,"endTimeMs":1537660800000},{"startTimeMs":1537660800000,"endTimeMs":1538265600000},{"startTimeMs":1538265600000,"endTimeMs":1538870400000},{"startTimeMs":1538870400000,"endTimeMs":1539475200000},{"startTimeMs":1539475200000,"endTimeMs":1540080000000},{"startTimeMs":1540080000000,"endTimeMs":1540684800000},{"startTimeMs":1540684800000,"endTimeMs":1541289600000},{"startTimeMs":1541289600000,"endTimeMs":1541894400000},{"startTimeMs":1541894400000,"endTimeMs":1542499200000},{"startTimeMs":1542499200000,"endTimeMs":1543104000000},{"startTimeMs":1543104000000,"endTimeMs":1543708800000},{"startTimeMs":1543708800000,"endTimeMs":1544313600000},{"startTimeMs":1544313600000,"endTimeMs":1544918400000},{"startTimeMs":1544918400000,"endTimeMs":1545523200000},{"startTimeMs":1545523200000,"endTimeMs":1546128000000},{"startTimeMs":1546128000000,"endTimeMs":1546732800000},{"startTimeMs":1546732800000,"endTimeMs":1547337600000},{"startTimeMs":1547337600000,"endTimeMs":1547942400000},{"startTimeMs":1547942400000,"endTimeMs":1548547200000}],"credJSON":{"N\u0000sourcecred\u0000github\u0000REPO\u0000sourcecred-test\u0000example-github\u0000":[6.434277085743278,3.2187001409961105,2.9537008390444695,3.3669202249563632,1.6844790015992535,0.8432534368356913,0.4226399752299933,0.21233166427887087,0.1071748798625617,1.6535003231148968,0.8279279390642292,0.4151594830901334,0.20880775901265353,0.10568567754170251,0.05419793288678042,0.01107556028113049,0.006325160932577391,0.391887174134945,0.19781636029641406,0.10021435910895005,0.05121169842562323,0.026593742059359833,0.014158406027485857,0.007782237567626448,0.004416704702613905,0.0025597904160237863,0.3309468491022413,0.1833239543651179,3.8662293710831137,1.9280267792288135,0.9683855479057963,0.48750710772208333,0.24651468659925346,0.12576586231522624,0.06528611135866129,0.034987152889186975,0.019769892758210943,0.012046681939860636,0.007981247381836032,0.00560700369251145,0.00392227632622292,0.002514595555540504,0.00137796216092967,0.0006307162324228583,0.0002489262811051821,0.00009041906147473655,0.000032443854636261745,0.000019245966928020832],"N\u0000sourcecred\u0000github\u0000USERLIKE\u0000USER\u0000decentralion\u0000":[9.383869639663432,4.691404861944296,5.407033783069464,4.710039491158759,2.3542990795642016,1.1764257521110257,0.5874968415385614,0.2930472936432958,0.14585208714512637,3.367558953101356,1.6854511612955203,0.8443081404654077,0.4235721757793936,0.21292350141151434,0.10718062099935051,0.024900766153114956,0.01234421271106403,0.5639545904301708,0.2826874903289227,0.14116839002688855,0.07018698540293254,0.03469827124411613,0.017043428850844578,0.008340605522915224,0.004101657419219121,0.0020470494713788713,0.2330964724510903,0.11911297405802071,1.9437472461067256,1.2458984494463696,0.6241050193500056,0.3126272039780528,0.1565536991433818,0.07836083092825474,0.039204376624594785,0.019603716512520068,0.009792000539440526,0.004877883689977619,0.002415531283206432,0.0011833764411626655,0.0005707084414700211,0.00027081941634511306,0.00012783639288752084,0.00006135289874258643,0.0000305382491069489,0.000015865125198178594,0.00000853390543554515,8.18684979546365e-7],"N\u0000sourcecred\u0000github\u0000USERLIKE\u0000USER\u0000wchargin\u0000":[3.6161303603365673,1.808595138055704,0.8429662169305362,0.41496050884124025,0.2082009204357985,0.10482424788897443,0.05312815846143868,0.02726520635670421,0.014304162854873638,2.2125191718986437,1.10458790120448,0.5507113907845924,0.2739375898456065,0.13583138140098566,0.0671968204068995,0.5622879545500101,0.2812501476404985,0.5828425897456103,0.2907110997589679,0.14553090501705676,0.07316266211904013,0.03697655251687019,0.018793983029648593,0.00957810041733136,0.004857695550904171,0.0024326270136827742,0.2691433657914406,0.1320069450632447,4.1818127134539065,1.8168815303339467,0.9072849705401523,0.45306779096702615,0.22629379832915772,0.11306291780801501,0.0565074977435401,0.02825222067154737,0.014135968052593194,0.00708610060603924,0.0035664608648019987,0.00180761963284155,0.0009247895955320864,0.00047692960215594074,0.0002460381163630061,0.000125584355882677,0.00006293037820568283,0.00003086918845813727,0.00001483325139261278,0.000010864893434532599]},"paramsJSON":{"alpha":0.05,"intervalDecay":0.5,"weights":[{"type":"sourcecred/weights","version":"0.1.0"},{"nodeTypeWeights":{},"edgeTypeWeights":{},"nodeManualWeights":{}}]},"configJSON":{"scoreNodePrefix":"N\u0000sourcecred\u0000github\u0000USERLIKE\u0000USER\u0000","filterNodePrefixes":["N\u0000sourcecred\u0000github\u0000USERLIKE\u0000USER\u0000","N\u0000sourcecred\u0000github\u0000REPO\u0000"],"types":{"nodeTypes":[{"name":"Repository","pluralName":"Repositories","prefix":"N\u0000sourcecred\u0000github\u0000REPO\u0000","defaultWeight":4,"description":"NodeType for a GitHub repository"},{"name":"Issue","pluralName":"Issues","prefix":"N\u0000sourcecred\u0000github\u0000ISSUE\u0000","defaultWeight":2,"description":"NodeType for a GitHub issue"},{"name":"Pull request","pluralName":"Pull requests","prefix":"N\u0000sourcecred\u0000github\u0000PULL\u0000","defaultWeight":4,"description":"NodeType for a GitHub pull request"},{"name":"Pull request review","pluralName":"Pull request reviews","prefix":"N\u0000sourcecred\u0000github\u0000REVIEW\u0000","defaultWeight":1,"description":"NodeType for a GitHub code review"},{"name":"Comment","pluralName":"Comments","prefix":"N\u0000sourcecred\u0000github\u0000COMMENT\u0000","defaultWeight":1,"description":"NodeType for a GitHub comment"},{"name":"Commit","pluralName":"Commits","prefix":"N\u0000sourcecred\u0000github\u0000COMMIT\u0000","defaultWeight":1,"description":"Represents a particular Git commit on GitHub, i.e. scoped to a particular repository"},{"name":"User","pluralName":"Users","prefix":"N\u0000sourcecred\u0000github\u0000USERLIKE\u0000USER\u0000","defaultWeight":1,"description":"NodeType for a GitHub user"},{"name":"Bot","pluralName":"Bots","prefix":"N\u0000sourcecred\u0000github\u0000USERLIKE\u0000BOT\u0000","defaultWeight":0.25,"description":"NodeType for a GitHub bot account"}],"edgeTypes":[{"forwardName":"authors","backwardName":"is authored by","defaultWeight":{"forwards":0.5,"backwards":1},"prefix":"E\u0000sourcecred\u0000github\u0000AUTHORS\u0000","description":"Connects a GitHub account to a post that they authored.\n\nExamples of posts include issues, pull requests, and comments.\n"},{"forwardName":"has parent","backwardName":"has child","defaultWeight":{"forwards":1,"backwards":0.25},"prefix":"E\u0000sourcecred\u0000github\u0000HAS_PARENT\u0000","description":"Connects a GitHub entity to its child entities.\n\nFor example, a Repository has Issues and Pull Requests as children, and a\nPull Request has comments and reviews as children.\n"},{"forwardName":"merges","backwardName":"is merged by","defaultWeight":{"forwards":0.5,"backwards":1},"prefix":"E\u0000sourcecred\u0000github\u0000MERGED_AS\u0000","description":"Connects a GitHub pull request to the Git commit that it merges.\n"},{"forwardName":"references","backwardName":"is referenced by","defaultWeight":{"forwards":1,"backwards":0},"prefix":"E\u0000sourcecred\u0000github\u0000REFERENCES\u0000","description":"Connects a GitHub post to an entity that it references.\n\nFor example, if you write a GitHub issue comment that says \"thanks\n@username for pull #1337\", it will create references edges to both the user\n@username, and to pull #1337 in the same repository.\n"},{"forwardName":"reacted ๐Ÿ‘ to","backwardName":"got ๐Ÿ‘ from","defaultWeight":{"forwards":1,"backwards":0},"prefix":"E\u0000sourcecred\u0000github\u0000REACTS\u0000THUMBS_UP\u0000","description":"Connects users to posts to which they gave a ๐Ÿ‘ reaction.\n"},{"forwardName":"reacted โค๏ธ to","backwardName":"got โค๏ธ from","defaultWeight":{"forwards":2,"backwards":0},"prefix":"E\u0000sourcecred\u0000github\u0000REACTS\u0000HEART\u0000","description":"Connects users to posts to which they gave a โค๏ธ reaction.\n"},{"forwardName":"reacted ๐ŸŽ‰ to","backwardName":"got ๐ŸŽ‰ from","defaultWeight":{"forwards":4,"backwards":0},"prefix":"E\u0000sourcecred\u0000github\u0000REACTS\u0000HOORAY\u0000","description":"Connects users to posts to which they gave a ๐ŸŽ‰ reaction.\n"},{"forwardName":"reacted ๐Ÿš€ to","backwardName":"got ๐Ÿš€ from","defaultWeight":{"forwards":1,"backwards":0},"prefix":"E\u0000sourcecred\u0000github\u0000REACTS\u0000ROCKET\u0000","description":"Connects users to posts to which they gave a ๐Ÿš€ reaction.\n"},{"forwardName":"corresponds to Git commit","backwardName":"merged on GitHub as","defaultWeight":{"forwards":1,"backwards":1},"prefix":"E\u0000sourcecred\u0000github\u0000CORRESPONDS_TO_COMMIT_TYPE\u0000","description":"Connects a commit on GitHub to the corresponding raw Git commit.\n"}]}}}] \ No newline at end of file diff --git a/src/analysis/timeline/filterTimelineCred.js b/src/analysis/timeline/filterTimelineCred.js index 2d89473..65111d7 100644 --- a/src/analysis/timeline/filterTimelineCred.js +++ b/src/analysis/timeline/filterTimelineCred.js @@ -1,6 +1,5 @@ // @flow -import {toObject, fromObject} from "../../util/map"; import {type Interval} from "./interval"; import {NodeAddress, type NodeAddressT} from "../../core/graph"; import {type FullTimelineCred} from "./distributionToCred"; @@ -47,20 +46,3 @@ export function filterTimelineCred( } return {intervals, addressToCred}; } - -export type FilteredTimelineCredJSON = {| - +intervals: $ReadOnlyArray, - +addressToCred: {[NodeAddressT]: $ReadOnlyArray}, -|}; - -export function filteredTimelineCredToJSON( - x: FilteredTimelineCred -): FilteredTimelineCredJSON { - return {intervals: x.intervals, addressToCred: toObject(x.addressToCred)}; -} - -export function filteredTimelineCredFromJSON( - x: FilteredTimelineCredJSON -): FilteredTimelineCred { - return {intervals: x.intervals, addressToCred: fromObject(x.addressToCred)}; -} diff --git a/src/analysis/timeline/filterTimelineCred.test.js b/src/analysis/timeline/filterTimelineCred.test.js index d4740fe..3d2fb3b 100644 --- a/src/analysis/timeline/filterTimelineCred.test.js +++ b/src/analysis/timeline/filterTimelineCred.test.js @@ -1,11 +1,7 @@ // @flow import {NodeAddress} from "../../core/graph"; -import { - filterTimelineCred, - filteredTimelineCredToJSON, - filteredTimelineCredFromJSON, -} from "./filterTimelineCred"; +import {filterTimelineCred} from "./filterTimelineCred"; describe("src/analysis/timeline/filterTimelineCred", () => { const na = (...parts) => NodeAddress.fromParts(parts); @@ -38,17 +34,4 @@ describe("src/analysis/timeline/filterTimelineCred", () => { ); }); }); - - it("JSON serialization", () => { - const i0 = {startTimeMs: 0, endTimeMs: 10}; - const i1 = {startTimeMs: 10, endTimeMs: 20}; - const intervals = [i0, i1]; - const fc = { - intervals, - addressToCred: new Map().set(na("foo"), [1, 4]).set(na("bar"), [2, 5]), - }; - const json = filteredTimelineCredToJSON(fc); - const fc_ = filteredTimelineCredFromJSON(json); - expect(fc).toEqual(fc_); - }); }); diff --git a/src/analysis/timeline/timelineCred.js b/src/analysis/timeline/timelineCred.js index 42628aa..3bbb667 100644 --- a/src/analysis/timeline/timelineCred.js +++ b/src/analysis/timeline/timelineCred.js @@ -3,6 +3,7 @@ import {sum} from "d3-array"; import sortBy from "lodash.sortby"; import * as NullUtil from "../../util/null"; +import * as MapUtil from "../../util/map"; import {toCompat, fromCompat, type Compatible} from "../../util/compat"; import {type Interval} from "./interval"; import {timelinePagerank} from "./timelinePagerank"; @@ -24,9 +25,6 @@ import {type NodeAndEdgeTypes} from "../types"; import { filterTimelineCred, type FilteredTimelineCred, - filteredTimelineCredToJSON, - filteredTimelineCredFromJSON, - type FilteredTimelineCredJSON, } from "./filterTimelineCred"; export type {Interval} from "./interval"; @@ -100,18 +98,21 @@ export type TimelineCredConfig = {| */ export class TimelineCred { _graph: Graph; - _cred: FilteredTimelineCred; + _intervals: $ReadOnlyArray; + _addressToCred: Map>; _params: TimelineCredParameters; _config: TimelineCredConfig; constructor( graph: Graph, - cred: FilteredTimelineCred, + intervals: $ReadOnlyArray, + addressToCred: Map>, params: TimelineCredParameters, config: TimelineCredConfig ) { this._graph = graph; - this._cred = cred; + this._intervals = intervals; + this._addressToCred = addressToCred; this._params = params; this._config = config; } @@ -142,7 +143,7 @@ export class TimelineCred { * Return all the intervals in the timeline. */ intervals(): $ReadOnlyArray { - return this._cred.intervals; + return this._intervals; } /** @@ -154,7 +155,7 @@ export class TimelineCred { * filtered results; if so, it will return undefined. */ credNode(a: NodeAddressT): ?CredNode { - const cred = this._cred.addressToCred.get(a); + const cred = this._addressToCred.get(a); if (cred === undefined) { return undefined; } @@ -169,7 +170,7 @@ export class TimelineCred { */ credSortedNodes(prefix: NodeAddressT): $ReadOnlyArray { const match = (a) => NodeAddress.hasPrefix(a, prefix); - const addresses = Array.from(this._cred.addressToCred.keys()).filter(match); + const addresses = Array.from(this._addressToCred.keys()).filter(match); const credNodes = addresses.map((a) => this.credNode(a)); return sortBy(credNodes, (x: CredNode) => -x.total); } @@ -177,7 +178,8 @@ export class TimelineCred { toJSON(): TimelineCredJSON { const rawJSON = { graphJSON: this._graph.toJSON(), - credJSON: filteredTimelineCredToJSON(this._cred), + intervalsJSON: this._intervals, + credJSON: MapUtil.toObject(this._addressToCred), paramsJSON: paramsToJSON(this._params), configJSON: this._config, }; @@ -186,11 +188,11 @@ export class TimelineCred { static fromJSON(j: TimelineCredJSON): TimelineCred { const json = fromCompat(COMPAT_INFO, j); - const {graphJSON, credJSON, paramsJSON, configJSON} = json; + const {graphJSON, intervalsJSON, credJSON, paramsJSON, configJSON} = json; + const cred = MapUtil.fromObject(credJSON); const graph = Graph.fromJSON(graphJSON); - const cred = filteredTimelineCredFromJSON(credJSON); const params = paramsFromJSON(paramsJSON); - return new TimelineCred(graph, cred, params, configJSON); + return new TimelineCred(graph, intervalsJSON, cred, params, configJSON); } static async compute( @@ -199,7 +201,13 @@ export class TimelineCred { config: TimelineCredConfig ): Promise { const ftc = await _computeTimelineCred(graph, params, config); - return new TimelineCred(graph, ftc, params, config); + return new TimelineCred( + graph, + ftc.intervals, + ftc.addressToCred, + params, + config + ); } } @@ -235,7 +243,8 @@ export opaque type TimelineCredJSON = Compatible<{| +graphJSON: GraphJSON, +paramsJSON: ParamsJSON, +configJSON: TimelineCredConfig, - +credJSON: FilteredTimelineCredJSON, + +credJSON: {[string]: $ReadOnlyArray}, + +intervalsJSON: $ReadOnlyArray, |}>; type ParamsJSON = {| diff --git a/src/analysis/timeline/timelineCred.test.js b/src/analysis/timeline/timelineCred.test.js index 1b6b4da..46ab3d6 100644 --- a/src/analysis/timeline/timelineCred.test.js +++ b/src/analysis/timeline/timelineCred.test.js @@ -5,7 +5,6 @@ import sortBy from "lodash.sortby"; import {utcWeek} from "d3-time"; import {NodeAddress, Graph} from "../../core/graph"; import {TimelineCred, type TimelineCredConfig} from "./timelineCred"; -import {type FilteredTimelineCred} from "./filterTimelineCred"; import {defaultWeights} from "../weights"; describe("src/analysis/timeline/timelineCred", () => { @@ -45,12 +44,14 @@ describe("src/analysis/timeline/timelineCred", () => { const scores = intervals.map((_unuesd, i) => generator(i)); addressToCred.set(address, scores); } - const filteredTimelineCred: FilteredTimelineCred = { + const params = {alpha: 0.05, intervalDecay: 0.5, weights: defaultWeights()}; + return new TimelineCred( + graph, intervals, addressToCred, - }; - const params = {alpha: 0.05, intervalDecay: 0.5, weights: defaultWeights()}; - return new TimelineCred(graph, filteredTimelineCred, params, credConfig()); + params, + credConfig() + ); } it("JSON serialization works", () => { diff --git a/src/explorer/TimelineCredViewInspectionTest.js b/src/explorer/TimelineCredViewInspectionTest.js index cba722f..53f9117 100644 --- a/src/explorer/TimelineCredViewInspectionTest.js +++ b/src/explorer/TimelineCredViewInspectionTest.js @@ -10,7 +10,6 @@ import { TimelineCred, type TimelineCredConfig, } from "../analysis/timeline/timelineCred"; -import {type FilteredTimelineCred} from "../analysis/timeline/filterTimelineCred"; import {defaultWeights} from "../analysis/weights"; export default class TimelineCredViewInspectiontest extends React.Component<{| @@ -51,17 +50,13 @@ export default class TimelineCredViewInspectiontest extends React.Component<{| const scores = intervals.map((_unuesd, i) => generator(i)); addressToCred.set(address, scores); } - const filteredTimelineCred: FilteredTimelineCred = { - intervals, - addressToCred, - }; const params = {alpha: 0.05, intervalDecay: 0.5, weights: defaultWeights()}; const config: TimelineCredConfig = { scoreNodePrefix: NodeAddress.empty, filterNodePrefixes: [NodeAddress.empty], types: {nodeTypes: [], edgeTypes: []}, }; - return new TimelineCred(graph, filteredTimelineCred, params, config); + return new TimelineCred(graph, intervals, addressToCred, params, config); } render() {