)]}'
{
  "log": [
    {
      "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": "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": "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\""
    },
    {
      "commit": "944da0dd7d88b0903c184ce23a3b8ccca422d6d6",
      "tree": "05f9df091d09d04129917869539ecf3b3ac851e2",
      "parents": [
        "c8e81679b0dc1c3b349aa86659e9a971a1bc8d66",
        "ed2185880358e05bf2cc214fb188d9efdb5fd9a5"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 16 17:28:34 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 16 17:28:34 2013 +0000"
      },
      "message": "Merge \"Remove launchpad mappings for cookbook-* repos\""
    },
    {
      "commit": "c8e81679b0dc1c3b349aa86659e9a971a1bc8d66",
      "tree": "c85f4fdf1d231d85c07b78643e011b2946eaf560",
      "parents": [
        "057638761e5be8dee38232d189d1d54c1dcf7500",
        "8134832a45febb385ba903ac82117273139d981b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 16 17:28:14 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 16 17:28:14 2013 +0000"
      },
      "message": "Merge \"Remove rest openstack/* repos mappings\""
    },
    {
      "commit": "057638761e5be8dee38232d189d1d54c1dcf7500",
      "tree": "994d0e73c4c064d47304056b64429a048473f7e6",
      "parents": [
        "d49868979701f929ed71dcd66f027a59e760bfc5",
        "e3735719fa2ab31bd2ef0ebd75131d8c4ea6e382"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 16 17:28:12 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 16 17:28:12 2013 +0000"
      },
      "message": "Merge \"Remove launchpad project mappings for -api repos\""
    },
    {
      "commit": "6b9d3caf3a0a0c6c8673087ed7517f17be26d756",
      "tree": "4afaabf2ba5d473852294fdefcb8d3dd2290719c",
      "parents": [
        "d49868979701f929ed71dcd66f027a59e760bfc5"
      ],
      "author": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Sat Dec 14 06:36:33 2013 +1100"
      },
      "committer": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Sat Dec 14 07:43:11 2013 +1100"
      },
      "message": "Rename the subscriber map to be a more generic config file.\n\nNow I want to be able to configure other things (like the mapping of\ngit repos to launchpad projects), so make the way we refer to the\nconfiguration file more generic.\n\nChange-Id: I6b803d028ea76ae010bfd49ed9174df944fb3044\n"
    },
    {
      "commit": "afc6c24a18521ef68e9cf194140c0f552c6690c6",
      "tree": "3099d5e5c0de8ef6fcab3c9fa308f82b2e0fe90e",
      "parents": [
        "d49868979701f929ed71dcd66f027a59e760bfc5"
      ],
      "author": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Fri Dec 13 08:50:43 2013 +0800"
      },
      "committer": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Fri Dec 13 08:50:43 2013 +0800"
      },
      "message": "Add dryrun flag to welcome_message.py\n\nIn order to test this properly, we need a way to specify\nnot to post the message. This patch adds a new flag \"--dryrun\"\nwhich will prevent the invocation of the method that posts\nthe message.\n\nMinor logging changes were made to ensure we can still get info\nabout what\u0027s going on when in dry run mode.\n\nChange-Id: I5cdb00bf89a1a83d70d03ec4a2ca7aae7651b4b3\n"
    },
    {
      "commit": "d49868979701f929ed71dcd66f027a59e760bfc5",
      "tree": "0a1ce862d9b890b1a0d027844050598364fc9045",
      "parents": [
        "1caeeae0cfcab0b9c7f74a338c283c1e572d6ec0"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Dec 10 23:56:48 2013 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Wed Dec 11 23:35:58 2013 +0000"
      },
      "message": "Link git.o.o in bug updates\n\n* jeepyb/cmd/update_bug.py: Formerly URLs were provided to\ngithub.com but we have somewhere better to send browsers now.\n\nChange-Id: I2d738f163374324241b15aef285f126f85ddc5d2\n"
    },
    {
      "commit": "65218ba26d916297c7c988d5c6650805f7329bc9",
      "tree": "ed0b1965499a8906645acc98bf63f5f54595d92b",
      "parents": [
        "1caeeae0cfcab0b9c7f74a338c283c1e572d6ec0"
      ],
      "author": {
        "name": "Paul Belanger",
        "email": "paul.belanger@polybeacon.com",
        "time": "Wed Dec 11 15:38:08 2013 -0500"
      },
      "committer": {
        "name": "Paul Belanger",
        "email": "paul.belanger@polybeacon.com",
        "time": "Wed Dec 11 15:38:58 2013 -0500"
      },
      "message": "Add new hook flags for gerrit 2.5\n\nCurrently, the flags do nothing, except allow gerrit 2.5 to use\nupdate-bugs again.\n\nChange-Id: If6e17766bd5719af7739c546bbb764e2f797c601\nSigned-off-by: Paul Belanger \u003cpaul.belanger@polybeacon.com\u003e\n"
    },
    {
      "commit": "1caeeae0cfcab0b9c7f74a338c283c1e572d6ec0",
      "tree": "44962fef156b20356f9d34c661ab3bb348b41ce1",
      "parents": [
        "fc37932b2efb44f30226139c2be89425ff919207",
        "121648c325d3c26fe28900840e48cf9bba524856"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 09 21:32:54 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 09 21:32:54 2013 +0000"
      },
      "message": "Merge \"Remove openstack-infra projects mappings to LP\""
    },
    {
      "commit": "fc37932b2efb44f30226139c2be89425ff919207",
      "tree": "5ac1ade68cb6f285fea713828cdeb412f83ebddc",
      "parents": [
        "1ea74cd7d57841b2cbee26e930eafa3dd7fdf638",
        "d3393475d1b240dffcbc32360b88f016f9ecc425"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 09 18:53:25 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 09 18:53:25 2013 +0000"
      },
      "message": "Merge \"Add script to post a gerrit welcome message\""
    },
    {
      "commit": "0fdc83abc10444e13cea0a874041618dbe0e229e",
      "tree": "c18cd35c2b3d76f3f94e038a43c81eb1edb46933",
      "parents": [
        "ed2185880358e05bf2cc214fb188d9efdb5fd9a5"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:12:53 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:16:26 2013 +0400"
      },
      "message": "Remove launchpad mapping for the rest projects\n\nIn addition it removes mechanism to hardcode repo to launchpad mappings.\n\nDepends on: Change-Id: I5af5c73b716824cc4250db8f1d671aaa69e1fdba\n\nChange-Id: Ibde5862f6af2a4533d58bef8ec105bca4bc60a02\n"
    },
    {
      "commit": "ed2185880358e05bf2cc214fb188d9efdb5fd9a5",
      "tree": "819d4e7f9054a194310b724c97a06475e642649d",
      "parents": [
        "8134832a45febb385ba903ac82117273139d981b"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:10:40 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:16:09 2013 +0400"
      },
      "message": "Remove launchpad mappings for cookbook-* repos\n\nDepends on: Change-Id: Iafbf2c0849f2e08ec8c784b93a3e524a05bc38ea\n\nChange-Id: I05333ce8f242569d257996fab459d1587bcbf15b\n"
    },
    {
      "commit": "8134832a45febb385ba903ac82117273139d981b",
      "tree": "3371b56110ee7d9eec51dbf24f50a6bab6bcf0d6",
      "parents": [
        "e3735719fa2ab31bd2ef0ebd75131d8c4ea6e382"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 22:46:14 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:15:46 2013 +0400"
      },
      "message": "Remove rest openstack/* repos mappings\n\nIn addition it removes unneded quantum repos mapping, because there are\nno more repos named \u0027openstack/quantum\u0027 and \u0027openstack/python-quantumclient\u0027.\n\nDepends on: Change-Id: Ifaa8e7eeccaaa1187001ccff6bca5e0150ea9b79\n\nChange-Id: I959d8d7cdc737e485bda675150f204df4019dffd\n"
    },
    {
      "commit": "e3735719fa2ab31bd2ef0ebd75131d8c4ea6e382",
      "tree": "4a1dd4bb9d4a3674aa7c4b4d9890fc85b480e343",
      "parents": [
        "121648c325d3c26fe28900840e48cf9bba524856"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 22:44:32 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:15:24 2013 +0400"
      },
      "message": "Remove launchpad project mappings for -api repos\n\nDepends on: Change-Id: I77b8df96bd207735150c418c76c0365732f98e44\n\nChange-Id: Ib854640979a5fee69a32335b2894c2d538d8a62f\n"
    },
    {
      "commit": "121648c325d3c26fe28900840e48cf9bba524856",
      "tree": "3684a03455827f840db964c3382efe3abbd3c399",
      "parents": [
        "1ea74cd7d57841b2cbee26e930eafa3dd7fdf638"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Thu Dec 05 23:34:57 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Dec 06 23:14:12 2013 +0400"
      },
      "message": "Remove openstack-infra projects mappings to LP\n\nDepends on Change-Id: I037bd9441cb129ef2b5bf172b00241ac52bec2a8\n\nChange-Id: I037bd9441cb129ef2b5bf172b00241ac52bec2a8\n"
    },
    {
      "commit": "1ea74cd7d57841b2cbee26e930eafa3dd7fdf638",
      "tree": "36b28ba11ab88bf764e1d37854331591c1bc353d",
      "parents": [
        "af3ef73ccad0e69888b2ce59722ed20695eb6245"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Thu Dec 05 08:33:17 2013 -0800"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Thu Dec 05 09:58:11 2013 -0800"
      },
      "message": "Update tripleo project name mappings\n\nAlso, re-sort.\n\nChange-Id: If4849cf1ed2f1ed3f87ec893ed33cf4faef980e3\n"
    },
    {
      "commit": "af3ef73ccad0e69888b2ce59722ed20695eb6245",
      "tree": "d3f2c834d2871d9c625717240ec3297b2f3d00a3",
      "parents": [
        "ac7623e0adf100ae5bad941b4d841b3b3ee72bad",
        "5257eb0345dd8a35f0c11076ecd0175af5bbee26"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Dec 05 00:18:37 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Dec 05 00:18:37 2013 +0000"
      },
      "message": "Merge \"Ignore E125 and H flake8 violations.\""
    },
    {
      "commit": "d3393475d1b240dffcbc32360b88f016f9ecc425",
      "tree": "898727dbd51eab1b95f004ba0ea338db174f2183",
      "parents": [
        "47a6f3a1cd69f4c3a05bb09761cecfddab0f9828"
      ],
      "author": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Thu Nov 28 12:27:56 2013 +1100"
      },
      "committer": {
        "name": "Tom Fifield",
        "email": "tom@openstack.org",
        "time": "Wed Dec 04 09:21:19 2013 +1100"
      },
      "message": "Add script to post a gerrit welcome message\n\nThis script, to be triggered by the patchset-created hook in gerrit,\nwill post a welcoming message on new contributions from people who\nhave never contributed to OpenStack before.\n\nThe aim is to increase awareness of the place of code review in our\ncommunity, and encourage users to participate, while managing\nexpectations.\n\nThe plan is to merge this, then test thoroughly on review-dev with\na range of cases, including:\n* First time patch (post message)\n* Patch after change of email (no message)\n* Patch after existing patch (no message)\n\nChange-Id: I7bb2baeb37d3700ff07f39a8a29b4eaf41f5cd40\nPartial-Bug: 1246879\n"
    },
    {
      "commit": "5257eb0345dd8a35f0c11076ecd0175af5bbee26",
      "tree": "93d91640c15edc3382be122ab1eac50770c02a14",
      "parents": [
        "b04e7e4efec397ac51ed3b010d238bd4fc8ea3f0"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Tue Dec 03 10:19:04 2013 -0800"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "jeblair@openstack.org",
        "time": "Tue Dec 03 10:19:04 2013 -0800"
      },
      "message": "Ignore E125 and H flake8 violations.\n\nChange-Id: Ib0d2c8c07abca53f3fdcd0734d571d1f35b41214\n"
    },
    {
      "commit": "ac7623e0adf100ae5bad941b4d841b3b3ee72bad",
      "tree": "a9aa741a14cd109048a8cc98dc283a1acb397db2",
      "parents": [
        "b04e7e4efec397ac51ed3b010d238bd4fc8ea3f0"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Mon Dec 02 16:38:52 2013 -0800"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Tue Dec 03 10:17:07 2013 -0800"
      },
      "message": "Always sleep after group creation\n\nGerrit group creation appears to be very asynchronous making ACL pushes\nafter group creation prone to races. Always sleep for at least one\nsecond after group creation in an attempt to mitigate this problem.\n\nChange-Id: I80e5fa56f8bd426d3616e492368300f49e5ea06b\n"
    },
    {
      "commit": "b04e7e4efec397ac51ed3b010d238bd4fc8ea3f0",
      "tree": "66fea8ceb7625c4d72f1738f9f145699142905a4",
      "parents": [
        "e3903d9d13c9815f71a6f9ae02c529e577f67716",
        "dd9520792a324b40d2848abc72fd5891eb37bce6"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 02 19:23:36 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 02 19:23:36 2013 +0000"
      },
      "message": "Merge \"Do github last\""
    },
    {
      "commit": "e3903d9d13c9815f71a6f9ae02c529e577f67716",
      "tree": "d99f830bc6f2416867b2c87915ff699812336031",
      "parents": [
        "6d6304f8c06a350e0ab94437ebf1eda620985537",
        "b3f398a5d535f0189a707e2b45467aa37e85f493"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 02 19:23:19 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 02 19:23:19 2013 +0000"
      },
      "message": "Merge \"Catch errors centrally, and bail out more\""
    },
    {
      "commit": "6d6304f8c06a350e0ab94437ebf1eda620985537",
      "tree": "122ec9f9b3939b76d30978b3a829a0d08e3012b1",
      "parents": [
        "dc800fb306730f1fd40fa323e9e8094090fb7ae9",
        "a2b12006a76eb3ea990d20c1a3196481fccdc5e2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 02 19:23:18 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 02 19:23:18 2013 +0000"
      },
      "message": "Merge \"Refactor manage-projects for readability\""
    },
    {
      "commit": "dd9520792a324b40d2848abc72fd5891eb37bce6",
      "tree": "2c29903ff3e53bd42ed2b973d87b227f820dc846",
      "parents": [
        "b3f398a5d535f0189a707e2b45467aa37e85f493"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Nov 28 18:20:42 2013 -0500"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Mon Dec 02 11:13:53 2013 -0800"
      },
      "message": "Do github last\n\ngithub project creation is really only a convenience, but API errors\ncause other things to get borked from time to time. Move the interaction\nwith github to the very end, after we\u0027ve done all of the things that\nexist in our own backyard. Additionally, if we create the project in\ngithub, it\u0027s possible we did it later on, so go ahead and trigger a\nreplication\n\nChange-Id: I51572afe41f7ec9977ea7c17a90bd4df49b9a0f1\nCloses-bug: #1242569\n"
    },
    {
      "commit": "b3f398a5d535f0189a707e2b45467aa37e85f493",
      "tree": "0d2b692bfa78b6973e5282a46beddf162cfe51cb",
      "parents": [
        "a2b12006a76eb3ea990d20c1a3196481fccdc5e2"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Nov 28 18:07:23 2013 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Dec 02 13:28:18 2013 -0500"
      },
      "message": "Catch errors centrally, and bail out more\n\nWe want to be more resilient against parts of things failing. For that,\nwe need to be able to bail out of the loop when things bork. Put in a\ncentral loop exception processor, and throw things from the functions.\n\nChange-Id: I5d9b30e1403634909ad45c27af7c975d815a9538\n"
    },
    {
      "commit": "dc800fb306730f1fd40fa323e9e8094090fb7ae9",
      "tree": "f18bcd45ca4eb5f701ab708d7347e53efb400d93",
      "parents": [
        "47a6f3a1cd69f4c3a05bb09761cecfddab0f9828",
        "9c0de72df5c7765773e4be2c2ede7fe23b8ddcd4"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Dec 02 00:35:06 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Dec 02 00:35:06 2013 +0000"
      },
      "message": "Merge \"Savanna client is now using separated LP project\""
    },
    {
      "commit": "a2b12006a76eb3ea990d20c1a3196481fccdc5e2",
      "tree": "e03180057ba37eb76533c6b43fdfcc62805c304d",
      "parents": [
        "47a6f3a1cd69f4c3a05bb09761cecfddab0f9828"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Nov 28 12:30:27 2013 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Nov 28 12:30:27 2013 -0500"
      },
      "message": "Refactor manage-projects for readability\n\nThis changes absolutely no functionality - it\u0027s merely extracting parts\nof the really long function into subfunctions. It should make further\nrefactoring of sequencing and error conditions easier to reason about.\n\nChange-Id: I288a03f631faa1b4596e3fd5d5e1613ff2525b6e\n"
    },
    {
      "commit": "47a6f3a1cd69f4c3a05bb09761cecfddab0f9828",
      "tree": "b69e66f20bf59422c59ee04a6c1a2dd3c48fe190",
      "parents": [
        "a0042da79f68f04f3e946143fba60f79106c4311",
        "e5c1eed09065e5d2da67d72526be42fe05287c4e"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Nov 25 22:27:18 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Nov 25 22:27:18 2013 +0000"
      },
      "message": "Merge \"Only push tags to gerrit\""
    },
    {
      "commit": "a0042da79f68f04f3e946143fba60f79106c4311",
      "tree": "824ae12ec4dbba8d5436ccf1c9e36ed1919f18a3",
      "parents": [
        "88e8b02fd1076bec0f0e29632576e5db9e3b7f0f",
        "b46a447b7064a4baa01a553111566cc45c33ba61"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Nov 25 22:27:17 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Nov 25 22:27:17 2013 +0000"
      },
      "message": "Merge \"Remove run-mirror from jeepyb\""
    },
    {
      "commit": "9c0de72df5c7765773e4be2c2ede7fe23b8ddcd4",
      "tree": "05104e60435262b5f2026f2f01fbcc7cd5f0c28e",
      "parents": [
        "88e8b02fd1076bec0f0e29632576e5db9e3b7f0f"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Thu Nov 21 23:46:08 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Sat Nov 23 11:56:12 2013 +0400"
      },
      "message": "Savanna client is now using separated LP project\n\nSo, there is no need to keep python-savannaclient repo to savanna LP\nproject mapping. By default, all repo mapped to the LP projects with the\nsame name.\n\nChange-Id: I66e7bece5304c06481703fdf33bd5606b3b05df9\n"
    },
    {
      "commit": "88e8b02fd1076bec0f0e29632576e5db9e3b7f0f",
      "tree": "4cbd868602ef6e2ad96e11369d1d0546fab906bb",
      "parents": [
        "7263d716592f1af51ee09fa0108b67f5cf2c4ebe",
        "ec0330fdf8e6582d1fa51162fab7ccd706e68711"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Nov 22 22:36:45 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Nov 22 22:36:45 2013 +0000"
      },
      "message": "Merge \"Allow automatic subscription to DocImpact bugs\""
    },
    {
      "commit": "ec0330fdf8e6582d1fa51162fab7ccd706e68711",
      "tree": "11ddd17bbf671b00dedbfc9b7e739c7f166bc8e7",
      "parents": [
        "032cd9820795d4309ca98503741ebb4b42b95a41"
      ],
      "author": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Wed Nov 13 18:51:48 2013 +1100"
      },
      "committer": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Wed Nov 20 09:09:01 2013 +1100"
      },
      "message": "Allow automatic subscription to DocImpact bugs\n\nOur team\u0027s tech writer has a problem finding the DocImpact bugs\nthat our team has created, which is something she wants to do so\nthat she can make sure our team\u0027s work is well documented.\n\nInstead of writing a horrible script to hack around this, I thought\nI\u0027d fix the problem generically, as I can imagine that this is\nsomething that other teams might be interested in implementing.\n\nI\u0027ve also added some documentation on how to test this script, as\nwell as a sample config file for the subscriptions handling. If\nsomeone wants to point me to the right place in puppet to add a\nreal configuration file, I am happy to do that too.\n\nFor reference, the configuration file is passed with the\n--auto-subscriptions flag and the format of the configuration\nfile is documented in the code itself.\n\nChange-Id: I5553bf94107912bc019cea4baedf639cadc6e314\n"
    },
    {
      "commit": "7263d716592f1af51ee09fa0108b67f5cf2c4ebe",
      "tree": "e62839501b7fdd75fede380f29414846bc3030ed",
      "parents": [
        "dff881b15458b00b370cbf76be619019dc8001e0"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Thu Nov 14 15:34:59 2013 +0400"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Fri Nov 15 11:51:01 2013 +0400"
      },
      "message": "Fix savanna repos mappings\n\nChange-Id: I3aa75aac68618b7fa73390f7c4b710d1d96cc2ba\n"
    },
    {
      "commit": "dff881b15458b00b370cbf76be619019dc8001e0",
      "tree": "0e9cc159def944248cc315be9328cd6cf4a693f4",
      "parents": [
        "032cd9820795d4309ca98503741ebb4b42b95a41"
      ],
      "author": {
        "name": "Evgeniy L",
        "email": "eli@mirantis.com",
        "time": "Wed Nov 13 16:34:57 2013 +0400"
      },
      "committer": {
        "name": "Evgeniy L",
        "email": "eli@mirantis.com",
        "time": "Wed Nov 13 16:37:53 2013 +0400"
      },
      "message": "Map all fuel stackforge repos to fuel at launchpad\n\nChange-Id: I132c2c8f4a1ed03397ef87146a32181ea8fa188f\n"
    },
    {
      "commit": "b46a447b7064a4baa01a553111566cc45c33ba61",
      "tree": "8e8d393ff1dfdee45e4de2ed95d80bec33eceb87",
      "parents": [
        "032cd9820795d4309ca98503741ebb4b42b95a41"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Nov 12 16:10:14 2013 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Nov 12 16:10:14 2013 -0500"
      },
      "message": "Remove run-mirror from jeepyb\n\nrun-mirror is now contained in pypi-mirror.\n\nChange-Id: Idce50c39fc043c1ed0cca9ce11da314142e4c0ba\n"
    },
    {
      "commit": "032cd9820795d4309ca98503741ebb4b42b95a41",
      "tree": "f8d5a6f67dd7589174fcdb8efdf3beec0bb672f0",
      "parents": [
        "39948a3fe3e753da982af1a57a986f34b81ac1cb",
        "bbb29ac5d8093ab0f0273ae9a76b531411106985"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Nov 11 05:38:07 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Nov 11 05:38:07 2013 +0000"
      },
      "message": "Merge \"New headers argument for github.Issue.Issue\""
    },
    {
      "commit": "e5c1eed09065e5d2da67d72526be42fe05287c4e",
      "tree": "3451c87fb51e972aa52a707bb68a78ea633b8124",
      "parents": [
        "39948a3fe3e753da982af1a57a986f34b81ac1cb"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Wed Oct 23 08:55:13 2013 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Oct 24 23:16:29 2013 -0400"
      },
      "message": "Only push tags to gerrit\n\nA bare push will attempt to push tags back to upstream repos, which will\nnot work.\n\nChange-Id: Id516a792a00d1773274fc04bd3fd2c447c9cbd95\n"
    },
    {
      "commit": "39948a3fe3e753da982af1a57a986f34b81ac1cb",
      "tree": "03642d28329721a2340a6be5d9d3f347ab528e33",
      "parents": [
        "f5b1118bc99d74bcdaa205de60ba013be655ce51",
        "7ed49101aef73c3c98df64ef75862b5099d399f2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Oct 19 13:30:43 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Oct 19 13:30:43 2013 +0000"
      },
      "message": "Merge \"Remove now-deprecated fetch-remotes command\""
    },
    {
      "commit": "f5b1118bc99d74bcdaa205de60ba013be655ce51",
      "tree": "a20e8d41ee52e46fd0d6d2aa82fa2223cf1ccb90",
      "parents": [
        "d211fa570da0761346292d7a93a81b25cba8d3f4"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Oct 18 19:32:03 2013 -0400"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Oct 18 19:32:03 2013 -0400"
      },
      "message": "Add s to the end of format string\n\nChange-Id: I7dba1e9115cc266ca4baccde7a2c206aea0cadc7\n"
    },
    {
      "commit": "d211fa570da0761346292d7a93a81b25cba8d3f4",
      "tree": "a3467921e5bea319a63c7b977df4286e3afbd5a5",
      "parents": [
        "a54b0afad6db2ff09a74cdbab2bb620020a23fd1"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Wed Oct 16 19:34:07 2013 +0000"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Fri Oct 18 13:22:59 2013 -0700"
      },
      "message": "Create local git mirror _after_ creating project\n\n* jeepyb/cmd/manage_projects.py: Gerrit\u0027s create-project API calls\nare refused with a \"fatal: project xyzzy exists\" error if its\nrepository is already present on disk. In fact, the same is true if\nit\u0027s configured to perform local replication and the destination\nreplication directory for a new project already exists.\nConditionally create these directories only after creating the\nproject in Gerrit, avoiding further pain.\n\nChange-Id: I3d7545a348187dfce3eba1ec93a976bb510668f3\n"
    },
    {
      "commit": "bbb29ac5d8093ab0f0273ae9a76b531411106985",
      "tree": "754dc3413730e64df89d2f21766116fbe3b12dad",
      "parents": [
        "a54b0afad6db2ff09a74cdbab2bb620020a23fd1"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Oct 15 18:56:50 2013 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Oct 15 18:56:50 2013 +0000"
      },
      "message": "New headers argument for github.Issue.Issue\n\n* jeepyb/cmd/close_pull_requests.py: The pygithub module added a new\npositional argument for headers in the middle of other positional\narguments to the __init__ method for CompletableGithubObject. This\nchange passes an empty dict in for it to get the pull request closer\nworking again, and also adds names for the other arguments so they\nwill be easier to diagnose if this happens again.\n\nChange-Id: Iea2913a9c76b564e9e5186fb970032696d292c86\n"
    },
    {
      "commit": "a54b0afad6db2ff09a74cdbab2bb620020a23fd1",
      "tree": "d95db0ab5a1a4c87c8f69c572a54978056fdd397",
      "parents": [
        "f8b2b6220a0e7766ffbe46f4a7352e498261649c"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Oct 15 13:42:59 2013 -0300"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Oct 15 13:43:15 2013 -0300"
      },
      "message": "Do not force push branches please\n\nThe + in the refspec tells it to overwrite, but when we\u0027re doing\nupstream tracking, that could override code that we\u0027re doing locally.\n\nChange-Id: Id56fc7230912bf21218fed5f6acff9cb9456fee9\n"
    }
  ],
  "next": "f8b2b6220a0e7766ffbe46f4a7352e498261649c"
}
