)]}'
{
  "log": [
    {
      "commit": "32cafb4f31295e415009221e4688cd8f394ce20d",
      "tree": "98bddb2a1d5c9aae0c71cb3a94126570a3c2da8e",
      "parents": [
        "4312b27014f4a6ad34a826912cbae9500095219a",
        "450b1a1a4d301661e3224dbe65d03ce45650f41b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Feb 14 05:25:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Feb 14 05:25:40 2015 +0000"
      },
      "message": "Merge \"Make the gerrit review expiry age tunable\""
    },
    {
      "commit": "450b1a1a4d301661e3224dbe65d03ce45650f41b",
      "tree": "6bb74ff16b447008c0e01c4187072dcc080d77b1",
      "parents": [
        "2ec36918051e2b6eb7a29daba6be2b4e156b05b6"
      ],
      "author": {
        "name": "Jonathan Harker",
        "email": "code@gentlydownthe.net",
        "time": "Tue Jan 06 15:38:19 2015 -0500"
      },
      "committer": {
        "name": "Jonathan Harker",
        "email": "code@gentlydownthe.net",
        "time": "Wed Jan 07 09:58:21 2015 -0500"
      },
      "message": "Make the gerrit review expiry age tunable\n\nAdd a new parameter to the expire_old_reviews script in order to set the\nlength of time a change must be inactive before it is automatically\nabandoned.\n\nChange-Id: Iba237f44d850ef8e4049df9bba2b7e8da74d510d\n"
    },
    {
      "commit": "4312b27014f4a6ad34a826912cbae9500095219a",
      "tree": "3659d1a25e93fa11f51740f781f3e6ae84c83f01",
      "parents": [
        "2ec36918051e2b6eb7a29daba6be2b4e156b05b6",
        "589ade69b108325ea40cf72631b97a7377a7c7db"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jan 07 13:53:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jan 07 13:53:09 2015 +0000"
      },
      "message": "Merge \"Fix wrong import from six.moves to make openstackwatch workable\""
    },
    {
      "commit": "2ec36918051e2b6eb7a29daba6be2b4e156b05b6",
      "tree": "d971a39ad93eac24bc57f32b67f3adcfc1dfe0a9",
      "parents": [
        "59c6b84c02665547c5f8ae68eeacc293c31a22c4",
        "d761db00292abdacc34e7038e2b7a03051f6828b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Dec 12 12:10:13 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Dec 12 12:10:13 2014 +0000"
      },
      "message": "Merge \"Add a git clean command before updating local copy\""
    },
    {
      "commit": "59c6b84c02665547c5f8ae68eeacc293c31a22c4",
      "tree": "f09202eb1a3483fd9c6bad5e23af6b0ae239fa09",
      "parents": [
        "f13b71bfe8107966e4cdf99dc4dcc2cc76455552"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Thu Nov 20 18:04:09 2014 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Thu Nov 20 18:04:09 2014 +0000"
      },
      "message": "Reconnect to Gerrit database if needed\n\n* jeepyb/gerritdb.py(connect): If the database connection is being\nreused for a connect call, issue a ping and pass the reconnect\noption so that a reconnection attempt will be made in the event the\nsocket has timed out or otherwise disconnected. Note that this only\nworks for the MySQLdb driver, so a different solution will likely be\nneeded for psycopg2. Alternatively, switching to an ORM like\nsqlalchemy would get us this for free, but is a more involved\nchange.\n\nChange-Id: I591d40998e208f18ac5c43bafd7bccb98be6a9c8\nCloses-Story: #2000017\n"
    },
    {
      "commit": "f13b71bfe8107966e4cdf99dc4dcc2cc76455552",
      "tree": "263e8ed2cee6e3c26080059b8cdd2e1de8954e8c",
      "parents": [
        "6d470279e20c79743f037f84b546d08cc6665efd",
        "cd9a46abd72070f859288be2b7315e13478e9487"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Nov 18 18:15:12 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Nov 18 18:15:12 2014 +0000"
      },
      "message": "Merge \"Switched documentation to point to storyboard.\""
    },
    {
      "commit": "cd9a46abd72070f859288be2b7315e13478e9487",
      "tree": "9e017805a1759adcc8a17d75d710e1d92e92d648",
      "parents": [
        "959a8a52e47a32f36de68a5aba5a1c00471815d5"
      ],
      "author": {
        "name": "Michael Krotscheck",
        "email": "krotscheck@gmail.com",
        "time": "Tue Nov 11 15:17:23 2014 -0800"
      },
      "committer": {
        "name": "Michael Krotscheck",
        "email": "krotscheck@gmail.com",
        "time": "Tue Nov 11 15:17:23 2014 -0800"
      },
      "message": "Switched documentation to point to storyboard.\n\nWe\u0027ve migrated this project to storyboard, I\u0027m updating the documentation links.\n\nChange-Id: I6b7b863f0cff155f2b142937b112eee6f51d95db\n"
    },
    {
      "commit": "589ade69b108325ea40cf72631b97a7377a7c7db",
      "tree": "69697b57b0dea1e273b167bd66d50bad80d47344",
      "parents": [
        "6d470279e20c79743f037f84b546d08cc6665efd"
      ],
      "author": {
        "name": "Christian Berendt",
        "email": "berendt@b1-systems.de",
        "time": "Sat Oct 11 14:01:45 2014 +0200"
      },
      "committer": {
        "name": "Christian Berendt",
        "email": "berendt@b1-systems.de",
        "time": "Sat Oct 11 14:03:37 2014 +0200"
      },
      "message": "Fix wrong import from six.moves to make openstackwatch workable\n\nThe method urlretrieve is part of urllib.request and not urllib.parse.\n\nsix.moves.urllib.request has to be used instead of six.moves.urllib.parse to\nbe able to use urlretrieve in the method get_javascript.\n\nThis solves the follwoing issue when running openstackwatch.\n\n---snip---\nAttributeError: \u0027Module_six_moves_urllib_parse\u0027 object has no attribute \u0027urlretrieve\u0027\n---snap---\n\nChange-Id: I95d73b3d5b01bd7097295ba524e44954b7d284a5\n"
    },
    {
      "commit": "d761db00292abdacc34e7038e2b7a03051f6828b",
      "tree": "e9da816bdfe29b3926f241832c10ec734a1373bc",
      "parents": [
        "6d470279e20c79743f037f84b546d08cc6665efd"
      ],
      "author": {
        "name": "Yolanda Robla",
        "email": "yolanda.robla-mota@hp.com",
        "time": "Tue Oct 07 16:18:07 2014 +0200"
      },
      "committer": {
        "name": "Yolanda Robla",
        "email": "yolanda.robla-mota@hp.com",
        "time": "Wed Oct 08 13:21:04 2014 +0200"
      },
      "message": "Add a git clean command before updating local copy\n\nPeriodic runs of manage_project can leave local copies\nof some projects in bad state, stopping next runs to\nwork due to git conflicts. Execute a git clean prior to\nthe update to ensure the process will work.\n\nChange-Id: Iac0291f97a75b671147568f212df5e0b18cd6f06\n"
    },
    {
      "commit": "6d470279e20c79743f037f84b546d08cc6665efd",
      "tree": "b6fa6e38740ac256f129c54b0e4f2c647d94429e",
      "parents": [
        "c3c6917601281fa202a95054df5c8c4cc8a99d27"
      ],
      "author": {
        "name": "Thierry Carrez",
        "email": "thierry@openstack.org",
        "time": "Tue Oct 07 13:41:19 2014 +0200"
      },
      "committer": {
        "name": "Thierry Carrez",
        "email": "thierry@openstack.org",
        "time": "Tue Oct 07 13:43:01 2014 +0200"
      },
      "message": "Fix update_bug not closing proposed/* changes\n\nWe didn\u0027t update update_bug.py when we switched from milestone-proposed\nto proposed/* branches, so it currently doesn\u0027t update bugs correctly\nwhen a backport is merged to proposed/*. This fixes it.\n\nChange-Id: Ifb8f5e71475d6b0be5e3e958c021d013a34bc0a1\n"
    },
    {
      "commit": "c3c6917601281fa202a95054df5c8c4cc8a99d27",
      "tree": "b1283aa55f0f5c2d54c912d494d0b53ed5529d6f",
      "parents": [
        "12cb6ca1c4a9bc4477b8cb9b452c59146d91b86e",
        "959a8a52e47a32f36de68a5aba5a1c00471815d5"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Sep 24 21:33:23 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Sep 24 21:33:23 2014 +0000"
      },
      "message": "Merge \"Multiple project groups.\""
    },
    {
      "commit": "959a8a52e47a32f36de68a5aba5a1c00471815d5",
      "tree": "cd63a67864e104201c821257950b17dea40acae2",
      "parents": [
        "872f72d2b82a44f8464757cbfae33518439149e7"
      ],
      "author": {
        "name": "Michael Krotscheck",
        "email": "krotscheck@gmail.com",
        "time": "Mon Aug 04 12:53:27 2014 -0700"
      },
      "committer": {
        "name": "Michael Krotscheck",
        "email": "krotscheck@gmail.com",
        "time": "Tue Sep 02 14:10:04 2014 -0700"
      },
      "message": "Multiple project groups.\n\nJeepyb now pulls all project groups listed in review.projects.yaml\nto check for bugs or blueprints. This is to support multiple\nproject group membership in storyboard. If \u0027groups\u0027 is not found,\nit will fallback to the legacy \u0027group\u0027 or the short project name,\nwrapped in an array.\n\nChange-Id: I5f6d09fce609f387b089840f3903303869f33767\n"
    },
    {
      "commit": "12cb6ca1c4a9bc4477b8cb9b452c59146d91b86e",
      "tree": "3e337c30fcaddf918cd7e36e54fbbe7fb1758c6c",
      "parents": [
        "872f72d2b82a44f8464757cbfae33518439149e7"
      ],
      "author": {
        "name": "Andrey Nikitin",
        "email": "anikitin@mirantis.com",
        "time": "Tue Aug 26 20:12:53 2014 +0400"
      },
      "committer": {
        "name": "Andrey Nikitin",
        "email": "anikitin@mirantis.com",
        "time": "Fri Aug 29 10:11:47 2014 +0400"
      },
      "message": "Added the ability to run jeepyb not only on the host where the Gerrit installed.\n\nIn the previous version of this script jeepyb could be run\non the same host where Gerrit installed,\nbecause in manage_projects.py was used \u0027localhost\u0027 directive.\n\nThe new version jeepyb can be run on any side,\nbecause \u0027localhost\u0027 directive was changed to \u0027GERRIT_HOST\u0027.\n\nChange-Id: I4faa2d0877864bdaa69bc55a6bcce882faca66df\n"
    },
    {
      "commit": "872f72d2b82a44f8464757cbfae33518439149e7",
      "tree": "364d20410b015bd097e5f4f3cb4dd397a1f48844",
      "parents": [
        "b12ab5feacc56110d45b24f1f37db0d0abcf354e"
      ],
      "author": {
        "name": "Oscar Romero",
        "email": "homeless@hp.com",
        "time": "Tue Aug 12 12:41:42 2014 -0500"
      },
      "committer": {
        "name": "Oscar Romero",
        "email": "homeless@hp.com",
        "time": "Wed Aug 20 12:19:45 2014 -0500"
      },
      "message": "Fix close_pull_requests from jeepyb\n\nAdding a \u0027try\u0027 to handle errors when the repo or organization is\nnot found in github.\n\nChange-Id: Ib86f848cfa0babd9091cc9610ae973b0d00758b6\n"
    },
    {
      "commit": "b12ab5feacc56110d45b24f1f37db0d0abcf354e",
      "tree": "d3edcfa5195597f5a5cbc6212eac43a0358ed34a",
      "parents": [
        "002e1526c4ebab86cb972f7696c30382921dd034",
        "edd165773ff62f82b3633dcde0699793b973a5d2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Aug 08 07:54:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Aug 08 07:54:06 2014 +0000"
      },
      "message": "Merge \"Don\u0027t use instances of complex types as a default value in args\""
    },
    {
      "commit": "002e1526c4ebab86cb972f7696c30382921dd034",
      "tree": "b292e27e04a3370ecb5b19879dbbd1ee76eb5bed",
      "parents": [
        "4063937f848fc77a40185d6459f4ec099b58669c"
      ],
      "author": {
        "name": "Jonathan Harker",
        "email": "code@gentlydownthe.net",
        "time": "Sun Aug 03 14:48:59 2014 -0700"
      },
      "committer": {
        "name": "Jonathan Harker",
        "email": "code@gentlydownthe.net",
        "time": "Sun Aug 03 14:48:59 2014 -0700"
      },
      "message": "Fix logging format\n\nIn change-id I9f415038ed716f89a3d95b5e102458b815947dec an incomplete\nlogging format was added resulting in the log messages no longer being\nlogged. This corrects the issue by appending the log message to the\nlog-line format.\n\nChange-Id: I7dd12b92cb366c7ed3f65adac089aca7143d813d\n"
    },
    {
      "commit": "edd165773ff62f82b3633dcde0699793b973a5d2",
      "tree": "066f64e9f4cd7af30c84e33692d3193125ee4f3c",
      "parents": [
        "4063937f848fc77a40185d6459f4ec099b58669c"
      ],
      "author": {
        "name": "Boris Pavlovic",
        "email": "boris@pavlovic.me",
        "time": "Thu Jun 19 09:46:20 2014 +0400"
      },
      "committer": {
        "name": "Boris Pavlovic",
        "email": "boris@pavlovic.me",
        "time": "Sat Aug 02 17:38:19 2014 +0400"
      },
      "message": "Don\u0027t use instances of complex types as a default value in args\n\nThis can produce unexpected buthurt (at least for me).\nCause python has super strange behavior in this case.\n\nE.g.\n\ndef a(t\u003d[]):\n    t.append(1)\n    print(t)\n\na() # prints [1]\na() # prints [1, 1]\n\nChange-Id: Ie5287dd4c958d2d1ccaf98486b9522a2d2c18724\n"
    },
    {
      "commit": "4063937f848fc77a40185d6459f4ec099b58669c",
      "tree": "9d9087a56b2b299029350962b55d283c274b3137",
      "parents": [
        "b784d75112cfb9e0cdde5d0927c51bbcda8a3775"
      ],
      "author": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Wed Jul 30 16:34:02 2014 -0700"
      },
      "committer": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Wed Jul 30 16:34:23 2014 -0700"
      },
      "message": "Add timestamps to logging\n\nCurrently only expire_old_reviews has timestamps in its logs. This\nchange copies the logging format from expire_old_reviews and passes it\nin to all of the various logging.basicConfig() calls.\n\nChange-Id: I9f415038ed716f89a3d95b5e102458b815947dec\n"
    },
    {
      "commit": "b784d75112cfb9e0cdde5d0927c51bbcda8a3775",
      "tree": "cf2e2f857e79b5eeb6da6b5dbd29454ce5dc6c74",
      "parents": [
        "cdd24965f88c7adc601b95156ac9c1e94f9f8f78"
      ],
      "author": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Wed Jul 30 16:27:50 2014 -0700"
      },
      "committer": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Wed Jul 30 16:27:50 2014 -0700"
      },
      "message": "Give -d precedence over -v in manage-projects\n\nCurrently if both -v and -d are given then the logging will be at INFO\nand not DEBUG. This changes the logic so that DEBUG will be used over\nINFO if both are specified.\n\nChange-Id: Ib111f8f833b1963c76e660e5c0954878727826b6\n"
    },
    {
      "commit": "cdd24965f88c7adc601b95156ac9c1e94f9f8f78",
      "tree": "f05f29afe98618694eecbc5ed66e0a58960328c0",
      "parents": [
        "20376179b52a92416e271443c05e02b3ac514317",
        "51d6eaaf4db6223c84cd68e97b9140f177a43d76"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jul 30 07:59:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jul 30 07:59:43 2014 +0000"
      },
      "message": "Merge \"Added \"no-gerrit\" option.\""
    },
    {
      "commit": "20376179b52a92416e271443c05e02b3ac514317",
      "tree": "6f465a6840b16b1772d613c765a296963c306019",
      "parents": [
        "364eb14e7c96eb07bf5e73b197ac46d08427f383",
        "5935b67478bd54bb7310b6bc57018eb62842ecce"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jul 29 20:33:33 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jul 29 20:33:33 2014 +0000"
      },
      "message": "Merge \"Add commit message link to newbie message\""
    },
    {
      "commit": "51d6eaaf4db6223c84cd68e97b9140f177a43d76",
      "tree": "8ac31f31c5ded9c0e48a18dbcc916d6e8a892733",
      "parents": [
        "d17b8042c5c3baa7e88ee5df0918336045ebb8e7"
      ],
      "author": {
        "name": "Michael Krotscheck",
        "email": "krotscheck@gmail.com",
        "time": "Wed Jul 23 11:28:19 2014 -0700"
      },
      "committer": {
        "name": "Michael Krotscheck",
        "email": "krotscheck@gmail.com",
        "time": "Tue Jul 29 13:10:20 2014 -0700"
      },
      "message": "Added \"no-gerrit\" option.\n\nIn order to enable projects that do not require a git repository (such as UX),\nI\u0027ve added the parsing for a no-gerrit option on review.projects.yaml.\n\nChange-Id: I8212cbe8e0dfef13105b5a966279251f76fb56ea\n"
    },
    {
      "commit": "364eb14e7c96eb07bf5e73b197ac46d08427f383",
      "tree": "4bce7400e6a1382952a8f75fff0159373104a387",
      "parents": [
        "d17b8042c5c3baa7e88ee5df0918336045ebb8e7"
      ],
      "author": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Wed Jul 09 17:40:41 2014 -0700"
      },
      "committer": {
        "name": "Jonathan Harker",
        "email": "code@gentlydownthe.net",
        "time": "Wed Jul 23 12:34:11 2014 -0700"
      },
      "message": "Allow for the newbie message to live in its own file\n\nChange-Id: I4d68db8fbf3c47482fbe682f6dcac0d5c8e7e2d9\n"
    },
    {
      "commit": "5935b67478bd54bb7310b6bc57018eb62842ecce",
      "tree": "3142f488799e39d02277ee849b10772c6dbecb30",
      "parents": [
        "d17b8042c5c3baa7e88ee5df0918336045ebb8e7"
      ],
      "author": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Wed Jul 09 16:54:00 2014 -0700"
      },
      "committer": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Wed Jul 09 16:54:00 2014 -0700"
      },
      "message": "Add commit message link to newbie message\n\nChange-Id: I271fa24a73baf16da97f42c86cd1563c9ad0df4a\n"
    },
    {
      "commit": "d17b8042c5c3baa7e88ee5df0918336045ebb8e7",
      "tree": "c3be6a63b9235aba755308d971def2930d8af574",
      "parents": [
        "f47149e5e5e9e8c55d04b14b11776ca3e76a3435"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Fri Jul 04 18:03:58 2014 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Fri Jul 04 18:05:37 2014 +0000"
      },
      "message": "Make manage-projects group regex less strict\n\nWe\u0027ve started using Gerrit ACL files which look like INI format and\nso we should no longer require whitespace at the start of option\nlines.\n\nChange-Id: I97369667d7bb75c864448d9dc023bde55e9d214d\n"
    },
    {
      "commit": "f47149e5e5e9e8c55d04b14b11776ca3e76a3435",
      "tree": "75431efc6a9a698d99b443071a0c0613abee9a0e",
      "parents": [
        "b25d85d4a5ba710230b495d28d7a2750b99b071a"
      ],
      "author": {
        "name": "Longgeek",
        "email": "longgeek@thstack.com",
        "time": "Sat Jun 28 23:17:59 2014 +0800"
      },
      "committer": {
        "name": "Longgeek",
        "email": "longgeek@thstack.com",
        "time": "Sat Jun 28 23:19:13 2014 +0800"
      },
      "message": "Update global requirements\n\nChange-Id: I7a62ff9b0d4c618b9f3af4874896fa16092b3eec\n"
    },
    {
      "commit": "b25d85d4a5ba710230b495d28d7a2750b99b071a",
      "tree": "f8ef156df5d6f6a57abe0c980d3ae6cc15907b13",
      "parents": [
        "fd69416ed12b8ffe2604ad91fab8a0729d8af30a"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Jun 18 18:31:15 2014 -0700"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Jun 18 18:32:36 2014 -0700"
      },
      "message": "Fix flow control when updating remotes\n\nManage projects would break out of its retry loop to do git remote\nupdates when errors occurred and not break out of the loop when it\nsuccessfully ran commands. This logic is inverted. We want to retry\nfailures and stop when we succeed. Fix the logic by inverting it.\n\nChange-Id: I75eb7e4134db618c688243c77c379c12c9468f7b\n"
    },
    {
      "commit": "fd69416ed12b8ffe2604ad91fab8a0729d8af30a",
      "tree": "5348f0625e6bfaa94963a90c3f4d2cd50a66e0d8",
      "parents": [
        "35f901f72c38e5f68ad57c1f58cf5e50b6e7796a"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Jun 18 14:45:05 2014 -0700"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Jun 18 14:45:05 2014 -0700"
      },
      "message": "Fix remote updating\n\n`git remote update` requires a named remote not a url. Previously jeepyb\nprovided a url which caused git to fail and jeepyb to not update ACLs.\nDon\u0027t provide any remote names instead and fall back on the default\nbehavior to update everything.\n\nChange-Id: I8e7113db5355e81faeff1f97b037bc41783b9a8c\n"
    },
    {
      "commit": "35f901f72c38e5f68ad57c1f58cf5e50b6e7796a",
      "tree": "14b98293dcb10de1d42ba2ee7383cac6fbee2e8b",
      "parents": [
        "b5bb0cd78c0d5d063cfe73b03ef61d1382dd757d",
        "2daf3bb22a1ff90735a39104933666100248ec3e"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jun 16 09:30:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Jun 16 09:30:32 2014 +0000"
      },
      "message": "Merge \"Wait for ACL creation in manage-projects\""
    },
    {
      "commit": "b5bb0cd78c0d5d063cfe73b03ef61d1382dd757d",
      "tree": "6251669511dfbb2270c4a597aa29731e7bbfa40a",
      "parents": [
        "35bdef857a3b4ccdfe48b76b934a5d664d941b4b"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Jun 10 08:56:56 2014 -0700"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Jun 10 08:56:56 2014 -0700"
      },
      "message": "Swap the boolean logic on copy_acl_config\n\nIf the exit code is zero on the diff, that means we did not copy\nsomething. Which means we want to return true if status !\u003d 0.\n\nChange-Id: I48130c305af8994977c95f0412aedc0bbb29c1eb\n"
    },
    {
      "commit": "35bdef857a3b4ccdfe48b76b934a5d664d941b4b",
      "tree": "0fa80984a75cac7e2bbb8a6ae46c9b9d257508e0",
      "parents": [
        "4f47cb014dc2c3c621a1fc5379f71b5f5d06d0d8",
        "925e7dc7aa97ef7b59caefe0eccb574aa95ed3b6"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Jun 01 02:47:13 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Jun 01 02:47:13 2014 +0000"
      },
      "message": "Merge \"use exceptions instead of return True/False\""
    },
    {
      "commit": "2daf3bb22a1ff90735a39104933666100248ec3e",
      "tree": "550d7b5c654c3d738791ed5a8367d782c66a7f0e",
      "parents": [
        "925e7dc7aa97ef7b59caefe0eccb574aa95ed3b6"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Wed May 21 17:53:07 2014 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Fri May 30 22:24:47 2014 +0000"
      },
      "message": "Wait for ACL creation in manage-projects\n\n* jeepyb/cmd/manage_projects.py: After Gerrit creates\nrefs/meta/config, wait for the empty project.config file to get\ncommitted before attempting to push the proposed ACL.\n\nChange-Id: I8601f90bc7b93cecffdc77073ef51f445e7539b6\n"
    },
    {
      "commit": "4f47cb014dc2c3c621a1fc5379f71b5f5d06d0d8",
      "tree": "84276bc6eea69b8be9e7fbbb8a8b74cd3a710b41",
      "parents": [
        "43c20c85786f4e6ca9d6bc7f71f7f88f403864d0"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Thu May 29 14:07:54 2014 -0700"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Thu May 29 14:07:54 2014 -0700"
      },
      "message": "Don\u0027t require psycopg2 to operate.\n\nJeepyb optionally supports postgres via psycopg2 but it isn\u0027t required\nfor base operation. Remove the requirement so that jeepyb can be\ninstalled on existing jeepyb installs without needing to add libpq-dev\neverywhere.\n\nUsers wishing to use postgres with jeepyb should install psycopg2 in\naddition to jeepyb.\n\nChange-Id: Ibe383a27bf826af02b9ad1764d224d654d195519\n"
    },
    {
      "commit": "925e7dc7aa97ef7b59caefe0eccb574aa95ed3b6",
      "tree": "034b5c7231cdb4003f10070ca680167b589a3e3b",
      "parents": [
        "a8bcd4334820f4843f62646d18f575e07e4c3d81"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon May 19 10:03:38 2014 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu May 29 12:45:58 2014 -0400"
      },
      "message": "use exceptions instead of return True/False\n\nthe manage process_acls function was rather complicated by having\na mix of using exception handling and functions returning true/false\ndepending on the level of nesting. Making the inner functions all\nreturn specific exceptions cleans up the top logic rather significantly.\n\nChange-Id: I5ff6edbacbe874b7bb60e10bb282f35bd4b3ea11\n"
    },
    {
      "commit": "43c20c85786f4e6ca9d6bc7f71f7f88f403864d0",
      "tree": "7869f9e474a5baad0e6b6dbfa5624e271cb4515a",
      "parents": [
        "3c20e2366be61c3f2f8c0d2511b8ab4b2d6484c8",
        "1b9f594e1752b1308502a68873c01481bd8ea688"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu May 29 16:31:31 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu May 29 16:31:31 2014 +0000"
      },
      "message": "Merge \"Add PostgreSQL database support for gerritdb\""
    },
    {
      "commit": "3c20e2366be61c3f2f8c0d2511b8ab4b2d6484c8",
      "tree": "b9aaa47ac800b85a33194066824bd88739948858",
      "parents": [
        "a8bcd4334820f4843f62646d18f575e07e4c3d81",
        "2d30110a7cf495a321ac2f0bdf229ee98dd72dff"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu May 29 16:28:13 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu May 29 16:28:13 2014 +0000"
      },
      "message": "Merge \"Stop writing project configs\""
    },
    {
      "commit": "a8bcd4334820f4843f62646d18f575e07e4c3d81",
      "tree": "7ec0c1ea7c93eacb77542d97078289130b275d51",
      "parents": [
        "79a80502c5c99ec14d57c361a2810b9cbefeb673",
        "e73f2e6da5cf5c3b44013460984130b801b58275"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed May 07 21:33:48 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed May 07 21:33:48 2014 +0000"
      },
      "message": "Merge \"Care less about github metadata\""
    },
    {
      "commit": "e73f2e6da5cf5c3b44013460984130b801b58275",
      "tree": "25905ef2df3ab5a211073fa36880ff32fe01128e",
      "parents": [
        "23a7dcc13a15d4edb162cfc24987bd29ab0de260"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sun Feb 23 07:05:54 2014 -0800"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Wed May 07 14:03:40 2014 -0700"
      },
      "message": "Care less about github metadata\n\nWe actually make API calls to github on every run to make sure\nthat the description and homepage fields are set properly, as\nwell as wiki and downloads booleans... even though we\u0027ve created\nthe last hundred accounts via manage-projects and it\u0027s 100% unlikely\nthat any of these have changed. We\u0027re also hitting github api limit\nunhappiness with a full run.\n\nStop running all of these unless we just created the project.\n\nChange-Id: I2ba958129efad80973bb5ba828a72210756c08de\n"
    },
    {
      "commit": "1b9f594e1752b1308502a68873c01481bd8ea688",
      "tree": "f4ecfe27c3a4560ca0ed6b81aede0903c2d8a56d",
      "parents": [
        "79a80502c5c99ec14d57c361a2810b9cbefeb673"
      ],
      "author": {
        "name": "Paul Belanger",
        "email": "paul.belanger@polybeacon.com",
        "time": "Wed May 07 19:47:11 2014 +0000"
      },
      "committer": {
        "name": "Paul Belanger",
        "email": "paul.belanger@polybeacon.com",
        "time": "Wed May 07 19:48:54 2014 +0000"
      },
      "message": "Add PostgreSQL database support for gerritdb\n\nThis adds a dependency at the operating system level for:\n\n    You need to install postgresql-server-dev-X.Y for building a\n    server-side extension or libpq-dev for building a client-side\n    application.\n\nChange-Id: I9e17d2e11c2f73f12730bf5d7f27b31cedd7cbd9\nSigned-off-by: Paul Belanger \u003cpaul.belanger@polybeacon.com\u003e\n"
    },
    {
      "commit": "2d30110a7cf495a321ac2f0bdf229ee98dd72dff",
      "tree": "29cfc82fb9d2173afb55461efe9a9cd3b8bd9433",
      "parents": [
        "b8342ddf2b0a12be856961b192ce658d6802ec5a"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Apr 28 18:10:30 2014 -0700"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Apr 28 18:10:30 2014 -0700"
      },
      "message": "Stop writing project configs\n\nWe treat the directory of configs as an input directory now. Stop\ntrying to write to it.\n\nChange-Id: I346d0fe94954432c8559ec71b76e24391d12484e\n"
    },
    {
      "commit": "79a80502c5c99ec14d57c361a2810b9cbefeb673",
      "tree": "936cf92128e00dc666042cdb20f110e6e254d110",
      "parents": [
        "b8342ddf2b0a12be856961b192ce658d6802ec5a",
        "8b18380c7661ff9247fd9e7eafc25150b1903bc5"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Apr 29 00:33:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Apr 29 00:33:32 2014 +0000"
      },
      "message": "Merge \"Use configured mysql host\""
    },
    {
      "commit": "b8342ddf2b0a12be856961b192ce658d6802ec5a",
      "tree": "8c33f7a5b53a6a2437323142e432e8fd7bb772bd",
      "parents": [
        "23a7dcc13a15d4edb162cfc24987bd29ab0de260"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Apr 28 17:10:15 2014 -0700"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Apr 28 17:20:20 2014 -0700"
      },
      "message": "Get the db host from the gerrit config too\n\nChange-Id: I39048f5c81d934de1e07c5a4ebad1e504b8df7e2\n"
    },
    {
      "commit": "8b18380c7661ff9247fd9e7eafc25150b1903bc5",
      "tree": "5108c5a840348d32688dd5a495ec535facc59443",
      "parents": [
        "c8b6d7db711a876e65e6754f57bda0e1dde36f5a"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Mon Apr 28 15:33:31 2014 -0700"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Apr 28 17:15:00 2014 -0700"
      },
      "message": "Use configured mysql host\n\nChange-Id: I11dbb2cbee216b9cfe625a5ee8955e4b109b5733\n"
    },
    {
      "commit": "23a7dcc13a15d4edb162cfc24987bd29ab0de260",
      "tree": "06fec8a4339780f0c951f41d361a1dc174ffdd35",
      "parents": [
        "c8b6d7db711a876e65e6754f57bda0e1dde36f5a",
        "8979bdee907eabb7953921286113fcf729b699ec"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Mon Apr 28 16:11:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Apr 28 16:11:08 2014 +0000"
      },
      "message": "Merge \"Add change abandoned logic to jeepyb\""
    },
    {
      "commit": "c8b6d7db711a876e65e6754f57bda0e1dde36f5a",
      "tree": "0b1e72678ce9c2bbb3b74880ba5382f884c0e847",
      "parents": [
        "b1f9503ebe666999d35a8ce82d2bc8df0ede0f56",
        "2d6f513f3962b5fa92b930b52cb2c0aa9655d197"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Apr 22 00:04:41 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Apr 22 00:04:41 2014 +0000"
      },
      "message": "Merge \"Improve message posted when inactive changes are abandoned\""
    },
    {
      "commit": "b1f9503ebe666999d35a8ce82d2bc8df0ede0f56",
      "tree": "43b6f670bece98c7a79ed4aeede01fd065e4dccf",
      "parents": [
        "d0595837dc6990c98c5a24107e32082eda2c77f4",
        "bf7d5a5695d39589baa04a7e6e4773995e983d84"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Apr 21 21:57:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Apr 21 21:57:38 2014 +0000"
      },
      "message": "Merge \"Remove dupe bug detection from notify_impact\""
    },
    {
      "commit": "8979bdee907eabb7953921286113fcf729b699ec",
      "tree": "8a6ff87296ba159b9455c289b98c5fc5398a250e",
      "parents": [
        "aaaf1c7f5b79a68716c6ceabdfca9ef61a483e1a"
      ],
      "author": {
        "name": "Ricardo Carrillo Cruz",
        "email": "ricardo.carrillo.cruz@gmail.com",
        "time": "Wed Apr 09 16:09:32 2014 +0000"
      },
      "committer": {
        "name": "Ricardo Carrillo Cruz",
        "email": "ricardo.carrillo.cruz@gmail.com",
        "time": "Wed Apr 16 09:04:56 2014 +0000"
      },
      "message": "Add change abandoned logic to jeepyb\n\nThis change allows jeepyb to update LP bugs associated\nto Gerrit changesets when those changesets\nare abandoned.\nAnother change in openstack-infra/config will be needed\nto configure review.openstack.org appropriately.\n\nPartial-Bug: 1248813\nChange-Id: I51ab97f240d161704fb323787fb54ee1814bd7fa\n"
    },
    {
      "commit": "d0595837dc6990c98c5a24107e32082eda2c77f4",
      "tree": "3acb393713db737ad9d5fb662c076cbbea3e86fd",
      "parents": [
        "aaaf1c7f5b79a68716c6ceabdfca9ef61a483e1a"
      ],
      "author": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Wed Apr 09 16:24:58 2014 -0700"
      },
      "committer": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Wed Apr 09 16:26:45 2014 -0700"
      },
      "message": "Read the has-github value from the defaults file\n\nCurrently, setting has-github in the defaults file will be ignored.\nThis change will check for a default value in the correct location.\n\nChange-Id: I24e6d5ec17287898b6bd064c515ca318b91924d5\n"
    },
    {
      "commit": "2d6f513f3962b5fa92b930b52cb2c0aa9655d197",
      "tree": "985d27508caa4f52667ed76fe6c44a779a5e92c7",
      "parents": [
        "aaaf1c7f5b79a68716c6ceabdfca9ef61a483e1a"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Apr 09 18:09:13 2014 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Apr 09 18:09:13 2014 +0900"
      },
      "message": "Improve message posted when inactive changes are abandoned\n\nFix the capitalisation and punctuation.\n\nChange-Id: I9f16e63c30a4a073c083a93430297200f45e7520\n"
    },
    {
      "commit": "bf7d5a5695d39589baa04a7e6e4773995e983d84",
      "tree": "256df65522f941f8eecfd24ad8db6d1a59820356",
      "parents": [
        "aaaf1c7f5b79a68716c6ceabdfca9ef61a483e1a"
      ],
      "author": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Mon Mar 31 14:33:17 2014 +0800"
      },
      "committer": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Mon Mar 31 14:34:47 2014 +0800"
      },
      "message": "Remove dupe bug detection from notify_impact\n\nAs DocImpact is now only triggered on patchset-merge, this code\nis redundant.\n\nIn addition, I believe Launchpad search has started to return false\npositive matches, meaning that this code is preventing some DocImpact\nbugs from being created.\n\nChange-Id: Id2e7155dff7b3562ba5697f3988682ef8e4acdcd\n"
    },
    {
      "commit": "aaaf1c7f5b79a68716c6ceabdfca9ef61a483e1a",
      "tree": "d0cce4f1fa65ea4fa55f51af042845590997c604",
      "parents": [
        "6a767deed67542f946b34f466e05dc3221e6fcc3"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Mar 18 02:14:55 2014 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Mar 18 02:14:55 2014 +0000"
      },
      "message": "Polish new contributor welcome message hook script\n\n* jeepyb/cmd/welcome_message.py: Several fixes... minor comment\ncorrections; use the commit gitsha instead of the Change-Id string\nwhen submitting messages since the latter is not valid; close the\nSSH session when we\u0027re done with it so Gerrit doesn\u0027t kill the\ndropped socket; log stdout and stderr from SSH at appropriate\nlevels; pass the SSH user and key file as options instead of\npositional arguments since we have limited control over the order of\nhook parameters passed from Gerrit; match on the patchset as a str\ninstead of an int since it is not of the latter type.\n\nChange-Id: Ib1661b16f6a82f8fd917ec273bfac67145cd5116\n"
    },
    {
      "commit": "6a767deed67542f946b34f466e05dc3221e6fcc3",
      "tree": "a9b1a87ca439f92a535f65260df9db554df88018",
      "parents": [
        "2a414528e2dcd24129ae53e3592243245af6ec16",
        "5eb59d3e10f04a8e02b3dd15c8b68f2bdf0734ba"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Mar 17 17:15:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Mar 17 17:15:38 2014 +0000"
      },
      "message": "Merge \"Keep py3.X compatibility for urllib\""
    },
    {
      "commit": "2a414528e2dcd24129ae53e3592243245af6ec16",
      "tree": "d74964657c32cd47536919c6db0efd1b9499c598",
      "parents": [
        "5159c0dca40e11e9540fce0451abcbb8dc31853c",
        "f0bec296c63c24beeb9b01c849be2523fcb70be7"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Mar 12 00:27:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Mar 12 00:27:24 2014 +0000"
      },
      "message": "Merge \"Load project settings from ini file, if present.\""
    },
    {
      "commit": "5159c0dca40e11e9540fce0451abcbb8dc31853c",
      "tree": "4be999c6e57f7fedec97abd97ce9fc8f8b39e1ca",
      "parents": [
        "f5d9331ae2c8b1ffd9ee3e464f6e397d2f9d4ca2",
        "7c3f3183f50c7cab9c946b4380256ab69b0389fb"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 07 20:05:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 07 20:05:10 2014 +0000"
      },
      "message": "Merge \"Poll manage projects config fetches.\""
    },
    {
      "commit": "f5d9331ae2c8b1ffd9ee3e464f6e397d2f9d4ca2",
      "tree": "a6bd1d5211c2ff6989ef467adbc672fb685097d2",
      "parents": [
        "ad63deda2c2141405887684e47169f66d28c22a6",
        "12ad1449599d24112731602fb32bfbd4fb23aee1"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 07 19:13:56 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 07 19:13:56 2014 +0000"
      },
      "message": "Merge \"Change return code and command said log.info\""
    },
    {
      "commit": "ad63deda2c2141405887684e47169f66d28c22a6",
      "tree": "b8c39b363c6b88ad2ebf5298ecc25481961e1c45",
      "parents": [
        "b61e93562621c5a8ae2e25f2ab002705ed3e4c40"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Thu Mar 06 23:42:15 2014 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Thu Mar 06 23:42:15 2014 +0000"
      },
      "message": "Welcome message hook query result is an int\n\n* jeepyb/cmd/welcome_message.py: The query result is returned as an\nint type value. Previous comparisons against a string type constant\nwould never have matched.\n\nChange-Id: I52abcc7d5dc34b4a27b18c902385fa4094d91e63\n"
    },
    {
      "commit": "f0bec296c63c24beeb9b01c849be2523fcb70be7",
      "tree": "70e3a042aab6d52e1602ff752867bf18a22196c0",
      "parents": [
        "b61e93562621c5a8ae2e25f2ab002705ed3e4c40"
      ],
      "author": {
        "name": "Bhuvan Arumugam",
        "email": "bhuvan@apple.com",
        "time": "Wed Feb 05 22:54:13 2014 +0530"
      },
      "committer": {
        "name": "Bhuvan Arumugam",
        "email": "bhuvan@apple.com",
        "time": "Wed Mar 05 11:33:29 2014 -0800"
      },
      "message": "Load project settings from ini file, if present.\n\nWe manage project settings in 2 files, projects.ini and projects.yaml file. If\nini file is present, read defaults from this file and parse yaml using new\nformat.\n\nCloses-Bug: 1275824\nChange-Id: I5bc2e81388420ce03d5379b8d75063481887243b\n"
    },
    {
      "commit": "b61e93562621c5a8ae2e25f2ab002705ed3e4c40",
      "tree": "3bf080ea9611c80dacfa5d3e58d6ab931452d43f",
      "parents": [
        "9c24b7f0bc4e1151fe061606f5be6e2f9c7657ce",
        "1a22ef2abf22ecea00b4c0e89ea0cd53fa2e3309"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Mar 04 20:33:31 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Mar 04 20:33:31 2014 +0000"
      },
      "message": "Merge \"Only add upstream remotes if we track upstream\""
    },
    {
      "commit": "12ad1449599d24112731602fb32bfbd4fb23aee1",
      "tree": "370b60465050b1efaa414ac8f0266afa050098b0",
      "parents": [
        "c6b7774f58334dc80c3a6a0dd9ed52df9ab923a3"
      ],
      "author": {
        "name": "Anita Kuno",
        "email": "anteaya@anteaya.info",
        "time": "Mon Feb 17 14:12:21 2014 -0500"
      },
      "committer": {
        "name": "Anita Kuno",
        "email": "anteaya@anteaya.info",
        "time": "Tue Mar 04 15:12:16 2014 -0500"
      },
      "message": "Change return code and command said log.info\n\nChanges return code and command said to log.info in\nmanage-projects. This increases the level of output\nfor the verbose flag which was changed to the info\nlevel in https://review.openstack.org/#/c/74118\n\nChange-Id: I04929bd084dad0d1e65987182be1c7959fb9b242\n"
    },
    {
      "commit": "9c24b7f0bc4e1151fe061606f5be6e2f9c7657ce",
      "tree": "d1e51f741e0265d57ba2ef18851d34b3335959bf",
      "parents": [
        "eaa25ccaebe690868172bae03d19185ced2d98b6",
        "c6b7774f58334dc80c3a6a0dd9ed52df9ab923a3"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Mar 01 08:05:30 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Mar 01 08:05:30 2014 +0000"
      },
      "message": "Merge \"Change manage-projects verbose logging to info\""
    },
    {
      "commit": "1a22ef2abf22ecea00b4c0e89ea0cd53fa2e3309",
      "tree": "e55992f15f426d3bed52a2492a775f9aef7796b6",
      "parents": [
        "c80544b911443cbe485a2ff18aefb6d6d63dc5fc"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Mar 01 00:39:48 2014 +0100"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Feb 28 17:34:26 2014 -0800"
      },
      "message": "Only add upstream remotes if we track upstream\n\nCurrent runs fetch remote refs every time. This is because they were\nnot paying attention to the track-upstream config option in\nthe code where they add a git remote. This made the subsequent\ngit remote update command do way too much work.\n\nOnly have an upstream remote if we need one - and remove it if\nwe are configured to not need one.\n\nChange-Id: Iff1bb2ddce3ec27d19fbbc246a5a3af26bceff29\n"
    },
    {
      "commit": "7c3f3183f50c7cab9c946b4380256ab69b0389fb",
      "tree": "249da9fee6a528b0a3739dd66afaf785e2e082bd",
      "parents": [
        "c80544b911443cbe485a2ff18aefb6d6d63dc5fc"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Fri Feb 28 17:13:36 2014 -0800"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Fri Feb 28 17:19:55 2014 -0800"
      },
      "message": "Poll manage projects config fetches.\n\nRetry every 2 seconds when fetching the refs/meta/config ref from gerrit\non new projects.\n\nChange-Id: I5942396fb8dbede167f86e48aff6e8ec17eee282\n"
    },
    {
      "commit": "eaa25ccaebe690868172bae03d19185ced2d98b6",
      "tree": "30fa086cebe01fec6cbbf58fe870edeced446eb5",
      "parents": [
        "c80544b911443cbe485a2ff18aefb6d6d63dc5fc",
        "76b8c71fb1eb6830ce342b8af58a5ca4c0bab1d9"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Mar 01 01:00:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Mar 01 01:00:38 2014 +0000"
      },
      "message": "Merge \"Don\u0027t split the initial branch list on all whitespace\""
    },
    {
      "commit": "c80544b911443cbe485a2ff18aefb6d6d63dc5fc",
      "tree": "f50ffc1b97d741445de0efae487ab7a7f373c5e6",
      "parents": [
        "6cfc9ea5de57a7295cc4f0435d7cd55c0db438c5",
        "2f4d037d0203b240d37f920d406aa8e8d9b14d45"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Feb 26 18:57:06 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Feb 26 18:57:06 2014 +0000"
      },
      "message": "Merge \"Remove hardcoded direct-release project list\""
    },
    {
      "commit": "6cfc9ea5de57a7295cc4f0435d7cd55c0db438c5",
      "tree": "4877c141b783794bbed40825783bbd97fb38d6a6",
      "parents": [
        "8948a8d81fa953f96c8591a31650e9b766a26fd7"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Feb 25 14:56:09 2014 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Feb 25 14:56:09 2014 +0000"
      },
      "message": "Make welcome-message --verbose work like -v\n\nChange-Id: I0455eef17d07c6918a667cfa94675494e68b6e26\n"
    },
    {
      "commit": "5eb59d3e10f04a8e02b3dd15c8b68f2bdf0734ba",
      "tree": "f12b18453eba4f0633fbef05a3616ca4cc1e3011",
      "parents": [
        "8948a8d81fa953f96c8591a31650e9b766a26fd7"
      ],
      "author": {
        "name": "Fengqian Gao",
        "email": "fengqian.gao@intel.com",
        "time": "Tue Feb 25 16:26:17 2014 +0800"
      },
      "committer": {
        "name": "Fengqian Gao",
        "email": "fengqian.gao@intel.com",
        "time": "Tue Feb 25 16:26:52 2014 +0800"
      },
      "message": "Keep py3.X compatibility for urllib\n\nUse six.moves.urllib instead of urllib\n\nPartial-Bug: #1280105\n\nChange-Id: Ieace55f7ca0189e40f268a43431ce63130e267be\n"
    },
    {
      "commit": "8948a8d81fa953f96c8591a31650e9b766a26fd7",
      "tree": "72b2b9c4c7902aeaeffdab679640e4520d3f8c80",
      "parents": [
        "7f95d989995abeec4a9cf48135cb596825784a51",
        "6fb6783d0133c16ddbeeb5dec9abf6376f7515a0"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Feb 23 00:13:16 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Feb 23 00:13:16 2014 +0000"
      },
      "message": "Merge \"Fix misspellings in jeepyb\""
    },
    {
      "commit": "76b8c71fb1eb6830ce342b8af58a5ca4c0bab1d9",
      "tree": "664ef37c0084a543737a683cb0b52e7f2b5e437b",
      "parents": [
        "7f95d989995abeec4a9cf48135cb596825784a51"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Feb 22 10:23:55 2014 -0800"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Feb 22 10:23:55 2014 -0800"
      },
      "message": "Don\u0027t split the initial branch list on all whitespace\n\nIf there is an explicit upstream HEAD pointing at master, the\n\"if -\u003e in branch\" is supposed to filter it out. Unfortunately,\nbecause split() does all whitespace, we actually lose the -\u003e in\nthe line so we can\u0027t exclude those lines.\n\nInstead, split first on newlines explicitly. Then do the filter on\ncontent. Then, when we\u0027re happy it\u0027s a good target, split on\nwhitespace.\n\nChange-Id: I2ed39570eb26a0c7f1fa1f7381c1e14217c981bb\n"
    },
    {
      "commit": "2f4d037d0203b240d37f920d406aa8e8d9b14d45",
      "tree": "f5a7643badc76491db6fb61912139b20ece3f5f9",
      "parents": [
        "7f95d989995abeec4a9cf48135cb596825784a51"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Tue Feb 18 13:33:39 2014 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Tue Feb 18 16:22:08 2014 +0400"
      },
      "message": "Remove hardcoded direct-release project list\n\nThe direct-release option was already moved to the projects.yaml (thanks\nfor Monty - Id6d25b3f806d2173d53cb06fc4ee45669c645737), so, we can remove\nit from jeepyb.\n\nChange-Id: I3894065ae08304abafaad657fbf9fd25824fcd02\n"
    },
    {
      "commit": "7f95d989995abeec4a9cf48135cb596825784a51",
      "tree": "421f4f9b3cdbdd8faf3760371f2cb12e446cda13",
      "parents": [
        "642a5a9fce897f97efe72e7051d78b4024c0a16d"
      ],
      "author": {
        "name": "Joshua Hesketh",
        "email": "josh@nitrotech.org",
        "time": "Tue Feb 18 15:00:53 2014 +1100"
      },
      "committer": {
        "name": "Joshua Hesketh",
        "email": "josh@nitrotech.org",
        "time": "Tue Feb 18 15:11:17 2014 +1100"
      },
      "message": "Fix docimpact_target project selection\n\nI6c9a9f3f42b3a9eff33ca0522b9f23f058131433 introduced the ability to\nmap docimpact\u0027s to different launchpad projects but unfortunately\ndidn\u0027t select the correct project out of the YAML mapping.\n\nChange-Id: If824aa429d4cf82eda474d9ff99b46d713b6af0f\n"
    },
    {
      "commit": "c6b7774f58334dc80c3a6a0dd9ed52df9ab923a3",
      "tree": "3e1893c68995017669312e8d9a7ef558dcef3b47",
      "parents": [
        "642a5a9fce897f97efe72e7051d78b4024c0a16d"
      ],
      "author": {
        "name": "Anita Kuno",
        "email": "anteaya@anteaya.info",
        "time": "Mon Feb 17 13:30:34 2014 -0500"
      },
      "committer": {
        "name": "Anita Kuno",
        "email": "anteaya@anteaya.info",
        "time": "Mon Feb 17 13:52:09 2014 -0500"
      },
      "message": "Change manage-projects verbose logging to info\n\nChanges manage-projects verbose logging to info from debug.\nAdds a new cli option debug for logging at the debug level.\n\nChange-Id: Ib94e1751aa49cb660c601fdfc3cd0778b8cac748\n"
    },
    {
      "commit": "642a5a9fce897f97efe72e7051d78b4024c0a16d",
      "tree": "b9c7688666ec9cc01dbed99c0453cf20566a2aa4",
      "parents": [
        "08573738fb0407b1829af286957e7e82017ff0ae",
        "fa936da67f249718d731eba36d6b16e0fde088ef"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Feb 13 10:54:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Feb 13 10:54:32 2014 +0000"
      },
      "message": "Merge \"Rename Openstack to OpenStack\""
    },
    {
      "commit": "fa936da67f249718d731eba36d6b16e0fde088ef",
      "tree": "608a5c97e016ae018bf20d6a1458f26f99ef1c6d",
      "parents": [
        "937e51347bb3a41751ef966ebf997386c850351f"
      ],
      "author": {
        "name": "tanlin",
        "email": "lin.tan@intel.com",
        "time": "Thu Feb 13 15:41:41 2014 +0800"
      },
      "committer": {
        "name": "tanlin",
        "email": "lin.tan@intel.com",
        "time": "Thu Feb 13 15:41:41 2014 +0800"
      },
      "message": "Rename Openstack to OpenStack\n\nChange-Id: I5c31c4575be460d733d569242d25687069c7674f\n"
    },
    {
      "commit": "08573738fb0407b1829af286957e7e82017ff0ae",
      "tree": "5a700ace4d25cb5a6985a5c8912b98b05c9f4cd9",
      "parents": [
        "01376b0d8c83f669ba07758493eb376213821dec",
        "fdc8b5d31139b91bdcc682b53bb731774033c5ad"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Feb 11 21:07:00 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Feb 11 21:07:00 2014 +0000"
      },
      "message": "Merge \"Allow welcome-message to configure logging\""
    },
    {
      "commit": "01376b0d8c83f669ba07758493eb376213821dec",
      "tree": "5e129eb197ab775dfec32b315987cbe414aabe1d",
      "parents": [
        "937e51347bb3a41751ef966ebf997386c850351f",
        "335ef39212996ef7ea8d67e70dace23a16035609"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Feb 11 06:12:58 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Feb 11 06:12:58 2014 +0000"
      },
      "message": "Merge \"Fix incompatibility with gerrit 2.8\""
    },
    {
      "commit": "fdc8b5d31139b91bdcc682b53bb731774033c5ad",
      "tree": "c2f817921bb09ab9b95dde541c69e94c1df0a7a3",
      "parents": [
        "937e51347bb3a41751ef966ebf997386c850351f"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Mon Feb 10 09:56:28 2014 -0800"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Mon Feb 10 09:56:28 2014 -0800"
      },
      "message": "Allow welcome-message to configure logging\n\nAs-was it was basically a no-op except that it output a warning\nmessage about not being able to find a logger.\n\nChange-Id: Ia69d55f13d8f77aa93326757229fda8ca4d7cd9a\n"
    },
    {
      "commit": "937e51347bb3a41751ef966ebf997386c850351f",
      "tree": "1c73e88c1f3e34bc5cf332b2a0ea212d30b75950",
      "parents": [
        "56ff2a7c1d9011816da94ebb99893e1ef44a8f4e"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Fri Feb 07 21:00:06 2014 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Fri Feb 07 21:13:07 2014 +0000"
      },
      "message": "Correct create-cgitrepos projects.yaml versioning\n\n* jeepyb/cmd/create_cgitrepos.py: For backwards compatibility, the\nnumber of YAML documents in the YAML file tells us where to look.\nJust always use the last one.\n\nChange-Id: Iffb0a88273dee0abc42664a891ca8ef28a9fc7fb\n"
    },
    {
      "commit": "6fb6783d0133c16ddbeeb5dec9abf6376f7515a0",
      "tree": "04c32f9c8778d0fdbe2e206d0c62433853cb6217",
      "parents": [
        "56ff2a7c1d9011816da94ebb99893e1ef44a8f4e"
      ],
      "author": {
        "name": "Shane Wang",
        "email": "shane.wang@intel.com",
        "time": "Fri Feb 07 14:30:27 2014 +0800"
      },
      "committer": {
        "name": "Shane Wang",
        "email": "shane.wang@intel.com",
        "time": "Fri Feb 07 14:31:04 2014 +0800"
      },
      "message": "Fix misspellings in jeepyb\n\nFix misspellings detected by:\n* pip install misspellings\n* git ls-files | grep -v locale | misspellings -f -\n\nChange-Id: Id3764d3645f1fd9f9dd2af74ec1f2416e66bdcca\nCloses-Bug: #1257295\n"
    },
    {
      "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": "335ef39212996ef7ea8d67e70dace23a16035609",
      "tree": "41a496586f5d37c01d27894e41ed94f605ded763",
      "parents": [
        "a24ede6ddcf36012191e969d9395ad3cecb4f684"
      ],
      "author": {
        "name": "Khai Do",
        "email": "zaro0508@gmail.com",
        "time": "Tue Jan 28 20:45:04 2014 -0800"
      },
      "committer": {
        "name": "Khai Do",
        "email": "zaro0508@gmail.com",
        "time": "Wed Jan 29 15:51:36 2014 -0800"
      },
      "message": "Fix incompatibility with gerrit 2.8\n\nThis change updates the gerrit hook scripts to be compatible with gerrit version 2.8\n\nCloses-Bug: #1273947\nPartial-Bug: #1082781\n\nChange-Id: I529bb9fbded16ccafb020b4edc9eb2d5e641cbc7\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\""
    }
  ],
  "next": "944da0dd7d88b0903c184ce23a3b8ccca422d6d6"
}
