)]}'
{
  "log": [
    {
      "commit": "a4ff735e886ddec9161443ff552e05e28ef289d4",
      "tree": "9dc76b61a018334ee30cb2aa2498751736d7b968",
      "parents": [
        "42b1cc8850f07c8895f365c4abe122652fe91d57"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@redhat.com",
        "time": "Tue Dec 13 08:48:55 2016 -0800"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "jeblair@redhat.com",
        "time": "Tue Dec 13 08:49:36 2016 -0800"
      },
      "message": "Switch SSO URL to login.ubuntu.com\n\nIt\u0027s the same site, but login.ubuntu.com is the \u0027real\u0027 one and\nlaunchpad.net is an alias. login.launchpad.net seems to be less\nimportant to the admins.\n\nChange-Id: Ic3a68886fb846699860a58ea76c16f2749f05897\n"
    },
    {
      "commit": "42b1cc8850f07c8895f365c4abe122652fe91d57",
      "tree": "430a545f580da2ac1dec002edb81b4151face7ec",
      "parents": [
        "3a9b21810c7ab3c342b1ae83dba53151a5c885fb"
      ],
      "author": {
        "name": "Gregory Haynes",
        "email": "greg@greghaynes.net",
        "time": "Tue Jun 14 18:44:55 2016 +0000"
      },
      "committer": {
        "name": "Gregory Haynes",
        "email": "greg@greghaynes.net",
        "time": "Tue Jun 14 18:46:01 2016 +0000"
      },
      "message": "Allow setting a default org in create_cgitrepos\n\nIts possible that projects don\u0027t follow the same org/project convention\nthat upstream openstack follows and instead just name projects with out\na prepended org. Allow setting a default org for this case.\n\nChange-Id: I826b041bf2d51dfcadef9d5a67c1845ebe9378a0\n"
    },
    {
      "commit": "3a9b21810c7ab3c342b1ae83dba53151a5c885fb",
      "tree": "b26e031f5a2c22905069ff6735b71afff7dcfb1c",
      "parents": [
        "f632bb6f8f700820f6033ddeb06a82ba5e997104",
        "6d97045c8ce87eda1700c7c5a9ecd3d94f8e5f72"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Mar 10 21:21:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Mar 10 21:21:21 2016 +0000"
      },
      "message": "Merge \"Use oauth token to create GitHub project if available\""
    },
    {
      "commit": "f632bb6f8f700820f6033ddeb06a82ba5e997104",
      "tree": "d2eb949807821cb7b66b2cb4849077d3c21fd215",
      "parents": [
        "0adaee5977ec455f734da95a0b6be080d27251d7",
        "4294e878dbe1da058ae2e9452dbdd86fc62ca412"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Mar 10 21:15:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Mar 10 21:15:34 2016 +0000"
      },
      "message": "Merge \"Remove argparse from requirements\""
    },
    {
      "commit": "0adaee5977ec455f734da95a0b6be080d27251d7",
      "tree": "450d69d1d41c3d9bda808e93ea3aebeeb3877bf5",
      "parents": [
        "a2d4e2f92f956127059d725a85734f669b8f195d"
      ],
      "author": {
        "name": "Mathieu Gagné",
        "email": "mgagne@iweb.com",
        "time": "Thu Nov 19 21:16:13 2015 -0500"
      },
      "committer": {
        "name": "Khai Do",
        "email": "zaro0508@gmail.com",
        "time": "Tue Feb 09 10:55:53 2016 -0800"
      },
      "message": "Don\u0027t create new groups for system ones\n\nA Gerrit bug[1] allowed manage_projects to create a Gerrit\ninternal group with the same name as a system group\n(\u0027Registered Users\u0027).  This happened after upgrading to\nGerrit 2.11 because there are existing projects with \u0027Registered\nUsers\u0027 in acls config files.  Even though Gerrit shouldn\u0027t allow\ncreation of a group with the same name as a system group,\nmanage_projects shouldn\u0027t even attempt to do it.\n\nThis change prevents manage_projecsts from creating\ngroups with the same name as Gerrit system groups.  It\nwill also add correct entries to group files for system groups.\nBelow is the group file entries that Gerrit expects for\nsystem groups:\n\nglobal:Anonymous-Users                  \tAnonymous Users\nglobal:Change-Owner                     \tChange Owner\nglobal:Project-Owners                   \tProject Owners\nglobal:Registered-Users                 \tRegistered Users\n\nFor backward compatibility, the existing group UUID will be returned\nif one is found in the database.\n\n[1] https://code.google.com/p/gerrit/issues/detail?id\u003d3831\n\nChange-Id: I17d6e1a5553f98ff910480d41a2ac7b3a2522809\n"
    },
    {
      "commit": "6d97045c8ce87eda1700c7c5a9ecd3d94f8e5f72",
      "tree": "3a31cbeea5ebfcef5e6b07a890b689e9962c8899",
      "parents": [
        "a2d4e2f92f956127059d725a85734f669b8f195d"
      ],
      "author": {
        "name": "Mathieu Gagné",
        "email": "mgagne@iweb.com",
        "time": "Mon Feb 08 13:29:35 2016 -0500"
      },
      "committer": {
        "name": "Mathieu Gagné",
        "email": "mgagne@iweb.com",
        "time": "Mon Feb 08 13:39:13 2016 -0500"
      },
      "message": "Use oauth token to create GitHub project if available\n\nMake sure you have repo/public_repo and write:org scopes.\n\nChange-Id: I773331d2b0051865d783af5024fac1490c64c782\n"
    },
    {
      "commit": "4294e878dbe1da058ae2e9452dbdd86fc62ca412",
      "tree": "199126164bdad66cc832901e03425c8d2601f2d3",
      "parents": [
        "a2d4e2f92f956127059d725a85734f669b8f195d"
      ],
      "author": {
        "name": "Andreas Jaeger",
        "email": "aj@suse.com",
        "time": "Wed Jan 20 19:32:12 2016 +0100"
      },
      "committer": {
        "name": "Andreas Jaeger",
        "email": "aj@suse.com",
        "time": "Wed Jan 20 19:32:12 2016 +0100"
      },
      "message": "Remove argparse from requirements\n\nargparse was external in python 2.6 but not anymore, remove it from\nrequirements.\n\nThis should help with pip 8.0 that gets confused in this situation.\nInstallation of the external argparse is not needed.\n\nChange-Id: Ib7e74912b36c1b5ccb514e31fac35efeff57378d\n"
    },
    {
      "commit": "a2d4e2f92f956127059d725a85734f669b8f195d",
      "tree": "2194f3193d161a13e1ed236474fa1391b7a80b05",
      "parents": [
        "dc6872b8e3070c94d283e0d9ad66025db89723ab",
        "f5d1647c47315ad8b99b3310a09616d5c8944330"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jan 20 14:03:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jan 20 14:03:14 2016 +0000"
      },
      "message": "Merge \"Add docimpact tag for bugs that target project queues\""
    },
    {
      "commit": "f5d1647c47315ad8b99b3310a09616d5c8944330",
      "tree": "51c24e6c93cb79bf2f1b4138674d4a3a5f3d378e",
      "parents": [
        "aef5d9a6f6fb451ada6e47f34d589f1370970d07"
      ],
      "author": {
        "name": "armando-migliaccio",
        "email": "armamig@gmail.com",
        "time": "Thu Dec 03 13:07:54 2015 -0800"
      },
      "committer": {
        "name": "Andreas Jaeger",
        "email": "aj@suse.com",
        "time": "Tue Dec 22 08:05:26 2015 +0100"
      },
      "message": "Add docimpact tag for bugs that target project queues\n\nFor bugs that are filed against the project\u0027s queue rather than the\nopenstack-manuals queue, it\u0027s useful to classify them further by\nadding a doc-relevant tag. This way, the project\u0027s bug team can do\na much easier look up to ensure that these bugs do not go unnoticed.\n\nChange-Id: Ic9d2bdffd4acca3bb093f5037e62582961919ebf\n"
    },
    {
      "commit": "dc6872b8e3070c94d283e0d9ad66025db89723ab",
      "tree": "1cadab52658cecf17b76017d25fa8d4395f2f5ad",
      "parents": [
        "aef5d9a6f6fb451ada6e47f34d589f1370970d07"
      ],
      "author": {
        "name": "Paul Belanger",
        "email": "pabelanger@redhat.com",
        "time": "Thu Dec 17 22:43:13 2015 -0500"
      },
      "committer": {
        "name": "Paul Belanger",
        "email": "pabelanger@redhat.com",
        "time": "Thu Dec 17 22:44:28 2015 -0500"
      },
      "message": "Be more specific for new users\n\nA twitter user was complaining our documentation didn\u0027t properly\nreference how to \u0027get started\u0027. So be more explict.\n\nChange-Id: I352ea8dff10e5ca4a80a94033f65e684fb9da322\nSigned-off-by: Paul Belanger \u003cpabelanger@redhat.com\u003e\n"
    },
    {
      "commit": "aef5d9a6f6fb451ada6e47f34d589f1370970d07",
      "tree": "b37ab4d0ef438da46da47b665984d2f6e09bb710",
      "parents": [
        "5d07f3f721bcf8c8c5c64ba564296579ea38fdee",
        "72cdffc3021cec3623957fe504b858952f91f64a"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Dec 11 08:26:13 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Dec 11 08:26:13 2015 +0000"
      },
      "message": "Merge \"Always add prelude for docimpact bugs\""
    },
    {
      "commit": "5d07f3f721bcf8c8c5c64ba564296579ea38fdee",
      "tree": "7fa2cb81605c3ca430d94f5d829e5dac682952cf",
      "parents": [
        "fbc8db788dbb5f26d6fb691141842688afe6b205",
        "19497db3251f14a30e8eec846400c8322c324c3f"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Dec 11 00:05:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Dec 11 00:05:59 2015 +0000"
      },
      "message": "Merge \"Updated from global requirements\""
    },
    {
      "commit": "fbc8db788dbb5f26d6fb691141842688afe6b205",
      "tree": "c4e4e0871ed1b224f6019f54ace3c56047a41379",
      "parents": [
        "aa68576189c732e8f16e071d672ee8c6ac59d8ec"
      ],
      "author": {
        "name": "Steve Kowalik",
        "email": "steven@wedontsleep.org",
        "time": "Fri Dec 11 12:46:09 2015 +1300"
      },
      "committer": {
        "name": "Steve Kowalik",
        "email": "steven@wedontsleep.org",
        "time": "Fri Dec 11 12:46:09 2015 +1300"
      },
      "message": "Fix pep8 failure by adding a space after a #\n\nChange-Id: I247c9abc8c878edbf952071aac45fa7bb2ef1cf7\n"
    },
    {
      "commit": "aa68576189c732e8f16e071d672ee8c6ac59d8ec",
      "tree": "810499c68af7a3a05ece6020bb9ba92bd5fda504",
      "parents": [
        "3f45d496f3cadc2306f6a2bcf65ed77b77c937e7",
        "2158c6b451b48fd197b025cab6811ee78abf6ca8"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Dec 10 21:01:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Dec 10 21:01:29 2015 +0000"
      },
      "message": "Merge \"Add gerrit change hook parameters for Gerrit 2.11\""
    },
    {
      "commit": "72cdffc3021cec3623957fe504b858952f91f64a",
      "tree": "4dba96ceb73acf032e2148da16b957b21ece3af1",
      "parents": [
        "3f45d496f3cadc2306f6a2bcf65ed77b77c937e7"
      ],
      "author": {
        "name": "Andreas Jaeger",
        "email": "aj@suse.com",
        "time": "Thu Dec 10 09:16:47 2015 +0100"
      },
      "committer": {
        "name": "Andreas Jaeger",
        "email": "aj@suse.com",
        "time": "Thu Dec 10 09:16:47 2015 +0100"
      },
      "message": "Always add prelude for docimpact bugs\n\nAlways add a short prelude to bugs created with DOCIMPACT so that\nbug triagers know why it was generated.\n\nFix a stray \\ in the existing prelude.\n\nChange-Id: I7fefaa733994a2738e8486e9d084245b5df9b101\n"
    },
    {
      "commit": "3f45d496f3cadc2306f6a2bcf65ed77b77c937e7",
      "tree": "070985639f1ed6aa867f2066edbd1bc773b8ff94",
      "parents": [
        "4d623473a21c868271e5ec7521aaf2a1fd3c61c5",
        "602a384c18a4476daa691dcd5d73ce676306b64c"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 07 16:02:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 07 16:02:27 2015 +0000"
      },
      "message": "Merge \"change the default from delayed-release to direct-release\""
    },
    {
      "commit": "602a384c18a4476daa691dcd5d73ce676306b64c",
      "tree": "e825cf1ffd55419d47a0fcdc2cfe5022d3e5a1e8",
      "parents": [
        "6414c7b80b7649a92f2ef11c3e32b491ec0c824a"
      ],
      "author": {
        "name": "Doug Hellmann",
        "email": "doug@doughellmann.com",
        "time": "Mon Nov 23 21:11:10 2015 +0000"
      },
      "committer": {
        "name": "Doug Hellmann",
        "email": "doug@doughellmann.com",
        "time": "Thu Dec 03 16:14:52 2015 +0000"
      },
      "message": "change the default from delayed-release to direct-release\n\nChange the default behavior to update the status of the bug to fix\nreleased instead of fix committed.\n\nChange-Id: Id08565d54646cee6ce8262e0ef5cd63bf4f3dc7c\n"
    },
    {
      "commit": "4d623473a21c868271e5ec7521aaf2a1fd3c61c5",
      "tree": "e295d6bb5baababac3bbfe4db63c1c29b8fbbead",
      "parents": [
        "1e8983b255fdf1eeeb07895499097b91fad04f6e"
      ],
      "author": {
        "name": "Andreas Jaeger",
        "email": "aj@suse.com",
        "time": "Fri Nov 27 11:27:32 2015 +0100"
      },
      "committer": {
        "name": "Andreas Jaeger",
        "email": "aj@suse.com",
        "time": "Fri Nov 27 12:03:27 2015 +0100"
      },
      "message": "Update wording for docimpact\n\nSince we default now for most projects to the project itself, let\u0027s\nreword the message for this case to not confuse bug triagers.\n\nChange-Id: Ibe5846e749d3f2ef4431b979bad134875b6c7f0e\n"
    },
    {
      "commit": "1e8983b255fdf1eeeb07895499097b91fad04f6e",
      "tree": "65f7d1d4bb6c033b915cddb77bad2bee5c0aa2b0",
      "parents": [
        "6414c7b80b7649a92f2ef11c3e32b491ec0c824a"
      ],
      "author": {
        "name": "Andreas Jaeger",
        "email": "aj@suse.com",
        "time": "Mon Nov 23 08:17:39 2015 +0100"
      },
      "committer": {
        "name": "Andreas Jaeger",
        "email": "aj@suse.com",
        "time": "Mon Nov 23 08:33:07 2015 +0100"
      },
      "message": "Change default for docimpact\n\nChange the default for docimpact to use the repo itself\ninstead of openstack-manuals.\n\nImplements: blueprint review-docimpact\nChange-Id: Ia280baecab8c8cabd3a084ca0914f41c66a5a466\n"
    },
    {
      "commit": "6414c7b80b7649a92f2ef11c3e32b491ec0c824a",
      "tree": "959348fa295c4064aa12474a8b1b7d6c13213c55",
      "parents": [
        "df70c55bdfbc6588776c65fc7dc3a1fd13a32ff7"
      ],
      "author": {
        "name": "Yolanda Robla",
        "email": "yolanda.robla-mota@hp.com",
        "time": "Sun Nov 15 09:53:26 2015 +0100"
      },
      "committer": {
        "name": "Yolanda Robla",
        "email": "yolanda.robla-mota@hp.com",
        "time": "Sun Nov 15 09:54:42 2015 +0100"
      },
      "message": "Import pymysql in lower case\n\nPyMySQL package needs to be imported in lower case. Currenty,\nall ACL applies are failing in our production instance due to\nthis bug.\n\nChange-Id: Iaab56b8bc5caeba32de5db03cc87706dc6afbce9\n"
    },
    {
      "commit": "df70c55bdfbc6588776c65fc7dc3a1fd13a32ff7",
      "tree": "18ece27ca204a6f1340ddae3bbce443ee3d47fc1",
      "parents": [
        "c700e992377396feebeae26ab21930bcead148b6",
        "abc18ab908a2712ecba63c6a7e18d8101f99a27a"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Nov 14 17:32:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Nov 14 17:32:56 2015 +0000"
      },
      "message": "Merge \"Swap logging levels for command and its output\""
    },
    {
      "commit": "19497db3251f14a30e8eec846400c8322c324c3f",
      "tree": "84355b4fe783ca11f3d29a5ee5c6e07afe0a73be",
      "parents": [
        "c700e992377396feebeae26ab21930bcead148b6"
      ],
      "author": {
        "name": "Steve Kowalik",
        "email": "steven@wedontsleep.org",
        "time": "Tue Nov 03 10:45:59 2015 +1100"
      },
      "committer": {
        "name": "Steve Kowalik",
        "email": "steven@wedontsleep.org",
        "time": "Fri Nov 13 11:12:07 2015 +1100"
      },
      "message": "Updated from global requirements\n\nThe requirements and test-requirements for jeepyb are horribly outdated,\nupdate them. Since this also includes a few things that aren\u0027t in\nglobal-requirements, add them back manually after running the update\nscript.\n\nChange-Id: Idbf4a23830ad9497f61d6b261bb23d222b4746b9\n"
    },
    {
      "commit": "c700e992377396feebeae26ab21930bcead148b6",
      "tree": "d56e9adc36d0f81f5e9c30cb42b0b7c1745f50fc",
      "parents": [
        "12312f79408494d453f8efb4bb897b301b173a6c",
        "d8f0d3a6d6b018daa98a244a01b0e3b73fcb6bc3"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Nov 12 16:26:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Nov 12 16:26:31 2015 +0000"
      },
      "message": "Merge \"Switch from MySQL-python to PyMySQL\""
    },
    {
      "commit": "2158c6b451b48fd197b025cab6811ee78abf6ca8",
      "tree": "99ea512014c7a005f264f61c228c23809ffe1018",
      "parents": [
        "12312f79408494d453f8efb4bb897b301b173a6c"
      ],
      "author": {
        "name": "Khai Do",
        "email": "zaro0508@gmail.com",
        "time": "Sat Oct 17 07:02:41 2015 -0700"
      },
      "committer": {
        "name": "Khai Do",
        "email": "zaro0508@gmail.com",
        "time": "Tue Nov 10 17:31:19 2015 -0800"
      },
      "message": "Add gerrit change hook parameters for Gerrit 2.11\n\nGerrit 2.11 provides additional change hook parameters.  This change\nupdates hook scripts to match.\n\nHooks in Gerrit 2.11:\n\nhook[patchset-created] output:\n  --change I0bfa692dce4851bfd4acf75f5179d431db65357f --is-draft false\n  --kind REWORK --change-url https://review-dev.openstack.org/5377\n  --change-owner Khai Do (zaro0508@gmail.com) --project gtest-org/gtest\n  --branch master --topic 5310 --uploader Khai Do (zaro0508@gmail.com)\n  --commit cc9334dce5db9aa4db385acb17950f2295d6b948 --patchset 1\n\nhook[change-abandoned] output:\n  --change Icaf1f76c1cc0c257bb30cca9d52aa5fa96f74980\n  --change-url https://review-dev.openstack.org/5376\n  --change-owner Khai Do (zaro0508@gmail.com) --project gtest-org/gtest\n  --branch master --topic 5310 --abandoner Khai Do (zaro0508@gmail.com)\n  --commit 313164c9d75e00922976735ea1046b2d76b0b92b --reason bad fix2\n\nhook[change-merged] output:\n  --change I0bfa692dce4851bfd4acf75f5179d431db65357f\n  --change-url https://review-dev.openstack.org/5377\n  --change-owner Khai Do (zaro0508@gmail.com) --project gtest-org/gtest\n  --branch master --topic 5310 --submitter Jenkins\n  --commit cc9334dce5db9aa4db385acb17950f2295d6b948\n  --newrev cc9334dce5db9aa4db385acb17950f2295d6b948\n\nChange-Id: Ib514f6b213a8248c225a6e4293c25c2a23a16074\n"
    },
    {
      "commit": "12312f79408494d453f8efb4bb897b301b173a6c",
      "tree": "badebb3368d7519fb64b8a7576560644ade12f2d",
      "parents": [
        "6ac1fc84d79800e08fb72a547b3c4f42d35d6849"
      ],
      "author": {
        "name": "Steve Kowalik",
        "email": "steven@wedontsleep.org",
        "time": "Tue Nov 03 13:44:09 2015 +1100"
      },
      "committer": {
        "name": "Steve Kowalik",
        "email": "steven@wedontsleep.org",
        "time": "Tue Nov 03 13:44:09 2015 +1100"
      },
      "message": "Random pep8 fixes\n\nTo prepare for bumping the version of hacking in a later branch, fix\nup a few trivial issues that it will complain about and fail on.\n\nChange-Id: I19cc3aee0edfd25e198afd7797e9c483ce1b201e\n"
    },
    {
      "commit": "d8f0d3a6d6b018daa98a244a01b0e3b73fcb6bc3",
      "tree": "c94c9769ccaba18f9acdec1286a1df9daa9f3c1e",
      "parents": [
        "6ac1fc84d79800e08fb72a547b3c4f42d35d6849"
      ],
      "author": {
        "name": "Colleen Murphy",
        "email": "colleen@gazlene.net",
        "time": "Wed Oct 14 13:57:43 2015 -0700"
      },
      "committer": {
        "name": "Colleen Murphy",
        "email": "colleen@gazlene.net",
        "time": "Wed Oct 14 14:03:57 2015 -0700"
      },
      "message": "Switch from MySQL-python to PyMySQL\n\nFor the same reason nodepool switched[1], let\u0027s switch jeepyb too.\n\n[1] http://git.openstack.org/cgit/openstack-infra/nodepool/commit/?id\u003d63e5297f7e56bd2f8ca8c16e1f1b032f6c6f5ab8\n\nChange-Id: I3afeaebeb8416388d5866fc3994357935079c97d\n"
    },
    {
      "commit": "6ac1fc84d79800e08fb72a547b3c4f42d35d6849",
      "tree": "c887cf652a8584cebe1d28faecc18b78fb9591b5",
      "parents": [
        "bac98a6a509ea507f0f1cbd03925a659f3bcee40",
        "3d282df4121b815ff9af3d68bb148d322a5c983f"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Oct 11 14:32:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Oct 11 14:32:52 2015 +0000"
      },
      "message": "Merge \"Add a command to generate configs for hound\""
    },
    {
      "commit": "bac98a6a509ea507f0f1cbd03925a659f3bcee40",
      "tree": "242e04d36a707a2c4a33dc89c1d8b0adcb2af89d",
      "parents": [
        "f59e61dcf63e104382fd9ec790a2459cefed92d4",
        "58a44aa3a179ca22a7976dce9fd6d2fc6e6b706d"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Sep 29 07:08:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Sep 29 07:08:48 2015 +0000"
      },
      "message": "Merge \"Make SMTP connection configurable\""
    },
    {
      "commit": "3d282df4121b815ff9af3d68bb148d322a5c983f",
      "tree": "75fc38c7fa3fe8663197d534979dddf5b38a1d34",
      "parents": [
        "e6761903d74915c62c991e4c265ed8409cf76db2"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Apr 28 21:33:12 2015 -0400"
      },
      "committer": {
        "name": "Emma Barber",
        "email": "me@taron.io",
        "time": "Fri Sep 25 17:47:40 2015 -0700"
      },
      "message": "Add a command to generate configs for hound\n\netsy\u0027s hound is a simple source code indexer. The hardest part about\nrunning it is making a config file from our projects.yaml. So that\u0027s\ndone now.\n\nChange-Id: Ie4b6509947f58407c4cc6f5a2c7c2bc84c619ce9\n"
    },
    {
      "commit": "f59e61dcf63e104382fd9ec790a2459cefed92d4",
      "tree": "e6247852acd857a56e45e3eec671227f462dc71a",
      "parents": [
        "5c5a9e18bdbdd369b8dee289ec86b5a37a3b7dfd"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Tue Sep 01 11:58:13 2015 -0700"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Tue Sep 01 11:58:13 2015 -0700"
      },
      "message": "Add --verbose flag as valid option for logging\n\nWe recently updated how logging was handled and kept -v for verbose mode\nbut didn\u0027t also keep --verbose. The welcome message script supported\n--verbose previously so add it back in for compatibility.\n\nChange-Id: I1a5ee6bd860b9953ed0d56b215d930303654f388\n"
    },
    {
      "commit": "58a44aa3a179ca22a7976dce9fd6d2fc6e6b706d",
      "tree": "44422ff06a1c580744978d275179eefb3d0e5b44",
      "parents": [
        "7f7b988b38610e677638fc92562d2c4a5c223430"
      ],
      "author": {
        "name": "Grant Murphy",
        "email": "grant.murphy@hp.com",
        "time": "Wed Aug 19 10:48:54 2015 -0700"
      },
      "committer": {
        "name": "Grant Murphy",
        "email": "grant.murphy@hp.com",
        "time": "Fri Aug 28 10:08:44 2015 -0700"
      },
      "message": "Make SMTP connection configurable\n\nThe SMTP configuraiton is currently hardcoded, it should be configurable\nto add more flexibility.\n\nAdded options for authentication, TLS, and STARTTLS support. The default\nconfiguration will try to use localhost and port 25 to send the email.\n\nChange-Id: I262d1aba1f400d3bf286fff0d3c32c50a7a402e3\n"
    },
    {
      "commit": "5c5a9e18bdbdd369b8dee289ec86b5a37a3b7dfd",
      "tree": "4bc01209c3cb19f04727c346dcc8dfd22a4f7ed2",
      "parents": [
        "7f7b988b38610e677638fc92562d2c4a5c223430"
      ],
      "author": {
        "name": "Steve Kowalik",
        "email": "steven@wedontsleep.org",
        "time": "Fri Aug 14 13:56:53 2015 +1000"
      },
      "committer": {
        "name": "Steve Kowalik",
        "email": "steven@wedontsleep.org",
        "time": "Thu Aug 27 14:07:48 2015 +1000"
      },
      "message": "Refactor logging arguments into a common module\n\nThe command line utilities provided only haphazardly set up logging\nusing command line arguments. Refactor it into a common module, and\nmake use of it in all scripts that use logging.\n\nThis changes expire-old-reviews.py to not hardcode the log file, but\nthat is fine, it has no scripts calling it.\n\nChange-Id: Ibc85f8e3b47f9c7898ad4334511b44e91ecbd736\n"
    },
    {
      "commit": "7f7b988b38610e677638fc92562d2c4a5c223430",
      "tree": "643b59f1d6237a4a0ecc4e6a654182f7254001fc",
      "parents": [
        "4601505e389aa7b966f7f06fdce1295870a1794e",
        "f3c58c1c43bd2740c45d3dba0bda0f110ffbe6ae"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Aug 16 11:04:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Aug 16 11:04:27 2015 +0000"
      },
      "message": "Merge \"Only add \u0027groups\u0027 file to the repo if it exists\""
    },
    {
      "commit": "4601505e389aa7b966f7f06fdce1295870a1794e",
      "tree": "81c461a4ac67c1a2112ba1bac239bc5262cf8a31",
      "parents": [
        "8008752f2ea9f9904efa9267375ea25a95ddd125",
        "f2b4ec165960c3fc8bfbfa7eaebf3eed2e055524"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Aug 11 16:16:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Aug 11 16:16:48 2015 +0000"
      },
      "message": "Merge \"Add a register-zanata-projects script\""
    },
    {
      "commit": "8008752f2ea9f9904efa9267375ea25a95ddd125",
      "tree": "e99aa9fee2be587e5a3a079291f7810b167a57c4",
      "parents": [
        "0a8b814f31e00c2005fd9ae9954a42d9d14d344e",
        "f6869acb1ef4cd80739ad7bb76689c54872a5242"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Aug 09 21:37:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Aug 09 21:37:47 2015 +0000"
      },
      "message": "Merge \"Fix in database discrimination\""
    },
    {
      "commit": "0a8b814f31e00c2005fd9ae9954a42d9d14d344e",
      "tree": "453affb67fac9d0741dc0d6dab8c0a0dc9fc1617",
      "parents": [
        "b81245f04ec84c4d2e295f13b835f2828340326c",
        "55183fc4ca4bff196e39a6ebe858dba6ebcd36a5"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Aug 09 21:37:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Aug 09 21:37:19 2015 +0000"
      },
      "message": "Merge \"Add some logging to notify_impact.\""
    },
    {
      "commit": "f2b4ec165960c3fc8bfbfa7eaebf3eed2e055524",
      "tree": "c0de7e65768833f8baf25b79dd40d5b1bef1671e",
      "parents": [
        "b81245f04ec84c4d2e295f13b835f2828340326c"
      ],
      "author": {
        "name": "Steve Kowalik",
        "email": "steven@wedontsleep.org",
        "time": "Fri Jul 31 12:26:00 2015 +1000"
      },
      "committer": {
        "name": "Steve Kowalik",
        "email": "steven@wedontsleep.org",
        "time": "Mon Aug 03 11:51:39 2015 +1000"
      },
      "message": "Add a register-zanata-projects script\n\nCurrently, projects in Transifex are set up by hand, which requires\ninfrastructure members log into its admin interface and add projects.\nWith Zanata, we can do much better, so add a script that will parse\nprojects.yaml, and create any projects that are required.\n\nThis grew out of Ic28d5dcfdd471dccbe406955a85dbc6f5d7335d1, but moves\nthe configuration for the project from translate: true to underneath\noptions to match things like direct-release.\n\nChange-Id: Id78a590ea07b886afc0c98e309ff6df45f2240bf\n"
    },
    {
      "commit": "b81245f04ec84c4d2e295f13b835f2828340326c",
      "tree": "d7da3c4574b5fb63af3c8db26f41021f0ab35299",
      "parents": [
        "a7215c1e68120f458835b085e945c5f18e75148c"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Wed Jul 01 20:27:01 2015 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Wed Jul 01 20:27:01 2015 +0000"
      },
      "message": "Default to no series in update_bug.py\n\nIn I128b48d it was assumed that the series variable was already set\nto a default boolean false value before testing it, but this was not\nthe case. Add that initial false state as a None default.\n\nChange-Id: Ifddd9ad150aaec2db375f44f2d62fe69f6684e52\n"
    },
    {
      "commit": "a7215c1e68120f458835b085e945c5f18e75148c",
      "tree": "b5611f7d6e6471c5572b76faaa414d267d7708a5",
      "parents": [
        "bee95e5e6318839d868dd0c4d9b451fbe3daa910",
        "61b38c75e421303b0851cb498246ae333c010680"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jun 16 20:50:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jun 16 20:50:38 2015 +0000"
      },
      "message": "Merge \"Handle projects not using stable/ branch names\""
    },
    {
      "commit": "f3c58c1c43bd2740c45d3dba0bda0f110ffbe6ae",
      "tree": "0f4235a9de1df1ee14791d36e87e94340b17cc96",
      "parents": [
        "bee95e5e6318839d868dd0c4d9b451fbe3daa910"
      ],
      "author": {
        "name": "Timothy Chavez",
        "email": "timothy.chavez@hp.com",
        "time": "Thu Jun 04 18:18:51 2015 -0500"
      },
      "committer": {
        "name": "Timothy Chavez",
        "email": "timothy.chavez@hp.com",
        "time": "Thu Jun 04 18:30:24 2015 -0500"
      },
      "message": "Only add \u0027groups\u0027 file to the repo if it exists\n\nThe \u0027groups\u0027 file gets created only if there are groups mentioned in\nthe \u0027project.config\u0027 file.  A \u0027project.config\u0027 file is not required to\nmention any groups, thus we should only attempt to add the \u0027groups\u0027 file\nif it exists.\n\nChange-Id: I333df5156bc27db29143ee412d86e12606faa751\n"
    },
    {
      "commit": "f6869acb1ef4cd80739ad7bb76689c54872a5242",
      "tree": "8ed18cc78576c3205cdd5a1981ed061bb62c98dd",
      "parents": [
        "bee95e5e6318839d868dd0c4d9b451fbe3daa910"
      ],
      "author": {
        "name": "Yolanda Robla",
        "email": "yolanda.robla-mota@hp.com",
        "time": "Thu Jun 04 09:17:30 2015 +0200"
      },
      "committer": {
        "name": "Yolanda Robla",
        "email": "yolanda.robla-mota@hp.com",
        "time": "Thu Jun 04 09:19:07 2015 +0200"
      },
      "message": "Fix in database discrimination\n\njeepyb is comparing the config setting with\nMYSQL. However, it\u0027s possible that configuration is\nnot set on capital letters, and that is causing gerrit\nconfigures with real mysql to fallback into the postgres\ncase.\n\nJust capitalize the config setting to safely compare\nwith MYSQL value.\n\nChange-Id: I5c5b920da14275d45dc1d394ca8c569709f9ab41\n"
    },
    {
      "commit": "55183fc4ca4bff196e39a6ebe858dba6ebcd36a5",
      "tree": "b85b1904b6775d5230fac1fab244964858c1e1a3",
      "parents": [
        "bee95e5e6318839d868dd0c4d9b451fbe3daa910"
      ],
      "author": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Thu Jun 04 11:42:41 2015 +1000"
      },
      "committer": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Thu Jun 04 12:02:27 2015 +1000"
      },
      "message": "Add some logging to notify_impact.\n\nThis will aid in debugging DocImpact when its not working quite right.\n\nChange-Id: Iabcb71808224ed2c62e697ce3715f50982d23434\n"
    },
    {
      "commit": "bee95e5e6318839d868dd0c4d9b451fbe3daa910",
      "tree": "c6e9fa75273cf16c36fbf42dc8d28e0f548301f6",
      "parents": [
        "10e02841379fd3370f95ad5f63b8eaec41025e21",
        "380770f2683a99b4556582959492d1ec6190359c"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat May 30 19:08:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat May 30 19:08:58 2015 +0000"
      },
      "message": "Merge \"Updated code review timeline\""
    },
    {
      "commit": "abc18ab908a2712ecba63c6a7e18d8101f99a27a",
      "tree": "8b926267d633e038d7b5335636849481136a7ac9",
      "parents": [
        "10e02841379fd3370f95ad5f63b8eaec41025e21"
      ],
      "author": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Wed May 27 11:08:27 2015 -0700"
      },
      "committer": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Wed May 27 11:08:27 2015 -0700"
      },
      "message": "Swap logging levels for command and its output\n\nThe command being run is more informative than it\u0027s output, so raise the\nlogging level of the command being run to info and lower its output to\ndebug.\n\nChange-Id: Ic4f764192384e3d0911380e5daf60fcdf0d2a200\n"
    },
    {
      "commit": "380770f2683a99b4556582959492d1ec6190359c",
      "tree": "1f54d5d93418272780470641477c95a285a5a0b3",
      "parents": [
        "e6761903d74915c62c991e4c265ed8409cf76db2"
      ],
      "author": {
        "name": "Ganesh Narayanan",
        "email": "ganeshna@cisco.com",
        "time": "Mon Apr 20 21:49:04 2015 -0700"
      },
      "committer": {
        "name": "Ganesh Narayanan",
        "email": "ganeshna@cisco.com",
        "time": "Sun May 17 22:52:36 2015 -0700"
      },
      "message": "Updated code review timeline\n\nThe current welcome message for new contributors mentions that it usually\ntakes 3 to 7 days for the code to be reviewed.  But the code also needs\napproval from the core member(s) for the merge to happen.  It generally\ntakes at least 2 weeks for core to review the changes as they are busy\nwith other high priority things.  For a newbie it is not very clear on\nhow long the patch will take to get reviewed and merged.  Hence added\nmore text related to this.\n\nChange-Id: I78d32a99338b74c648f68d87a5c7bcb577e016b0\n"
    },
    {
      "commit": "10e02841379fd3370f95ad5f63b8eaec41025e21",
      "tree": "775a038800f2bc9e9b54dd265bb7476dbc2c3dd3",
      "parents": [
        "3c706debe89bd4242d5a810c3ed526bd214bd329"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Thu May 14 21:38:16 2015 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Thu May 14 21:38:16 2015 +0000"
      },
      "message": "Replace ci.o.o links with docs.o.o/infra\n\nThe http://ci.openstack.org/ documentation site has been deprecated,\nreplaced by redirects to corresponding paths within\nhttp://docs.openstack.org/infra/ where other Project Infrastructure\ndocumentation already resides.\n\nChange-Id: I1f698d89147ccb8f705941a7c6f25e07f4b72860\n"
    },
    {
      "commit": "3c706debe89bd4242d5a810c3ed526bd214bd329",
      "tree": "9e9fb7f7f3c462659acc16e7d35b1332ef57ff01",
      "parents": [
        "e6761903d74915c62c991e4c265ed8409cf76db2",
        "9ab5c4361d99595f6ac8eb4864666a9c503c12de"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri May 01 12:37:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri May 01 12:37:43 2015 +0000"
      },
      "message": "Merge \"Let pull request message be customized via file\""
    },
    {
      "commit": "9ab5c4361d99595f6ac8eb4864666a9c503c12de",
      "tree": "00ee19b46abe6a0dcff66dbcaa5bcd9967d9d505",
      "parents": [
        "bb2eed5833ff1b4c28226117bf7cd0bd6cce7fd0"
      ],
      "author": {
        "name": "Alice Chen",
        "email": "alice.chen@hp.com",
        "time": "Wed Aug 20 19:40:18 2014 -0700"
      },
      "committer": {
        "name": "Alice Chen",
        "email": "alice.chen@hp.com",
        "time": "Wed Apr 22 19:48:47 2015 -0700"
      },
      "message": "Let pull request message be customized via file\n\nChange-Id: I059d3b4f090e438e2a4eeffcdd27253ddaa5a89a\n"
    },
    {
      "commit": "e6761903d74915c62c991e4c265ed8409cf76db2",
      "tree": "c711a971384e41e2742cae86793a49041d5fb30d",
      "parents": [
        "bb2eed5833ff1b4c28226117bf7cd0bd6cce7fd0",
        "9a2968e6fc3f625b33ff6c82558e6b9a528947e1"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Apr 20 16:22:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Apr 20 16:22:29 2015 +0000"
      },
      "message": "Merge \"Log project names as the projects are processed\""
    },
    {
      "commit": "61b38c75e421303b0851cb498246ae333c010680",
      "tree": "e4aaf6fe3b38a3b75ceb112674c3c4a44fcd8ca5",
      "parents": [
        "bb2eed5833ff1b4c28226117bf7cd0bd6cce7fd0"
      ],
      "author": {
        "name": "Ian Cordasco",
        "email": "ian.cordasco@rackspace.com",
        "time": "Wed Feb 04 14:47:41 2015 -0600"
      },
      "committer": {
        "name": "Darren Birkett",
        "email": "darren.birkett@gmail.com",
        "time": "Mon Apr 20 17:05:07 2015 +0100"
      },
      "message": "Handle projects not using stable/ branch names\n\nProjects like stackforge/os-ansible-deployment don\u0027t use stable/ in\ntheir supported branches. The branch names, however, do correspond to\nthe series name on Launchpad. Without these updates, the series needs to\nbe updated entirely by hand.\n\nChange-Id: I128b48ddfe0eb9a062c796828dded1b8ebb241bf\nCloses-bug: 2000150\n"
    },
    {
      "commit": "bb2eed5833ff1b4c28226117bf7cd0bd6cce7fd0",
      "tree": "aad05d89538a471e0ca47dcdf8c4ef2be0d16d34",
      "parents": [
        "10a810bf8d65ca771c5fbc9dd305c8e907835557"
      ],
      "author": {
        "name": "Khai Do",
        "email": "zaro0508@gmail.com",
        "time": "Tue Apr 14 15:17:31 2015 -0700"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Wed Apr 15 18:04:14 2015 +0000"
      },
      "message": "Add Gerrit hooks change-owner and kind\n\nGerrit 2.10 contains new code review hooks --change-owner and\n--kind [1] so this change is to update jeepyb to process those hooks.\n\n[1] https://review-dev.openstack.org/Documentation/config-hooks.html\n\nChange-Id: Ia2d3da1a369d7b0636ca9ab332d2a3a4044eb81c\n"
    },
    {
      "commit": "10a810bf8d65ca771c5fbc9dd305c8e907835557",
      "tree": "c4c81facaedda0a5f7975a777394cc0ff6b6c9ab",
      "parents": [
        "0c29fd147bd579cc0e3e408d1f0b009b304d0963",
        "8e07004b2435f7bb439ca10a20dfcf9b25678646"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Apr 15 14:07:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Apr 15 14:07:25 2015 +0000"
      },
      "message": "Merge \"Add global flag to control replication\""
    },
    {
      "commit": "0c29fd147bd579cc0e3e408d1f0b009b304d0963",
      "tree": "6005e13953267fa795b622e486e7389c9aab3931",
      "parents": [
        "99d2f6dd61e6adc561402af80754dcf37e0aaf3b",
        "07cec75f3e2f7ce375c5c8ce6348fca88a196990"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Apr 15 14:06:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Apr 15 14:06:18 2015 +0000"
      },
      "message": "Merge \"Rename upload_rss and move non-swift-relevant parts into the main method\""
    },
    {
      "commit": "99d2f6dd61e6adc561402af80754dcf37e0aaf3b",
      "tree": "93e6568d73a55e80f778aeaa2ec8692a67bbd551",
      "parents": [
        "c4034b524cc6eb10dadb49b0e9362e855800e6db",
        "d5eb09f67c38161c6302d1ad01f69ed65399aff6"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Apr 15 14:06:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Apr 15 14:06:12 2015 +0000"
      },
      "message": "Merge \"Replace \u0027javascript\u0027 method/parameternames\""
    },
    {
      "commit": "c4034b524cc6eb10dadb49b0e9362e855800e6db",
      "tree": "519cc1f0e8eb2ad7a768b5dec0904a2043a3d319",
      "parents": [
        "e683f1e0b2e70d97919c8fd3697d86c44f28587b",
        "67c5129ca617d56ab6eef45dd6911e704b33c22c"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Apr 15 14:04:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Apr 15 14:04:45 2015 +0000"
      },
      "message": "Merge \"Be more careful about when to close pull requests\""
    },
    {
      "commit": "9a2968e6fc3f625b33ff6c82558e6b9a528947e1",
      "tree": "6c55eb2d620dc0b00aa13ccd3fa1d362c3a2e113",
      "parents": [
        "e683f1e0b2e70d97919c8fd3697d86c44f28587b"
      ],
      "author": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Tue Mar 31 10:11:13 2015 -0700"
      },
      "committer": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Tue Mar 31 10:14:04 2015 -0700"
      },
      "message": "Log project names as the projects are processed\n\nCurrently info-level logs only contain project names when errors\noccur, and otherwise have a lot of information about branch processing\nwith no information about which projects the branches belong to. This\nadds an info-level message with the project name so that well-behaved\nruns of manage-projects have enough context to give meaningful logs.\n\nChange-Id: Ibea0a8d8367da1b6e20d244e8117ddc241337e88\n"
    },
    {
      "commit": "07cec75f3e2f7ce375c5c8ce6348fca88a196990",
      "tree": "edf3f5ebc26ee6e0c898327088d55296337b09ac",
      "parents": [
        "d5eb09f67c38161c6302d1ad01f69ed65399aff6"
      ],
      "author": {
        "name": "Christian Berendt",
        "email": "berendt@b1-systems.de",
        "time": "Sat Oct 11 14:41:48 2014 +0200"
      },
      "committer": {
        "name": "Christian Berendt",
        "email": "berendt@b1-systems.de",
        "time": "Wed Mar 25 09:53:29 2015 +0100"
      },
      "message": "Rename upload_rss and move non-swift-relevant parts into the main method\n\nChange-Id: I4b15dafc48b7f14bb88fde0b7ee9af3de0422e75\n"
    },
    {
      "commit": "d5eb09f67c38161c6302d1ad01f69ed65399aff6",
      "tree": "f3054019a96b5cf6f21e7e66a500bce45587e16d",
      "parents": [
        "e683f1e0b2e70d97919c8fd3697d86c44f28587b"
      ],
      "author": {
        "name": "Christian Berendt",
        "email": "berendt@b1-systems.de",
        "time": "Sat Oct 11 14:29:35 2014 +0200"
      },
      "committer": {
        "name": "Christian Berendt",
        "email": "christian@berendt.io",
        "time": "Wed Mar 25 08:47:07 2015 +0000"
      },
      "message": "Replace \u0027javascript\u0027 method/parameternames\n\nChange-Id: Ib18b7d1a13d299c4f8a57819d2a4b5a92408e222\n"
    },
    {
      "commit": "8e07004b2435f7bb439ca10a20dfcf9b25678646",
      "tree": "83c4292de658373bf59e14122da43f813f44beea",
      "parents": [
        "e683f1e0b2e70d97919c8fd3697d86c44f28587b"
      ],
      "author": {
        "name": "Paul Belanger",
        "email": "paul.belanger@polybeacon.com",
        "time": "Thu Mar 05 12:01:55 2015 -0500"
      },
      "committer": {
        "name": "Paul Belanger",
        "email": "paul.belanger@polybeacon.com",
        "time": "Thu Mar 05 12:07:30 2015 -0500"
      },
      "message": "Add global flag to control replication\n\nIf gerrit is not configured for replication, don\u0027t force the issue.\nWe default the setting to True to avoid system breakage moving\nforward.\n\nChange-Id: Ibbd474c319d0c4ac6b1bad026c8b2b85ad6cc8c4\nSigned-off-by: Paul Belanger \u003cpaul.belanger@polybeacon.com\u003e\n"
    },
    {
      "commit": "e683f1e0b2e70d97919c8fd3697d86c44f28587b",
      "tree": "a07b8424a20531fed912afb05f14a5b09ec98552",
      "parents": [
        "bfee72a0a5b5a68860fdfd3fa14340da8f11952c",
        "76a1a2848d12ca44975bff6fc83c7f6ba309fa92"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Mar 03 12:35:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Mar 03 12:35:31 2015 +0000"
      },
      "message": "Merge \"Workflow documentation is now in infra-manual\""
    },
    {
      "commit": "bfee72a0a5b5a68860fdfd3fa14340da8f11952c",
      "tree": "6d4e099fa74c249096403d3c11565a8692c30bb7",
      "parents": [
        "32cafb4f31295e415009221e4688cd8f394ce20d"
      ],
      "author": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Mon Mar 02 18:18:36 2015 -0800"
      },
      "committer": {
        "name": "K Jonathan Harker",
        "email": "k.jonathan.harker@hp.com",
        "time": "Mon Mar 02 18:18:36 2015 -0800"
      },
      "message": "Fix typo: opensack -\u003e openstack\n\nChange-Id: I82b924e9ee02d3b18f7b222d9776ef7e24e25256\n"
    },
    {
      "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": "76a1a2848d12ca44975bff6fc83c7f6ba309fa92",
      "tree": "0bbcccd2b1b672f3d5aa3c99a1d711ecc2e200ef",
      "parents": [
        "59c6b84c02665547c5f8ae68eeacc293c31a22c4"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Fri Dec 05 03:30:42 2014 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Feb 03 18:40:17 2015 +0000"
      },
      "message": "Workflow documentation is now in infra-manual\n\nReplace URLs for workflow documentation to appropriate parts of the\nOpenStack Project Infrastructure Manual.\n\nChange-Id: I5198c8dc8b8442f34c6e86cb49c5e98d60dd8480\n"
    },
    {
      "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": "67c5129ca617d56ab6eef45dd6911e704b33c22c",
      "tree": "1391d667f3ac99fb62185ddb2dd7f5de032dc146",
      "parents": [
        "872f72d2b82a44f8464757cbfae33518439149e7"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Fri Aug 22 23:28:04 2014 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Sep 02 17:26:30 2014 +0000"
      },
      "message": "Be more careful about when to close pull requests\n\n* jeepyb/cmd/close_pull_requests.py: Only try to close pull requests\nif actually configured to use GitHub. Also log verbose errors when\nit fails to find the project there.\n\n* jeepyb/projects.py: Add a convenience has_github function to\nencode the somewhat twisty per-project override/default fallback\ndetermination for the has-github global bool and local flag.\n\nChange-Id: I0bbfabd2f110269cb8331383173f0dd588500778\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\""
    }
  ],
  "next": "e73f2e6da5cf5c3b44013460984130b801b58275"
}
