)]}'
{
  "log": [
    {
      "commit": "bc13d2645229d20c8fc4aae9d2c6b3b2c20dbc89",
      "tree": "1db7756109e84eb0ff7c0447c79a4f298c9c555d",
      "parents": [
        "c4cd5b70fe1607ba371f3061d27041530116e312"
      ],
      "author": {
        "name": "Artem Panchenko",
        "email": "apanchenko@mirantis.com",
        "time": "Fri Jan 20 12:40:58 2017 +0200"
      },
      "committer": {
        "name": "Artem Panchenko",
        "email": "apanchenko@mirantis.com",
        "time": "Fri Jan 27 12:57:13 2017 +0200"
      },
      "message": "Move Calico test/build/publish stuff to library\n\nSince we use the same stages by different Calico\npipelines, moved them to library in order to\nmake DRY jobs.\n\nChange-Id: Ibf4dc7712e463cb0e137f1de87289e30dff46fa1\n"
    },
    {
      "commit": "c4cd5b70fe1607ba371f3061d27041530116e312",
      "tree": "2818b7fd74683f9d5b9e65ec3a57add4028b7c87",
      "parents": [
        "b36e36ea262faf333e4a283fc62987110df145fb"
      ],
      "author": {
        "name": "asledzinskiy",
        "email": "asledzinskiy@mirantis.com",
        "time": "Wed Jan 25 16:50:56 2017 +0200"
      },
      "committer": {
        "name": "asledzinskiy",
        "email": "asledzinskiy@mirantis.com",
        "time": "Wed Jan 25 16:57:51 2017 +0200"
      },
      "message": "Remove env erase from runTest\n\n- Env erase shouldn\u0027t be part of runTest because it erases\nenvs between stages and so that all starts from scratch.\n- Env erase moved to separate function\n\nChange-Id: I49ed4ca05606486f5d4955d99cfa4e42f6cd9663\n"
    },
    {
      "commit": "b36e36ea262faf333e4a283fc62987110df145fb",
      "tree": "e24f6b3e5009a716d863f34dfbdf6d8ca3c27f61",
      "parents": [
        "b1aa0ff6d49751d98f41c35ee493619d58100b1b"
      ],
      "author": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Mon Jan 23 18:26:40 2017 +0200"
      },
      "committer": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Mon Jan 23 18:26:40 2017 +0200"
      },
      "message": "[k8s-slave] Running function can potentially return values\n\nWe can expect reutrning values from function which is running\non k8s cluster\n\nExample:\n  def artifacts \u003d common.runOnKubernetes([\n    function : this.\u0026buildCalicoContainers,\n    jnlpImg  : jnlpSlaveImg,\n    slaveImg : jenkinsSlaveImg\n  ])\n  // run system test\n  node (\u0027calico\u0027){\n    stage (\"Run system tests\") {\n       build job: \u0027calico.system-test.deploy\u0027, propagate: true, wait: true, parameters:\n        [\n            [$class: \u0027StringParameterValue\u0027, name: \u0027CALICO_NODE_IMAGE_REPO\u0027, value: artifacts[\"CALICO_NODE_IMAGE_REPO\"]],\n            [$class: \u0027StringParameterValue\u0027, name: \u0027CALICOCTL_IMAGE_REPO\u0027, value: artifacts[\"CALICOCTL_IMAGE_REPO\"]],\n            [$class: \u0027StringParameterValue\u0027, name: \u0027CALICO_VERSION\u0027, value: artifacts[\"CALICO_VERSION\"]],\n            [$class: \u0027StringParameterValue\u0027, name: \u0027MCP_BRANCH\u0027, value: \u0027mcp\u0027],\n        ]\n    }\n  }\n\nChange-Id: I058537700e0bec06d9e14b422d452e2e7eb45e23\n"
    },
    {
      "commit": "b1aa0ff6d49751d98f41c35ee493619d58100b1b",
      "tree": "930b089887a5e22003240ab2a69023431ef87ca3",
      "parents": [
        "e897d8f3b7e343516fb7a45b7b6a4f6a952405c5"
      ],
      "author": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Mon Jan 23 17:48:44 2017 +0200"
      },
      "committer": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Mon Jan 23 17:48:44 2017 +0200"
      },
      "message": "Fix type if instead of id\n\nChange-Id: I59ef5a2f05d7f9b1fc82e84075e9e18c5e4d3491\n"
    },
    {
      "commit": "e897d8f3b7e343516fb7a45b7b6a4f6a952405c5",
      "tree": "15c19281a2b99d570780aa487eb620ede0d6a7fb",
      "parents": [
        "e9e6faaed041bd3ab1813f6c366f63e6259f390f"
      ],
      "author": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Mon Jan 23 16:44:03 2017 +0200"
      },
      "committer": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Mon Jan 23 15:18:11 2017 +0000"
      },
      "message": "Allow to run code on k8s-slave\n\nRun function on k8s cluster\n\n@param config LinkedHashMap\n   config includes next parameters:\n   - label, pod label\n   - function, code that should be run on k8s cluster\n   - jnlpImg, jnlp slave image\n   - slaveImg, slave image\n\nUsage example:\n def runFunc \u003d new com.mirantis.mcp.Common()\n  runFunc.runOnKubernetes ([\n    function : this.\u0026buildCalicoContainers,\n    slaveImg : \u0027sandbox-docker-dev-local.docker.mirantis.net/skulanov/jenkins-slave-images/calico-slave:1\u0027,\n    jnlpImg: \u0027docker-prod-virtual.docker.mirantis.net/mirantis/jenkins-slave-images/jnlp-slave:latest\u0027\n  ])\n\n //promotion example. In case of promotion we need only jnlp container\n def runFunc \u003d new com.mirantis.mcp.Common()\n runFunc.runOnKubernetes ([\n   jnlpImg: \u0027docker-prod-virtual.docker.mirantis.net/mirantis/jenkins-slave-images/jnlp-slave:latest\u0027,\n   function : this.\u0026promote_artifacts\n ])\n\nChange-Id: I167157a70d732455e5263d0a5e97854e5dc6a248\n"
    },
    {
      "commit": "e9e6faaed041bd3ab1813f6c366f63e6259f390f",
      "tree": "1bef1507c906c62f0cd3b846115d2551124d47a1",
      "parents": [
        "69307daca0723efff45b5a939521e5416f2df37f"
      ],
      "author": {
        "name": "Tatyana Leontovich",
        "email": "tleontovich@mirantis.com",
        "time": "Fri Jan 20 18:50:36 2017 +0200"
      },
      "committer": {
        "name": "Tatyana Leontovich",
        "email": "tleontovich@mirantis.com",
        "time": "Mon Jan 23 17:13:45 2017 +0200"
      },
      "message": "Add function run_e2e tests\n\nChange-Id: I8a84f35d9be4dcb43c96bff10495dc43ac2c3f35\n"
    },
    {
      "commit": "69307daca0723efff45b5a939521e5416f2df37f",
      "tree": "0fbe8a65eb19448cbcaddf69dd65d4f1b8f3d63a",
      "parents": [
        "f36af07eeafeea7e17921485857aa7ed472a5424"
      ],
      "author": {
        "name": "asledzinskiy",
        "email": "asledzinskiy@mirantis.com",
        "time": "Thu Jan 19 16:37:16 2017 +0200"
      },
      "committer": {
        "name": "Mateusz Matuszkowiak",
        "email": "mmatuszkowiak@mirantis.com",
        "time": "Fri Jan 20 12:30:58 2017 +0000"
      },
      "message": "Fix hyphen in package name\n\nChange-Id: Ie69e35996f90f5dad62a8f13df8b83bb009672fd\n"
    },
    {
      "commit": "f36af07eeafeea7e17921485857aa7ed472a5424",
      "tree": "e2c480d74784be1168901725217d4c09e2cfb6a7",
      "parents": [
        "e65f7b061dcc8e951bbeff470df53e0bc032575d"
      ],
      "author": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Fri Jan 20 13:35:57 2017 +0200"
      },
      "committer": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Fri Jan 20 12:10:34 2017 +0000"
      },
      "message": "Re-use already running ssh-agent if any\n\nprepareSshAgentKey() will not start ssh-agent if there is already\nrunning any ssh-agent process, as the result there will be no\n\"config\" file (~/.ssh/ssh-agent.sh) and runSshAgentCommand fails\n\nInstead we need to re-use already running ssh-agent and re-construct\n  * SSH_AUTH_SOCK\n  * SSH_AGENT_PID\n\nE.g:\n  [env-01-configure-system] Running shell script\n   + head -n 1\n   + grep /tmp/ssh-.*/agent.*\n   + find /tmp/ -type s -name agent.*\n   + export SSH_AUTH_SOCK\u003d/tmp/ssh-NQmNvs9SM9wu/agent.5363\n   + echo /tmp/ssh-NQmNvs9SM9wu/agent.5363\n   + cut -d. -f2\n   + export SSH_AGENT_PID\u003d5363\n   + ssh-add /home/jenkins/.ssh/id_rsa_deployments-key\n   Identity added: /home/jenkins/.ssh/id_rsa_deployments-key (/home/jenkins/.ssh/id_rsa_deployments-key)\n\nChange-Id: I1e7126513fa623c83b5fdd3448a4654e24f09e33\n"
    },
    {
      "commit": "e65f7b061dcc8e951bbeff470df53e0bc032575d",
      "tree": "b66d87650b8d9cf3dbd768009a2439148476536c",
      "parents": [
        "e0948fd5ef25d25ca6f603014203d2af53ddc277"
      ],
      "author": {
        "name": "Tomáš Kukrál",
        "email": "tkukral@mirantis.com",
        "time": "Thu Jan 19 13:16:43 2017 +0100"
      },
      "committer": {
        "name": "Tomáš Kukrál",
        "email": "tkukral@mirantis.com",
        "time": "Thu Jan 19 16:04:22 2017 +0100"
      },
      "message": "Update k8s deploy steps\n\nChange deploy steps to comply with updated salt-formula-kubernetes\n\nChange-Id: I4ef1a542d82e4d241828873b40e261934538368a\n"
    },
    {
      "commit": "e0948fd5ef25d25ca6f603014203d2af53ddc277",
      "tree": "7aacf83cf56ac78a449ecd067721a4c4f89bd684",
      "parents": [
        "9fcec461a53ece5f5501c3473b2876ad780a7863"
      ],
      "author": {
        "name": "asledzinskiy",
        "email": "asledzinskiy@mirantis.com",
        "time": "Fri Jan 06 16:23:54 2017 +0200"
      },
      "committer": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Wed Jan 18 11:08:10 2017 +0000"
      },
      "message": "Add common functions to run mcp-qa tests\n\n- Added RunTest package with function to run test\n- Added EnvActions package with functions to manipulate env\n- Added Common package with common functions\n\nChange-Id: I921c75f990e182c1264aeecf29780b2390cfcc9c\n"
    },
    {
      "commit": "88054e65efdfa90da645f59313d6dac9804ceda7",
      "tree": "f219f9382d146f30e6e97a3138b2dbe665760e31",
      "parents": [
        "e945ec9b39a50c8173f409cd653097023c66bcb9"
      ],
      "author": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Tue Jan 17 16:21:54 2017 +0200"
      },
      "committer": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Tue Jan 17 16:34:04 2017 +0200"
      },
      "message": "Add ability for anonymous gerrit code checkout\n\nChange-Id: I80eb5c651ff8a481b60616cb7f3170125e22387a\n"
    },
    {
      "commit": "e945ec9b39a50c8173f409cd653097023c66bcb9",
      "tree": "e4490dcb3a41bef4ece84541f48e04d1ea1d21fc",
      "parents": [
        "f89a188e398bfb1acbc803e655054df89077f5c8"
      ],
      "author": {
        "name": "Denis Egorenko",
        "email": "degorenko@mirantis.com",
        "time": "Wed Dec 21 19:15:10 2016 +0400"
      },
      "committer": {
        "name": "Denis Egorenko",
        "email": "degorenko@mirantis.com",
        "time": "Fri Jan 13 09:04:28 2017 +0000"
      },
      "message": "Switch *Checkout functions from closure to simple function\n\nBecause of scope visible problems for groovy closure in pipelines\nis better to switch to simple function.\n\nChange-Id: I993b2ba3cf311205e692c31e962f6a92b0a68100\n"
    },
    {
      "commit": "f89a188e398bfb1acbc803e655054df89077f5c8",
      "tree": "f4b117f40c766a5996d895e9246eba75c77a1b10",
      "parents": [
        "6f2bc66a3328d907a4ddaaa13b65caa376fce29d"
      ],
      "author": {
        "name": "Alexander Tivelkov",
        "email": "ativelkov@mirantis.com",
        "time": "Wed Jan 11 13:29:35 2017 +0300"
      },
      "committer": {
        "name": "Alexander Tivelkov",
        "email": "ativelkov@mirantis.com",
        "time": "Wed Jan 11 13:37:43 2017 +0300"
      },
      "message": "Screened credentials printing in openstack env\n\nAdded \"set +x\" / \"set -x\" commands to the generated openstack\nenvironment file to prevent password to be logged when the file is\nsourced during job execution.\n\nChange-Id: Id8622019a648619a5ea6c814fc06e430316af2f3\n"
    },
    {
      "commit": "6f2bc66a3328d907a4ddaaa13b65caa376fce29d",
      "tree": "55974f33e9664b7c9e81431cf55c32bff47c5d0b",
      "parents": [
        "ddb44d08c385c4d0bd4f89233a9fe363c10cac6f"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Thu Jan 05 11:52:47 2017 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Thu Jan 05 11:52:47 2017 +0100"
      },
      "message": "Avoid batch runs as we need to handle salt async calls first\n\nChange-Id: I3ac78edd57f18edc1fea5493da0865bb363bebb1\n"
    },
    {
      "commit": "ddb44d08c385c4d0bd4f89233a9fe363c10cac6f",
      "tree": "0d7d139d1e182e912ba2fe5124ed6e4909a20862",
      "parents": [
        "eeed8658c183d990b9df8da23a51285f15b0819c"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Wed Jan 04 13:17:04 2017 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Wed Jan 04 14:18:42 2017 +0100"
      },
      "message": "Overhauled Salt workflows to cope with NoCPS issue\n\nChange-Id: Ie5038233ad464e2b07f3e212354f78665e1f9494\n"
    },
    {
      "commit": "eeed8658c183d990b9df8da23a51285f15b0819c",
      "tree": "33544c68ffd79629d3f7f40a16010fe4df8f3987",
      "parents": [
        "bfd10f4804669a3b9db9a8c1d8df824a1eefc587"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Tue Jan 03 15:20:21 2017 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Tue Jan 03 15:20:30 2017 +0100"
      },
      "message": "No CSP for saltCommand function to fix hashmap serialization error\n\nChange-Id: I5c637ca3deb61649ae963be0be5b963c4b7025d1\n"
    },
    {
      "commit": "bfd10f4804669a3b9db9a8c1d8df824a1eefc587",
      "tree": "b17f621aca08b0c588d56e143e1588933d96b9b7",
      "parents": [
        "fc65ea7aae475030a4bc704f4f5a972a5e6e5750"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Tue Jan 03 13:40:12 2017 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Tue Jan 03 13:40:12 2017 +0100"
      },
      "message": "Fixed ommited http module include\n\nChange-Id: Id0fedc52b6501c9dadb88ba1359a6871aa72e86c\n"
    },
    {
      "commit": "fc65ea7aae475030a4bc704f4f5a972a5e6e5750",
      "tree": "55ff31ea91eda598e09d8ee80e11d8bdb3b66b09",
      "parents": [
        "7ebd00629546905be114e372002a5707f7828e8e"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Tue Jan 03 12:13:36 2017 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Tue Jan 03 12:13:36 2017 +0100"
      },
      "message": "Simple echo\n\nChange-Id: Icfc28f6fa08521d274f55762d22f895815850f97\n"
    },
    {
      "commit": "7ebd00629546905be114e372002a5707f7828e8e",
      "tree": "3b8ffad09fcbedd2a1c9fe8d83831c5281b7931d",
      "parents": [
        "eedc222d33857dbd51da9eb297c776fda9e45ee1"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Tue Jan 03 10:59:29 2017 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Tue Jan 03 10:59:29 2017 +0100"
      },
      "message": "Hackfix\n\nChange-Id: Ia09d93153ac5e62666db11ec9c895b2074686ada\n"
    },
    {
      "commit": "eedc222d33857dbd51da9eb297c776fda9e45ee1",
      "tree": "5a32f0a63c7c09bd39b7d9856aed45174902a4e8",
      "parents": [
        "dce8b479cba49663035bece7db4bfe3078d87506"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Tue Jan 03 10:10:03 2017 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Tue Jan 03 10:10:03 2017 +0100"
      },
      "message": "Debug output\n\nChange-Id: Ia3d3bb51c68529e1b1345f6d90b619e6bbe89d28\n"
    },
    {
      "commit": "dce8b479cba49663035bece7db4bfe3078d87506",
      "tree": "c5b0aae8fb7be6e420fdaa072d5fee356899e6a9",
      "parents": [
        "c6d28dda61d002412f688e36fcef36962f5b5231"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Fri Dec 30 16:56:07 2016 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Fri Dec 30 16:56:07 2016 +0100"
      },
      "message": "Fixed status condition\n\nChange-Id: If78b271ecd70efb812e980037952d36563db518a\n"
    },
    {
      "commit": "c6d28dda61d002412f688e36fcef36962f5b5231",
      "tree": "3eed3a16286a66d22f1294b9dff342a4dafe0be9",
      "parents": [
        "e11e87940ec5c1098b398af3217cc94245f99c04"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Wed Dec 28 12:59:38 2016 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Wed Dec 28 12:59:38 2016 +0100"
      },
      "message": "No python module prefix\n\nChange-Id: I6e9a6da78eb69bb536087f4d232a0beb23ac48ae\n"
    },
    {
      "commit": "e11e87940ec5c1098b398af3217cc94245f99c04",
      "tree": "c97b6e55376ff5b5d865f75684b16f0bbc0ca526",
      "parents": [
        "6307d34c4ae19260ea45813cdc0fbd5062dff532"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Wed Dec 28 09:42:25 2016 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Wed Dec 28 09:42:25 2016 +0100"
      },
      "message": "Fixed abdundant parameter\n\nChange-Id: I54778c982d7958107564119dc4f399bed502cbc3\n"
    },
    {
      "commit": "6307d34c4ae19260ea45813cdc0fbd5062dff532",
      "tree": "63b9ab437255702a649b8ebc780e6f30c26bc17f",
      "parents": [
        "67af6c2a675e1d0640849e5e35d743f70fcc215b"
      ],
      "author": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Tue Dec 27 14:29:31 2016 +0200"
      },
      "committer": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Tue Dec 27 14:29:31 2016 +0200"
      },
      "message": "Supress private key output in jenkins console\n\nChange-Id: I0fa3f48388da50daac16dc4532952cbcde48719a\n"
    },
    {
      "commit": "67af6c2a675e1d0640849e5e35d743f70fcc215b",
      "tree": "4227667d6e1ea4cdc9a1c7e6761d43f4b49b6c10",
      "parents": [
        "d874d480bf2edae5389c6a5642af0a0752b1ece2"
      ],
      "author": {
        "name": "iberezovskiy",
        "email": "iberezovskiy@mirantis.com",
        "time": "Mon Dec 26 18:17:21 2016 +0400"
      },
      "committer": {
        "name": "iberezovskiy",
        "email": "iberezovskiy@mirantis.com",
        "time": "Mon Dec 26 18:18:48 2016 +0400"
      },
      "message": "Fix prepareSshAgentKey method in MK ssl\n\nWe need to include MK common to use\ngetSshCredentials method inside prepareSshAgentKey.\n\nChange-Id: Ia94a9cb6f019bfbc8fadb7d133694fc1d7460f8d\n"
    },
    {
      "commit": "d874d480bf2edae5389c6a5642af0a0752b1ece2",
      "tree": "d9032c7252a14fef2a028b17b3b2c0110b79d198",
      "parents": [
        "c000c150eae946a26d315c71cd15283e678c258a"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Mon Dec 26 10:33:29 2016 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Mon Dec 26 10:33:29 2016 +0100"
      },
      "message": "Pip based docutols\n\nChange-Id: I09d51954f01d8dac5e651852b5b164ad1166e7cd\n"
    },
    {
      "commit": "c000c150eae946a26d315c71cd15283e678c258a",
      "tree": "022707416c46f43f72536ab992406daa6345a449",
      "parents": [
        "0e558ee30998e405ddc27669cdc5b1b208a0eeda"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Fri Dec 23 15:32:54 2016 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Fri Dec 23 15:36:37 2016 +0100"
      },
      "message": "Escaped new line character and added MCP processes\n\nChange-Id: If537b3b908d7690542282765c5dba37674cfe691\n"
    },
    {
      "commit": "0e558ee30998e405ddc27669cdc5b1b208a0eeda",
      "tree": "ecb0eab29620b6c729adb2cbf53943e828e80dde",
      "parents": [
        "ba20398337517c47040f10774ef1da91afd198c0"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Fri Dec 23 13:02:55 2016 +0100"
      },
      "committer": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Fri Dec 23 13:03:41 2016 +0100"
      },
      "message": "Fix Keystone RC and parser\n\nChange-Id: I0b4657bcbd46917e355916aa62cbd1578563ee67\n"
    },
    {
      "commit": "ba20398337517c47040f10774ef1da91afd198c0",
      "tree": "4b77810760db3c77042a74a1150d5606bf6e53d1",
      "parents": [
        "a56d231cb26d376f99ee1e222bdb1687a7d29630"
      ],
      "author": {
        "name": "Sergey Kolekonov",
        "email": "skolekonov@mirantis.com",
        "time": "Wed Dec 21 18:32:17 2016 +0400"
      },
      "committer": {
        "name": "Denis Egorenko",
        "email": "degorenko@mirantis.com",
        "time": "Thu Dec 22 09:15:55 2016 +0000"
      },
      "message": "Add mk libraries\n\nChange-Id: I829b299b6329e8f4d4424c89717d432513d1eece\n"
    },
    {
      "commit": "bb1f8795e1c4d5dd510931abf1bcb9c6dd1e4582",
      "tree": "58eb8af0cc54194d50a7582281fe7b2cfb2839e3",
      "parents": [
        "2bc89179c01bf0f5d9befd0f32a3d56f58e2725f"
      ],
      "author": {
        "name": "Denis Egorenko",
        "email": "degorenko@mirantis.com",
        "time": "Wed Dec 21 13:13:24 2016 +0400"
      },
      "committer": {
        "name": "Denis Egorenko",
        "email": "degorenko@mirantis.com",
        "time": "Wed Dec 21 13:41:42 2016 +0000"
      },
      "message": "Allow to wipe workspace before cloning for gitSSHCheckout for Mirantis package\n\nPatch I0a1c8491584b7e50140b738303bad9240fd7f347 missed this change for\nmain lib package, so let\u0027s add it, because basic \u0027vars\u0027 functions will\nbe removed.\n\nChange-Id: Ic1dec6bd48ca82d87a730e85b4730d25cbcafa8f\n"
    },
    {
      "commit": "2bc89179c01bf0f5d9befd0f32a3d56f58e2725f",
      "tree": "5e41fec8d8135aa55b39060a591900e878c26544",
      "parents": [
        "0327d507ee3c32240bb21c7b9280c8ec4a0cf864"
      ],
      "author": {
        "name": "Denis Egorenko",
        "email": "degorenko@mirantis.com",
        "time": "Wed Dec 21 17:31:19 2016 +0400"
      },
      "committer": {
        "name": "Denis Egorenko",
        "email": "degorenko@mirantis.com",
        "time": "Wed Dec 21 17:33:27 2016 +0400"
      },
      "message": "Add missed definition for Docker function\n\nChange-Id: I7e07ff3d1ad0fb518c1762d77288babeaaeeccc5\n"
    },
    {
      "commit": "8c60655dc08ab26968359621cba838d6a4f1eddb",
      "tree": "a14d3ee0429926f2c218e7197d9df9db0eee54ec",
      "parents": [
        "33043c1cfd630c7f16db7fb358e647168eef2e5a"
      ],
      "author": {
        "name": "Denis Egorenko",
        "email": "degorenko@mirantis.com",
        "time": "Wed Dec 07 14:22:50 2016 +0400"
      },
      "committer": {
        "name": "Denis Egorenko",
        "email": "degorenko@mirantis.com",
        "time": "Mon Dec 12 18:18:40 2016 +0400"
      },
      "message": "Refactor var functions of Pipeline library\n\nMove all named functions under com.mirantis.mcp package\n\nChange-Id: I98002e038173fce2325d069e951b221c61109e69\n"
    },
    {
      "commit": "4d3951c56113d0a970e7f497bb79633466b18681",
      "tree": "5db08c8fe4d7cbc05c62538dadba0646640fe01f",
      "parents": [
        "1c15df01827e560293863531abf9a8631c564473"
      ],
      "author": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Thu Nov 24 13:58:15 2016 +0200"
      },
      "committer": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Thu Nov 24 13:58:15 2016 +0200"
      },
      "message": "Add com.mirantis.targetImg property to docker image property\n\ncom.mirantis.targetImg property allows to search docker\nartifacts by image name, for example\n\n  def properties \u003d [\n    \u0027com.mirantis.gerritChangeId\u0027: \"${env.GERRIT_CHANGE_ID}\",\n    \u0027com.mirantis.gerritPatchsetNumber\u0027: \"${env.GERRIT_PATCHSET_NUMBER}\",\n    \u0027com.mirantis.gerritChangeNumber\u0027 : \"${env.GERRIT_CHANGE_NUMBER}\",\n    \u0027com.mirantis.targetImg\u0027: \"${projectNamespace}/calico/node\"\n  ]\n\nChange-Id: I8f6cdb0b90edb263e2d24e987eee8b8be2e54df3\n"
    },
    {
      "commit": "8cd6d22a439db05e6edb5fab35d53671e8c6ea20",
      "tree": "a6c18e092a3b23af78631bfeca0353c44ce4405b",
      "parents": [
        "8567272fbc1f2df7e1faafb00ab05e8b5a700c8b"
      ],
      "author": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Thu Nov 17 13:42:47 2016 +0200"
      },
      "committer": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Thu Nov 17 13:42:47 2016 +0200"
      },
      "message": "Extend uploadImageToArtifactory function\n\nWe need to publish BuildInfo object as well (as for binary) for\ndocker images.\n1. Replace:\n    String artifactoryURL\n   by\n    ArtifactoryServer server\n2. If buildInfo is defined, let\u0027s publish it to artifactory\n\nChange-Id: Iadb724307b81a8f40cf1852b909bbb25208dc143\n"
    },
    {
      "commit": "8567272fbc1f2df7e1faafb00ab05e8b5a700c8b",
      "tree": "84ffbf23fb44772df36b0bd7db1db6b98f5d5392",
      "parents": [
        "c70f1c21c8e9ebd7776ed4c065fd1aa05115ba3c"
      ],
      "author": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Wed Nov 16 17:46:58 2016 +0200"
      },
      "committer": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Wed Nov 16 19:05:22 2016 +0200"
      },
      "message": "Update getGitDescribe function\n\nParametrize getGitDescribe(Boolean useShort \u003d false):\n  useShort Boolean, returns String in format:\n       false (Default): {gitTag}-{numCommits}-g{gitsha}\n       true:            {gitTag}-{numCommits}\n\nChange-Id: Ibf2e90f2fdef0611c3622b817d5f4e174fa90200\n"
    },
    {
      "commit": "c70f1c21c8e9ebd7776ed4c065fd1aa05115ba3c",
      "tree": "661410ac8d0e544c6d19e6284b96531557662a3b",
      "parents": [
        "edba5a547578272921ae33929424e36173f68ca1"
      ],
      "author": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Wed Nov 16 13:05:20 2016 +0200"
      },
      "committer": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Wed Nov 16 13:05:20 2016 +0200"
      },
      "message": "Artifactory refactoring\n\n* Define new mandatory properties in artifactory:\n  \u0027com.mirantis.buildName\u0027:\"${env.JOB_NAME}\"\n  \u0027com.mirantis.buildNumber\u0027: \"${env.BUILD_NUMBER}\"\n\n* All mandatory properties MUST be the same both for binary\n  and docker images\n\n* Remove overloaded uriByProperties() with String as second\n  paramter, it\u0027s better to use the original one with LinkedHashMap\n\nChange-Id: I2c6ea7e4fd035a1b68122ee4bc00562c0f4d8814\n"
    },
    {
      "commit": "edba5a547578272921ae33929424e36173f68ca1",
      "tree": "3c5a6babe9cb57de0de25600d1ef632a6a1e37f2",
      "parents": [
        "91d8def7ed5c57ea5d4cadf375ecb7e8a9fb6105"
      ],
      "author": {
        "name": "Denis Egorenko",
        "email": "degorenko@mirantis.com",
        "time": "Tue Nov 15 19:55:56 2016 +0300"
      },
      "committer": {
        "name": "Denis Egorenko",
        "email": "degorenko@mirantis.com",
        "time": "Tue Nov 15 19:58:00 2016 +0300"
      },
      "message": "Update MCPArtifactory package according to actual code in Tools\n\nMinor update of uploadImageToArtifactory function:\n- explicity set type of function parameters;\n- remove external ENV var;\n- add reminder what should be improved;\n\nChange-Id: I116294a317dcf610f9fb4043c48593ea96212b04\n"
    },
    {
      "commit": "91d8def7ed5c57ea5d4cadf375ecb7e8a9fb6105",
      "tree": "e5d080c530b30b16e61a5c38a66938a1c9fa79f3",
      "parents": [
        "90d4e679b3ced71175587ba95dba99635ace4df5"
      ],
      "author": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Tue Nov 15 13:53:17 2016 +0200"
      },
      "committer": {
        "name": "Sergey Kulanov",
        "email": "skulanov@mirantis.com",
        "time": "Tue Nov 15 15:42:12 2016 +0200"
      },
      "message": "Fix uploadBinariesToArtifactory function\n\nChange-Id: I51eac8b39d772dc84a6166f5d66c7e8f316afe41\n"
    },
    {
      "commit": "90d4e679b3ced71175587ba95dba99635ace4df5",
      "tree": "9575beb9488f81e5bf5746e5a5fa986cfac126fc",
      "parents": [
        "b28156cd51cef8f316f4fe339f77c1b0fc230b46"
      ],
      "author": {
        "name": "Ruslan Kamaldinov",
        "email": "rkamaldinov@mirantis.com",
        "time": "Fri Nov 11 18:31:00 2016 +0300"
      },
      "committer": {
        "name": "Ruslan Kamaldinov",
        "email": "rkamaldinov@mirantis.com",
        "time": "Mon Nov 14 18:55:27 2016 +0300"
      },
      "message": "Refactor structure of Pipeline library\n\n* Moved everything under com.mirantis.mcp package\n* Functions are grouped under different files, each with specific\n  functionality (e.g Artifactory, Docker, Git, etc)\n* Tools.groovy remains as is to avoid breaking existing jobs that\n  use it\n\nNext steps:\n* Modify existing pipelines to use functions from new package\n* Gradually get rid of Tools.groovy\n\nChange-Id: I56386f994666baa1c6db51b27beef4de4284ecb8\n"
    }
  ]
}
