)]}'
{
  "log": [
    {
      "commit": "56ff2a7c1d9011816da94ebb99893e1ef44a8f4e",
      "tree": "ece47a4868b178cd232935229bf21d3811583e89",
      "parents": [
        "faec77b53ec6addd5326bbc406231027466fd459"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Tue Feb 04 13:33:58 2014 -0800"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Feb 04 22:16:12 2014 +0000"
      },
      "message": "Determine yaml format when loading yaml configs.\n\nThe yaml document was split into a yaml file and a .ini file instead of\ntwo yaml docs in one file. Determine which format is in use wherever the\nyaml document is read to ensure the correct configs are read by jeepyb.\n\nCloses-bug: 1276180\nChange-Id: Ib66cbec223d6aaa9cf06a5b0b002e37502a6e95a\n"
    },
    {
      "commit": "faec77b53ec6addd5326bbc406231027466fd459",
      "tree": "c0612dee21c4a04a5768d0e7c255072ad2e471f3",
      "parents": [
        "a1d490bf2aa43de2a1f9474c8d2a6b97e7f2eccd"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Tue Feb 04 13:50:41 2014 -0800"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Feb 04 22:16:06 2014 +0000"
      },
      "message": "Fix pbr and hacking requirements.\n\nThere were pbr version conflicts due to the old version of hacking that\nwe had pinned here. Pin newer pbr and hacking to unstick the tests for\njeepyb and to make it clear why this happens in the future.\n\nChange-Id: I75a1f6f956880f2bec8a182782b17e5055315e75\n"
    },
    {
      "commit": "a1d490bf2aa43de2a1f9474c8d2a6b97e7f2eccd",
      "tree": "b0503e23f6e27e63a145b033d66b485f08ba5b34",
      "parents": [
        "c1428bdf937f760540ec3e2e83bc103f358cacd1"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sun Feb 02 21:09:28 2014 +0100"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sun Feb 02 21:09:28 2014 +0100"
      },
      "message": "Allow projects that only differ by org\n\nIt\u0027s entirely possible that sometimes, you might want to have two\ndifferent repos that share the same second part. However, we\u0027re\nactually asserting out if we find this. Don\u0027t assert out, but instead\nmake our duplicate entry check check for the full two-part name.\n\nChange-Id: Id373cce6b0c16d7c5a07536788dcb3954b1529e2\n"
    },
    {
      "commit": "c1428bdf937f760540ec3e2e83bc103f358cacd1",
      "tree": "ac0398d6573fad1455a8a25a125cee3c6325b578",
      "parents": [
        "fcee960738f54410a4f90b0c723116992235cf9e",
        "3c9a851fa93518bde584a75f6dd715b54f878e72"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jan 31 19:43:49 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Jan 31 19:43:49 2014 +0000"
      },
      "message": "Merge \"Allow configurable mappings to different LP projects\""
    },
    {
      "commit": "3c9a851fa93518bde584a75f6dd715b54f878e72",
      "tree": "acf486e86f33b3c3e79a0be7009813b9a33c9de1",
      "parents": [
        "8f8ec6e7b44e9f9bad18598c5ba06f97f3408916"
      ],
      "author": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Sat Dec 14 06:52:53 2013 +1100"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Fri Jan 31 19:31:12 2014 +0000"
      },
      "message": "Allow configurable mappings to different LP projects\n\nThis allows anyone to use DocImpact tags, with non-core projects\nhaving their bugs mapped to their own LP projects, instead of\nopenstack-manuals. This is required because there is at least\none stackforge project that would like to use DocImpact as part of\ntheir development process, but they can\u0027t assume support from the\nOpenStack docs team at this time.\n\nChange-Id: I6c9a9f3f42b3a9eff33ca0522b9f23f058131433\n"
    },
    {
      "commit": "fcee960738f54410a4f90b0c723116992235cf9e",
      "tree": "d8e0fb107ec178ab82f06f13aff7b1a967f41831",
      "parents": [
        "ad2494b8d6f09ccdaf90dc171c20d48e9c76096d",
        "5986ddef6e0d28eaff99ed42d8ce82d6da16e2f5"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jan 28 17:42:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jan 28 17:42:53 2014 +0000"
      },
      "message": "Merge \"Split the config out into two files\""
    },
    {
      "commit": "5986ddef6e0d28eaff99ed42d8ce82d6da16e2f5",
      "tree": "f7858567696f9f1d8e98381b8567601e05a2f4c6",
      "parents": [
        "9f3c545a2366f3ab363b2ec774eda3f4a30c3955"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Jan 27 15:29:16 2014 -0800"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Jan 28 06:31:35 2014 -0800"
      },
      "message": "Split the config out into two files\n\nRather than having embedded config in the yaml file, put the config as\nsomething that probably wants puppet-like variable interpolation, and\nleave the yaml file as a direct list of yaml.\n\nChange-Id: I099ff1b28f66906cfa3e668c160a9ab999f8914f\n"
    },
    {
      "commit": "ad2494b8d6f09ccdaf90dc171c20d48e9c76096d",
      "tree": "edb284faa5acaf4cdb94d6816452271cb94f3b9f",
      "parents": [
        "9f3c545a2366f3ab363b2ec774eda3f4a30c3955"
      ],
      "author": {
        "name": "Khai Do",
        "email": "zaro0508@gmail.com",
        "time": "Mon Jan 27 22:02:02 2014 -0800"
      },
      "committer": {
        "name": "Khai Do",
        "email": "zaro0508@gmail.com",
        "time": "Mon Jan 27 22:10:22 2014 -0800"
      },
      "message": "fix manage_projects with MySQL-Python 1.2.5\n\nMySQL-Python version 1.2.5 execute command only works with dictionary or tuple, older\nversions worked with strings.  This patch makes manage_projects.py compatible with\nnewer version of MySQL-Python.\n\nChange-Id: I502d2f1da3eef8e4c3a907ad7fe2957a325118d9\nCloses-Bug: #1273558\n"
    },
    {
      "commit": "9f3c545a2366f3ab363b2ec774eda3f4a30c3955",
      "tree": "a8dd88d767a8dd7ce26c555b61912769b8298456",
      "parents": [
        "a24ede6ddcf36012191e969d9395ad3cecb4f684"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Jan 27 15:15:25 2014 -0800"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Jan 27 15:51:18 2014 -0800"
      },
      "message": "Lump all defaults reading into one place\n\nTo prep for adding ini support, move all of the default reading into\none lump, the better to if/else it in the next patch.\n\nChange-Id: If869e83ebf150b7a3e089cbd36fd2d319e7c58fc\n"
    },
    {
      "commit": "a24ede6ddcf36012191e969d9395ad3cecb4f684",
      "tree": "48009fe8290d6406313265870fe90f5bb428ba38",
      "parents": [
        "a4dbb01c8a32cd1a4199d2dd46abc487da423723"
      ],
      "author": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Thu Jan 09 11:26:09 2014 +0800"
      },
      "committer": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Fri Jan 10 14:58:43 2014 +0800"
      },
      "message": "Add entrypoint for welcome_message\n\nThe previous patch introducing the welcome_message code neglected to\nadd an entrypoint in jeepyb\u0027s setup.cfg, meaning the executable\nwas not created.\n\nThis patch adds the missing entry point\n\nChange-Id: I38c83f962cb2f8c511e1e3b5ba4d7dac286bdd12\n"
    },
    {
      "commit": "a4dbb01c8a32cd1a4199d2dd46abc487da423723",
      "tree": "8bbe54ec442fe52cad7952465df59cb5ab549ff8",
      "parents": [
        "9c3c2cfd3f6cd3b90a6c4d6f64abe7628dc81519"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Wed Jan 08 06:29:58 2014 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Wed Jan 08 06:29:58 2014 +0000"
      },
      "message": "Correct variables masquerading as strings\n\n* jeepyb/cmd/create_cgitrepos.py: Brown bag fix for variables in\nsheep\u0027s clothing.\n\nChange-Id: I851e8a09b4ebf35c30c791c4b5d630f710cf36f9\n"
    },
    {
      "commit": "9c3c2cfd3f6cd3b90a6c4d6f64abe7628dc81519",
      "tree": "71955b5d47c610725a996885ddc29f1b0ee10eaa",
      "parents": [
        "4e60f41905557d9b827cbbb04dfb09776a5e28c3"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Jan 07 23:56:17 2014 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Wed Jan 08 05:26:02 2014 +0000"
      },
      "message": "Create scratch git repos\n\n* jeepyb/cmd/create_cgitrepos.py: Create empty git repositories\nwhich shadow the publicized repository URLs but are in the form of\nproto://host.example.org/subpath/orgname/project.git instead, where\n\"subpath\" is configurable via a SCRATCH_SUBPATH environment\nvariable. If the variable is not supplied, no scratch projects will\nbe created and this change will be a no-op. Ownership of the\ndirectories can be set similarly with SCRATCH_OWNER and\nSCRATCH_GROUP.\n\nThis is intended to be used for arbitrary throwaway references such\nas those created by openstack-infra/zuul. As such, it is not\nincluded in the browsable cgit WebUI so as to avoid confusion. A\nside effect of this is that any organization name which is the same\nas the scratch subpath will cause the script to abort, ensuring\ncollisions between these do not occur.\n\nChange-Id: Ie111b55dba18e2ecd8bd41394c097cbdc330db18\n"
    },
    {
      "commit": "4e60f41905557d9b827cbbb04dfb09776a5e28c3",
      "tree": "08761ef250ac3df5fad9d6856f3ef06758a57b2c",
      "parents": [
        "8f8ec6e7b44e9f9bad18598c5ba06f97f3408916",
        "7b73168c2e7c307a9ac718087f1acd8af1c69ded"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 30 23:27:16 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 30 23:27:16 2013 +0000"
      },
      "message": "Merge \"Rename launchpad parameter to group\""
    },
    {
      "commit": "8f8ec6e7b44e9f9bad18598c5ba06f97f3408916",
      "tree": "59156e0dbd993754577e52a901ef371ecef32081",
      "parents": [
        "352d63e09f389d343a3bf9ea50dd5273b801bf9f"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Fri Dec 20 11:29:19 2013 -0800"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Tue Dec 24 14:37:31 2013 -0800"
      },
      "message": "Use MySQLDB transactions properly.\n\nmanage_projects._get_group_uuid() was creating cursors on the globally\nmanaged DB connection which put a write lock on the DB tables. This lock\nwas never released breaking subsequent writes to the table in the same\nprocess (lock is released when the connection goes away). This meant\nthat manage_projects could create and read back the UUID for one group,\nbut mutliple group creation failed on the write lock. Fix this by\nperforming a commit() on the db connection after each UUID is read.\n\nChange-Id: I75582f5f4efc9982b4606f7f29665f6ff301ad03\nFixes-bug: 1242569\n"
    },
    {
      "commit": "7b73168c2e7c307a9ac718087f1acd8af1c69ded",
      "tree": "1005a31cdf36e8335a5b805bc3253bf687d6c255",
      "parents": [
        "352d63e09f389d343a3bf9ea50dd5273b801bf9f"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Dec 13 12:01:51 2013 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Dec 20 18:59:53 2013 -0500"
      },
      "message": "Rename launchpad parameter to group\n\nIn anticipation of storyboard, which has project groups, support\na field called \u0027group\u0027 for each project, which will match that project\nto the appropriate group. For launchpad, use group designation as a\nmapping to the bug tracker, if it is different.\n\nChange-Id: Ied726fece9f32b8417e18c50ad52ae9279778399\n"
    },
    {
      "commit": "352d63e09f389d343a3bf9ea50dd5273b801bf9f",
      "tree": "9b9e8f6c7a41866fa96b2b27778ab70b4822c5f7",
      "parents": [
        "cb2006546dcc482c20a97cdd0d028617007d940b",
        "a3a3093b94ba625b8e01eab4013e362b1c169ae1"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Dec 20 01:24:22 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Dec 20 01:24:22 2013 +0000"
      },
      "message": "Merge \"Wait for DB to reflect group UUID updates\""
    },
    {
      "commit": "cb2006546dcc482c20a97cdd0d028617007d940b",
      "tree": "cccbd7bf05c1356cde6799f7f6717f4a79e2d258",
      "parents": [
        "d198f1a61c843a4f42552bed36d618bc13ecd97d",
        "afc6c24a18521ef68e9cf194140c0f552c6690c6"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Dec 19 22:09:15 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Dec 19 22:09:15 2013 +0000"
      },
      "message": "Merge \"Add dryrun flag to welcome_message.py\""
    },
    {
      "commit": "d198f1a61c843a4f42552bed36d618bc13ecd97d",
      "tree": "b85fe4b30b62502e3c989a211ff096fb8fe2fd75",
      "parents": [
        "9da28286b56a5a4d4c5d52edd23e0c6dbcf95cc0",
        "6b9d3caf3a0a0c6c8673087ed7517f17be26d756"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Dec 19 16:00:16 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Dec 19 16:00:16 2013 +0000"
      },
      "message": "Merge \"Rename the subscriber map to be a more generic config file.\""
    },
    {
      "commit": "a3a3093b94ba625b8e01eab4013e362b1c169ae1",
      "tree": "3338a11c8afe474ecb31e5d27d8bfea5bef19522",
      "parents": [
        "9da28286b56a5a4d4c5d52edd23e0c6dbcf95cc0"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Dec 18 11:36:49 2013 -0800"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Dec 18 11:38:03 2013 -0800"
      },
      "message": "Wait for DB to reflect group UUID updates\n\nIn manage_project.py busy wait around the query to retrieve a new\ngroup\u0027s UUID instead of busy waiting around the group listing. The group\nlisting appears to return results before the UUID entry is created in\nthe DB.\n\nChange-Id: I0ee80a0320b12150ce0e0656af5d448c37fd287e\n"
    },
    {
      "commit": "9da28286b56a5a4d4c5d52edd23e0c6dbcf95cc0",
      "tree": "e8ac3bf98b836fad9e33d935f29407438fe5bc1a",
      "parents": [
        "cf1b7bea55255ff6c3214aba4d0fa0c03ccd192c",
        "65218ba26d916297c7c988d5c6650805f7329bc9"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 16 18:47:24 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 16 18:47:24 2013 +0000"
      },
      "message": "Merge \"Add new hook flags for gerrit 2.5\""
    },
    {
      "commit": "cf1b7bea55255ff6c3214aba4d0fa0c03ccd192c",
      "tree": "23ddb9d6eabb0a6e9011001eba266ae3485f4d25",
      "parents": [
        "944da0dd7d88b0903c184ce23a3b8ccca422d6d6",
        "0fdc83abc10444e13cea0a874041618dbe0e229e"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 16 17:28:52 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 16 17:28:52 2013 +0000"
      },
      "message": "Merge \"Remove launchpad mapping for the rest projects\""
    },
    {
      "commit": "944da0dd7d88b0903c184ce23a3b8ccca422d6d6",
      "tree": "05f9df091d09d04129917869539ecf3b3ac851e2",
      "parents": [
        "c8e81679b0dc1c3b349aa86659e9a971a1bc8d66",
        "ed2185880358e05bf2cc214fb188d9efdb5fd9a5"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 16 17:28:34 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 16 17:28:34 2013 +0000"
      },
      "message": "Merge \"Remove launchpad mappings for cookbook-* repos\""
    },
    {
      "commit": "c8e81679b0dc1c3b349aa86659e9a971a1bc8d66",
      "tree": "c85f4fdf1d231d85c07b78643e011b2946eaf560",
      "parents": [
        "057638761e5be8dee38232d189d1d54c1dcf7500",
        "8134832a45febb385ba903ac82117273139d981b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 16 17:28:14 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 16 17:28:14 2013 +0000"
      },
      "message": "Merge \"Remove rest openstack/* repos mappings\""
    },
    {
      "commit": "057638761e5be8dee38232d189d1d54c1dcf7500",
      "tree": "994d0e73c4c064d47304056b64429a048473f7e6",
      "parents": [
        "d49868979701f929ed71dcd66f027a59e760bfc5",
        "e3735719fa2ab31bd2ef0ebd75131d8c4ea6e382"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 16 17:28:12 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 16 17:28:12 2013 +0000"
      },
      "message": "Merge \"Remove launchpad project mappings for -api repos\""
    },
    {
      "commit": "6b9d3caf3a0a0c6c8673087ed7517f17be26d756",
      "tree": "4afaabf2ba5d473852294fdefcb8d3dd2290719c",
      "parents": [
        "d49868979701f929ed71dcd66f027a59e760bfc5"
      ],
      "author": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Sat Dec 14 06:36:33 2013 +1100"
      },
      "committer": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Sat Dec 14 07:43:11 2013 +1100"
      },
      "message": "Rename the subscriber map to be a more generic config file.\n\nNow I want to be able to configure other things (like the mapping of\ngit repos to launchpad projects), so make the way we refer to the\nconfiguration file more generic.\n\nChange-Id: I6b803d028ea76ae010bfd49ed9174df944fb3044\n"
    },
    {
      "commit": "afc6c24a18521ef68e9cf194140c0f552c6690c6",
      "tree": "3099d5e5c0de8ef6fcab3c9fa308f82b2e0fe90e",
      "parents": [
        "d49868979701f929ed71dcd66f027a59e760bfc5"
      ],
      "author": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Fri Dec 13 08:50:43 2013 +0800"
      },
      "committer": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Fri Dec 13 08:50:43 2013 +0800"
      },
      "message": "Add dryrun flag to welcome_message.py\n\nIn order to test this properly, we need a way to specify\nnot to post the message. This patch adds a new flag \"--dryrun\"\nwhich will prevent the invocation of the method that posts\nthe message.\n\nMinor logging changes were made to ensure we can still get info\nabout what\u0027s going on when in dry run mode.\n\nChange-Id: I5cdb00bf89a1a83d70d03ec4a2ca7aae7651b4b3\n"
    },
    {
      "commit": "d49868979701f929ed71dcd66f027a59e760bfc5",
      "tree": "0a1ce862d9b890b1a0d027844050598364fc9045",
      "parents": [
        "1caeeae0cfcab0b9c7f74a338c283c1e572d6ec0"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Dec 10 23:56:48 2013 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Wed Dec 11 23:35:58 2013 +0000"
      },
      "message": "Link git.o.o in bug updates\n\n* jeepyb/cmd/update_bug.py: Formerly URLs were provided to\ngithub.com but we have somewhere better to send browsers now.\n\nChange-Id: I2d738f163374324241b15aef285f126f85ddc5d2\n"
    },
    {
      "commit": "65218ba26d916297c7c988d5c6650805f7329bc9",
      "tree": "ed0b1965499a8906645acc98bf63f5f54595d92b",
      "parents": [
        "1caeeae0cfcab0b9c7f74a338c283c1e572d6ec0"
      ],
      "author": {
        "name": "Paul Belanger",
        "email": "paul.belanger@polybeacon.com",
        "time": "Wed Dec 11 15:38:08 2013 -0500"
      },
      "committer": {
        "name": "Paul Belanger",
        "email": "paul.belanger@polybeacon.com",
        "time": "Wed Dec 11 15:38:58 2013 -0500"
      },
      "message": "Add new hook flags for gerrit 2.5\n\nCurrently, the flags do nothing, except allow gerrit 2.5 to use\nupdate-bugs again.\n\nChange-Id: If6e17766bd5719af7739c546bbb764e2f797c601\nSigned-off-by: Paul Belanger \u003cpaul.belanger@polybeacon.com\u003e\n"
    },
    {
      "commit": "1caeeae0cfcab0b9c7f74a338c283c1e572d6ec0",
      "tree": "44962fef156b20356f9d34c661ab3bb348b41ce1",
      "parents": [
        "fc37932b2efb44f30226139c2be89425ff919207",
        "121648c325d3c26fe28900840e48cf9bba524856"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 09 21:32:54 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 09 21:32:54 2013 +0000"
      },
      "message": "Merge \"Remove openstack-infra projects mappings to LP\""
    },
    {
      "commit": "fc37932b2efb44f30226139c2be89425ff919207",
      "tree": "5ac1ade68cb6f285fea713828cdeb412f83ebddc",
      "parents": [
        "1ea74cd7d57841b2cbee26e930eafa3dd7fdf638",
        "d3393475d1b240dffcbc32360b88f016f9ecc425"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 09 18:53:25 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 09 18:53:25 2013 +0000"
      },
      "message": "Merge \"Add script to post a gerrit welcome message\""
    },
    {
      "commit": "0fdc83abc10444e13cea0a874041618dbe0e229e",
      "tree": "c18cd35c2b3d76f3f94e038a43c81eb1edb46933",
      "parents": [
        "ed2185880358e05bf2cc214fb188d9efdb5fd9a5"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:12:53 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:16:26 2013 +0400"
      },
      "message": "Remove launchpad mapping for the rest projects\n\nIn addition it removes mechanism to hardcode repo to launchpad mappings.\n\nDepends on: Change-Id: I5af5c73b716824cc4250db8f1d671aaa69e1fdba\n\nChange-Id: Ibde5862f6af2a4533d58bef8ec105bca4bc60a02\n"
    },
    {
      "commit": "ed2185880358e05bf2cc214fb188d9efdb5fd9a5",
      "tree": "819d4e7f9054a194310b724c97a06475e642649d",
      "parents": [
        "8134832a45febb385ba903ac82117273139d981b"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:10:40 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:16:09 2013 +0400"
      },
      "message": "Remove launchpad mappings for cookbook-* repos\n\nDepends on: Change-Id: Iafbf2c0849f2e08ec8c784b93a3e524a05bc38ea\n\nChange-Id: I05333ce8f242569d257996fab459d1587bcbf15b\n"
    },
    {
      "commit": "8134832a45febb385ba903ac82117273139d981b",
      "tree": "3371b56110ee7d9eec51dbf24f50a6bab6bcf0d6",
      "parents": [
        "e3735719fa2ab31bd2ef0ebd75131d8c4ea6e382"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 22:46:14 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:15:46 2013 +0400"
      },
      "message": "Remove rest openstack/* repos mappings\n\nIn addition it removes unneded quantum repos mapping, because there are\nno more repos named \u0027openstack/quantum\u0027 and \u0027openstack/python-quantumclient\u0027.\n\nDepends on: Change-Id: Ifaa8e7eeccaaa1187001ccff6bca5e0150ea9b79\n\nChange-Id: I959d8d7cdc737e485bda675150f204df4019dffd\n"
    },
    {
      "commit": "e3735719fa2ab31bd2ef0ebd75131d8c4ea6e382",
      "tree": "4a1dd4bb9d4a3674aa7c4b4d9890fc85b480e343",
      "parents": [
        "121648c325d3c26fe28900840e48cf9bba524856"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 22:44:32 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:15:24 2013 +0400"
      },
      "message": "Remove launchpad project mappings for -api repos\n\nDepends on: Change-Id: I77b8df96bd207735150c418c76c0365732f98e44\n\nChange-Id: Ib854640979a5fee69a32335b2894c2d538d8a62f\n"
    },
    {
      "commit": "121648c325d3c26fe28900840e48cf9bba524856",
      "tree": "3684a03455827f840db964c3382efe3abbd3c399",
      "parents": [
        "1ea74cd7d57841b2cbee26e930eafa3dd7fdf638"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Thu Dec 05 23:34:57 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:14:12 2013 +0400"
      },
      "message": "Remove openstack-infra projects mappings to LP\n\nDepends on Change-Id: I037bd9441cb129ef2b5bf172b00241ac52bec2a8\n\nChange-Id: I037bd9441cb129ef2b5bf172b00241ac52bec2a8\n"
    },
    {
      "commit": "1ea74cd7d57841b2cbee26e930eafa3dd7fdf638",
      "tree": "36b28ba11ab88bf764e1d37854331591c1bc353d",
      "parents": [
        "af3ef73ccad0e69888b2ce59722ed20695eb6245"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Thu Dec 05 08:33:17 2013 -0800"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Thu Dec 05 09:58:11 2013 -0800"
      },
      "message": "Update tripleo project name mappings\n\nAlso, re-sort.\n\nChange-Id: If4849cf1ed2f1ed3f87ec893ed33cf4faef980e3\n"
    },
    {
      "commit": "af3ef73ccad0e69888b2ce59722ed20695eb6245",
      "tree": "d3f2c834d2871d9c625717240ec3297b2f3d00a3",
      "parents": [
        "ac7623e0adf100ae5bad941b4d841b3b3ee72bad",
        "5257eb0345dd8a35f0c11076ecd0175af5bbee26"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Dec 05 00:18:37 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Dec 05 00:18:37 2013 +0000"
      },
      "message": "Merge \"Ignore E125 and H flake8 violations.\""
    },
    {
      "commit": "d3393475d1b240dffcbc32360b88f016f9ecc425",
      "tree": "898727dbd51eab1b95f004ba0ea338db174f2183",
      "parents": [
        "47a6f3a1cd69f4c3a05bb09761cecfddab0f9828"
      ],
      "author": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Thu Nov 28 12:27:56 2013 +1100"
      },
      "committer": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Wed Dec 04 09:21:19 2013 +1100"
      },
      "message": "Add script to post a gerrit welcome message\n\nThis script, to be triggered by the patchset-created hook in gerrit,\nwill post a welcoming message on new contributions from people who\nhave never contributed to OpenStack before.\n\nThe aim is to increase awareness of the place of code review in our\ncommunity, and encourage users to participate, while managing\nexpectations.\n\nThe plan is to merge this, then test thoroughly on review-dev with\na range of cases, including:\n* First time patch (post message)\n* Patch after change of email (no message)\n* Patch after existing patch (no message)\n\nChange-Id: I7bb2baeb37d3700ff07f39a8a29b4eaf41f5cd40\nPartial-Bug: 1246879\n"
    },
    {
      "commit": "5257eb0345dd8a35f0c11076ecd0175af5bbee26",
      "tree": "93d91640c15edc3382be122ab1eac50770c02a14",
      "parents": [
        "b04e7e4efec397ac51ed3b010d238bd4fc8ea3f0"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Tue Dec 03 10:19:04 2013 -0800"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Tue Dec 03 10:19:04 2013 -0800"
      },
      "message": "Ignore E125 and H flake8 violations.\n\nChange-Id: Ib0d2c8c07abca53f3fdcd0734d571d1f35b41214\n"
    },
    {
      "commit": "ac7623e0adf100ae5bad941b4d841b3b3ee72bad",
      "tree": "a9aa741a14cd109048a8cc98dc283a1acb397db2",
      "parents": [
        "b04e7e4efec397ac51ed3b010d238bd4fc8ea3f0"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Mon Dec 02 16:38:52 2013 -0800"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Tue Dec 03 10:17:07 2013 -0800"
      },
      "message": "Always sleep after group creation\n\nGerrit group creation appears to be very asynchronous making ACL pushes\nafter group creation prone to races. Always sleep for at least one\nsecond after group creation in an attempt to mitigate this problem.\n\nChange-Id: I80e5fa56f8bd426d3616e492368300f49e5ea06b\n"
    },
    {
      "commit": "b04e7e4efec397ac51ed3b010d238bd4fc8ea3f0",
      "tree": "66fea8ceb7625c4d72f1738f9f145699142905a4",
      "parents": [
        "e3903d9d13c9815f71a6f9ae02c529e577f67716",
        "dd9520792a324b40d2848abc72fd5891eb37bce6"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 02 19:23:36 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 02 19:23:36 2013 +0000"
      },
      "message": "Merge \"Do github last\""
    },
    {
      "commit": "e3903d9d13c9815f71a6f9ae02c529e577f67716",
      "tree": "d99f830bc6f2416867b2c87915ff699812336031",
      "parents": [
        "6d6304f8c06a350e0ab94437ebf1eda620985537",
        "b3f398a5d535f0189a707e2b45467aa37e85f493"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 02 19:23:19 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 02 19:23:19 2013 +0000"
      },
      "message": "Merge \"Catch errors centrally, and bail out more\""
    },
    {
      "commit": "6d6304f8c06a350e0ab94437ebf1eda620985537",
      "tree": "122ec9f9b3939b76d30978b3a829a0d08e3012b1",
      "parents": [
        "dc800fb306730f1fd40fa323e9e8094090fb7ae9",
        "a2b12006a76eb3ea990d20c1a3196481fccdc5e2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 02 19:23:18 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 02 19:23:18 2013 +0000"
      },
      "message": "Merge \"Refactor manage-projects for readability\""
    },
    {
      "commit": "dd9520792a324b40d2848abc72fd5891eb37bce6",
      "tree": "2c29903ff3e53bd42ed2b973d87b227f820dc846",
      "parents": [
        "b3f398a5d535f0189a707e2b45467aa37e85f493"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Nov 28 18:20:42 2013 -0500"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Mon Dec 02 11:13:53 2013 -0800"
      },
      "message": "Do github last\n\ngithub project creation is really only a convenience, but API errors\ncause other things to get borked from time to time. Move the interaction\nwith github to the very end, after we\u0027ve done all of the things that\nexist in our own backyard. Additionally, if we create the project in\ngithub, it\u0027s possible we did it later on, so go ahead and trigger a\nreplication\n\nChange-Id: I51572afe41f7ec9977ea7c17a90bd4df49b9a0f1\nCloses-bug: #1242569\n"
    },
    {
      "commit": "b3f398a5d535f0189a707e2b45467aa37e85f493",
      "tree": "0d2b692bfa78b6973e5282a46beddf162cfe51cb",
      "parents": [
        "a2b12006a76eb3ea990d20c1a3196481fccdc5e2"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Nov 28 18:07:23 2013 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Dec 02 13:28:18 2013 -0500"
      },
      "message": "Catch errors centrally, and bail out more\n\nWe want to be more resilient against parts of things failing. For that,\nwe need to be able to bail out of the loop when things bork. Put in a\ncentral loop exception processor, and throw things from the functions.\n\nChange-Id: I5d9b30e1403634909ad45c27af7c975d815a9538\n"
    },
    {
      "commit": "dc800fb306730f1fd40fa323e9e8094090fb7ae9",
      "tree": "f18bcd45ca4eb5f701ab708d7347e53efb400d93",
      "parents": [
        "47a6f3a1cd69f4c3a05bb09761cecfddab0f9828",
        "9c0de72df5c7765773e4be2c2ede7fe23b8ddcd4"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 02 00:35:06 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 02 00:35:06 2013 +0000"
      },
      "message": "Merge \"Savanna client is now using separated LP project\""
    },
    {
      "commit": "a2b12006a76eb3ea990d20c1a3196481fccdc5e2",
      "tree": "e03180057ba37eb76533c6b43fdfcc62805c304d",
      "parents": [
        "47a6f3a1cd69f4c3a05bb09761cecfddab0f9828"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Nov 28 12:30:27 2013 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Nov 28 12:30:27 2013 -0500"
      },
      "message": "Refactor manage-projects for readability\n\nThis changes absolutely no functionality - it\u0027s merely extracting parts\nof the really long function into subfunctions. It should make further\nrefactoring of sequencing and error conditions easier to reason about.\n\nChange-Id: I288a03f631faa1b4596e3fd5d5e1613ff2525b6e\n"
    },
    {
      "commit": "47a6f3a1cd69f4c3a05bb09761cecfddab0f9828",
      "tree": "b69e66f20bf59422c59ee04a6c1a2dd3c48fe190",
      "parents": [
        "a0042da79f68f04f3e946143fba60f79106c4311",
        "e5c1eed09065e5d2da67d72526be42fe05287c4e"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Nov 25 22:27:18 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Nov 25 22:27:18 2013 +0000"
      },
      "message": "Merge \"Only push tags to gerrit\""
    },
    {
      "commit": "a0042da79f68f04f3e946143fba60f79106c4311",
      "tree": "824ae12ec4dbba8d5436ccf1c9e36ed1919f18a3",
      "parents": [
        "88e8b02fd1076bec0f0e29632576e5db9e3b7f0f",
        "b46a447b7064a4baa01a553111566cc45c33ba61"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Nov 25 22:27:17 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Nov 25 22:27:17 2013 +0000"
      },
      "message": "Merge \"Remove run-mirror from jeepyb\""
    },
    {
      "commit": "9c0de72df5c7765773e4be2c2ede7fe23b8ddcd4",
      "tree": "05104e60435262b5f2026f2f01fbcc7cd5f0c28e",
      "parents": [
        "88e8b02fd1076bec0f0e29632576e5db9e3b7f0f"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Thu Nov 21 23:46:08 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Sat Nov 23 11:56:12 2013 +0400"
      },
      "message": "Savanna client is now using separated LP project\n\nSo, there is no need to keep python-savannaclient repo to savanna LP\nproject mapping. By default, all repo mapped to the LP projects with the\nsame name.\n\nChange-Id: I66e7bece5304c06481703fdf33bd5606b3b05df9\n"
    },
    {
      "commit": "88e8b02fd1076bec0f0e29632576e5db9e3b7f0f",
      "tree": "4cbd868602ef6e2ad96e11369d1d0546fab906bb",
      "parents": [
        "7263d716592f1af51ee09fa0108b67f5cf2c4ebe",
        "ec0330fdf8e6582d1fa51162fab7ccd706e68711"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Nov 22 22:36:45 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Nov 22 22:36:45 2013 +0000"
      },
      "message": "Merge \"Allow automatic subscription to DocImpact bugs\""
    },
    {
      "commit": "ec0330fdf8e6582d1fa51162fab7ccd706e68711",
      "tree": "11ddd17bbf671b00dedbfc9b7e739c7f166bc8e7",
      "parents": [
        "032cd9820795d4309ca98503741ebb4b42b95a41"
      ],
      "author": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Wed Nov 13 18:51:48 2013 +1100"
      },
      "committer": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Wed Nov 20 09:09:01 2013 +1100"
      },
      "message": "Allow automatic subscription to DocImpact bugs\n\nOur team\u0027s tech writer has a problem finding the DocImpact bugs\nthat our team has created, which is something she wants to do so\nthat she can make sure our team\u0027s work is well documented.\n\nInstead of writing a horrible script to hack around this, I thought\nI\u0027d fix the problem generically, as I can imagine that this is\nsomething that other teams might be interested in implementing.\n\nI\u0027ve also added some documentation on how to test this script, as\nwell as a sample config file for the subscriptions handling. If\nsomeone wants to point me to the right place in puppet to add a\nreal configuration file, I am happy to do that too.\n\nFor reference, the configuration file is passed with the\n--auto-subscriptions flag and the format of the configuration\nfile is documented in the code itself.\n\nChange-Id: I5553bf94107912bc019cea4baedf639cadc6e314\n"
    },
    {
      "commit": "7263d716592f1af51ee09fa0108b67f5cf2c4ebe",
      "tree": "e62839501b7fdd75fede380f29414846bc3030ed",
      "parents": [
        "dff881b15458b00b370cbf76be619019dc8001e0"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Thu Nov 14 15:34:59 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Nov 15 11:51:01 2013 +0400"
      },
      "message": "Fix savanna repos mappings\n\nChange-Id: I3aa75aac68618b7fa73390f7c4b710d1d96cc2ba\n"
    },
    {
      "commit": "dff881b15458b00b370cbf76be619019dc8001e0",
      "tree": "0e9cc159def944248cc315be9328cd6cf4a693f4",
      "parents": [
        "032cd9820795d4309ca98503741ebb4b42b95a41"
      ],
      "author": {
        "name": "Evgeniy L",
        "email": "eli@mirantis.com",
        "time": "Wed Nov 13 16:34:57 2013 +0400"
      },
      "committer": {
        "name": "Evgeniy L",
        "email": "eli@mirantis.com",
        "time": "Wed Nov 13 16:37:53 2013 +0400"
      },
      "message": "Map all fuel stackforge repos to fuel at launchpad\n\nChange-Id: I132c2c8f4a1ed03397ef87146a32181ea8fa188f\n"
    },
    {
      "commit": "b46a447b7064a4baa01a553111566cc45c33ba61",
      "tree": "8e8d393ff1dfdee45e4de2ed95d80bec33eceb87",
      "parents": [
        "032cd9820795d4309ca98503741ebb4b42b95a41"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Nov 12 16:10:14 2013 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Nov 12 16:10:14 2013 -0500"
      },
      "message": "Remove run-mirror from jeepyb\n\nrun-mirror is now contained in pypi-mirror.\n\nChange-Id: Idce50c39fc043c1ed0cca9ce11da314142e4c0ba\n"
    },
    {
      "commit": "032cd9820795d4309ca98503741ebb4b42b95a41",
      "tree": "f8d5a6f67dd7589174fcdb8efdf3beec0bb672f0",
      "parents": [
        "39948a3fe3e753da982af1a57a986f34b81ac1cb",
        "bbb29ac5d8093ab0f0273ae9a76b531411106985"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Nov 11 05:38:07 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Nov 11 05:38:07 2013 +0000"
      },
      "message": "Merge \"New headers argument for github.Issue.Issue\""
    },
    {
      "commit": "e5c1eed09065e5d2da67d72526be42fe05287c4e",
      "tree": "3451c87fb51e972aa52a707bb68a78ea633b8124",
      "parents": [
        "39948a3fe3e753da982af1a57a986f34b81ac1cb"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Wed Oct 23 08:55:13 2013 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Oct 24 23:16:29 2013 -0400"
      },
      "message": "Only push tags to gerrit\n\nA bare push will attempt to push tags back to upstream repos, which will\nnot work.\n\nChange-Id: Id516a792a00d1773274fc04bd3fd2c447c9cbd95\n"
    },
    {
      "commit": "39948a3fe3e753da982af1a57a986f34b81ac1cb",
      "tree": "03642d28329721a2340a6be5d9d3f347ab528e33",
      "parents": [
        "f5b1118bc99d74bcdaa205de60ba013be655ce51",
        "7ed49101aef73c3c98df64ef75862b5099d399f2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Oct 19 13:30:43 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Oct 19 13:30:43 2013 +0000"
      },
      "message": "Merge \"Remove now-deprecated fetch-remotes command\""
    },
    {
      "commit": "f5b1118bc99d74bcdaa205de60ba013be655ce51",
      "tree": "a20e8d41ee52e46fd0d6d2aa82fa2223cf1ccb90",
      "parents": [
        "d211fa570da0761346292d7a93a81b25cba8d3f4"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Oct 18 19:32:03 2013 -0400"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Oct 18 19:32:03 2013 -0400"
      },
      "message": "Add s to the end of format string\n\nChange-Id: I7dba1e9115cc266ca4baccde7a2c206aea0cadc7\n"
    },
    {
      "commit": "d211fa570da0761346292d7a93a81b25cba8d3f4",
      "tree": "a3467921e5bea319a63c7b977df4286e3afbd5a5",
      "parents": [
        "a54b0afad6db2ff09a74cdbab2bb620020a23fd1"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Wed Oct 16 19:34:07 2013 +0000"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Fri Oct 18 13:22:59 2013 -0700"
      },
      "message": "Create local git mirror _after_ creating project\n\n* jeepyb/cmd/manage_projects.py: Gerrit\u0027s create-project API calls\nare refused with a \"fatal: project xyzzy exists\" error if its\nrepository is already present on disk. In fact, the same is true if\nit\u0027s configured to perform local replication and the destination\nreplication directory for a new project already exists.\nConditionally create these directories only after creating the\nproject in Gerrit, avoiding further pain.\n\nChange-Id: I3d7545a348187dfce3eba1ec93a976bb510668f3\n"
    },
    {
      "commit": "bbb29ac5d8093ab0f0273ae9a76b531411106985",
      "tree": "754dc3413730e64df89d2f21766116fbe3b12dad",
      "parents": [
        "a54b0afad6db2ff09a74cdbab2bb620020a23fd1"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Oct 15 18:56:50 2013 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Oct 15 18:56:50 2013 +0000"
      },
      "message": "New headers argument for github.Issue.Issue\n\n* jeepyb/cmd/close_pull_requests.py: The pygithub module added a new\npositional argument for headers in the middle of other positional\narguments to the __init__ method for CompletableGithubObject. This\nchange passes an empty dict in for it to get the pull request closer\nworking again, and also adds names for the other arguments so they\nwill be easier to diagnose if this happens again.\n\nChange-Id: Iea2913a9c76b564e9e5186fb970032696d292c86\n"
    },
    {
      "commit": "a54b0afad6db2ff09a74cdbab2bb620020a23fd1",
      "tree": "d95db0ab5a1a4c87c8f69c572a54978056fdd397",
      "parents": [
        "f8b2b6220a0e7766ffbe46f4a7352e498261649c"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Oct 15 13:42:59 2013 -0300"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Oct 15 13:43:15 2013 -0300"
      },
      "message": "Do not force push branches please\n\nThe + in the refspec tells it to overwrite, but when we\u0027re doing\nupstream tracking, that could override code that we\u0027re doing locally.\n\nChange-Id: Id56fc7230912bf21218fed5f6acff9cb9456fee9\n"
    },
    {
      "commit": "f8b2b6220a0e7766ffbe46f4a7352e498261649c",
      "tree": "1d8e3727955d1e737ec468035124e9d0f74ba27e",
      "parents": [
        "7126209a5eab8b280224cd4010103d9909d6bc55"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Oct 12 20:51:25 2013 -0400"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Oct 12 20:51:25 2013 -0400"
      },
      "message": "Put in a reset --hard to clean up\n\nIf something goes wrong, we can leave changes in the dir, which makes\nswitching branches back and starting over hard. If we just reset before\nthe master checkout, then we can easily run again.\n\nChange-Id: Ie31708b70c87078fbb0ee8c6ddf820715076e71b\n"
    },
    {
      "commit": "7126209a5eab8b280224cd4010103d9909d6bc55",
      "tree": "0a2964daab5fd4feeb9ada7e3fea7336b777edca",
      "parents": [
        "66d1b049e88c2ce1d14ce0e5f93002ca77ca0a33"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Oct 12 20:47:21 2013 -0400"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Oct 12 20:47:21 2013 -0400"
      },
      "message": "Handle running fetch_config more than once\n\nThe logic before assumed we\u0027d be in a fresh repo - but we are no longer.\nSo change the logic to use -B which will remake and reset the branch,\nwhich is actually what we want.\n\nChange-Id: Ic216999b68bec5fb22acef3c5c1f09e49532e5c4\n"
    },
    {
      "commit": "66d1b049e88c2ce1d14ce0e5f93002ca77ca0a33",
      "tree": "0cbf013e4de00c9efa47c7653f5ea99054a8d48f",
      "parents": [
        "e86214d5f5073baafc43788037d5ecbf695e7385",
        "90a630fc519cead720dad5a5a809bf5d2e7cf21e"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Oct 12 18:02:08 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Oct 12 18:02:08 2013 +0000"
      },
      "message": "Merge \"Do repo processing in an existing local dir\""
    },
    {
      "commit": "7ed49101aef73c3c98df64ef75862b5099d399f2",
      "tree": "6301432661d93d74d1e64e8dd956497aada60ed7",
      "parents": [
        "90a630fc519cead720dad5a5a809bf5d2e7cf21e"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sun Oct 06 13:54:08 2013 -0400"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Oct 08 11:06:51 2013 -0400"
      },
      "message": "Remove now-deprecated fetch-remotes command\n\nmanage-projects does this for us, so there is no reason to have\nfetch-remotes anymore.\n\nChange-Id: I919852237f34f3117ff02f8c6babb6da78126874\n"
    },
    {
      "commit": "90a630fc519cead720dad5a5a809bf5d2e7cf21e",
      "tree": "e88475a4195343aae8b0e37a2d34521a7099c2e9",
      "parents": [
        "d4a7867c61d32df29a569cef5ac16bff2c1a719b"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Wed Jul 03 12:45:26 2013 -0700"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Oct 08 11:06:48 2013 -0400"
      },
      "message": "Do repo processing in an existing local dir\n\nKeep repos around so that we can do smarter things with them\naroud processing remotes and tracking descriptions.\n\nChanges upstream tracking from mucking with repos behind gerrit to\npushing in changes with the push command, which should allow for zuul\nto take action based on receiving new refs from upstream.`\n\nChange-Id: I9e79489b7c724db1320272f75a7da2c2b4c24607\n"
    },
    {
      "commit": "e86214d5f5073baafc43788037d5ecbf695e7385",
      "tree": "c8ce481e174ada62c2f7b4a00ca4e423a96ffe43",
      "parents": [
        "d4a7867c61d32df29a569cef5ac16bff2c1a719b"
      ],
      "author": {
        "name": "David Lyle",
        "email": "david.lyle@hp.com",
        "time": "Fri Oct 04 09:06:42 2013 -0600"
      },
      "committer": {
        "name": "David Lyle",
        "email": "david.lyle@hp.com",
        "time": "Fri Oct 04 09:08:24 2013 -0600"
      },
      "message": "add mapping for django_openstack_auth\n\nLaunchpad does not support \u0027_\u0027 in project names so adding a mapping\nfrom the git project to the launchpad project.\n\nChange-Id: I9f51b86eba2bdeaecf7f98549a4e19394fc5b6a3\n"
    },
    {
      "commit": "d4a7867c61d32df29a569cef5ac16bff2c1a719b",
      "tree": "fb8f8142028715bb3f37fcb0f3a4fe03d5860c14",
      "parents": [
        "4b8b5db1e51de98df51e46d51a97b02a35f52254",
        "320d1507b8d7395580e5b53580fde4771922c45d"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Oct 02 22:41:12 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Oct 02 22:41:12 2013 +0000"
      },
      "message": "Merge \"Wait for groups to be created before getting uuids\""
    },
    {
      "commit": "4b8b5db1e51de98df51e46d51a97b02a35f52254",
      "tree": "76900297bceec804408e4793a62a68355f0eb1a2",
      "parents": [
        "0f558cdb0ac41f6786ff08c928bbfa0be2966ff4",
        "796eada538ab19fe11feb60d3803c53cd1957231"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Oct 02 22:39:53 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Oct 02 22:39:53 2013 +0000"
      },
      "message": "Merge \"Use python logging isntead of print\""
    },
    {
      "commit": "0f558cdb0ac41f6786ff08c928bbfa0be2966ff4",
      "tree": "b2f7dd2c4c95c6140e928673137a6d4a7b6137eb",
      "parents": [
        "32a6775fd5cf8fcbaa3be278969f66e2814a3016"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Mon Jul 22 12:54:52 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Thu Sep 26 21:49:20 2013 +0400"
      },
      "message": "Map all savanna repos to savanna at launchpad\n\nChange-Id: I33d23cb0cba8afd632b989b127c8a017da4c3b43\n"
    },
    {
      "commit": "32a6775fd5cf8fcbaa3be278969f66e2814a3016",
      "tree": "c543d5a77ffca875b7f7bafb4c4e0a32f3508909",
      "parents": [
        "268f92f0c65b6516fcff46b1446091422dcd594d"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Tue Sep 10 00:41:20 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Thu Sep 26 21:49:19 2013 +0400"
      },
      "message": "Improve git2lp and is_direct_release behaviour\n\n* git2lp and is_direct_release are now functions extracted to the projects.py;\n* git2lp and is_direct_release mappings are now loaded from projects.yaml;\n* temporarily old mappings are used if no info found in projects.yaml.\n\nFixes: bug #1202820\nFixes: bug #1202800\nFixes: bug #1082792\n\nChange-Id: I487761d110cf781acea26b997486ea24a7deb25e\n"
    },
    {
      "commit": "320d1507b8d7395580e5b53580fde4771922c45d",
      "tree": "d3a5469ad90316f6c0b46f7e15df442a7eb4fee4",
      "parents": [
        "796eada538ab19fe11feb60d3803c53cd1957231"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Sep 25 11:05:42 2013 -0700"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Sep 25 11:21:05 2013 -0700"
      },
      "message": "Wait for groups to be created before getting uuids\n\n* jeepyb/cmd/manage_projects.py: When it is necessary to create a group\nin gerrit, check that the group appears in ls-groups before getting the\ngroup UUID from the database. Otherwise there is a race with\ncreate-group and updating the databse that can result in the UUID not\nbeing present in the DB.\n\nChange-Id: I7733e5550e493ec72d9afe022f1d1426d3f15f83\n"
    },
    {
      "commit": "796eada538ab19fe11feb60d3803c53cd1957231",
      "tree": "3315b8586db381d6477445ec0ae3149cb3b5f54e",
      "parents": [
        "268f92f0c65b6516fcff46b1446091422dcd594d"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Sep 25 10:51:35 2013 -0700"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Sep 25 11:21:03 2013 -0700"
      },
      "message": "Use python logging isntead of print\n\n* jeepyb/cmd/manage_projects.py: Record errors with python logging\ninstead of printing to stdout. Additionally add some logging in places\nwhere it was lacking (where exceptions may potentially be thrown) and\nwhere we return error.\n\nChange-Id: I9e0712e3c0d363230058de7222248b802e333dd4\n"
    },
    {
      "commit": "268f92f0c65b6516fcff46b1446091422dcd594d",
      "tree": "def2aa688f7efed37e92ddbb46dec3ee0f86b33d",
      "parents": [
        "8392500c69673ae65cadf87d0825d1f8603e56e9"
      ],
      "author": {
        "name": "Matthew Treinish",
        "email": "treinish@linux.vnet.ibm.com",
        "time": "Mon Sep 23 16:44:50 2013 -0400"
      },
      "committer": {
        "name": "Matthew Treinish",
        "email": "treinish@linux.vnet.ibm.com",
        "time": "Mon Sep 23 16:44:50 2013 -0400"
      },
      "message": "Revert \"Remove tempest from list of projects that direct release.\"\n\nThis reverts commit e127f9a88aee7512c97e92b9eb07a9632154616a.\n\nAfter a recent discussion during the QA weekly irc meeting it was\ndecided that that tempest bugs should be marked as fixed released\nimmediately after the fix is merged.\n\nChange-Id: I3a55552ec03114f63f8a694060388ae40de55d64\n"
    },
    {
      "commit": "8392500c69673ae65cadf87d0825d1f8603e56e9",
      "tree": "5d1e9bb7f3643589fbad81b4c9e2ab74862da410",
      "parents": [
        "94d440f0a7e6b1c633bdc65148670dbec3335091",
        "be229cb702b93b3ff4b6984ff30648a0dacbb304"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Sep 23 20:35:13 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Sep 23 20:35:13 2013 +0000"
      },
      "message": "Merge \"Alter comments left on \u0027Related\u0027 bugs\""
    },
    {
      "commit": "94d440f0a7e6b1c633bdc65148670dbec3335091",
      "tree": "2563c9659a1fbed647e6bbbeea82a744a9460736",
      "parents": [
        "0e0ed0287ba1a885ed4a74e6c85f7fa2ee1a2821",
        "af4705a143202b58fcd2711c56a46014cbb8d749"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Sep 21 17:28:21 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Sep 21 17:28:21 2013 +0000"
      },
      "message": "Merge \"Fix logic in doc impact\""
    },
    {
      "commit": "af4705a143202b58fcd2711c56a46014cbb8d749",
      "tree": "644e977fa72d6a9383ebf3da38ec10d121ed7470",
      "parents": [
        "cf1aef2067518565269c89e04168a113f3117d9b"
      ],
      "author": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Mon Sep 16 16:23:59 2013 +0800"
      },
      "committer": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Mon Sep 16 16:23:59 2013 +0800"
      },
      "message": "Fix logic in doc impact\n\nPrevious patch was supposed to update notify_impact\nso that doc impact flags only triggered bugs on change\nmerge. This worked, however the branch logic was flawed,\nmeaning that non-merging changes now trigger emails.\n\nThis patch fixes for the desired behaviour\n\nChange-Id: I3b028319c026bce84d4641e417aed9e8e0f52063\n"
    },
    {
      "commit": "0e0ed0287ba1a885ed4a74e6c85f7fa2ee1a2821",
      "tree": "88159b1604b289a799206f1e2c470446c2895099",
      "parents": [
        "cf1aef2067518565269c89e04168a113f3117d9b"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Sep 13 10:57:56 2013 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Sep 13 10:57:56 2013 -0500"
      },
      "message": "Remove d2to1 usage\n\nWe don\u0027t need d2to1 anymore.\n\nChange-Id: Icbfa11f844600720b344a304439162ba5e49cc9d\n"
    },
    {
      "commit": "be229cb702b93b3ff4b6984ff30648a0dacbb304",
      "tree": "defb80c2605d784c108939a367606d10b43e458e",
      "parents": [
        "cf1aef2067518565269c89e04168a113f3117d9b"
      ],
      "author": {
        "name": "Thierry Carrez",
        "email": "thierry@openstack.org",
        "time": "Fri Sep 13 15:38:09 2013 +0200"
      },
      "committer": {
        "name": "Thierry Carrez",
        "email": "thierry@openstack.org",
        "time": "Fri Sep 13 15:59:05 2013 +0200"
      },
      "message": "Alter comments left on \u0027Related\u0027 bugs\n\nAvoid posting confusing \u0027Fix proposed\u0027 or \u0027Fix merged\u0027 comments for\n\u0027Related\u0027 bugs.\n\nThis also fixes a latent bug (the \u0027add_comment\u0027 task was not really\ntaken into consideration before actually adding a comment).\n\nFixes bug: #1218044\n\nChange-Id: Ic287050cf5dcf690239484038fb957e897df886f\n"
    },
    {
      "commit": "cf1aef2067518565269c89e04168a113f3117d9b",
      "tree": "c1df9be9d473fe304dad36bf9bde8e8d0e8dc555",
      "parents": [
        "766973dc8ff5886a432dd181c3530cd2fb2b3501"
      ],
      "author": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Tue Sep 10 09:50:51 2013 -0700"
      },
      "committer": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Tue Sep 10 09:59:25 2013 -0700"
      },
      "message": "Update doc impact to only make bugs on merge\n\nThroughout the Havana release, the use of doc impact in commit\nmessages has created many helpful bugs for the documentation team.\n\nHowever, the initial plan where the flags inclusion would alert doc\nteam to take a look at patches while under review has not ocurred,\ndue to a lack of people. In addition, abandoned patches have been\na distraction.\n\nAs such, the docs team wishes to change the behaviour of doc impact\nso that is creates bugs once patches have been merged. This patch\nsimply changes the logic to realise this.\n\nChange-Id: I29bab0095719212f6c5e2b9c6b704ed328976b2b\n"
    },
    {
      "commit": "766973dc8ff5886a432dd181c3530cd2fb2b3501",
      "tree": "41410df473d8d810a6f76ca7e9a84b77381fe5bb",
      "parents": [
        "eab92611c31d7a4ddf86bc7af9b1630fd4694e21",
        "f450d894e23197158dc9a0b53a988a6a1ca8995c"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Sep 09 22:59:53 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Sep 09 22:59:53 2013 +0000"
      },
      "message": "Merge \"Adds \u003cservice\u003e-api to map to openstack-api-site in Launchpad\""
    },
    {
      "commit": "f450d894e23197158dc9a0b53a988a6a1ca8995c",
      "tree": "d7768ee5db6235c40dc4c964a0d633cfdd02cc88",
      "parents": [
        "95398b631cc0b970b79805ded33d88803b736012"
      ],
      "author": {
        "name": "annegentle",
        "email": "anne@openstack.org",
        "time": "Thu Sep 05 15:57:09 2013 -0500"
      },
      "committer": {
        "name": "annegentle",
        "email": "anne@openstack.org",
        "time": "Fri Sep 06 13:36:24 2013 -0500"
      },
      "message": "Adds \u003cservice\u003e-api to map to openstack-api-site in Launchpad\n\nChange-Id: I89e8fbd8e0f803ce803b42d387e769482fd48576\n"
    },
    {
      "commit": "eab92611c31d7a4ddf86bc7af9b1630fd4694e21",
      "tree": "d6aea65a131c4f21e8659bda59ee91b3f5e940db",
      "parents": [
        "95398b631cc0b970b79805ded33d88803b736012"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Fri Aug 30 09:47:32 2013 -0700"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Fri Aug 30 10:01:26 2013 -0700"
      },
      "message": "Add options to manage-projects\n\nIt has a command line arg parser.  With --help.\n\nIt can be told to only process one project.\n\nIt can output verbose debugging information.\n\nIt can save its temp directory so it can be examined later by an\noperator.\n\nChange-Id: Ide6d68590e0bf89efef720542bd1730533428160\n"
    },
    {
      "commit": "95398b631cc0b970b79805ded33d88803b736012",
      "tree": "3b0138e7ae5cc3dd7081ad38aa3bef41ad745a87",
      "parents": [
        "ce650a4fe2ed3507d1da0e4f77c9e08a874c686a"
      ],
      "author": {
        "name": "Elizabeth Krumbach",
        "email": "lyz@princessleia.com",
        "time": "Tue Aug 13 13:04:55 2013 -0700"
      },
      "committer": {
        "name": "Elizabeth Krumbach",
        "email": "lyz@princessleia.com",
        "time": "Tue Aug 13 14:05:49 2013 -0700"
      },
      "message": "Add chown of git repo directories\n\nWhen creating git repositories, we want to recursively chown\nthem to the cgit user so the cgit user for replication can\nwrite to them.\n\nChange-Id: Ib349b4af32090d0fbda933d51ef514cae7033499\n"
    },
    {
      "commit": "ce650a4fe2ed3507d1da0e4f77c9e08a874c686a",
      "tree": "2b0795b48c5628e5fb0e0f809682de66c816a35c",
      "parents": [
        "3d4817c25f9307c6f25ac84559b50e10acc81665",
        "eb3ab9ba305a4078753c35e851d62a5ef58a1221"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Aug 13 18:04:51 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Aug 13 18:04:51 2013 +0000"
      },
      "message": "Merge \"Create repo when we create the cgit config file\""
    },
    {
      "commit": "eb3ab9ba305a4078753c35e851d62a5ef58a1221",
      "tree": "7bfcd2f8a0f7e867ceef8d25bc6c6e524359643b",
      "parents": [
        "6a63c1b91a43d570b3e17ca2c88ef8f570f252be"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Aug 10 21:10:28 2013 -0300"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Aug 13 12:07:48 2013 -0300"
      },
      "message": "Create repo when we create the cgit config file\n\nGit repos need to be created locally. Ensure that we create the\nnecessary repos when creating the config file for them.\n\nChange-Id: I0b0b8e183049dd9f825224f1657cb88a64edf37b\n"
    },
    {
      "commit": "3d4817c25f9307c6f25ac84559b50e10acc81665",
      "tree": "24fff638b0cdbd0ba76776263a15c4eaf730f7ff",
      "parents": [
        "6a63c1b91a43d570b3e17ca2c88ef8f570f252be"
      ],
      "author": {
        "name": "Emilien Macchi",
        "email": "emilien.macchi@enovance.com",
        "time": "Fri Aug 09 17:50:10 2013 +0200"
      },
      "committer": {
        "name": "Emilien Macchi",
        "email": "emilien.macchi@enovance.com",
        "time": "Fri Aug 09 18:58:18 2013 +0200"
      },
      "message": "Update Launchpad projects for puppet modules\n\nSince we\u0027ve decided to split puppet-openstack launchpad page into\nseveral sub-projects, this patch update the configuration to\nsupport both blueprints \u0026 bugs for all current puppet modules\nin StackForge.\n\nChange-Id: Iaef1de681507e9de9d80d6fecd2e5e56ca960a1a\n"
    },
    {
      "commit": "6a63c1b91a43d570b3e17ca2c88ef8f570f252be",
      "tree": "162fd4f26c29032b02c7e91c8a7c5cc9e355cf11",
      "parents": [
        "ad88b02851951b8e946c5101e4c73686188069c4",
        "db8e7075802a5b1ecac6dab87b15c9cccd0feb9c"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Aug 05 22:51:25 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Aug 05 22:51:25 2013 +0000"
      },
      "message": "Merge \"Allow hacking 0.6.0 and fix versions\""
    },
    {
      "commit": "ad88b02851951b8e946c5101e4c73686188069c4",
      "tree": "176e23d476341fe0200b473d23d09bebefcb8295",
      "parents": [
        "38411d4dcb2c5e4147cfd640025366ee1ce173b5"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Aug 03 17:02:06 2013 -0400"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Aug 03 17:02:06 2013 -0400"
      },
      "message": "Don\u0027t double-include if global-requirements\n\nglobal-requirements is a fully self-contained file, containing both\ntest and normal requirements. In the situation where the target repo\nhas a global-requirements.txt file, it should be treated as the only\nfile that matters- otherwise the mirror builder will hit double include\nissues.\n\nChange-Id: I01fd1e0d7f0923456f35a0f931159850cb52e3e7\n"
    },
    {
      "commit": "38411d4dcb2c5e4147cfd640025366ee1ce173b5",
      "tree": "5c1c3374c4fb21dc641a878227c29fb14b083e1b",
      "parents": [
        "fd4fc73453d13b02eea5e2604a64465ff68d3266"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Aug 02 11:06:36 2013 -0400"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Aug 02 11:06:36 2013 -0400"
      },
      "message": "Add global-requirements.txt to the mirror list\n\nThe openstack/requirements repo is consolidating the requirments lists\ninto a single file. This patch supports that work.\n\nChange-Id: Ia2ca88c0cf6c3317911d1d396d3779b3df5216a0\n"
    },
    {
      "commit": "fd4fc73453d13b02eea5e2604a64465ff68d3266",
      "tree": "06224915bdc7e5f4c4250189062225ce28923bdd",
      "parents": [
        "cbce010c935ae92edebc1e4c50d31f0e7e9ba025"
      ],
      "author": {
        "name": "Emilien Macchi",
        "email": "emilien.macchi@enovance.com",
        "time": "Thu Aug 01 11:28:55 2013 +0200"
      },
      "committer": {
        "name": "Emilien Macchi",
        "email": "emilien.macchi@enovance.com",
        "time": "Thu Aug 01 11:30:11 2013 +0200"
      },
      "message": "Add puppet-heat in launchpad project list\n\nFix bug #1207104\n\nChange-Id: I9c7ff621c4ff0f29ca4ad9c600bfa643ef8f89a9\n"
    },
    {
      "commit": "cbce010c935ae92edebc1e4c50d31f0e7e9ba025",
      "tree": "d2c76bde40769cabde78791da3e97f52860fd107",
      "parents": [
        "9458f7413054296d62a4842c5cf8c7421b7e4b6f",
        "1602564e687b91d664c1a5eacf06c3771eff004f"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jul 31 17:23:30 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jul 31 17:23:30 2013 +0000"
      },
      "message": "Merge \"cease docimpact emails, create bugs only\""
    },
    {
      "commit": "9458f7413054296d62a4842c5cf8c7421b7e4b6f",
      "tree": "dff9fb8b6029d2774438f0844eb33008577a8c8d",
      "parents": [
        "3d2d554453eba725d01b73e0aa4bd4601af6fb53",
        "6fa38f354c2bfc29a8c8ba8ba8f89e8618998f01"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jul 31 16:04:46 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jul 31 16:04:47 2013 +0000"
      },
      "message": "Merge \"Add .idea to .gitignore\""
    },
    {
      "commit": "3d2d554453eba725d01b73e0aa4bd4601af6fb53",
      "tree": "707a6b5c0be3002269ce9f0aef5e752822aa5cf5",
      "parents": [
        "22a260d7a02431198b38b31cbb813d883b24d8e9",
        "7500c276be7011532565dc90b7175b367fa472b2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jul 31 16:03:52 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jul 31 16:03:52 2013 +0000"
      },
      "message": "Merge \"Cause virtualenv to be installed into the mirror\""
    },
    {
      "commit": "1602564e687b91d664c1a5eacf06c3771eff004f",
      "tree": "c86125bdb714c5218f2595785c29c8876af4b49c",
      "parents": [
        "aa1ce100be533f634a33220c7092693cb8c80b88"
      ],
      "author": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Mon Jul 29 09:19:58 2013 -0700"
      },
      "committer": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Mon Jul 29 13:13:47 2013 -0700"
      },
      "message": "cease docimpact emails, create bugs only\n\nWe\u0027ve been running the DocImpact bug generation code for\nseveral weeks now and are happy with the results. We\u0027d now\nlike to cease the emails and only generate bugs from DocImpact\nstrings.\n\nThis patch updates the logic to never send an email for DocImpact,\nand changes the docstring to reflect this.\n\nThis change should not affect any other types of impacts.\n\npatchset2 fixes PEP8 issue\n\nChange-Id: I5c46f0d540949bc4a5de1e57fcd68c537a54ca15\n"
    },
    {
      "commit": "22a260d7a02431198b38b31cbb813d883b24d8e9",
      "tree": "f1d3952eb358ceb3cda23107dc8cb8a205c488fb",
      "parents": [
        "aa1ce100be533f634a33220c7092693cb8c80b88",
        "91c791a580efe76deab0f8d8a54ca8f73a2bb7ba"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jul 29 18:08:05 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Jul 29 18:08:05 2013 +0000"
      },
      "message": "Merge \"Improving Gerrit + commit-log automation.\""
    },
    {
      "commit": "db8e7075802a5b1ecac6dab87b15c9cccd0feb9c",
      "tree": "90a4d506a72e3c36c35d2cd6f9cb150547ede916",
      "parents": [
        "aa1ce100be533f634a33220c7092693cb8c80b88"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Mon Jul 22 12:13:35 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Sun Jul 28 17:59:26 2013 +0400"
      },
      "message": "Allow hacking 0.6.0 and fix versions\n\n* versions of pep8, pyflakes and hacking are fixed;\n* hacking updated to 0.6.0, errors fixed.\n\nChange-Id: I11eeb234e3079efb3be3162ac8d82196a1bfc722\n"
    },
    {
      "commit": "6fa38f354c2bfc29a8c8ba8ba8f89e8618998f01",
      "tree": "eabb19d7b8641f71d97a3f9f3d748335774976ec",
      "parents": [
        "aa1ce100be533f634a33220c7092693cb8c80b88"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Mon Jul 22 12:29:56 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Mon Jul 22 13:10:38 2013 +0400"
      },
      "message": "Add .idea to .gitignore\n\nChange-Id: I961da85ae841645be0bdf1c8760402e05e0194de\n"
    },
    {
      "commit": "7500c276be7011532565dc90b7175b367fa472b2",
      "tree": "0f89f66aac35823d1b9459315c733e6ea3c31bc0",
      "parents": [
        "aa1ce100be533f634a33220c7092693cb8c80b88"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Jul 20 10:29:11 2013 -0700"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Jul 20 10:29:11 2013 -0700"
      },
      "message": "Cause virtualenv to be installed into the mirror\n\nVirtualenv is a key piece of our infrastructure and is essential to the\ngating work that we do, but because nothing depends on it, it doesn\u0027t\nwind up in our mirror.\n\nChange-Id: I23486aed48e367e797beee8e01a6ddee193d4227\n"
    }
  ],
  "next": "aa1ce100be533f634a33220c7092693cb8c80b88"
}
