)]}'
{
  "log": [
    {
      "commit": "1faefd3aa4854a332d3fa4b371103bde9f9913e7",
      "tree": "9bfb583031c6e304008c407b5d14bc57f22c6dc7",
      "parents": [
        "d71335def0121b498bce19d52c921e1daad1d17e"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 15:53:37 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 15:53:37 2015 -0800"
      },
      "message": "REST API: rename plstackapi to xos\n"
    },
    {
      "commit": "d71335def0121b498bce19d52c921e1daad1d17e",
      "tree": "07b2c9ef5bc30412937f1d3f5f6a91264b38e12e",
      "parents": [
        "9f375e069e7421d376285a28bc40a0da2fc1564d"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 15:10:13 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 15:10:13 2015 -0800"
      },
      "message": "rename plstackapi_config to xos_config\n"
    },
    {
      "commit": "9f375e069e7421d376285a28bc40a0da2fc1564d",
      "tree": "608fc57047e46ba2e0fe31420965f00a4a78c16e",
      "parents": [
        "15af5655e656d77d394d1c5cc6b76d790ec4c53f"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 15:00:03 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 15:00:03 2015 -0800"
      },
      "message": "kairos, nagios, cassandra removed from settings file\n"
    },
    {
      "commit": "15af5655e656d77d394d1c5cc6b76d790ec4c53f",
      "tree": "a86f25c6bd1106607823bae4bbdd30fad855db1b",
      "parents": [
        "55b786a8c5c736bb509f434b1ac31a954f948557"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 14:33:08 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 14:33:08 2015 -0800"
      },
      "message": "meaning error messages in REST permission errors\n"
    },
    {
      "commit": "55b786a8c5c736bb509f434b1ac31a954f948557",
      "tree": "e483f88abe9178b0a067a5f8823fae492126b985",
      "parents": [
        "4af864e736133550e3b18f1a2d7c7f987ec607ac"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 14:28:35 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 14:28:35 2015 -0800"
      },
      "message": "fix the naive/aware timezone problem\n"
    },
    {
      "commit": "4af864e736133550e3b18f1a2d7c7f987ec607ac",
      "tree": "10ba55d755472ea301d02ca687aaf02903058685",
      "parents": [
        "98e77fa9d430c8b3ab1f1a03d56560675cc40f06"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 13:53:46 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 13:53:46 2015 -0800"
      },
      "message": "use rest_framework\u0027s permission denied\n"
    },
    {
      "commit": "98e77fa9d430c8b3ab1f1a03d56560675cc40f06",
      "tree": "1479ba3fcc5b077588d0f0d2458355ae060720f9",
      "parents": [
        "8cfe3d2db7607efc713641dcfa1c0163427c4151"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 13:37:29 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 13:37:29 2015 -0800"
      },
      "message": "remove legacy cassandra, kairos, and nagios from tree\n"
    },
    {
      "commit": "8cfe3d2db7607efc713641dcfa1c0163427c4151",
      "tree": "9f19e312dd78a65f69996e4f9cc19f451e0ff162",
      "parents": [
        "79a6409f8127fbe9ecb3cdc1011a37fac75c2f67"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 11:00:53 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 11:00:53 2015 -0800"
      },
      "message": "fix permission error when creating slices with tenant view\n"
    },
    {
      "commit": "79a6409f8127fbe9ecb3cdc1011a37fac75c2f67",
      "tree": "a7bfcd386e8903bf05e2865e0069d270a40b1792",
      "parents": [
        "20101af7ad5b48ee525fb97c6486a57f48ba3753",
        "d0cf612a830dba5ed03ea6c07f8701efdb79f28e"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 10:41:19 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 10:41:19 2015 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of github.com:open-cloud/xos\n"
    },
    {
      "commit": "20101af7ad5b48ee525fb97c6486a57f48ba3753",
      "tree": "0caa5a788d45f2614be2c8c9f989a40a4acde79b",
      "parents": [
        "cc18479999c3933319c78497571640be27fa0f74"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 10:41:12 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 02 10:41:12 2015 -0800"
      },
      "message": "return permission denied when anonymous user tries to use REST\n"
    },
    {
      "commit": "d0cf612a830dba5ed03ea6c07f8701efdb79f28e",
      "tree": "9f1b88f618e6e6180fee6958e4fccc416275ad52",
      "parents": [
        "16a7f65ceda119eeae4b7d23818a9e5966522e06"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Sun Feb 01 19:51:39 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Sun Feb 01 19:51:39 2015 -0500"
      },
      "message": "A non-admin should not be able to set the creator of a slice to someone else\n"
    },
    {
      "commit": "16a7f65ceda119eeae4b7d23818a9e5966522e06",
      "tree": "d3310b476831fad79c1b534d70435231fbf66a3a",
      "parents": [
        "cc18479999c3933319c78497571640be27fa0f74"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Sat Jan 31 05:29:49 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Sat Jan 31 05:29:49 2015 +0000"
      },
      "message": "Modify Ansible\u0027s Keystone module to support password changes. Fixes #5.\n"
    },
    {
      "commit": "cc18479999c3933319c78497571640be27fa0f74",
      "tree": "d65fbf7a1c0e685bae69d2527c29a8098857104b",
      "parents": [
        "84cf39ec63ed29cef3d5e644083b8aa2cf34bb85"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 30 15:42:02 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 30 15:42:02 2015 -0800"
      },
      "message": "fix api.template.py to work with swagger\n"
    },
    {
      "commit": "84cf39ec63ed29cef3d5e644083b8aa2cf34bb85",
      "tree": "6632763915f12e3f3df89b8144b09215215f16e1",
      "parents": [
        "b428feb0aaf70ef16a876770498eae69c46db9c5"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 30 15:41:39 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 30 15:41:39 2015 -0800"
      },
      "message": "latest autogenerated genapi.py, works with swagger\n"
    },
    {
      "commit": "b428feb0aaf70ef16a876770498eae69c46db9c5",
      "tree": "e51c0cf00c4ff515d20c5447488673f12a872984",
      "parents": [
        "db8580b409915643f1d0b9ff1574890fe2688957"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Fri Jan 30 17:42:10 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Fri Jan 30 17:42:10 2015 -0500"
      },
      "message": "fix read_only fields for SliverAdmin\n"
    },
    {
      "commit": "db8580b409915643f1d0b9ff1574890fe2688957",
      "tree": "0c8fd910712143c240f937ec06cfab84949d1078",
      "parents": [
        "71b1404fa08eab705029a8ac44c017ecdf6c7e0d"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Fri Jan 30 17:20:46 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Fri Jan 30 17:21:32 2015 -0500"
      },
      "message": "add \u0027all_ips_string\u0027 to list of read only fields in SliverAdmin\n"
    },
    {
      "commit": "71b1404fa08eab705029a8ac44c017ecdf6c7e0d",
      "tree": "1f0ac3bb067418c8cb930fa96bb9b4ee9e4d20ce",
      "parents": [
        "af80a72b2c92a3e041002aa6fcaf3f5deffe9579",
        "707f7d73fc4e12cf511fa93a98b180cda6cdcc1a"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 30 12:13:06 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 30 12:13:06 2015 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of github.com:open-cloud/xos\n"
    },
    {
      "commit": "af80a72b2c92a3e041002aa6fcaf3f5deffe9579",
      "tree": "e0ecf238e90e8d6c0dd52cf530b27674dbbba85e",
      "parents": [
        "1c83dcf4726eef5f4f6d7f4278b5083e097b637c"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 30 12:10:57 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 30 12:10:57 2015 -0800"
      },
      "message": "documentation link updated\n"
    },
    {
      "commit": "707f7d73fc4e12cf511fa93a98b180cda6cdcc1a",
      "tree": "5bb0a9e3e83f6672e341fe5bc5eb04293be71b9b",
      "parents": [
        "b81d5e4bddde33e038d9220c7fd3bf783fc5401d"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Fri Jan 30 12:52:46 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Fri Jan 30 12:52:46 2015 -0500"
      },
      "message": "get ip address from Sliver.all_ips_string instead of Sliver.ip\n"
    },
    {
      "commit": "b81d5e4bddde33e038d9220c7fd3bf783fc5401d",
      "tree": "1183b412a1a4bf1932b778d8950f07cf61496788",
      "parents": [
        "1c83dcf4726eef5f4f6d7f4278b5083e097b637c"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Fri Jan 30 10:58:29 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Fri Jan 30 11:07:08 2015 -0500"
      },
      "message": "move site_deployments tab from SiteAdmin page to DeploymentAdmin page\n"
    },
    {
      "commit": "1c83dcf4726eef5f4f6d7f4278b5083e097b637c",
      "tree": "93e9d3a2a1fe48639956be6876c379ddcb5a3249",
      "parents": [
        "f92206b825677dd47cb2d3509296f120bbc2cecd"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 30 07:37:19 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 30 07:37:19 2015 -0800"
      },
      "message": "fix sliver.all_ips() throwing traceback\n"
    },
    {
      "commit": "f92206b825677dd47cb2d3509296f120bbc2cecd",
      "tree": "be2c5b604b1489fdaf274a12c8035a3c529f79de",
      "parents": [
        "2d599df3f685d65d84090a47c475e8349791b01a"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 30 00:02:31 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 30 00:02:31 2015 -0800"
      },
      "message": "fix sync_network_slivers was using instance_id instead of instance_uuid\n"
    },
    {
      "commit": "2d599df3f685d65d84090a47c475e8349791b01a",
      "tree": "01d12a6a0636963d97514091c691a4b877dfad31",
      "parents": [
        "9a9a9ab4e30c089a59e710085abf7cf2c2122dc1"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 29 17:55:40 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 29 17:55:40 2015 -0800"
      },
      "message": "throw validation error if sliver has no creator\n"
    },
    {
      "commit": "9a9a9ab4e30c089a59e710085abf7cf2c2122dc1",
      "tree": "e9ccbca470284d26b4d554940ae3d1ba1ba0c555",
      "parents": [
        "8c52051fd7e9b639bec780fb5ebf409b84bcfd6c"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 29 17:53:26 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 29 17:53:26 2015 -0800"
      },
      "message": "throw validation error if slice has no creator\n"
    },
    {
      "commit": "8c52051fd7e9b639bec780fb5ebf409b84bcfd6c",
      "tree": "99ff3c131beca89bedae939316c357c9806dded9",
      "parents": [
        "9d0595c14afd11386c3e2168561a42cfa425428b"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 29 17:16:10 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 29 17:16:10 2015 -0800"
      },
      "message": "additional validation on slice.name\n"
    },
    {
      "commit": "9d0595c14afd11386c3e2168561a42cfa425428b",
      "tree": "680f54c4c133a2f582d14d292d05fe6f1b774a7b",
      "parents": [
        "5824c0e5c78135771bfda6758908f27a87bbcfd1"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 29 14:46:14 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 29 14:46:14 2015 -0800"
      },
      "message": "fix spacing in html\n"
    },
    {
      "commit": "5824c0e5c78135771bfda6758908f27a87bbcfd1",
      "tree": "85e0bc651520806ca9409d686a5071a9dae49c76",
      "parents": [
        "592d03570733977bc4adaa67a590971688331ef1",
        "46163409366da350c3dd06bf3002b9fa82cc8660"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 21:28:16 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 21:28:16 2015 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of github.com:open-cloud/xos\n"
    },
    {
      "commit": "46163409366da350c3dd06bf3002b9fa82cc8660",
      "tree": "8cb6cc1a7206e036983e9f968852dd7bb456455d",
      "parents": [
        "90472615edd9d99c64999942ce9ca8ae519f09b3"
      ],
      "author": {
        "name": "functor",
        "email": "mw",
        "time": "Thu Jan 29 16:26:15 2015 -0500"
      },
      "committer": {
        "name": "functor",
        "email": "mw",
        "time": "Thu Jan 29 16:26:15 2015 -0500"
      },
      "message": "Adding LICENSE file.\n"
    },
    {
      "commit": "592d03570733977bc4adaa67a590971688331ef1",
      "tree": "85e0bc651520806ca9409d686a5071a9dae49c76",
      "parents": [
        "214c64c740aebb95cb1baa26e893b44543842a5c"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 21:06:05 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 21:06:05 2015 +0000"
      },
      "message": "New default model-deps file, based on fixes to dependency generation recently\n"
    },
    {
      "commit": "214c64c740aebb95cb1baa26e893b44543842a5c",
      "tree": "028e4bf30f337bffb4dd7039b58e65acb05bc481",
      "parents": [
        "39a775ff523b32133b75ed6c1938fc1079c24a72"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 21:05:39 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 21:05:39 2015 +0000"
      },
      "message": "Django view that exports Observer status\n"
    },
    {
      "commit": "39a775ff523b32133b75ed6c1938fc1079c24a72",
      "tree": "1317f0896f36d7c4d5bb281e458525ccdb79d192",
      "parents": [
        "8a51bf522eb75761fee228479a58856acfb05aed"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:58:25 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:58:25 2015 +0000"
      },
      "message": "Separated \"provides\" and \"observes\" declarations in sync steps. Provides is for dependency management and observes is for retrieving obejcts that have changed.\n"
    },
    {
      "commit": "8a51bf522eb75761fee228479a58856acfb05aed",
      "tree": "c16893eecbcc7715d35a867418c4c71dcd09a8b6",
      "parents": [
        "1e921252ed790d7a8d69b17785b1fbfd2b84ff51"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:55:40 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:55:40 2015 +0000"
      },
      "message": "Implemented back off for failed object synchronizations\n"
    },
    {
      "commit": "1e921252ed790d7a8d69b17785b1fbfd2b84ff51",
      "tree": "c9db9183397efd7f01d7a28e6e1d5fd91089d9b6",
      "parents": [
        "ed6fc2dd1b05048ede4336f13c81d10d0688d579"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:54:17 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:54:17 2015 +0000"
      },
      "message": "Save Observer run time information for status view\n"
    },
    {
      "commit": "ed6fc2dd1b05048ede4336f13c81d10d0688d579",
      "tree": "878001ebbcc4e239c12d5e5efe23ae79deec7110",
      "parents": [
        "7dba4b6e0a538058f3b67e08daff264610d5d37a"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:51:13 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:51:13 2015 +0000"
      },
      "message": "Reimplemented backend dependencies in the main Observer run loop\n"
    },
    {
      "commit": "7dba4b6e0a538058f3b67e08daff264610d5d37a",
      "tree": "3a80c0174677f1c887aa9b65e8043fd662f8b44e",
      "parents": [
        "2f51b27cb1cba6bbf04cf5443ab8713d16777335"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:48:24 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:48:24 2015 +0000"
      },
      "message": "Enable user and site model policies\n"
    },
    {
      "commit": "2f51b27cb1cba6bbf04cf5443ab8713d16777335",
      "tree": "900e0b61f8c769ad63916c6070d06f157286e945",
      "parents": [
        "334571900be019ab5f17c050bbdac94d31aed745"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:45:25 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:45:25 2015 +0000"
      },
      "message": "Bug fix in Slice model policy\n"
    },
    {
      "commit": "334571900be019ab5f17c050bbdac94d31aed745",
      "tree": "c9e6cfbed9bd2c7a69e0af8dd8331cf4e9029b4f",
      "parents": [
        "5ef878c2cefc7d901dcd7ba258d0d78b1dde0661"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:44:46 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:44:46 2015 +0000"
      },
      "message": "Added model policies for controlleruser and controllersite\n"
    },
    {
      "commit": "5ef878c2cefc7d901dcd7ba258d0d78b1dde0661",
      "tree": "3e241a3796f8a015ef5d7d14c9c5641d94010fac",
      "parents": [
        "311761942470622f307abe13d053dffa428d4314"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:40:13 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:40:13 2015 +0000"
      },
      "message": "Support field name synonyms when discovering dependencies\n"
    },
    {
      "commit": "311761942470622f307abe13d053dffa428d4314",
      "tree": "8de46f12c67b64371da8080f7960054869ebca4e",
      "parents": [
        "6db630231c4db3d509dc1599d558d19bfad7f805"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:36:45 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Thu Jan 29 20:36:45 2015 +0000"
      },
      "message": "Added scratchpad for Observer to bookkeep objects\n"
    },
    {
      "commit": "6db630231c4db3d509dc1599d558d19bfad7f805",
      "tree": "8cb6cc1a7206e036983e9f968852dd7bb456455d",
      "parents": [
        "90472615edd9d99c64999942ce9ca8ae519f09b3"
      ],
      "author": {
        "name": "mw",
        "email": "mw",
        "time": "Thu Jan 29 15:08:56 2015 -0500"
      },
      "committer": {
        "name": "mw",
        "email": "mw",
        "time": "Thu Jan 29 15:08:56 2015 -0500"
      },
      "message": "Adding LICENSE file.\n"
    },
    {
      "commit": "90472615edd9d99c64999942ce9ca8ae519f09b3",
      "tree": "a5420ab52565b56e0c404d1ca129edf8dbb6e921",
      "parents": [
        "baf002680176efa94ec63d7f327466aa8d5a4bb5"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 29 10:55:53 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 29 10:55:53 2015 -0800"
      },
      "message": "remove Dashboard Views from user admin\n"
    },
    {
      "commit": "baf002680176efa94ec63d7f327466aa8d5a4bb5",
      "tree": "1209f1932d26a987ee7abe93db06ba30ea1c0400",
      "parents": [
        "361a0bdc1fc2ea81f1987c5f65a50519e406dd73"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Jan 28 16:38:05 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Jan 28 16:38:05 2015 -0800"
      },
      "message": "ask the PI to click save\n"
    },
    {
      "commit": "361a0bdc1fc2ea81f1987c5f65a50519e406dd73",
      "tree": "b8ea6d800d6307f63f3a20294e13b1c49d0f3d0d",
      "parents": [
        "3dfb6cbefd19cfb61dec2704a1dbb76cae651f3f"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Jan 28 16:11:35 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Jan 28 16:11:35 2015 -0800"
      },
      "message": "return an error when trying to register a deleted user\n"
    },
    {
      "commit": "3dfb6cbefd19cfb61dec2704a1dbb76cae651f3f",
      "tree": "68be1547c671e8f487e38a5256909a82f9745c1e",
      "parents": [
        "933b29148fb93c465fc582398ad6a66ead84c98e"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Jan 28 16:03:40 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Jan 28 16:03:40 2015 -0800"
      },
      "message": "fix tenant view temporary password email, display message if user tries to register again\n"
    },
    {
      "commit": "933b29148fb93c465fc582398ad6a66ead84c98e",
      "tree": "a9870697d7731928c83a07627891d6ed681c0326",
      "parents": [
        "03b922932b50eeceeb9561b63c2b8c6fe73f4186"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Wed Jan 28 12:49:58 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Wed Jan 28 12:49:58 2015 -0500"
      },
      "message": "disable setting fields to readonly based on user\u0027s privilege in UserAdmin\n"
    },
    {
      "commit": "03b922932b50eeceeb9561b63c2b8c6fe73f4186",
      "tree": "900c67a9860b8f8685101821b445c7b5513a6acd",
      "parents": [
        "3a3b2810eb700931bba386529e29738beac7da8a"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Wed Jan 28 12:37:12 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Wed Jan 28 12:37:12 2015 -0500"
      },
      "message": "only admins and pis can change/modify a user\u0027s site\n"
    },
    {
      "commit": "3a3b2810eb700931bba386529e29738beac7da8a",
      "tree": "c74057d29825c34c564457409f00d074e399977d",
      "parents": [
        "365545d01ee482c148a772724d67f680303d5f43"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Wed Jan 28 12:03:39 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Wed Jan 28 12:03:39 2015 -0500"
      },
      "message": "set is_admin default to False\n"
    },
    {
      "commit": "365545d01ee482c148a772724d67f680303d5f43",
      "tree": "fc7d227503244e671d1ce71674194b15e2da04c5",
      "parents": [
        "73244b6517721bc41aeedba8084bae4b975aa7c1"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Wed Jan 28 12:03:15 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Wed Jan 28 12:03:15 2015 -0500"
      },
      "message": "dont list is_admin field twice in UserAdmin\n"
    },
    {
      "commit": "73244b6517721bc41aeedba8084bae4b975aa7c1",
      "tree": "79798fe461fce7037443ef87e8f6042d2bc496e7",
      "parents": [
        "e3d6faffd9159c0dfcab76663664c5183259c3be"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Jan 27 23:07:51 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Jan 27 23:07:51 2015 -0800"
      },
      "message": "make sure users created through tenant view are not admins\n"
    },
    {
      "commit": "e3d6faffd9159c0dfcab76663664c5183259c3be",
      "tree": "4b6f4bfbe4301a9f15401e10c09685aa2e4ba481",
      "parents": [
        "cad63308132d3dcce63a35308eb3dd4e635829f5"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Jan 27 15:29:41 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Jan 27 15:29:41 2015 -0800"
      },
      "message": "red and green observer status icons\n"
    },
    {
      "commit": "cad63308132d3dcce63a35308eb3dd4e635829f5",
      "tree": "1a0f6d9e9a7a6ee1bdab08b7a0b9b6e52ea2a2b0",
      "parents": [
        "25e3db47d2128b42623a45dc4ca5a122d522b2ec",
        "122595ce2ae5f163746b9c825967d85b10ade456"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Jan 26 22:12:47 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Jan 26 22:12:47 2015 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://git.planet-lab.org/git/plstackapi\n"
    },
    {
      "commit": "25e3db47d2128b42623a45dc4ca5a122d522b2ec",
      "tree": "d29e9953adf1472c475b6c2e115ed5976ca1f429",
      "parents": [
        "871e95efe74f43955ac0a0afb18f4421bb1fc581"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Jan 26 22:12:40 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Jan 26 22:12:40 2015 -0800"
      },
      "message": "make nagios default to (select a controller)\n"
    },
    {
      "commit": "122595ce2ae5f163746b9c825967d85b10ade456",
      "tree": "ce74c9a07cce430e15f5345bb9e280d05f6b0a87",
      "parents": [
        "a938ea8d333df6cd6b1935d5b15b63d08d13c329"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Tue Jan 27 03:58:11 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Tue Jan 27 03:58:11 2015 +0000"
      },
      "message": "Various bugfies to the main Observer loop\n"
    },
    {
      "commit": "a938ea8d333df6cd6b1935d5b15b63d08d13c329",
      "tree": "260564ad76a4c99154f2e3667bb19e3f4cd8879b",
      "parents": [
        "c88c9a8dbd77006accc8b5067c40a83b3df29e81"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Tue Jan 27 03:54:29 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Tue Jan 27 03:54:29 2015 +0000"
      },
      "message": "Bugfix\n"
    },
    {
      "commit": "c88c9a8dbd77006accc8b5067c40a83b3df29e81",
      "tree": "fec02360fbcc67b7b8f2e28fb109448400c4db2e",
      "parents": [
        "5d662c7d8c79e361f6649fe68cfb2565d584d3ab"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Tue Jan 27 03:52:43 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Tue Jan 27 03:52:43 2015 +0000"
      },
      "message": "Set backend status when saving backend version of object\n"
    },
    {
      "commit": "5d662c7d8c79e361f6649fe68cfb2565d584d3ab",
      "tree": "63a24428883841fe3fbf9aa4b1790a0658fa789f",
      "parents": [
        "4c877d6d0e98f538840ffe587d752163c6b95c89"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Tue Jan 27 03:52:19 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Tue Jan 27 03:52:19 2015 +0000"
      },
      "message": "Change dependencies to primitive objects\n"
    },
    {
      "commit": "4c877d6d0e98f538840ffe587d752163c6b95c89",
      "tree": "6762e549dc9b601881cf3f7b36b2d990a88f8a34",
      "parents": [
        "871e95efe74f43955ac0a0afb18f4421bb1fc581"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Tue Jan 27 03:49:42 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Tue Jan 27 03:49:42 2015 +0000"
      },
      "message": "Show greens where status is 1 -\n"
    },
    {
      "commit": "871e95efe74f43955ac0a0afb18f4421bb1fc581",
      "tree": "e3c0636634687b70e81eb635d82b9b72fca0e62e",
      "parents": [
        "979b1a13afb25474e427bb662ba6e16b4d6b4df9"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 22:51:35 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 22:51:35 2015 -0800"
      },
      "message": "repair the sliver filter logic in xosAdminDashboard\n"
    },
    {
      "commit": "979b1a13afb25474e427bb662ba6e16b4d6b4df9",
      "tree": "08ba1e954b818510a02d01175e9d77e8c5c402a4",
      "parents": [
        "b5839e949dd0a954f355fe37d6348cd4678afb69"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 22:17:57 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 22:17:57 2015 -0800"
      },
      "message": "sliver.deploymentNetwork -\u003e deployment network\n"
    },
    {
      "commit": "b5839e949dd0a954f355fe37d6348cd4678afb69",
      "tree": "4f9e4eed89278e8095358f68674a8c29e816b016",
      "parents": [
        "7ccc6adad88296650252a091cae41b6afc5855e7",
        "7eb52be828e9feac6309a5cb57d244f3303fb5b1"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 22:16:24 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 22:16:24 2015 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://git.planet-lab.org/git/plstackapi\n"
    },
    {
      "commit": "7ccc6adad88296650252a091cae41b6afc5855e7",
      "tree": "829d822ac68b0c702fc7a6d5e8e920c6ac7a4fed",
      "parents": [
        "efc21d5b08afcc12a3f90db2c716ec10c8fa793b"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 22:16:13 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 22:16:13 2015 -0800"
      },
      "message": "display ssh command in sliver detail view\n"
    },
    {
      "commit": "7eb52be828e9feac6309a5cb57d244f3303fb5b1",
      "tree": "fdf2c6040f6efeb9d924347f7e57d351eb552c4c",
      "parents": [
        "75d9d32da055f20a3a1e0141d5d1fff846c68d8e"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Sun Jan 25 22:16:35 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Sun Jan 25 22:16:35 2015 -0500"
      },
      "message": "user\u0027s can\u0027t set/unset site in Login Details without the proper authorization\n"
    },
    {
      "commit": "75d9d32da055f20a3a1e0141d5d1fff846c68d8e",
      "tree": "643b9ba0b805c80ca056374122d8f9685c550376",
      "parents": [
        "c8f443d726c1d8d12b0f2fcfc6d76bf216f0e63c",
        "efc21d5b08afcc12a3f90db2c716ec10c8fa793b"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Sun Jan 25 21:59:58 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Sun Jan 25 21:59:58 2015 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://git.planet-lab.org/git/plstackapi\n"
    },
    {
      "commit": "c8f443d726c1d8d12b0f2fcfc6d76bf216f0e63c",
      "tree": "6435fcdb1ee761c76a186bdadf14d90b76e4ad35",
      "parents": [
        "450b6e0972449f9838c7fc5afff822137eba4c39"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Sun Jan 25 21:58:30 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Sun Jan 25 21:58:30 2015 -0500"
      },
      "message": "user\u0027s can\u0027t set/unset is_admin, is_active and is_readonly values in Login Details without the proper authorization.\n"
    },
    {
      "commit": "efc21d5b08afcc12a3f90db2c716ec10c8fa793b",
      "tree": "e821493a2585a142823d98fc2cd31739b3370276",
      "parents": [
        "5f9b2cde2a1da82423535bad772db4429a549e9c"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 17:05:14 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 17:05:14 2015 -0800"
      },
      "message": "download_ssh_commands view, deprecated\n"
    },
    {
      "commit": "5f9b2cde2a1da82423535bad772db4429a549e9c",
      "tree": "dfc90e167d9738cf547592bdc5ae4902f153dd7d",
      "parents": [
        "342dee4f3d71a384e6626ca1f6f3c6706cd15a03"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 17:04:00 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 17:04:00 2015 -0800"
      },
      "message": "download button for ssh commands\n"
    },
    {
      "commit": "342dee4f3d71a384e6626ca1f6f3c6706cd15a03",
      "tree": "dfa3c0da24919786368bb84c32bb82f71d0f921f",
      "parents": [
        "23734cdef0ccda37636212145471738ffb658e68",
        "450b6e0972449f9838c7fc5afff822137eba4c39"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 11:50:02 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 11:50:02 2015 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://git.planet-lab.org/git/plstackapi\n"
    },
    {
      "commit": "23734cdef0ccda37636212145471738ffb658e68",
      "tree": "6576e8e87c641ac8eb47a4262c6e6f46857f3592",
      "parents": [
        "a111f44d4d1e04e303eccabf60c6b60d124b19c3"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 11:49:56 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sun Jan 25 11:49:56 2015 -0800"
      },
      "message": "view for download ssh commands\n"
    },
    {
      "commit": "450b6e0972449f9838c7fc5afff822137eba4c39",
      "tree": "439d7d3505695cdb6ad05801c3dd2b4dba5281d6",
      "parents": [
        "a111f44d4d1e04e303eccabf60c6b60d124b19c3"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Sun Jan 25 12:35:29 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Sun Jan 25 12:35:29 2015 -0500"
      },
      "message": "Remove visible references to Reservations, Accounts, Billing, and Invoices\n"
    },
    {
      "commit": "a111f44d4d1e04e303eccabf60c6b60d124b19c3",
      "tree": "a59bcef2c93a7b25af9436ea24bee6464417e69b",
      "parents": [
        "5a39f59a76507aaa003fc5d653baca3930c2a0d5"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sat Jan 24 13:33:26 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sat Jan 24 13:33:26 2015 -0800"
      },
      "message": "add backend_status_icon to user admin list\n"
    },
    {
      "commit": "5a39f59a76507aaa003fc5d653baca3930c2a0d5",
      "tree": "f25f65a6123a0a186d712fd35e264e4df09f8d6d",
      "parents": [
        "5e19c66d283624f824b3e08738a39788bddaca0b"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sat Jan 24 00:01:48 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sat Jan 24 00:01:48 2015 -0800"
      },
      "message": "display APIException errors properly\n"
    },
    {
      "commit": "5e19c66d283624f824b3e08738a39788bddaca0b",
      "tree": "9b10514c968d4b3b13700e64665f0f0562edeec0",
      "parents": [
        "fd45ba01086551f77702eae3bc5074bef57ca0dd"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sat Jan 24 00:01:29 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Sat Jan 24 00:01:29 2015 -0800"
      },
      "message": "return APIException for sliceplus errors instead of valueerror\n"
    },
    {
      "commit": "fd45ba01086551f77702eae3bc5074bef57ca0dd",
      "tree": "bd8fef3c7da74573b503e3ed9412cb0106384131",
      "parents": [
        "85515d734596cbfd8186c38f00eb26a1f819fe0d"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 23 17:42:17 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 23 17:42:17 2015 -0800"
      },
      "message": "prevent script tags inside of error popup\n"
    },
    {
      "commit": "85515d734596cbfd8186c38f00eb26a1f819fe0d",
      "tree": "12fe2f6e128a3f2a66aff9510b7e08713c96a511",
      "parents": [
        "ff69a6e798507172f16199c7dc82a1c8803928bd",
        "3346abe51f020d105c43b363ea651c2f88a245aa"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 23 16:38:24 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 23 16:38:24 2015 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://git.planet-lab.org/git/plstackapi\n"
    },
    {
      "commit": "ff69a6e798507172f16199c7dc82a1c8803928bd",
      "tree": "f7333a7675e238e1d40e33ded20e583da5985577",
      "parents": [
        "ca11bb8c4f0e283214af9d1e8ac435a519dcac14"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 23 16:37:51 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 23 16:37:51 2015 -0800"
      },
      "message": "fix validator override call for slice/slicePlus, add network_ports validation, allow validators to be added on a per-model basis\n"
    },
    {
      "commit": "3346abe51f020d105c43b363ea651c2f88a245aa",
      "tree": "5e6788f09386b472e269cbf35a3e1981b4103e47",
      "parents": [
        "6980cfd95e7b8cbf1022547598edbcb66fbab192"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:26:46 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:26:46 2015 +0000"
      },
      "message": "Fix assignment of sliver IP Addresses, failing because of an import error\n"
    },
    {
      "commit": "6980cfd95e7b8cbf1022547598edbcb66fbab192",
      "tree": "5f826960ab951d1e3dc98642ef3318318d521e47",
      "parents": [
        "7b4cee7315ae373fe36c2ac80edc5545b300f214"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:24:42 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:24:42 2015 +0000"
      },
      "message": "Disable creation of an OpenStack gateway for private netwroks (and nat networks too, with the latter it does not matter)\n"
    },
    {
      "commit": "7b4cee7315ae373fe36c2ac80edc5545b300f214",
      "tree": "94d2c315ec1e8c7a20202e97efb910aa8ef55b38",
      "parents": [
        "f1705c11be55800bb5fc38f6a3590ac5cf27b36b"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:22:27 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:22:27 2015 +0000"
      },
      "message": "Do not catch and ignore network instantiation errors, as doing so lets them pass unnoticed by hte Observer\n"
    },
    {
      "commit": "f1705c11be55800bb5fc38f6a3590ac5cf27b36b",
      "tree": "f029a09cb5df5a694ef34f44333c708b30336431",
      "parents": [
        "3b3e1e130ea37986e4edb908e343098f7209b4e0"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:22:12 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:22:12 2015 +0000"
      },
      "message": "Fix bug in CIDR allocation\n"
    },
    {
      "commit": "3b3e1e130ea37986e4edb908e343098f7209b4e0",
      "tree": "aba94217376ddfd497a90350d8babcdb83cba331",
      "parents": [
        "a2e8e2d50db375c4d95da2f13cb9b2227d9c5d44"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:21:57 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:21:57 2015 +0000"
      },
      "message": "Defer error checking to ansible layer\n"
    },
    {
      "commit": "a2e8e2d50db375c4d95da2f13cb9b2227d9c5d44",
      "tree": "0dcf263bcbef7dcd9b1352c8335da62469e478a6",
      "parents": [
        "c9df99ae545cfb03820f3b3917ba28ae5708836d"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:19:05 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:19:05 2015 +0000"
      },
      "message": "Add types to backend status messages\n"
    },
    {
      "commit": "c9df99ae545cfb03820f3b3917ba28ae5708836d",
      "tree": "0c22261f3b7cfbf51a7581c8306efde4169fa3dd",
      "parents": [
        "8fef296240287dded1446a7d6d57982481caaf65"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:18:37 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:18:37 2015 +0000"
      },
      "message": "Drop some of the noise in observer logs\n"
    },
    {
      "commit": "8fef296240287dded1446a7d6d57982481caaf65",
      "tree": "63d768f38998483030c284d4676f25193603f40b",
      "parents": [
        "02fd756b25af988dbc4ec6d583084365782d2413"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:17:12 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:17:12 2015 +0000"
      },
      "message": "Added model policies as a thread in the observer\n"
    },
    {
      "commit": "02fd756b25af988dbc4ec6d583084365782d2413",
      "tree": "5b7496d51ab73c5c0bd25febb6cc9f5f67ca2f90",
      "parents": [
        "58da661b805a6d45696d05e384d9f374194bddb1"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:16:27 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:16:27 2015 +0000"
      },
      "message": "Quote commands when running ansible\n"
    },
    {
      "commit": "58da661b805a6d45696d05e384d9f374194bddb1",
      "tree": "4e44adf297119792accf2ff284c12b1e9bcee366",
      "parents": [
        "39c3a70e9bffd197914da0e6ecc11f639ed60078"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:15:37 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:15:37 2015 +0000"
      },
      "message": "Make error checking part of the ansible abstraction layer\n"
    },
    {
      "commit": "39c3a70e9bffd197914da0e6ecc11f639ed60078",
      "tree": "c36c9ec9474682f3c32d161b60b395f4b48777c0",
      "parents": [
        "b6d5b87bfd0da9a4a7d3b837787c4638cd44d66f"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:11:51 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:11:51 2015 +0000"
      },
      "message": "Added new model policies for images and controllerslices\n"
    },
    {
      "commit": "b6d5b87bfd0da9a4a7d3b837787c4638cd44d66f",
      "tree": "42307e3815f50e8c89d6a4b43f00ad32a3ff4334",
      "parents": [
        "b3507b955b94c7128e691993a6098c56453de62d"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:11:29 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:11:29 2015 +0000"
      },
      "message": "Bug fixes in model policies\n"
    },
    {
      "commit": "b3507b955b94c7128e691993a6098c56453de62d",
      "tree": "1e9b907f52c5fde7eb5a295b90ef4e8262ca82a9",
      "parents": [
        "030cede86a52b685b2cc7418db0eeabac874b92b"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:09:28 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:09:28 2015 +0000"
      },
      "message": "Made model policies a threaded run loop, and made policy executions transactional\n"
    },
    {
      "commit": "030cede86a52b685b2cc7418db0eeabac874b92b",
      "tree": "36879a6d01503cbb490a4aacc1444c95a67ac632",
      "parents": [
        "f3278d1daf573539b87b53deffcbb128942dba54"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:07:24 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:07:24 2015 +0000"
      },
      "message": "Added a type to backend_status\n"
    },
    {
      "commit": "f3278d1daf573539b87b53deffcbb128942dba54",
      "tree": "804a434da1cd8e4d07d8b233a6893f4837e27d21",
      "parents": [
        "ab66b7d5f63bbe3265e76216770041bd56b40281"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:02:09 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 16:02:09 2015 +0000"
      },
      "message": "Added timestamp for model policy scheduling to the User class\n"
    },
    {
      "commit": "ab66b7d5f63bbe3265e76216770041bd56b40281",
      "tree": "54b0ece204a6e61cd13f58dfba4ded8bd9dd66d9",
      "parents": [
        "ca11bb8c4f0e283214af9d1e8ac435a519dcac14"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 15:59:55 2015 +0000"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "sapanb@cs.princeton.edu",
        "time": "Fri Jan 23 15:59:55 2015 +0000"
      },
      "message": "Added timestamp to support model policy scheduling\n"
    },
    {
      "commit": "ca11bb8c4f0e283214af9d1e8ac435a519dcac14",
      "tree": "ec3eeb592486d65d9fb4fd57944735f6282365bc",
      "parents": [
        "a4a379c5d951c5b30a3abcc12d90979a74a27ffa"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 23 00:22:17 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Fri Jan 23 00:22:17 2015 -0800"
      },
      "message": "network_ports validation, wip\n"
    },
    {
      "commit": "a4a379c5d951c5b30a3abcc12d90979a74a27ffa",
      "tree": "88be45dfb7d5c7fa31cb07a00729917aca70ebe2",
      "parents": [
        "a8c0b246f16467736402ac9b8906a0022bcd6f39"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 22 15:21:24 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 22 15:21:24 2015 -0800"
      },
      "message": "display count of ready slivers in tenant view\n"
    },
    {
      "commit": "a8c0b246f16467736402ac9b8906a0022bcd6f39",
      "tree": "a4eac1fe4ac62f8022e1faad97d2cc0951d862e6",
      "parents": [
        "95638beffc3a9af8961f1c15ce40725c29a27fe1"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 22 15:16:34 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 22 15:16:34 2015 -0800"
      },
      "message": "filter sites with no nodes from tenant view\n"
    },
    {
      "commit": "95638beffc3a9af8961f1c15ce40725c29a27fe1",
      "tree": "8637bae2335a7c9d92826da40793c41aa14b5fce",
      "parents": [
        "66b11e208644a4a7cad5a9c21de29329a72707b4"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 22 15:14:50 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Jan 22 15:14:50 2015 -0800"
      },
      "message": "fix icon color in provisioning state\n"
    },
    {
      "commit": "66b11e208644a4a7cad5a9c21de29329a72707b4",
      "tree": "226b4a1e87f881cc17a1319939f09eaa5ce6d9a3",
      "parents": [
        "94c40eb6c393813c4f5ae6f1916bb90c3670836c"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Jan 21 16:24:07 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Jan 21 16:24:07 2015 -0800"
      },
      "message": "fix filter code in sliver inline\n"
    },
    {
      "commit": "94c40eb6c393813c4f5ae6f1916bb90c3670836c",
      "tree": "d499da073015b3a44d17a6a1c9b0f012948b1225",
      "parents": [
        "494d0db8e56d5935bd52f015150c634d88d254a1"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Wed Jan 21 12:29:35 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Wed Jan 21 12:29:35 2015 -0500"
      },
      "message": "checking in clean initial migration\n"
    },
    {
      "commit": "494d0db8e56d5935bd52f015150c634d88d254a1",
      "tree": "6ee64561f85225f75e06dc71de63c9f0cd4b123c",
      "parents": [
        "aa9a705fc642d763bd46374fd25c249409a7b870"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Jan 20 17:59:55 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Jan 20 17:59:55 2015 -0800"
      },
      "message": "fix Chosen Sites empty in Deployment Admin\n"
    },
    {
      "commit": "aa9a705fc642d763bd46374fd25c249409a7b870",
      "tree": "0e23aca6f1d22ee725846624eedba0b1dc3d24cb",
      "parents": [
        "c18f52b5c87c7bb3f05580e271338e8b58d36e27"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Jan 20 17:12:43 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Jan 20 17:12:43 2015 -0800"
      },
      "message": "fix sitesdeployments typo\n"
    },
    {
      "commit": "c18f52b5c87c7bb3f05580e271338e8b58d36e27",
      "tree": "dc65ba945048b1e368e534c4c5626f08df05de30",
      "parents": [
        "d7269eff92dae385eeac8da032719a20cb155857"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Jan 20 17:02:53 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Jan 20 17:02:53 2015 -0800"
      },
      "message": "tenant view only shows sites the user should be able to see\n"
    }
  ],
  "next": "d7269eff92dae385eeac8da032719a20cb155857"
}
