)]}'
{
  "log": [
    {
      "commit": "d2e8f5cd7deaff191fc43ee0331b0954907e83a9",
      "tree": "b2dd68fd6a08935bb09cb7af0062fb68b4220e95",
      "parents": [
        "b4365a7d0ea455fc3e51bc779c48505719e23797",
        "aff458d22aced901bacd332cb691afb28625ec03"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Thu Jan 10 22:46:43 2019 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 10 22:46:43 2019 +0100"
      },
      "message": "Merge pull request #170 from erickt/ua\n\nDon\u0027t include the version of rust-tuf in the user agent"
    },
    {
      "commit": "aff458d22aced901bacd332cb691afb28625ec03",
      "tree": "b2dd68fd6a08935bb09cb7af0062fb68b4220e95",
      "parents": [
        "aa74230155a1036cce77b14531c394c980b77989"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Thu Jan 10 13:31:10 2019 -0800"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Thu Jan 10 13:31:10 2019 -0800"
      },
      "message": "nightly-2019-01-10 is current busted, pinning to 2019-01-09 for now\n\nChange-Id: I227a16fc576ecc84f2a72635a1395601c5730c7f\n"
    },
    {
      "commit": "aa74230155a1036cce77b14531c394c980b77989",
      "tree": "128456c21b039e770d3cfad27447559917dda10d",
      "parents": [
        "b4365a7d0ea455fc3e51bc779c48505719e23797"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Jan 09 09:25:35 2019 -0800"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Thu Jan 10 13:23:17 2019 -0800"
      },
      "message": "Don\u0027t include the version of rust-tuf in the user agent\n\nThe fuchsia build system does not use cargo to build libraries, and at\nthe moment it is unable to convey environment variables. As a stopgap,\nthis removes the use of `env!(\"CARGO_PKG_VERSION\")` until we can add\nsupport for this.\n\nChange-Id: If35a244533c95ba2a7bedff2c45b5d33d7a3a84b\n"
    },
    {
      "commit": "b4365a7d0ea455fc3e51bc779c48505719e23797",
      "tree": "82900f071504e09d0ec1e0a512c415eeb9fb8301",
      "parents": [
        "b78ab93bb7c4194308a380e2e2862bf390484b49",
        "358e3fd2b5ef5bb6e057c6d3ab9fad4843174b49"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Thu Jan 10 11:22:07 2019 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 10 11:22:07 2019 +0100"
      },
      "message": "Merge pull request #169 from erickt/bump\n\nUpdate to futures-preview 0.3.0-alpha.11 and rustc 1.33.0-nightly"
    },
    {
      "commit": "358e3fd2b5ef5bb6e057c6d3ab9fad4843174b49",
      "tree": "82900f071504e09d0ec1e0a512c415eeb9fb8301",
      "parents": [
        "2284ed537d5424b1a08152ae8e6de04a6270ff63"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Mon Jan 07 19:51:07 2019 -0800"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Jan 08 11:54:55 2019 -0800"
      },
      "message": "format with rustfmt 1.0.1-nightly (be13559 2018-12-10)\n\nChange-Id: Idb8a79185ffd3ca5d0a85c4c5bbb33982ddd7a71\n"
    },
    {
      "commit": "2284ed537d5424b1a08152ae8e6de04a6270ff63",
      "tree": "b9d2eaf76e15c4c65362760667daf8b4e2bf74ec",
      "parents": [
        "b78ab93bb7c4194308a380e2e2862bf390484b49"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Mon Jan 07 19:42:57 2019 -0800"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Jan 08 11:54:55 2019 -0800"
      },
      "message": "Update to futures-preview 0.3.0-alpha.11 and rustc 1.33.0-nightly\n\nChange-Id: Ib81d6a5720cc596a08d91a875c3b32fd1b9ad93a\n"
    },
    {
      "commit": "b78ab93bb7c4194308a380e2e2862bf390484b49",
      "tree": "adaae89a864f9db6db7f581f24284c2d7c6c65e5",
      "parents": [
        "cba5a7a391fdec90bdb3b476cd2e3ffca494f9d1",
        "c38da3f6a8ee3b66c5e808b6a2a30792ea7bac7f"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Mon Dec 17 14:48:23 2018 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 17 14:48:23 2018 +0100"
      },
      "message": "Merge pull request #167 from erickt/builder\n\nAdd a `HttpRepositoryBuilder` and move min_bytes_per_second"
    },
    {
      "commit": "cba5a7a391fdec90bdb3b476cd2e3ffca494f9d1",
      "tree": "640b3b8d3ed68486a2e65b2c6cba7d1c4c9570df",
      "parents": [
        "97fb07da7460ea3c8947b643030f9a7a78306610",
        "82aa9fe8f1c51587477c3da6e2bbea1bf671c771"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Mon Dec 17 14:48:16 2018 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 17 14:48:16 2018 +0100"
      },
      "message": "Merge pull request #168 from erickt/features\n\nAllow disabling hyper default features"
    },
    {
      "commit": "82aa9fe8f1c51587477c3da6e2bbea1bf671c771",
      "tree": "640b3b8d3ed68486a2e65b2c6cba7d1c4c9570df",
      "parents": [
        "97fb07da7460ea3c8947b643030f9a7a78306610"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Fri Dec 14 15:13:16 2018 -0800"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Fri Dec 14 15:13:16 2018 -0800"
      },
      "message": "Allow disabling hyper default features\n\nFuchsia doesn\u0027t support all the features in hyper 0.12, so we need\nto be able to disable them.\n"
    },
    {
      "commit": "c38da3f6a8ee3b66c5e808b6a2a30792ea7bac7f",
      "tree": "9d803e5eb1c4f0e9d372c4971896542647a836a1",
      "parents": [
        "97fb07da7460ea3c8947b643030f9a7a78306610"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Thu Dec 06 10:33:26 2018 -0800"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Fri Dec 14 10:55:18 2018 -0800"
      },
      "message": "Add a `HttpRepositoryBuilder` and move min_bytes_per_second\n\nThe `HttpRepository::new` method takes a lot of options that I\nexpect people will just set the default. This makes it easier\nto ignore unset options.\n\nAlso, the `min_bytes_per_second` seems more like a setting that\nwe\u0027d want set globally, rather than on a per-repository-method call.\nSince this setting really only makes sense on `HttpRepository`,\nI\u0027ve also moved this setting into the builder.\n"
    },
    {
      "commit": "97fb07da7460ea3c8947b643030f9a7a78306610",
      "tree": "38cf406f5e7f03a79beeb333671f014de6de5170",
      "parents": [
        "252f0a9622864968ed723068c4f4230503c78084",
        "3c161d58250d87600aea2fca0c04e357cb4d71e6"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Fri Dec 14 14:20:37 2018 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 14 14:20:37 2018 +0100"
      },
      "message": "Merge pull request #166 from erickt/async\n\nSwitch to futures, async/await, and hyper 0.12"
    },
    {
      "commit": "252f0a9622864968ed723068c4f4230503c78084",
      "tree": "da98e7cf537fe34563c72e4d9fa92db121b49110",
      "parents": [
        "6cb0df574663fbf1d14bbddd8e812bf0083476cf",
        "f20ebc1e56012347f1c2f7bd97db98708bd6ee53"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Thu Dec 13 13:07:54 2018 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 13 13:07:54 2018 +0100"
      },
      "message": "Merge pull request #165 from erickt/2018\n\nclean up some post-2018 code, fix clippy suggestions"
    },
    {
      "commit": "3c161d58250d87600aea2fca0c04e357cb4d71e6",
      "tree": "38cf406f5e7f03a79beeb333671f014de6de5170",
      "parents": [
        "e536b6e8ab6477f093c932b069a53e93b92dea97"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Dec 11 08:43:26 2018 -0800"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Dec 11 21:47:50 2018 -0800"
      },
      "message": "Switch to hyper 0.12\n"
    },
    {
      "commit": "e536b6e8ab6477f093c932b069a53e93b92dea97",
      "tree": "e79374cdccb27543c911feedc022c87ee196a73f",
      "parents": [
        "f20ebc1e56012347f1c2f7bd97db98708bd6ee53"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Dec 04 16:17:44 2018 -0800"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Dec 11 21:47:50 2018 -0800"
      },
      "message": "Port over to futures and async/await\n\nThis is an experiment on porting rust-tuf over to using futures\nand async/await, which is what we use on Fuchsia. This is in contrast\nwith #151, which uses futures 0.1, which is compatible with stable\nrust, but dramatically more invasive of a change, which is why\nI haven\u0027t rebased it on top of remotes/origin/develop yet.\n\nThe downside of this is that landing this patch would make rust-tuf\nrequire nightly until async/await is stablized. Unfortunately there\nis no clear date on when that is going to occur.\n"
    },
    {
      "commit": "f20ebc1e56012347f1c2f7bd97db98708bd6ee53",
      "tree": "da98e7cf537fe34563c72e4d9fa92db121b49110",
      "parents": [
        "6cb0df574663fbf1d14bbddd8e812bf0083476cf"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Dec 11 09:41:02 2018 -0800"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Dec 11 12:47:08 2018 -0800"
      },
      "message": "clean up some post-2018 code, fix clippy suggestions\n"
    },
    {
      "commit": "6cb0df574663fbf1d14bbddd8e812bf0083476cf",
      "tree": "be006ef353d792094dff70886e0624fde9eaf422",
      "parents": [
        "38d6a2db8fc21dd92007253521b574f8a8d7e95a",
        "ba2aa1031897c48e084708ad2abd97e2579a6479"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Sun Dec 09 17:02:19 2018 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 09 17:02:19 2018 +0100"
      },
      "message": "Merge pull request #163 from erickt/2018\n\nPort to rust 2018"
    },
    {
      "commit": "38d6a2db8fc21dd92007253521b574f8a8d7e95a",
      "tree": "141d545deb15c22ba7808521bd579279d5840416",
      "parents": [
        "691d7db74d55e61fc8d50da68b4f0628f6d7cc2c",
        "cb47b1568cb7a01080fd3c3d5b2792764c912db2"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Sun Dec 09 15:38:46 2018 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 09 15:38:46 2018 +0100"
      },
      "message": "Merge pull request #164 from erickt/bump\n\nBump derp, ring, and untrusted"
    },
    {
      "commit": "cb47b1568cb7a01080fd3c3d5b2792764c912db2",
      "tree": "141d545deb15c22ba7808521bd579279d5840416",
      "parents": [
        "691d7db74d55e61fc8d50da68b4f0628f6d7cc2c"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Thu Dec 06 20:27:54 2018 -0800"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Thu Dec 06 20:28:21 2018 -0800"
      },
      "message": "Bump derp, ring, and untrusted\n\nThis is blocked on https://github.com/heartsucker/derp/pull/4 and\na derp release.\n"
    },
    {
      "commit": "ba2aa1031897c48e084708ad2abd97e2579a6479",
      "tree": "477912f547611fefdda2325faf58a5c0da2aac7d",
      "parents": [
        "691d7db74d55e61fc8d50da68b4f0628f6d7cc2c"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Dec 04 14:47:25 2018 -0800"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Dec 05 21:29:33 2018 -0800"
      },
      "message": "Port to rust 2018\n"
    },
    {
      "commit": "691d7db74d55e61fc8d50da68b4f0628f6d7cc2c",
      "tree": "de8465a87ea498cca8a8ede67e4a82683aa1fa12",
      "parents": [
        "ad2c92be08e7878f77f3f7a3124a8f3f617ad483",
        "9adadef613473fe97e84e026acaa9350fb9cbf39"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Wed Dec 05 13:33:11 2018 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 05 13:33:11 2018 +0100"
      },
      "message": "Merge pull request #139 from erickt/lookup\n\nConvert Client::_fetch_target\u0027s lookup fn into a method"
    },
    {
      "commit": "9adadef613473fe97e84e026acaa9350fb9cbf39",
      "tree": "de8465a87ea498cca8a8ede67e4a82683aa1fa12",
      "parents": [
        "03b967c7f254585c92d11da2ed20196ac3a0253f"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Dec 04 14:20:33 2018 -0800"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Dec 04 14:20:33 2018 -0800"
      },
      "message": "Reformat with rustfmt 0.99.4-stable (1c40881 2018-08-27)\n"
    },
    {
      "commit": "03b967c7f254585c92d11da2ed20196ac3a0253f",
      "tree": "31b7e57cb2006ac66d8fdd5b5c9c62791e820b43",
      "parents": [
        "ad2c92be08e7878f77f3f7a3124a8f3f617ad483"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Jul 17 14:53:41 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Dec 04 14:17:09 2018 -0800"
      },
      "message": "Convert Client::_fetch_target\u0027s lookup fn into a method\n\nThis is a minor simplification of `Client::_fetch_target` to\nfactor out the interior lookup function in order to cut\nout on a number of variables being passed in as arguments.\n"
    },
    {
      "commit": "ad2c92be08e7878f77f3f7a3124a8f3f617ad483",
      "tree": "54e1634d4c28598f76f9620deea101570d22d38b",
      "parents": [
        "13b2638fa0c8df02be2bcb011a0918b4164f53c4",
        "7cfbec13cdaa5d258875dbc349b051e2c72daac3"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Tue Sep 11 10:56:38 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 11 10:56:38 2018 +0200"
      },
      "message": "Merge pull request #157 from erickt/save2\n\nClients should locally save metadata"
    },
    {
      "commit": "7cfbec13cdaa5d258875dbc349b051e2c72daac3",
      "tree": "54e1634d4c28598f76f9620deea101570d22d38b",
      "parents": [
        "13b2638fa0c8df02be2bcb011a0918b4164f53c4"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Fri Aug 03 15:36:29 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Aug 28 10:43:21 2018 -0700"
      },
      "message": "Clients should locally save metadata\n\nThis patch merges `Client::update_local` and\n`Client::update_remote` in order to update `Tuf` following the\npattern as described in the\n[spec section 5.1](https://github.com/theupdateframework/specification/blob/master/tuf-spec.md#the-client-application).\n\nOne potential problem though is I\u0027m not sure how we can atomically\nupdate the local repository and the `Tuf` object, so for ease of\nimplementation, this patch will update `Tuf` and could potentially\nerror out writing the metadata to the local repository. We could\ninstead implement some sort of rollback mechanism to `Tuf`, but\nI figure we can do that later if it\u0027s necessary.\n\nCloses #153\n"
    },
    {
      "commit": "13b2638fa0c8df02be2bcb011a0918b4164f53c4",
      "tree": "60e4b833cbca7f870b382d75b1edfcdef51c71c0",
      "parents": [
        "ff429ebed305833d2a60b4af08388f36d0a5fa5b",
        "9bf91b90dedf6551d21f88e3db642e0d3d864700"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Sat Aug 25 09:05:52 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 25 09:05:52 2018 +0200"
      },
      "message": "Merge pull request #154 from erickt/rustfmt\n\nReformat with rustfmt 0.8.2-stable (08da30d 2018-06-06)"
    },
    {
      "commit": "9bf91b90dedf6551d21f88e3db642e0d3d864700",
      "tree": "60e4b833cbca7f870b382d75b1edfcdef51c71c0",
      "parents": [
        "ff429ebed305833d2a60b4af08388f36d0a5fa5b"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Fri Aug 24 09:39:15 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Fri Aug 24 09:39:15 2018 -0700"
      },
      "message": "Reformat with rustfmt 0.8.2-stable (08da30d7 2018-06-06)\n"
    },
    {
      "commit": "ff429ebed305833d2a60b4af08388f36d0a5fa5b",
      "tree": "f8a24088752e0afeaaca9663ac419e1bfa2afaf8",
      "parents": [
        "7b9f60c7872b06eb601a3f9ab8ca8f9ec15581c9",
        "160efa5933cd6eb7843ad78158f33c1632ab53c2"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Fri Aug 24 13:31:25 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 24 13:31:25 2018 +0200"
      },
      "message": "Merge pull request #155 from erickt/atomic\n\nAtomically write metadata to file system"
    },
    {
      "commit": "7b9f60c7872b06eb601a3f9ab8ca8f9ec15581c9",
      "tree": "532b23cb12ec389eef9b63c44a666f0ff3def46a",
      "parents": [
        "fb36e622fc9097eb1b4df7c1ee4f1adc3e9b5472",
        "23c68a3405f37ff44c43526699a90b3a05fd67c9"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Thu Aug 23 09:52:00 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 23 09:52:00 2018 +0200"
      },
      "message": "Merge pull request #159 from erickt/deser2\n\nSimplify metadata construction with builders"
    },
    {
      "commit": "23c68a3405f37ff44c43526699a90b3a05fd67c9",
      "tree": "a6c8d4557690b6562fbd507c6b9c8c3e3649762e",
      "parents": [
        "56630f4d319f8235532faa14504b814b953bfa60"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Mon Aug 20 14:57:45 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Mon Aug 20 16:59:27 2018 -0700"
      },
      "message": "Add TargetsMetadataBuilder to simplify making TargetsMetadata\n"
    },
    {
      "commit": "56630f4d319f8235532faa14504b814b953bfa60",
      "tree": "0d8ac24e813adc8e12b12f4874217d689a871706",
      "parents": [
        "3d1986618e33e016b7dd568661a93fb30415bbc1"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Mon Aug 20 13:24:30 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Mon Aug 20 15:34:26 2018 -0700"
      },
      "message": "Use SnapshotMetadataBuilder simplify doctests\n"
    },
    {
      "commit": "3d1986618e33e016b7dd568661a93fb30415bbc1",
      "tree": "7f162b8dab1242e26ac6d3465b5a94ba2cea88ce",
      "parents": [
        "3fb9effe2291c812259b77e57f31263e624faaa0"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Mon Aug 20 10:07:11 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Mon Aug 20 15:22:43 2018 -0700"
      },
      "message": "Add TimestampMetadataBuilder to simplify making TimestampMetadata\n"
    },
    {
      "commit": "3fb9effe2291c812259b77e57f31263e624faaa0",
      "tree": "8463dc6ac392294fdf0f1510da02ef5954e35662",
      "parents": [
        "4c545d68bbd935fc8c6d611f85bcb24f90568fb1"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Sat Aug 18 12:27:54 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Mon Aug 20 15:22:43 2018 -0700"
      },
      "message": "Add SnapshotMetadataBuilder to simplify making SnapshotMetadata\n"
    },
    {
      "commit": "4c545d68bbd935fc8c6d611f85bcb24f90568fb1",
      "tree": "fdda392072959c72496c9a1560d5b23a04203f69",
      "parents": [
        "6b55ecd7e959274c6bd3546e8ae18e017011034e"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Thu Aug 16 11:59:27 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Mon Aug 20 15:22:43 2018 -0700"
      },
      "message": "Add RootMetadataBuilder to simplify making RootMetadata\n"
    },
    {
      "commit": "fb36e622fc9097eb1b4df7c1ee4f1adc3e9b5472",
      "tree": "eb4c692b0a8ffc25554fce067a46d0d7a429dbcf",
      "parents": [
        "392442d3aa9fbfb67880942379415d5a442ef692",
        "1a863de0717fe7e1c0464c46d2341919bbbbb8d3"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Mon Aug 20 19:36:21 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 20 19:36:21 2018 +0200"
      },
      "message": "Merge pull request #156 from erickt/tempfile\n\ntempdir has been merged into tempfile 3.x"
    },
    {
      "commit": "6b55ecd7e959274c6bd3546e8ae18e017011034e",
      "tree": "8074180be348fe4d2ee9d314cf4560e7db0c38a7",
      "parents": [
        "ea6430db25b5c8900b6d40d6d0ac883b702cf021"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Aug 15 18:20:28 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Fri Aug 17 10:00:35 2018 -0700"
      },
      "message": "Replace SignedMetadata::signed with an AsRef impl\n\nThis lets this method be used a little more generically.\n"
    },
    {
      "commit": "ea6430db25b5c8900b6d40d6d0ac883b702cf021",
      "tree": "d865bf26ed3effeec6dc033fce1a9835f84095d4",
      "parents": [
        "17726c784791bbd3253f597c7cb11d11ba78b6e0"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Aug 15 14:34:45 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Aug 15 15:56:25 2018 -0700"
      },
      "message": "SignedMetadata should implement Metadata\n"
    },
    {
      "commit": "17726c784791bbd3253f597c7cb11d11ba78b6e0",
      "tree": "8151431e8ed54789ada6d566d2c4df1971d11bd2",
      "parents": [
        "bf7870dea4050bf97aea7fc323d73ebe373f7683"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Mon Aug 06 09:46:35 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Aug 15 15:56:25 2018 -0700"
      },
      "message": "Don\u0027t serialize the metadata in SignedMetadata\n\nThis makes it easier to work with SignedMetadata like\nit\u0027s regular metadata.\n"
    },
    {
      "commit": "bf7870dea4050bf97aea7fc323d73ebe373f7683",
      "tree": "ccaa9de2fe8bb326fda7517fa10001eed727831d",
      "parents": [
        "392442d3aa9fbfb67880942379415d5a442ef692"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Aug 15 14:22:01 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Aug 15 14:22:01 2018 -0700"
      },
      "message": "Move {version,expires} into Metadata trait\n\nThese values are common across all metadata, so i tmakes\nsense to lift them into the trait.\n"
    },
    {
      "commit": "1a863de0717fe7e1c0464c46d2341919bbbbb8d3",
      "tree": "eb4c692b0a8ffc25554fce067a46d0d7a429dbcf",
      "parents": [
        "392442d3aa9fbfb67880942379415d5a442ef692"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Aug 08 11:17:56 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Aug 08 11:17:56 2018 -0700"
      },
      "message": "tempdir has been merged into tempfile 3.x\n"
    },
    {
      "commit": "160efa5933cd6eb7843ad78158f33c1632ab53c2",
      "tree": "679c6f941caa7b200a804d32604868a319a2580e",
      "parents": [
        "79058918553a825cfa2e29ae26ed2580743949c1"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Fri Aug 03 13:11:09 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Fri Aug 03 13:37:24 2018 -0700"
      },
      "message": "Atomically write metadata to file system\n\nBefore this patch, `FileSystemRepository::store_metadata` would\nstream writes into the destination. If the system crashed,\nit\u0027s possible the metadata could be truncated. This refactors\nthe code to atomically write metadata to avoid this happening.\n\nNote that this changes the behavior of\n`FileSystemRepository::store_target`. It used to store the\ntemporary files in a `$REPO/temp` directory, but instead\nthis moves the temp files into the same directory as the\ndestination file. This was done to avoid the case where\n`temp/` was stored on a separate filesystem than the\ndestination. If that were the case,\n`NamedTemporaryFile::persist` would not be atomic.\n"
    },
    {
      "commit": "392442d3aa9fbfb67880942379415d5a442ef692",
      "tree": "e4cc761066b20f75cb4c0dfcc2d623f7d49c1577",
      "parents": [
        "d6bb132ad3eb85e0426036f91526698fc61f99dd",
        "79058918553a825cfa2e29ae26ed2580743949c1"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Fri Jul 27 17:08:27 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 27 17:08:27 2018 +0200"
      },
      "message": "Merge pull request #148 from erickt/bug\n\nRemove duplicate code when creating client"
    },
    {
      "commit": "79058918553a825cfa2e29ae26ed2580743949c1",
      "tree": "e4cc761066b20f75cb4c0dfcc2d623f7d49c1577",
      "parents": [
        "d6bb132ad3eb85e0426036f91526698fc61f99dd"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Thu Jul 26 09:53:34 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Thu Jul 26 09:53:34 2018 -0700"
      },
      "message": "Remove duplicate code when creating client\n\nThis block of code is either redundant, or was supposed to\nfetch the metadata from the remote server if it wasn\u0027t present\nlocally. The documentation suggests that it will only try\nloading from the local server, so I erred on just removing\nthis chunk of code, rather than doing the less-safe thing\nof downloading the initial metadata from an unverified\nserver.\n"
    },
    {
      "commit": "d6bb132ad3eb85e0426036f91526698fc61f99dd",
      "tree": "8426265ad0f061abaa2c57d28765ffc686d3fa3a",
      "parents": [
        "09255ff43bf92d8554a9dc9294456059dde5caec",
        "11700b8d8331b0ef3fe85dacd101095a820c619b"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Wed Jul 18 22:05:26 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 18 22:05:26 2018 +0200"
      },
      "message": "Merge pull request #140 from erickt/interior\n\nConvert Repository types to use interior mutability"
    },
    {
      "commit": "09255ff43bf92d8554a9dc9294456059dde5caec",
      "tree": "87d5a240543b613ffbe1239f272b50cdf2c118fe",
      "parents": [
        "95c99f45711d4485da5b849953c88d1df4788acc"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Jul 18 17:30:54 2018 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Jul 18 22:01:06 2018 +0200"
      },
      "message": "added \":\" as illegal path component for *nix compatibility\n"
    },
    {
      "commit": "11700b8d8331b0ef3fe85dacd101095a820c619b",
      "tree": "6e42e4184966d341bfe4a1f7c990401f2420843a",
      "parents": [
        "95c99f45711d4485da5b849953c88d1df4788acc"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Jul 17 14:59:37 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Jul 18 11:22:15 2018 -0700"
      },
      "message": "Convert Repository types to use interior mutability\n\nThis changes `Repository` to use interior mutability\nin order to store state. At the moment, `EphemeralRepository`\nis the only repository type that stores state. By switching\nover to internally using `Arc\u003cMutex\u003c...\u003e\u003e\u003e` to wrap the state,\nit allows repositories to be used concurrently across threads.\nThis trait will be especially important as we transition\nover to using asynchronous io with Hyper 0.11+.\n"
    },
    {
      "commit": "95c99f45711d4485da5b849953c88d1df4788acc",
      "tree": "1ea398668293aa91f119115dd9540f145611ce20",
      "parents": [
        "ebeafe66e74824894b44adc93803296b7c47da7c",
        "25f9bf6f4a5ec1cabc505c4fb36d5be21b3c7263"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Wed Jul 18 20:18:11 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 18 20:18:11 2018 +0200"
      },
      "message": "Merge pull request #141 from erickt/rustfmt\n\nReformat with rustfmt 0.6.1-stable (49279d71 2018-05-08)"
    },
    {
      "commit": "25f9bf6f4a5ec1cabc505c4fb36d5be21b3c7263",
      "tree": "1ea398668293aa91f119115dd9540f145611ce20",
      "parents": [
        "ebeafe66e74824894b44adc93803296b7c47da7c"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Jul 17 15:40:57 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Jul 18 08:31:53 2018 -0700"
      },
      "message": "Reformat with rustfmt 0.6.1-stable (49279d71 2018-05-08)\n\nThis falls under #74. I didn\u0027t see anything particularly\negregious in the output.\n"
    },
    {
      "commit": "ebeafe66e74824894b44adc93803296b7c47da7c",
      "tree": "3e657cb5c52afcc50f606af6c7c08639f0fe146f",
      "parents": [
        "91b8ed03964de6353bbfb7f815ff9a60bcc4262e"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Jul 18 17:24:05 2018 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Jul 18 17:24:05 2018 +0200"
      },
      "message": "added explicit tests for .. in paths\n\nfixes #63\n"
    },
    {
      "commit": "91b8ed03964de6353bbfb7f815ff9a60bcc4262e",
      "tree": "78ee603032f0180fe9ee9404bcb3f9492ed2016e",
      "parents": [
        "0d104e5ca8a3a09ef82e7822b978b9f42b50b40d",
        "518991c98ee71a5aea93ab663fb0e207e83da9b2"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Wed Jul 18 16:32:17 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 18 16:32:17 2018 +0200"
      },
      "message": "Merge pull request #142 from erickt/role\n\nRole can be inferred from the metadata"
    },
    {
      "commit": "0d104e5ca8a3a09ef82e7822b978b9f42b50b40d",
      "tree": "ef6dce3a2aa48567ad697d368fb7d2e67f5dd20d",
      "parents": [
        "8199d914c8cc85a4482aa11cfa3d6fb315eda1e8",
        "3e9950922786de40edade55e664af7ce3b29628b"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Wed Jul 18 16:28:15 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 18 16:28:15 2018 +0200"
      },
      "message": "Merge pull request #138 from erickt/init\n\nRemove Repository::initialize"
    },
    {
      "commit": "518991c98ee71a5aea93ab663fb0e207e83da9b2",
      "tree": "3093ce2e972a19d38294c746f9dbbf36dd0634ea",
      "parents": [
        "a862bbbcd7ba2ebfdb0813002b8f0faafef40049"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Jul 17 16:28:48 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Jul 17 16:28:48 2018 -0700"
      },
      "message": "Convert Metadata::role into associated constant\n"
    },
    {
      "commit": "a862bbbcd7ba2ebfdb0813002b8f0faafef40049",
      "tree": "b5c9b0e66813ddfafd5ebf427f75c78c22a029eb",
      "parents": [
        "0882ffb583df3a98f66fdbd07fde5bd16db897db"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Jul 17 16:16:48 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Jul 17 16:24:57 2018 -0700"
      },
      "message": "Role can be inferred from the Metadata trait\n"
    },
    {
      "commit": "3e9950922786de40edade55e664af7ce3b29628b",
      "tree": "98606983745d67d253169b070ba9ef1ff93dcf6c",
      "parents": [
        "0882ffb583df3a98f66fdbd07fde5bd16db897db"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Jul 17 11:02:06 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Tue Jul 17 11:03:49 2018 -0700"
      },
      "message": "Remove Repository::initialize\n\nThis patch removes the method `Repository::initialize`, which\nwas only really used by `FileSystemRepository`. This was done\nbecause it removes the risk of creating an uninitialized\nrepository. Instead, initialization can be guaranteed by\nperforming initialization on the `Repository` creation.\n"
    },
    {
      "commit": "8199d914c8cc85a4482aa11cfa3d6fb315eda1e8",
      "tree": "a41b38889673d84edcde0bb186176e3a0c95985a",
      "parents": [
        "0882ffb583df3a98f66fdbd07fde5bd16db897db",
        "32191f7f9727abc2b7870961a74dec785f5da878"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Tue Jul 17 10:33:27 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 17 10:33:27 2018 +0200"
      },
      "message": "Merge pull request #135 from erickt/temp\n\nFix tempfile test on windows"
    },
    {
      "commit": "32191f7f9727abc2b7870961a74dec785f5da878",
      "tree": "a41b38889673d84edcde0bb186176e3a0c95985a",
      "parents": [
        "0882ffb583df3a98f66fdbd07fde5bd16db897db"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Mon Jul 16 21:12:25 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Mon Jul 16 21:13:46 2018 -0700"
      },
      "message": "Fix tempfile test on windows\n\nThe tempfile library opens files on windows in a mode\nthat prevents the file from being opened multiple times.\nThis fixes the test by just making sure to close the file\nbefore we try to open it again.\n"
    },
    {
      "commit": "0882ffb583df3a98f66fdbd07fde5bd16db897db",
      "tree": "1e336cb202aa013d6c7e1d7a6aac954bce5fc6a9",
      "parents": [
        "853b9ca18dcf30a6f06a2fc4f27675ed61da4536",
        "9efca8bbe6118844d705008222d77da348c72f1e"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Fri Jul 13 16:46:09 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 13 16:46:09 2018 +0200"
      },
      "message": "Merge pull request #132 from erickt/clippy\n\nClean up clippy suggestions"
    },
    {
      "commit": "853b9ca18dcf30a6f06a2fc4f27675ed61da4536",
      "tree": "56e239a80bfd76d22e191f217ab432aad4fc28d5",
      "parents": [
        "905379ab28955825427aee96c8ed72934a9959a0",
        "06a160e77384abad98baf248b479f350a115bbf3"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Fri Jul 13 16:35:36 2018 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 13 16:35:36 2018 +0200"
      },
      "message": "Merge pull request #133 from erickt/deps\n\nbump dependencies"
    },
    {
      "commit": "9efca8bbe6118844d705008222d77da348c72f1e",
      "tree": "438cb43715496391e0cd8e77875fd13a659c6497",
      "parents": [
        "eabdd3c0668133d1188c8806bb2b825e79ed5c89"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 16:41:02 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 17:08:18 2018 -0700"
      },
      "message": "clippy: ignore remaining lints\n"
    },
    {
      "commit": "eabdd3c0668133d1188c8806bb2b825e79ed5c89",
      "tree": "f72a49415f4070f124074750a1f068ea6fbc7d9f",
      "parents": [
        "a984415e0b1a14c4da5b918e0a0cbf0a40d78ddd"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 16:40:52 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 17:08:18 2018 -0700"
      },
      "message": "clippy: use `u64::from` to avoid lossy conversion\n\nAs a hedge against this type changing, clippy recommends\nusing `u64::from` over `as` as `From::from` will be a compile\ntime error if the type ever changes away from a lossless conversion\ntype.\n"
    },
    {
      "commit": "a984415e0b1a14c4da5b918e0a0cbf0a40d78ddd",
      "tree": "520d14545a92952453390cfc83d026fe91a1f0db",
      "parents": [
        "ac21fefd0ef5790177ce5232c742b598977f9832"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 16:35:37 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 17:08:18 2018 -0700"
      },
      "message": "clippy: misc suggested clean up\n"
    },
    {
      "commit": "ac21fefd0ef5790177ce5232c742b598977f9832",
      "tree": "323cab9f5871e98ec45b8a4f117439515c4a9ab5",
      "parents": [
        "6a9708d7e301c97b14f0eaee2df13192d4a8dc13"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 16:16:30 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 17:08:18 2018 -0700"
      },
      "message": "clippy: clean up match and \"if let\"\n"
    },
    {
      "commit": "6a9708d7e301c97b14f0eaee2df13192d4a8dc13",
      "tree": "65f95780b59aa4ef123f102b7269b624cbb6c947",
      "parents": [
        "9db9e6fa333c6a9c73855d0eeca2ff3eb98a7d9b"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 16:15:34 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 17:08:18 2018 -0700"
      },
      "message": "clippy: remove redundant struct field names\n"
    },
    {
      "commit": "9db9e6fa333c6a9c73855d0eeca2ff3eb98a7d9b",
      "tree": "7298d36fb886e95cf3a248eaa88a94a8fb78564e",
      "parents": [
        "29c54c10d94b339356d0fdc09dfa84a2491af657"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 16:14:05 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 17:08:18 2018 -0700"
      },
      "message": "clippy: pass by referenece\n"
    },
    {
      "commit": "29c54c10d94b339356d0fdc09dfa84a2491af657",
      "tree": "2e07025494255e45b6665d9da6ff48083dbee327",
      "parents": [
        "905379ab28955825427aee96c8ed72934a9959a0"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 16:12:48 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 16:43:10 2018 -0700"
      },
      "message": "clippy: add default constructors\n"
    },
    {
      "commit": "06a160e77384abad98baf248b479f350a115bbf3",
      "tree": "56e239a80bfd76d22e191f217ab432aad4fc28d5",
      "parents": [
        "905379ab28955825427aee96c8ed72934a9959a0"
      ],
      "author": {
        "name": "Erick Tryzelaar",
        "email": "etryzelaar@google.com",
        "time": "Wed Jun 20 17:23:50 2018 -0700"
      },
      "committer": {
        "name": "Erick Tryzelaar",
        "email": "erick.tryzelaar@gmail.com",
        "time": "Wed Jul 11 15:35:34 2018 -0700"
      },
      "message": "bump dependencies\n\nThis updates the dependencies the following dependencies to the\nlatest version: derp, itoa, log, tempfile, lazy_static, maplit\n\nThe only remaining outdated dependencies are on hyper (which is\ngoing to be a doozy to update) and untrusted, which is blocked\non ring 0.13\u0027s release.\n"
    },
    {
      "commit": "905379ab28955825427aee96c8ed72934a9959a0",
      "tree": "fb4bb7f9cfce42872306de27579e064270777468",
      "parents": [
        "a891482666c9c6d44dd22a8aee7d4c1aad8b7345"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Apr 04 11:21:20 2018 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Apr 04 11:21:20 2018 +0200"
      },
      "message": "added reference for SPKI encoding\n"
    },
    {
      "commit": "a891482666c9c6d44dd22a8aee7d4c1aad8b7345",
      "tree": "4b8d659f83f8c488497257c7c3bb1246ea976633",
      "parents": [
        "e35bdb886cf22561321a2b7ddf6a57e893fa53f9"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Mon Jan 29 12:33:53 2018 +0100"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Mar 02 11:53:00 2018 +0100"
      },
      "message": "future proof protocol by handling unknown values\n"
    },
    {
      "commit": "e35bdb886cf22561321a2b7ddf6a57e893fa53f9",
      "tree": "4cd2168c20ad88d20f0cf4bbaacba6b08c1d0318",
      "parents": [
        "376c8e4df5334d6e53d749c56fae06c5b8554eef"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Tue Oct 24 19:14:20 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Tue Oct 24 19:14:20 2017 +0200"
      },
      "message": "unbreak travis\n"
    },
    {
      "commit": "376c8e4df5334d6e53d749c56fae06c5b8554eef",
      "tree": "45a640eadff7a7f41f2e145eac0daeec581049f4",
      "parents": [
        "deb1c36f7739bdebc3dcd50e97881085b06014e4"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Tue Oct 24 19:13:47 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Tue Oct 24 19:13:47 2017 +0200"
      },
      "message": "bump versions\n"
    },
    {
      "commit": "deb1c36f7739bdebc3dcd50e97881085b06014e4",
      "tree": "6df8e13c0929b18928426a467cd0bcd98e9a088f",
      "parents": [
        "393c14cb4546dd8fe615b0a6336c769327e47699"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Tue Oct 24 19:10:25 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Tue Oct 24 19:10:25 2017 +0200"
      },
      "message": "use numbers and not hashes for consistent snapshot\n"
    },
    {
      "commit": "393c14cb4546dd8fe615b0a6336c769327e47699",
      "tree": "c94fdc4473fff04d436ba6d7a5cd2abff67a1ec8",
      "parents": [
        "e6791d833d26ac7d22e06d6ca8bd528fa9f5c02c"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Tue Sep 12 12:18:10 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Tue Sep 12 12:18:10 2017 +0200"
      },
      "message": "programatically generate keys\n"
    },
    {
      "commit": "e6791d833d26ac7d22e06d6ca8bd528fa9f5c02c",
      "tree": "7a237dfdfed2cfc581c92e0a68113c7cd08952c9",
      "parents": [
        "ec2b21134ba4eea143beb3d926f8220594a58f73"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Sep 06 20:03:06 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Sep 06 20:03:06 2017 +0200"
      },
      "message": "error formatting\n"
    },
    {
      "commit": "ec2b21134ba4eea143beb3d926f8220594a58f73",
      "tree": "e07b64b64d313a45e6162425b19cfb8c55daf19c",
      "parents": [
        "5552422e6f7428206450b035094d318ff320cf32"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Mon Sep 04 02:56:29 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Mon Sep 04 03:35:06 2017 +0200"
      },
      "message": "create intermediate dir for FileSystemRepository\n\nfixes #128\n"
    },
    {
      "commit": "5552422e6f7428206450b035094d318ff320cf32",
      "tree": "b8a36c82a0e54c7fc37ff2eb9a8a72942f0c7416",
      "parents": [
        "0d4101d30b527b8091516cc179c353368ccd2d8e"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Mon Sep 04 02:31:52 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Mon Sep 04 02:31:52 2017 +0200"
      },
      "message": "use real path for fetching/storing targets, not virtual\n"
    },
    {
      "commit": "0d4101d30b527b8091516cc179c353368ccd2d8e",
      "tree": "41123e635523aa2ebe1570b87325c86a6dcb8863",
      "parents": [
        "3fd4d18a9339b68fa92c353b665573b941c0df47"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sun Sep 03 16:05:09 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sun Sep 03 16:05:09 2017 +0200"
      },
      "message": "bump version\n"
    },
    {
      "commit": "3fd4d18a9339b68fa92c353b665573b941c0df47",
      "tree": "51c8ca5f2901f30c2ccb312150674edee1ff1696",
      "parents": [
        "978e3a6aa10a831dc8c5a19cd47b8ce96ff3e352",
        "d9529c37508d6708dbc7487faa07fbd6eb14cdf3"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@users.noreply.github.com",
        "time": "Sun Sep 03 16:03:40 2017 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 03 16:03:40 2017 +0200"
      },
      "message": "Merge pull request #130 from heartsucker/virtual-fs\n\nsplit path into TargetPath and VirtualTargetPath"
    },
    {
      "commit": "d9529c37508d6708dbc7487faa07fbd6eb14cdf3",
      "tree": "51c8ca5f2901f30c2ccb312150674edee1ff1696",
      "parents": [
        "978e3a6aa10a831dc8c5a19cd47b8ce96ff3e352"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Sep 01 01:06:35 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Sep 01 23:05:05 2017 +0200"
      },
      "message": "split path in TargetPath and VirtualTargetPath\n\nto allow for hierarchical addressing of targets when their real names\ndon\u0027t fit such a schema\n\ne.g., foo-bar-1.2.3 could be addressed as foo/bar/1.2.3 so that foo\ncould delegate bar and so on\n\nthis happens because delegations are done on an exact target basis or\nrecursively or everything under a \"dir\" like \"foo/\"\n"
    },
    {
      "commit": "978e3a6aa10a831dc8c5a19cd47b8ce96ff3e352",
      "tree": "527e3c62434e4c9a38feefe8d17bdd8620c97ec9",
      "parents": [
        "c79a1707be4e0dfe6b50cb7b97deaf39a3e79e1e"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Sep 01 00:20:17 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Sep 01 00:20:17 2017 +0200"
      },
      "message": "removed outdated dependencies\n"
    },
    {
      "commit": "c79a1707be4e0dfe6b50cb7b97deaf39a3e79e1e",
      "tree": "151bb8c90e720b2141e440ddd506513be7f8ac6f",
      "parents": [
        "23bc8fc2c5de57028874d113b1b55f5e80a04124"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Aug 30 16:50:37 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Aug 30 16:50:37 2017 +0200"
      },
      "message": "cargo fmt\n"
    },
    {
      "commit": "23bc8fc2c5de57028874d113b1b55f5e80a04124",
      "tree": "b0007892efb7425a29e421f6b232723bb5323fd0",
      "parents": [
        "8960500c68dd6dc28b911829e333763a8b2d20a9"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Aug 30 16:46:57 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Aug 30 16:46:57 2017 +0200"
      },
      "message": "prettier documentation\n"
    },
    {
      "commit": "8960500c68dd6dc28b911829e333763a8b2d20a9",
      "tree": "c780b797502f89f2b18145a2fdbf4a8dd353be01",
      "parents": [
        "800fb7d41cd4dcc15ea9925b96823ddd7b899a59"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Aug 30 07:01:55 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Aug 30 16:24:05 2017 +0200"
      },
      "message": "fix include paths\n"
    },
    {
      "commit": "800fb7d41cd4dcc15ea9925b96823ddd7b899a59",
      "tree": "76ea3ebdba2808ee0cf71cfec6f56efd38ae5aee",
      "parents": [
        "03b7952893c6edf8ec14b0b3d909ef933b1f3b70"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Aug 11 20:18:00 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Aug 11 20:18:00 2017 +0200"
      },
      "message": "updated json schema for TAP9 modifications\n"
    },
    {
      "commit": "03b7952893c6edf8ec14b0b3d909ef933b1f3b70",
      "tree": "654c54bff4810cb84acde3f88b59acf892072bdb",
      "parents": [
        "f88bf7bc377334f0b53918a4c9a616ff04b087f1"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Aug 09 19:25:14 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Aug 11 20:12:46 2017 +0200"
      },
      "message": "TAP9: removed method from signature, added scheme to public key\n"
    },
    {
      "commit": "f88bf7bc377334f0b53918a4c9a616ff04b087f1",
      "tree": "76b0230432e14bbbf8f0af1ec42902b1358839e8",
      "parents": [
        "52c576f1c0fc8d78ecc9012373e03584fd41ad0e"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Aug 02 14:48:18 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Wed Aug 02 14:48:18 2017 +0200"
      },
      "message": "added more keywords for crates.io\n"
    },
    {
      "commit": "52c576f1c0fc8d78ecc9012373e03584fd41ad0e",
      "tree": "f59a757d60f2f3638608cd38d8b68ea8ce5aa603",
      "parents": [
        "879937e88794729691867d32b202a2a82e8d8f78"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sat Jul 29 21:11:57 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sat Jul 29 21:11:57 2017 +0200"
      },
      "message": "serialization fixes\n"
    },
    {
      "commit": "879937e88794729691867d32b202a2a82e8d8f78",
      "tree": "f0d37f5bfd3eb94115ddfba81deb9e22073ebbef",
      "parents": [
        "cd61adf421bb3eb8b0d24c2e1062999aa507a40a"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sat Jul 29 17:07:57 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sat Jul 29 17:07:57 2017 +0200"
      },
      "message": "remove useless manual serde definition\n\nfixes #102\n"
    },
    {
      "commit": "cd61adf421bb3eb8b0d24c2e1062999aa507a40a",
      "tree": "3febea0edc27282fc033341c52f0698ac58ee4ef",
      "parents": [
        "64b6ae9528ddecd9f01aedc4f5d72acccf993138"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sat Jul 29 17:07:44 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sat Jul 29 17:07:44 2017 +0200"
      },
      "message": "duplicate top-level keys test\n"
    },
    {
      "commit": "64b6ae9528ddecd9f01aedc4f5d72acccf993138",
      "tree": "d5f9eff402863ecae61cfb92d5c6e53bcd26a091",
      "parents": [
        "74ec96b83a56af6b467a5c3d033ca570661a418e"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sat Jul 29 14:29:37 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sat Jul 29 14:29:37 2017 +0200"
      },
      "message": "bump version to 0.3.0-alpha1\n"
    },
    {
      "commit": "74ec96b83a56af6b467a5c3d033ca570661a418e",
      "tree": "3ed16eafdc124e5a8d6fc35219d904314cdec9a8",
      "parents": [
        "e79d5dc887d774052bdcb6598e66a83cdaaba8cb"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sat Jul 29 13:47:56 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sat Jul 29 13:47:56 2017 +0200"
      },
      "message": "better \u0027default\u0027 api for configs\n"
    },
    {
      "commit": "e79d5dc887d774052bdcb6598e66a83cdaaba8cb",
      "tree": "dc818ca2e966b26a2ea703074fc27684656da2f7",
      "parents": [
        "532e7c5bb6ad88db97ab6d1fc234f2439b292745"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sat Jul 29 10:01:03 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Sat Jul 29 10:01:03 2017 +0200"
      },
      "message": "renamed JsonDataInterchange to Json beacuse verbosity makes me sad\n"
    },
    {
      "commit": "532e7c5bb6ad88db97ab6d1fc234f2439b292745",
      "tree": "62fa6690ddaf08132a4ad66a2a8f508621feef2e",
      "parents": [
        "ea9b9112f5f79fcbf4b7218e2d93d02d83316e30"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 22:28:02 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 22:28:02 2017 +0200"
      },
      "message": "loosen restrictions on dependency versions for rustup\n"
    },
    {
      "commit": "ea9b9112f5f79fcbf4b7218e2d93d02d83316e30",
      "tree": "5e4315172dace42a12cf144044a1c285e3b77bee",
      "parents": [
        "a4b55b8ac8629cd93df909f6f7b4fc1a50e943ec"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 22:11:02 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 22:11:02 2017 +0200"
      },
      "message": "don\u0027t allow outdated metadata to remain in tuf struct\n"
    },
    {
      "commit": "a4b55b8ac8629cd93df909f6f7b4fc1a50e943ec",
      "tree": "1e5c9ea838066b550606551e5f874a776c74c5e3",
      "parents": [
        "8bfd56af674cd30e9cb14a51652baca8bf42f275"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 21:43:22 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 21:43:22 2017 +0200"
      },
      "message": "enforce zulu-normalized, second-resolution timestamps\n\nfixes #124\n"
    },
    {
      "commit": "8bfd56af674cd30e9cb14a51652baca8bf42f275",
      "tree": "ef60e408c90c7ef5c2cb7614d2377b4ba704e3be",
      "parents": [
        "a56fba79e57d9c890cf9772d37690ee0ce93e1b3"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 20:29:46 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 20:29:46 2017 +0200"
      },
      "message": "don\u0027t transmit precalculated key IDs\n\nfixes #118\n"
    },
    {
      "commit": "a56fba79e57d9c890cf9772d37690ee0ce93e1b3",
      "tree": "c23d52c0a673e18d7aa9deb81e0aae504ffb66bb",
      "parents": [
        "9519b9edfbacf74a268ec3435bc29dc5728f178a"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 19:52:47 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 19:52:47 2017 +0200"
      },
      "message": "minor deployment docs edits\n"
    },
    {
      "commit": "9519b9edfbacf74a268ec3435bc29dc5728f178a",
      "tree": "c25bc06c87e75dc5d954576cbd42cbcf1e8d42c8",
      "parents": [
        "afca08ec5196bdeb2703ff0a26db3878f2ba875b",
        "43728442fef0b5d49f5ca96ccec745a20dacbe76"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 19:32:27 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 19:32:27 2017 +0200"
      },
      "message": "Merge branch \u0027docs\u0027 into develop\n"
    },
    {
      "commit": "43728442fef0b5d49f5ca96ccec745a20dacbe76",
      "tree": "c25bc06c87e75dc5d954576cbd42cbcf1e8d42c8",
      "parents": [
        "b939ec39c6b2832f30e2bcb8663e445eb8af2429"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 19:32:15 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Fri Jul 28 19:32:15 2017 +0200"
      },
      "message": "delegation docs\n"
    },
    {
      "commit": "b939ec39c6b2832f30e2bcb8663e445eb8af2429",
      "tree": "b0fdda6ca0abd786996e6a95125caa0a9c1ecdb6",
      "parents": [
        "8fcdd6120b8725a12a23265251a2a5d112653546"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Thu Jul 27 23:00:21 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Thu Jul 27 23:00:21 2017 +0200"
      },
      "message": "json schemas for metadata in docs\n"
    },
    {
      "commit": "8fcdd6120b8725a12a23265251a2a5d112653546",
      "tree": "2aea147e7c3e047473305da1194ac55839705250",
      "parents": [
        "c6b7cd624ae3d4d5c963a6d4d1fa5139d100d74f"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Thu Jul 27 22:11:15 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Thu Jul 27 22:14:53 2017 +0200"
      },
      "message": "docs/test for SafeReader\n"
    },
    {
      "commit": "c6b7cd624ae3d4d5c963a6d4d1fa5139d100d74f",
      "tree": "1f62c1c074907e0017383fa05d8b1b6f58990d71",
      "parents": [
        "025a7b638b775c504192e25a946ab5d35aacc5be"
      ],
      "author": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Thu Jul 27 21:30:19 2017 +0200"
      },
      "committer": {
        "name": "heartsucker",
        "email": "heartsucker@autistici.org",
        "time": "Thu Jul 27 21:30:19 2017 +0200"
      },
      "message": "formatting\n"
    }
  ],
  "next": "025a7b638b775c504192e25a946ab5d35aacc5be"
}
