)]}'
{
  "log": [
    {
      "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": "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"
    },
    {
      "commit": "aa1ce100be533f634a33220c7092693cb8c80b88",
      "tree": "2c24b83945b4f67739c633aa714520531806c572",
      "parents": [
        "b0fa6e59bce08a26ca854339f1854fe4e101ab2b",
        "3a9cb8ec11323d1326f75cbc604981060e1f589b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Jul 20 16:50:44 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Jul 20 16:50:44 2013 +0000"
      },
      "message": "Merge \"Use print function for python3\""
    },
    {
      "commit": "b0fa6e59bce08a26ca854339f1854fe4e101ab2b",
      "tree": "e16473850d7b247600dd5587acae7dc9aabca364",
      "parents": [
        "35ed3f46898e1ada43cd5252a72c4ac4d5a75f1b",
        "4b127e051b46ac6f4c75dd904eb9148687a15e9c"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Jul 20 16:50:43 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Jul 20 16:50:43 2013 +0000"
      },
      "message": "Merge \"Remove -M from the pip install command\""
    },
    {
      "commit": "35ed3f46898e1ada43cd5252a72c4ac4d5a75f1b",
      "tree": "1be5c1faa4d1ee56fcd29456d79d56efef765aa8",
      "parents": [
        "eeb4fdad9738225cb9e6d60d7223b368933d9799",
        "c20173e18d2aca91b5a3c370d63845aaecc42a28"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Jul 20 16:50:06 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Jul 20 16:50:06 2013 +0000"
      },
      "message": "Merge \"Upgrade pip and setuptools in the mirror venv\""
    },
    {
      "commit": "eeb4fdad9738225cb9e6d60d7223b368933d9799",
      "tree": "edaff598f310d5e7fc92094480cce6a040daf7ca",
      "parents": [
        "9a4c548d093217c328ea022d97dde2321513f070",
        "2cafdd2fe466a059834291e6d8faaf36458dd7aa"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Jul 20 16:50:05 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Jul 20 16:50:05 2013 +0000"
      },
      "message": "Merge \"Revert \"Be more agressive trying to install requirements.\"\""
    },
    {
      "commit": "3a9cb8ec11323d1326f75cbc604981060e1f589b",
      "tree": "4bac3cced2058a71f79b0c471bd11ca42950a51b",
      "parents": [
        "4b127e051b46ac6f4c75dd904eb9148687a15e9c"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Jul 20 08:38:53 2013 -0700"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Jul 20 08:42:16 2013 -0700"
      },
      "message": "Use print function for python3\n\nChange-Id: Ib7eae9eaed6831fc74b06e02bdd0ca36e2e6c569\n"
    },
    {
      "commit": "4b127e051b46ac6f4c75dd904eb9148687a15e9c",
      "tree": "d08204d4d167eaa247a400f8b413445cd7105df7",
      "parents": [
        "c20173e18d2aca91b5a3c370d63845aaecc42a28"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Jul 20 08:37:14 2013 -0700"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Jul 20 08:42:16 2013 -0700"
      },
      "message": "Remove -M from the pip install command\n\ndstufft suggests not using the -M command for forcing use of the mirrors\nsince it causes scanning all of the mirrors every time.\n\nChange-Id: I3f6ec19f3cbbde14d7b196c19c8b490936b757bc\n"
    },
    {
      "commit": "c20173e18d2aca91b5a3c370d63845aaecc42a28",
      "tree": "d3ab04701b285e5925be6b15f40db1527867a506",
      "parents": [
        "2cafdd2fe466a059834291e6d8faaf36458dd7aa"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Jul 19 18:05:32 2013 -0700"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Jul 20 08:42:16 2013 -0700"
      },
      "message": "Upgrade pip and setuptools in the mirror venv\n\nOlder pip does not process transitive dependencies properly. To ensure\nthat 3rd level transitive depends get processed by run-mirror, ensure\nthat we have current pip in our mirror build environment.\n\nWithout upgrading setuptools, we can hit the transitive depend problem.\n\nChange-Id: I4a4611109ed9b35dea2efc00583ab69ebc1a39ba\n"
    },
    {
      "commit": "2cafdd2fe466a059834291e6d8faaf36458dd7aa",
      "tree": "a29359a07dcf28dfa43d52129ec2350800c9b97f",
      "parents": [
        "f4ed0c3120852c2a59af8ebc4fdf657672787d67"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Jul 20 15:06:30 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Jul 20 15:06:30 2013 +0000"
      },
      "message": "Revert \"Be more agressive trying to install requirements.\"\n\nThis reverts commit f4ed0c3120852c2a59af8ebc4fdf657672787d67"
    },
    {
      "commit": "9a4c548d093217c328ea022d97dde2321513f070",
      "tree": "c5c7a608752561f99c4e81be4b86a9d5210ca347",
      "parents": [
        "c11d6b71c40e440872efd457ae410b624e30e89c",
        "f4ed0c3120852c2a59af8ebc4fdf657672787d67"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Jul 20 02:59:14 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Jul 20 02:59:14 2013 +0000"
      },
      "message": "Merge \"Be more agressive trying to install requirements.\""
    },
    {
      "commit": "91c791a580efe76deab0f8d8a54ca8f73a2bb7ba",
      "tree": "8c9822fbd6e86e186b5b4b94c852a88cb30b26ec",
      "parents": [
        "05a47939ff133550d07f64032299b58b1eab7e04"
      ],
      "author": {
        "name": "Anthony Dodd",
        "email": "adodd@vbridges.com",
        "time": "Fri Jul 12 12:47:40 2013 -0500"
      },
      "committer": {
        "name": "Anthony Dodd",
        "email": "adodd@vbridges.com",
        "time": "Fri Jul 19 11:05:04 2013 -0500"
      },
      "message": "Improving Gerrit + commit-log automation.\n\nI\u0027ve reworked a few items here, so I will describe them in as much a\nlinear fashion as possible. Keep in mind that one of the primary goals\nfor these changes is to allow us to \"trigger more magic from Gerrit\".\nAnd it is to that end that I\u0027ve implemented these changes.\n\nIn find_bugs(), I\u0027ve tightened-up the regular expression being used so\nthat it will parse-out any prefixes associated with the bug reference.\nI\u0027ve tested the regular expression against the most common bug\nreferences that I\u0027ve seen in commit logs, as well as against the\nstyles described in our documentation. The sources that I\u0027ve drawn\nfrom are:\n\n    https://etherpad.openstack.org/drive-automation-from-commitmsg\n    https://wiki.openstack.org/wiki/GitCommitMessages\n    https://wiki.openstack.org/wiki/Gerrit_Workflow\n\nMoreover, I\u0027m using re.finditer() which allows for more direct\naccess to the text that was matched. Lastly, I\u0027ve tried to keep the\nexpression as flexible as possible so that it will match even if the\ndeveloper references the bug in a funky way.\n\nIn order to keep the prefix and lp_task associated with each other,\nI\u0027ve created a class called \"Task\" which is simply an interface to\ndetermine what sort of automation needs to take place for the given\nbugtask. This being the case, I\u0027ve taken the liberty of renaming a few\nvariables to make this more clear.\n\nIn \"Task\", a basic level of processing is performed on the prefix to\ndetermine what changes need to be made on launchpad. A method called\nneeds_change() returns a boolean indicating if the supplied argument\nis a change which needs to be made.\n\nLastly, yet most importantly for this bug fix, process_bugtsk() is\nutilizing needs_change(), as mentioned above, to ensure that the\nbugtask\u0027s status is not erroneously changed in the case of a bug fix\nwhich spans multiple commits.\n\nCloses-Bug: 1018013\nChange-Id: Ibd84d3c6edcf104afe3211fb55ea531efa92d20e\n"
    },
    {
      "commit": "c11d6b71c40e440872efd457ae410b624e30e89c",
      "tree": "edaff598f310d5e7fc92094480cce6a040daf7ca",
      "parents": [
        "05a47939ff133550d07f64032299b58b1eab7e04"
      ],
      "author": {
        "name": "Elizabeth Krumbach",
        "email": "lyz@princessleia.com",
        "time": "Thu Jul 18 12:20:12 2013 -0700"
      },
      "committer": {
        "name": "Elizabeth Krumbach",
        "email": "lyz@princessleia.com",
        "time": "Thu Jul 18 12:20:12 2013 -0700"
      },
      "message": "Add mkdir of git directories to cgit script\n\nAdd a section of the script to take the \"orgs\" defined and create\nthose as directories we need in /var/lib/git\n\nChange-Id: Id7c4110ab60fca61655bb46a18f161e6eb6ea142\n"
    },
    {
      "commit": "05a47939ff133550d07f64032299b58b1eab7e04",
      "tree": "a6cce2554f6e56ff2fdc204d275886f7eaf1de0a",
      "parents": [
        "4d8c8fe62a223fe126415eb960fab89544c021fc",
        "d8c51c683099c6714056c22a51805d0dfc01466b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jul 18 04:41:29 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jul 18 04:41:29 2013 +0000"
      },
      "message": "Merge \"Treat -2 as a negative approval for expirations.\""
    },
    {
      "commit": "4d8c8fe62a223fe126415eb960fab89544c021fc",
      "tree": "ce004496028798710b4a5d04f53fff4e95484159",
      "parents": [
        "e0207dcc4a82e54a941c82947d5256e6317d2801"
      ],
      "author": {
        "name": "Robert Collins",
        "email": "rbtcollins@hp.com",
        "time": "Wed Jul 17 20:34:20 2013 +1200"
      },
      "committer": {
        "name": "Robert Collins",
        "email": "rbtcollins@hp.com",
        "time": "Wed Jul 17 20:34:20 2013 +1200"
      },
      "message": "Tripleo-incubator is also tripleo on Launchpad.\n\nChange-Id: I8af2377a765e63edbaba6b8f235742274caac34a\n"
    },
    {
      "commit": "d8c51c683099c6714056c22a51805d0dfc01466b",
      "tree": "e495bdb6c7cd72901467193442280c27bc9eac5c",
      "parents": [
        "e0207dcc4a82e54a941c82947d5256e6317d2801"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Mon Jul 15 14:51:56 2013 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Mon Jul 15 14:51:56 2013 +0000"
      },
      "message": "Treat -2 as a negative approval for expirations.\n\n* jeepyb/cmd/expire_old_reviews.py(main): Previously only reviews\nwith a -1 vote were expired, so those with a -2 and no -1 would\nremain in review indefinitely. This corrects the script to also\ntreat -2 as a negative vote for purposes of auto-expiring a change.\n\nChange-Id: Ia447d7b11abafd9b3bb7c7696a7f47ea51bacaa1\n"
    },
    {
      "commit": "f4ed0c3120852c2a59af8ebc4fdf657672787d67",
      "tree": "b4038e179613430ccd430ca6a79c66fb94c6ad54",
      "parents": [
        "e8d897d329f6def7c231d48cebf4079ea0d4bfb4"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sun Jun 23 14:43:02 2013 -0400"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sun Jul 14 16:01:48 2013 -0400"
      },
      "message": "Be more agressive trying to install requirements.\n\nWhen -r requirements.txt is used, either then entire file works\nor the entire file doesn\u0027t. This means that if there is a hiccup\nwith any of the files, we lose the entire run instead of just\nthe one file.\n\nBy iterating over the list and installing as many as we can, then\nprocessing the freeze, we get as many of them as we can.\n\nThis is especially helpful when combined with the upcoming pbr/jeepyb\ngate, where the lack of a requirement in the gate will show up when\nthe thing that needs it can\u0027t install it. If we get everything else,\nthe error message in that case will be much more clear as to why.\n\nChange-Id: I27606b92a8be2605fa30362aaab51e65a21770bc\n"
    },
    {
      "commit": "e0207dcc4a82e54a941c82947d5256e6317d2801",
      "tree": "a472aaa7a04f5c756e57099608fb6be239cc7fde",
      "parents": [
        "e8d897d329f6def7c231d48cebf4079ea0d4bfb4"
      ],
      "author": {
        "name": "Matthew Treinish",
        "email": "treinish@linux.vnet.ibm.com",
        "time": "Fri Jul 12 17:27:46 2013 -0400"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Jul 14 19:59:34 2013 +0000"
      },
      "message": "Remove tempest from list of projects that direct release.\n\nThis commit removes tempest from the list of projects that are\ndirect release. No when a tempest bug\u0027s fixing commit gets merged it\nwill be set to fix committed instead of fix released.\n\nChange-Id: Iad9f2203e6694a428a7e4ab5be80c74a1fbb2016\nReviewed-on: https://review.openstack.org/36908\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nApproved: Monty Taylor \u003cmordred@inaugust.com\u003e\nReviewed-by: Monty Taylor \u003cmordred@inaugust.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "e8d897d329f6def7c231d48cebf4079ea0d4bfb4",
      "tree": "a29359a07dcf28dfa43d52129ec2350800c9b97f",
      "parents": [
        "66b6cc63a42ce5499e296a8eb478309787039749"
      ],
      "author": {
        "name": "Elizabeth Krumbach",
        "email": "lyz@princessleia.com",
        "time": "Fri Jul 05 11:35:08 2013 -0700"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jul 12 17:52:07 2013 +0000"
      },
      "message": "Add create_cgitrepos.py file\n\nThe create_cgitrepos.py is used to generate a cgitrepos config file\nfrom projects.yaml for cgit to use.\n\nChange-Id: I54e09634f1cbb7595d7db629ce7e16a883c5f5b6\nReviewed-on: https://review.openstack.org/35856\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nApproved: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nReviewed-by: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "66b6cc63a42ce5499e296a8eb478309787039749",
      "tree": "ddd3cac0388ec1d3106f1e47b7b9e87d5dde7a2d",
      "parents": [
        "10ec3efe72b7fc2e5208547698788d172b971be5"
      ],
      "author": {
        "name": "Mathieu Gagné",
        "email": "mgagne@iweb.com",
        "time": "Sun Jul 07 13:05:59 2013 -0400"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jul 12 14:46:50 2013 +0000"
      },
      "message": "Implement blueprint LP mapping for projects\n\n* jeepyb/cmd/update_blueprint.py: Use the same gerrit to Launchpad\nproject name mapping system used by update_bug.py to map blueprints\nto the corresponding LP projects.\n* Add puppet projects to the mapping.\n\nChange-Id: Ife0b76b80f80d83ecfca5d24e6caf24228e3044d\nReviewed-on: https://review.openstack.org/36006\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nApproved: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "10ec3efe72b7fc2e5208547698788d172b971be5",
      "tree": "2bf1f39b7d1465393fce4f96824e6b20e6d14fb4",
      "parents": [
        "68ce329185a9b7364c49ac03389664622c8f723b"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Jul 05 21:17:39 2013 -0400"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Jul 06 03:03:45 2013 +0000"
      },
      "message": "Remove use of distribute.\n\nChange-Id: Ie0f23623febb41bfdba181c690cc0df94a39fa5a\nReviewed-on: https://review.openstack.org/35916\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nApproved: Monty Taylor \u003cmordred@inaugust.com\u003e\nReviewed-by: Monty Taylor \u003cmordred@inaugust.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "68ce329185a9b7364c49ac03389664622c8f723b",
      "tree": "915d963644e7b8724b477f2e4207184e49d7181f",
      "parents": [
        "7d347587167b056f6c56a579c344a62f7765d88f"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Mon Jul 01 11:45:46 2013 -0700"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jul 04 04:47:34 2013 +0000"
      },
      "message": "Created Gerrit groups are self owned.\n\n* jeepyb/cmd/manage_projects.py: When creating Gerrit groups do not set\nan explicit owner so that the new groups are self owned.\n\nFixes bug 1178022\n\nChange-Id: I343ff5b7a4040149caa13b07bc69f15b3086225f\nReviewed-on: https://review.openstack.org/35171\nReviewed-by: Elizabeth Krumbach Joseph \u003clyz@princessleia.com\u003e\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nApproved: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "7d347587167b056f6c56a579c344a62f7765d88f",
      "tree": "394080baf85d0a62e87068cd6f54fdb707da5a9f",
      "parents": [
        "061919f212afd7518b5f790d49b99ac4088ab188"
      ],
      "author": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Fri Jun 28 16:01:52 2013 +1000"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jul 03 19:52:57 2013 +0000"
      },
      "message": "Makes Impact bug creation generic, ceases doc spam\n\nThis patch moves the bug creation code to its own method, so that it\ncan be used by other kinds of impacts.\n\nIt also changes the notification logic for DocImpact, so that emails\nare now only sent if bug creation was not successful.\n\nThis patch should have no effect on other kinds of impacts.\n\npatchset3 fixes use of sys and updated docstring\n\npatchset4 rebases to master\n\nChange-Id: I6b64beb6e8da45b166d17c9fad0347aa5370e689\nReviewed-on: https://review.openstack.org/34842\nApproved: James E. Blair \u003ccorvus@inaugust.com\u003e\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "061919f212afd7518b5f790d49b99ac4088ab188",
      "tree": "dd1cc0eaa31d554cb376c2d9ab179272b953c04d",
      "parents": [
        "f98a3a42dda40203ecc04fe00f357c5051cdb4d4"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sun Jun 02 11:35:42 2013 -0400"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jul 02 16:49:29 2013 +0000"
      },
      "message": "Modernize to curent build standards\n\nMigrate to pbr, flake8 and hacking. Clean up hacking warnings. Rename\nrequirements files. Remove cruft from tox.ini.\n\nChange-Id: Ide78ad47de7f275240f729a2bc02745063b084ac\nReviewed-on: https://review.openstack.org/31439\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nApproved: James E. Blair \u003ccorvus@inaugust.com\u003e\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "f98a3a42dda40203ecc04fe00f357c5051cdb4d4",
      "tree": "d3c4dc7c4db4407ade1cc2fc9877553e56825d30",
      "parents": [
        "5d06d19c5262d2250838149d646b3f1d4918d178"
      ],
      "author": {
        "name": "Russell Bryant",
        "email": "rbryant@redhat.com",
        "time": "Tue Jun 25 15:45:52 2013 -0400"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Jun 29 16:27:08 2013 +0000"
      },
      "message": "Do not abandon unreviewed changes\n\nChange the review expiring logic to stop abandoning changes that have\nnot been reviewed.\n\nChange-Id: I5b0a131fb8f3d2a83e71d5bfbb8729db8615db2e\nReviewed-on: https://review.openstack.org/31204\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nApproved: Monty Taylor \u003cmordred@inaugust.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "5d06d19c5262d2250838149d646b3f1d4918d178",
      "tree": "1c8befcb119d8245875dbc25dc6023dc89e69dca",
      "parents": [
        "a8068d3f5fd7156fd6b721f7c1fbd7b4e2554571"
      ],
      "author": {
        "name": "Thierry Carrez",
        "email": "thierry@openstack.org",
        "time": "Wed Jun 26 15:32:47 2013 +0200"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jun 27 11:45:21 2013 +0000"
      },
      "message": "Transition to Neutron project in Launchpad\n\nGracefully handle the Launchpad project rename from Quantum to Neutron,\nby redirecting changes to not-yet-renamed openstack/quantum repo to the\nalready-renamed \"neutron\" LP project (same for python-*client projects).\n\nThis should be accepted once the following LP support request is done:\nhttps://answers.launchpad.net/launchpad/+question/231396\n\nChange-Id: Ib47970716d6aef54d6a641bb78f966d5feb1e3bb\nReviewed-on: https://review.openstack.org/34549\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nApproved: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "a8068d3f5fd7156fd6b721f7c1fbd7b4e2554571",
      "tree": "ac50b0dcb488fc98564a5985d37719d97df29463",
      "parents": [
        "94ebc242c5dcb5d16b525a0df45fbfbb158299ab"
      ],
      "author": {
        "name": "Jay Pipes",
        "email": "jaypipes@gmail.com",
        "time": "Sat Jun 22 20:33:41 2013 -0400"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jun 24 23:44:08 2013 +0000"
      },
      "message": "Ensure GERRIT_PORT is an integer\n\nThe Gerrit port configuration option must be an integer\notherwise paramiko will complain.\n\nChange-Id: I97d79940ceba97b1f4b3d20c4ba93b6fc4394e17\nReviewed-on: https://review.openstack.org/34121\nReviewed-by: Eric Erfanian \u003ceric.erfanian@gmail.com\u003e\nReviewed-by: Monty Taylor \u003cmordred@inaugust.com\u003e\nApproved: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nReviewed-by: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "94ebc242c5dcb5d16b525a0df45fbfbb158299ab",
      "tree": "51d0ec2862371a85f27523b106ec9158a1c77bc7",
      "parents": [
        "805a30109c88694138cef10ebb457d6b6d64d5ff"
      ],
      "author": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Sun Jun 23 17:18:50 2013 +1000"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jun 24 23:38:30 2013 +0000"
      },
      "message": "Enhancements to docimpact bug creation code\n\nNB: This has not been tested yet, as launchpad staging server is down.\n\nThese changes:\n* adds the gerrit review URL to the top of created bugs\n(so bug assignees/triagers can look at the patch easily)\n\n* set the tag of the bug to be the project/repo name, as is the\ndocs triaging standard\n\nChange-Id: I1bc6a4081ac16ec2f8cf4cc419cec5b1fb03a6e2\nReviewed-on: https://review.openstack.org/34127\nReviewed-by: Monty Taylor \u003cmordred@inaugust.com\u003e\nApproved: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nReviewed-by: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "805a30109c88694138cef10ebb457d6b6d64d5ff",
      "tree": "bdab1422b3b0bc1edf8f7661304e0561158808d7",
      "parents": [
        "2f13d563c2db25fad555a41edb0a6ff8b2c92dcb"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Jun 21 02:32:08 2013 -0400"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jun 21 18:35:45 2013 +0000"
      },
      "message": "Make gerrit port configurable.\n\nChange-Id: Idf87910a9f82556f247e0232468f2f883d718f97\nReviewed-on: https://review.openstack.org/33927\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nApproved: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nReviewed-by: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "2f13d563c2db25fad555a41edb0a6ff8b2c92dcb",
      "tree": "a00021959eadd490cb4e1e276d341a441670b54d",
      "parents": [
        "1faf327cfbb1a3ee21a77a3d2068e11a7e9b7530"
      ],
      "author": {
        "name": "Jay Pipes",
        "email": "jaypipes@gmail.com",
        "time": "Sun Jun 16 12:01:09 2013 -0400"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jun 20 00:45:24 2013 +0000"
      },
      "message": "Make Gerrit system user and group configurable\n\nThe gerrit2 system user and group was hardcoded in\nmanage_projects. This simply allows the values to\nbe overridden by options \u0027gerrit-system-user\u0027 and\n\u0027gerrit-system-group\u0027 in the defaults section of the\nprojects.yml file.\n\nfixes lp 1191542\n\nChange-Id: Ieb736e08a6f96c10abfabe8b17808681732cb8b6\nReviewed-on: https://review.openstack.org/33196\nReviewed-by: Monty Taylor \u003cmordred@inaugust.com\u003e\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nApproved: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nReviewed-by: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "1faf327cfbb1a3ee21a77a3d2068e11a7e9b7530",
      "tree": "a74fbc425dc3ef9952d7c0183785c7efe655dcd5",
      "parents": [
        "6caa2f971561385d7fa92f59486617e3d36fd512"
      ],
      "author": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Fri Jun 14 14:40:46 2013 +1000"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jun 17 20:05:57 2013 +0000"
      },
      "message": "Fix docimpact bug generation code\n\nMy sincere apologies to the infra team.\n\nThe original code to create bugs from DocImpact itself suffered\nfrom a bug - it was trying to refer to an email address rather than\nan impact line. Luckily, due to the design, this had no impact on\n sending Impact emails for security or docs.\n\nThis change correctly checks for docimpact prior to bug creation.\n\nChange-Id: I1b8e037cab0a0424c765706f4a7b690ba5bd96d0\nReviewed-on: https://review.openstack.org/32994\nReviewed-by: Diane Fleming \u003cdiane.fleming@rackspace.com\u003e\nReviewed-by: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nReviewed-by: Khai Do \u003czaro0508@gmail.com\u003e\nApproved: James E. Blair \u003ccorvus@inaugust.com\u003e\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "6caa2f971561385d7fa92f59486617e3d36fd512",
      "tree": "24de70dd8afa869f9db8cacf7f265fc5e4f8a725",
      "parents": [
        "d4d83afc82e2c5e636f3f796cc70a79d2d6e2ac0"
      ],
      "author": {
        "name": "Robert Collins",
        "email": "rbtcollins@hp.com",
        "time": "Thu Jun 13 08:16:41 2013 +1200"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jun 13 01:14:21 2013 +0000"
      },
      "message": "Update for tripleo-heat-templates.\n\nChange-Id: Iedd869f02ee51f286a91ce5f64a4a826e567ea4f\nReviewed-on: https://review.openstack.org/32782\nApproved: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "d4d83afc82e2c5e636f3f796cc70a79d2d6e2ac0",
      "tree": "9252d5cfedb68ddbcc9e7f00bde90781af63c1cf",
      "parents": [
        "9c36efc563a2632655946dd3eeebf2d5b6771947"
      ],
      "author": {
        "name": "Steven Deaton",
        "email": "sdeaton2@gmail.com",
        "time": "Mon Jun 10 11:04:16 2013 +1000"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jun 12 18:42:16 2013 +0000"
      },
      "message": "autogenerate doc bug reports based on DocImpact tag\n\nDocImpact has worked well for communicating new features and code\nchanges that impact documentation to the doc team. However, the bulk\nof the emails received were essentially just turned into bug reports.\nThis change allows the automated creation of those bug reports.\n\nThe code searches for potential duplicate bugs before creating a bug\nto avoid creating multiple bugs per review.\n\nNote that this is originally the page from\nhttps://review.openstack.org/#/c/30718/\n\nHowever, I\u0027m drowning in DocImpact emails and wanted to move things\nalong while the original author (Steven Deaton) is on holiday.\n\nThere is potential future work here to:\n1) alter the text on bug update\n2) close bugs associated with abandoned patch sets\n3) mark patch-merged bugs as \u0027confirmed\u0027\n\nthough, as one of the main benefactors from this code, I am quite\nhappy to put this forward without these extras initially if it is\nacceptable to our awesome infra team :)\n\npatchset 2 updates documentation strings thanks to excellent feedback :)\n\nfixes bug 1184845\n\nChange-Id: Ia3a8a203314c4e527855df1623491f96da06b882\nReviewed-on: https://review.openstack.org/32348\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nApproved: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nReviewed-by: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "9c36efc563a2632655946dd3eeebf2d5b6771947",
      "tree": "1cedf95c37d260be0cd809076d06a2609e355dcb",
      "parents": [
        "7260a91bf97d32a0c176b4bd441a961051dccd5b"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Wed Jun 05 20:45:59 2013 +0000"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jun 07 16:27:24 2013 +0000"
      },
      "message": "Infra publications bugs to openstack-ci.\n\nBug reports on the openstack-infra/publications project in Gerrit\nshould map to the openstack-ci project in Launchpad and be marked\nfix-released on merge.\n\nChange-Id: I3caea11c36270db2e5d7587f09cff150b80e8afa\nReviewed-on: https://review.openstack.org/31864\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nApproved: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nReviewed-by: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "7260a91bf97d32a0c176b4bd441a961051dccd5b",
      "tree": "8192b1785a5e5aee7413a4919cdd083e0a2a8753",
      "parents": [
        "2f3f54445f70799c680f7fa481a9a1cda33dcaa9"
      ],
      "author": {
        "name": "Mathieu Gagné",
        "email": "mgagne@iweb.com",
        "time": "Wed May 22 21:16:48 2013 -0400"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri May 24 02:47:13 2013 +0000"
      },
      "message": "Add stackforge/puppet-tempest to git/lp mapping\n\nChange-Id: I79a300be354f57d02919121488cf9d5f6add1d2c\nReviewed-on: https://review.openstack.org/30197\nApproved: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "2f3f54445f70799c680f7fa481a9a1cda33dcaa9",
      "tree": "b7403dc7307f9b507f56fc4e132532672d19b004",
      "parents": [
        "4eb5fecd8de94f1a1b80b1c84b500d211b6620e4"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Thu May 23 17:10:56 2013 -0700"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri May 24 02:19:56 2013 +0000"
      },
      "message": "Map tripleo-image-elements to lp tripleo bugs.\n\nChange-Id: I539094a6fee562fdfe204c33ade191dbc649c5f7\nReviewed-on: https://review.openstack.org/30374\nApproved: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "4eb5fecd8de94f1a1b80b1c84b500d211b6620e4",
      "tree": "65da9775d1d32a43715d895eea67db8f98952ee3",
      "parents": [
        "ffbd815a8b22ee950513f6b48fa4717f59fc35f2"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Wed May 22 02:50:11 2013 +0000"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed May 22 16:17:40 2013 +0000"
      },
      "message": "Update bug release mapping.\n\n* jeepyb/cmd/update_bug.py(git2lp): Sorted project entries\nalphabetically for ease of maintenance.\n(is_direct_release): Updated list of openstack-infra projects which\ndon\u0027t tag formal releases, and sorted project entries alphabetically\nfor ease of maintenance.\n\nChange-Id: I181a32239db6e6dd247db9670b8735cddc7fb56f\nReviewed-on: https://review.openstack.org/30035\nApproved: James E. Blair \u003ccorvus@inaugust.com\u003e\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "ffbd815a8b22ee950513f6b48fa4717f59fc35f2",
      "tree": "9af622f493c23a3a87e3658291716005aad19b0c",
      "parents": [
        "0c1647a6836f0775308a950a1affa1fd9f18375b"
      ],
      "author": {
        "name": "Jay Pipes",
        "email": "jaypipes@gmail.com",
        "time": "Tue May 21 13:57:17 2013 -0400"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed May 22 02:34:58 2013 +0000"
      },
      "message": "Add mapping to bug tracker for Chef projects\n\nAdd bug tracking to superproject openstack-chef\nfor all stackforge chef cookbooks and chef-repo.\n\nSets all above repos to be Fix Released, not Fix\nCommitted, when patches received and merged.\n\nChange-Id: Idbc234a552ec11b4dad145d867ec60b1a568720f\nReviewed-on: https://review.openstack.org/29973\nReviewed-by: John Dewey \u003cjohn@dewey.ws\u003e\nReviewed-by: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nApproved: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "0c1647a6836f0775308a950a1affa1fd9f18375b",
      "tree": "33fc8bcf1410b6a1005e78f3bfcfc4eb6a9cffef",
      "parents": [
        "f57025d5592b223dcc427a0e285d3af10acc2cca"
      ],
      "author": {
        "name": "Mathieu Gagné",
        "email": "mgagne@iweb.com",
        "time": "Thu May 16 12:46:09 2013 -0400"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri May 17 19:35:33 2013 +0000"
      },
      "message": "Add stackforge/puppet-* to git/lp project map\n\nThe puppet-openstack project wishes to manage all puppet modules\nhosted on stackforge in the same Launchpad project to ease management.\n\nThis patch adds the required mapping for Gerrit to find and update bugs\nin the appropriate Launchpad project.\n\nChange-Id: I59cf52ba22e0e16fdceb15f790487c62ec77d144\nReviewed-on: https://review.openstack.org/29404\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nApproved: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "f57025d5592b223dcc427a0e285d3af10acc2cca",
      "tree": "5bf932f9f3f9293492a385bd81139ca075d7c7e0",
      "parents": [
        "9023a46782563dd75283788fd5757e1148004a66"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Mon May 06 20:42:45 2013 +0000"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed May 08 21:33:37 2013 +0000"
      },
      "message": "Allow mirror script to run on a specified branch.\n\n* jeepyb/cmd/run_mirror.py(Mirror.__init__,Mirror.build_mirror): Add\na -b/--branch option which, if specified, limits the mirror update\nto only the named branch rather than running for all available\nbranches.\n\nChange-Id: I07e5fa98054c8b77bf512166e730d3e73c27286c\nReviewed-on: https://review.openstack.org/28346\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nApproved: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nReviewed-by: Clark Boylan \u003cclark.boylan@gmail.com\u003e\nTested-by: Jenkins\n"
    },
    {
      "commit": "9023a46782563dd75283788fd5757e1148004a66",
      "tree": "6c90ca23e8f40a17d0f60d2094447c47240b24ff",
      "parents": [
        "ac4081fcd51e393f8395793e16737bc1036a26ed"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sdague@linux.vnet.ibm.com",
        "time": "Mon May 06 06:53:10 2013 -0400"
      },
      "committer": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon May 06 19:48:32 2013 +0000"
      },
      "message": "factor out gerrit project creator account\n\nthis lets you set the gerrit project creator account in yaml,\ninstead of it being hardcoded in the script\n\nChange-Id: I08870255fd3f44b8e2ed04ed7a7e80a3dfe2dd39\nReviewed-on: https://review.openstack.org/28286\nReviewed-by: Monty Taylor \u003cmordred@inaugust.com\u003e\nReviewed-by: James E. Blair \u003ccorvus@inaugust.com\u003e\nApproved: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nReviewed-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\nTested-by: Jenkins\n"
    }
  ],
  "next": "ac4081fcd51e393f8395793e16737bc1036a26ed"
}
