)]}'
{
  "log": [
    {
      "commit": "74f34dbb9a1a8cd2e68fa5e5bcfd894a9f90e336",
      "tree": "8cbb976c8544da615cba11d72cd2d707a38a28ba",
      "parents": [
        "1a06a3947c831e0727c20b41cd74b69321742a84"
      ],
      "author": {
        "name": "Matt Rutkowski",
        "email": "mrutkows@us.ibm.com",
        "time": "Mon Jul 10 10:10:01 2017 -0500"
      },
      "committer": {
        "name": "Justin Berstler",
        "email": "bjustin@us.ibm.com",
        "time": "Mon Jul 10 11:10:01 2017 -0400"
      },
      "message": "Add Apache 2 License badge to README. (#9)\n\n"
    },
    {
      "commit": "1a06a3947c831e0727c20b41cd74b69321742a84",
      "tree": "054a4cb25df94891fbb6f9d9b5110c116cb239bf",
      "parents": [
        "1ec57d9750c875848c530dea3bd6434380dba753"
      ],
      "author": {
        "name": "Matt Rutkowski",
        "email": "mrutkows@us.ibm.com",
        "time": "Thu Jun 22 21:48:37 2017 -0500"
      },
      "committer": {
        "name": "daisy-ycguo",
        "email": "guoyingc@cn.ibm.com",
        "time": "Fri Jun 23 10:48:37 2017 +0800"
      },
      "message": "Update README.md (#8)\n\nMerged."
    },
    {
      "commit": "1ec57d9750c875848c530dea3bd6434380dba753",
      "tree": "e568b070a3469a39ecff43c6285e669216bc592b",
      "parents": [
        "475487c5090baac7d316492a65c6d390b87c89de"
      ],
      "author": {
        "name": "Alex Glikson",
        "email": "alex.glikson@gmail.com",
        "time": "Mon Jun 19 18:30:05 2017 +0300"
      },
      "committer": {
        "name": "Matt Rutkowski",
        "email": "mrutkows@us.ibm.com",
        "time": "Mon Jun 19 10:30:05 2017 -0500"
      },
      "message": "Explain how OpenWhisk API can be used from Python (#7)\n\n* Explain how OpenWhisk API can be used from Python\r\n\r\nInspired by https://stackoverflow.com/questions/44626886/invoking-openwhisk-actions-from-a-python-app by @jthomas\r\n\r\n* typo\r\n\r\n* fixed links and wording in README.md\r\n"
    },
    {
      "commit": "475487c5090baac7d316492a65c6d390b87c89de",
      "tree": "7d780deb4c5ebc3f4c4ccf2d3d513f7344c80452",
      "parents": [
        "4fb68ef4aa23c97a077e34a97830b7ce296986e7"
      ],
      "author": {
        "name": "Matt Rutkowski",
        "email": "mrutkows@us.ibm.com",
        "time": "Fri Jun 16 18:41:18 2017 -0500"
      },
      "committer": {
        "name": "Carlos Santana",
        "email": "csantana23@gmail.com",
        "time": "Fri Jun 16 19:41:18 2017 -0400"
      },
      "message": "update Travis to include scancode utility. (#6)\n\n"
    },
    {
      "commit": "4fb68ef4aa23c97a077e34a97830b7ce296986e7",
      "tree": "c1691398f68358286d7f3d5e6760b0fe36c84330",
      "parents": [
        "b7271205cc79ac27b8f537de6267b8da9b4bf58c"
      ],
      "author": {
        "name": "cclauss",
        "email": "cclauss@bluewin.ch",
        "time": "Wed Mar 08 10:20:05 2017 +0100"
      },
      "committer": {
        "name": "rodric rabbah",
        "email": "rodric@gmail.com",
        "time": "Wed Mar 08 04:20:05 2017 -0500"
      },
      "message": "Update README.md (#5)\n\n* Update README.md\r\n\r\n* Update README.md\r\n\r\n* Update README.md\r\n"
    },
    {
      "commit": "b7271205cc79ac27b8f537de6267b8da9b4bf58c",
      "tree": "db08ad66964436b9d72d994dab473b1886da1ae0",
      "parents": [
        "1520fc5f90ecfeb77dd57a22b4266931b4867c5d"
      ],
      "author": {
        "name": "cclauss",
        "email": "cclauss@bluewin.ch",
        "time": "Wed Mar 08 08:19:12 2017 +0100"
      },
      "committer": {
        "name": "rodric rabbah",
        "email": "rodric@gmail.com",
        "time": "Wed Mar 08 02:19:12 2017 -0500"
      },
      "message": "Python 3 and flake8 updates (#3)\n\n* Python 3 and flake8 updates\r\n\r\nFrom https://github.com/openwhisk/openwhisk/pull/1949\r\n\r\n* Update wskutil.py\r\n\r\n* Create README.md\r\n\r\n* Delete README.md\r\n\r\n* Update wsktrigger.py\r\n\r\n* Update wsksdk.py\r\n\r\n* Update wskrule.py\r\n\r\n* Update wskprop.py\r\n\r\n* Update wskpackage.py\r\n\r\n* Update wsknamespace.py\r\n\r\n* Update wskitem.py\r\n\r\n* Update wskactivation.py\r\n\r\n* Update wskaction.py\r\n\r\n* Update wskaction.py\r\n\r\n* Update wskprop.py\r\n\r\n* Update wskprop.py\r\n\r\n* Update .travis.yml\r\n\r\n* Create README.md\r\n\r\n* Update setup.py\r\n\r\n* Update setup.py\r\n\r\n* Update __init__.py\r\n\r\n* Update wskaction.py\r\n\r\n* Update wskutil.py\r\n"
    },
    {
      "commit": "1520fc5f90ecfeb77dd57a22b4266931b4867c5d",
      "tree": "331b250aac39e64d4d2310e80bd331cbe25b9b07",
      "parents": [
        "56ce55dbee01e3d676510ac30941a295b286a43b"
      ],
      "author": {
        "name": "cclauss",
        "email": "cclauss@bluewin.ch",
        "time": "Tue Mar 07 21:06:54 2017 +0100"
      },
      "committer": {
        "name": "rodric rabbah",
        "email": "rodric@gmail.com",
        "time": "Tue Mar 07 15:06:54 2017 -0500"
      },
      "message": "Python 3 plus flake8 changes (#2)\n\n* Python 3 plus flake8 changes\r\n\r\n* Create .travis to run flake8 on pull requests\r\n\r\nUse `--exit-zero` to silence all flake8 errors.\r\n\r\n* Update .travis\r\n\r\n* Rename .travis to .travis.yml\r\n\r\n* revert wsk changes\r\n\r\n* Turn off slack notification\r\n"
    },
    {
      "commit": "56ce55dbee01e3d676510ac30941a295b286a43b",
      "tree": "d5883a21d93ee3cfddad745469219bc5daeaf9bd",
      "parents": [
        "bd035f8b977c1bd9a1d75fcc6936cd67c0eac7cc"
      ],
      "author": {
        "name": "Matt Rutkowski",
        "email": "mrutkows@us.ibm.com",
        "time": "Wed Jan 25 13:54:19 2017 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 25 13:54:19 2017 -0600"
      },
      "message": "Create LICENSE.txt"
    },
    {
      "commit": "bd035f8b977c1bd9a1d75fcc6936cd67c0eac7cc",
      "tree": "c5a7e963be1d21aa1bac768db1816acd7876056c",
      "parents": [
        "bdf19aab9f24750bb8caf2e15f62f57f25d5407f"
      ],
      "author": {
        "name": "Matt Rutkowski",
        "email": "mrutkows@us.ibm.com",
        "time": "Wed Jan 25 13:53:58 2017 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 25 13:53:58 2017 -0600"
      },
      "message": "Create CONTRIBUTING.md"
    },
    {
      "commit": "bdf19aab9f24750bb8caf2e15f62f57f25d5407f",
      "tree": "677c3c843ca053b84d8c0781484afae1e3616b85",
      "parents": [
        "066959ebdd80b91214f2113c8ba22f9a47b70e84"
      ],
      "author": {
        "name": "Josh Soref",
        "email": "jsoref@users.noreply.github.com",
        "time": "Fri Aug 26 02:06:54 2016 +0000"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sun Aug 28 21:09:44 2016 -0400"
      },
      "message": "Fix spelling mistakes.\n\nspelling: accessible\nspelling: address\nspelling: already\nspelling: ambiguous\nspelling: name\nspelling: available\nspelling: basic\nspelling: blackbox\nspelling: characters\nspelling: chosen\nspelling: comma\nspelling: components\nspelling: constructor\nspelling: cloudant\nspelling: couldn\u0027t\nspelling: current\nspelling: before\nspelling: disconnect\nspelling: entities\nspelling: environment\nspelling: exhausted\nspelling: explicit\nspelling: execute\nspelling: extension\nspelling: expected\nspelling: failure\nspelling: gzipping\nspelling: loadbalancer\nspelling: milliseconds\nspelling: namespace\nspelling: namespaces\nspelling: namespace\nspelling: offset\nspelling: omitempty\nspelling: output\nspelling: overridden\nspelling: overwritten\nspelling: precedence\nspelling: remaining\nspelling: seconds\nspelling: repository\nspelling: restarting\nspelling: stderr\nspelling: stdout\nspelling: subject (API)\nspelling: the\nspelling: untarring\nspelling: utilities\nspelling: zookeeper\ndusting.\n"
    },
    {
      "commit": "066959ebdd80b91214f2113c8ba22f9a47b70e84",
      "tree": "d2f621536f1d67f61bddf8fdf54850d0a278ca0a",
      "parents": [
        "a16ef591e8d765df9095e2a63f8c0e6263c5e896"
      ],
      "author": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Mon Aug 08 19:24:44 2016 +0200"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Mon Aug 22 23:37:44 2016 -0400"
      },
      "message": "Make image prefix configurable.\n\nAdds a new parameter to docker.gradle `dockerImagePrefix` which specifies the PREFIX part in the following format: {REGISTRY}/{PREFIX}/{IMAGE}:{TAG}. This used to be hardcoded to \"whisk\", e.g. whisk/controller.\n\nImplements a parameter for ansible to pull an image prefixed by \"docker_image_prefix\" (PREFIX in the following format): {REGISTRY}/{PREFIX}/{IMAGE}:{TAG}. Was previously hardcoded as \"whisk\".\n\nWrites the parameter into whisk.properties and makes the invoker pick it up for spawning containers.\n\nAdd different tag in travis to flesh out problems.\n"
    },
    {
      "commit": "a16ef591e8d765df9095e2a63f8c0e6263c5e896",
      "tree": "7d837b77c2724f81778a7360379bddbb7aa215b8",
      "parents": [
        "a92ead5ea99cc616436a2007e37817d9d6176927"
      ],
      "author": {
        "name": "Dominik Jall",
        "email": "djall@de.ibm.com",
        "time": "Thu Aug 18 09:50:51 2016 -0400"
      },
      "committer": {
        "name": "Dominik Jall",
        "email": "djall@de.ibm.com",
        "time": "Thu Aug 18 09:50:51 2016 -0400"
      },
      "message": "issue #1081 pushImage finalize instead of distDocker\n"
    },
    {
      "commit": "a92ead5ea99cc616436a2007e37817d9d6176927",
      "tree": "32a18af26ce957de5dc098be351c6f7cffec01fd",
      "parents": [
        "d5f0ff1a8c0611edf108ce220e171bdab5405767"
      ],
      "author": {
        "name": "Alex Glikson",
        "email": "glikson@il.ibm.com",
        "time": "Tue Aug 16 17:20:46 2016 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 16 17:20:46 2016 +0300"
      },
      "message": "Fixed typo in \u0027package update\u0027 usage help"
    },
    {
      "commit": "d5f0ff1a8c0611edf108ce220e171bdab5405767",
      "tree": "2030a99c75ea80cd7252896f8a4d4906b4860d76",
      "parents": [
        "ab409e56a90be0c73ffb39f740c99987c7d9880a"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Wed Jul 27 16:49:48 2016 -0400"
      },
      "committer": {
        "name": "Mark Deuser",
        "email": "mdeuser@us.ibm.com",
        "time": "Wed Aug 03 21:38:13 2016 -0400"
      },
      "message": "Split CLI tests into basic usage and integration tests.\n\nChange units from Int to ByteSize for byte-sized-limited, update comments and json serdes, add byte size subtraction, update tests.\n\nMake some const values core package visible.\n\nMake memory option byte-sizes.\n\nAdd toString on byte-size and update error messages.\n\nRemove printlns.\n\nUpdate and move tests around between packages.\n\nMake TimeLimit constructor accept only a duration.\n\nRevert change to log/memory limit constructor so that the type is int not bytesize (really would want to constrain this to be MB but the type conversions aren\u0027t that rich and arguably not worth it as this can be hidden behind the private constructor).\n\nChange Bytes to B in toString to avoid 1 bytes vs 1 byte. Should it be byte[s] and append the s only when necessary?\n\nEmit parameters should test fail.\n\nUse python CLI for http test as go cli assumes https.\n\nAdd some more tests for limits.\n\nUse Python CLI for two tests that do not work with Go CLI.\n\nAdd retry on list operations which might need some time to be consistent.\n"
    },
    {
      "commit": "ab409e56a90be0c73ffb39f740c99987c7d9880a",
      "tree": "86bda111a5f0c37e5fa0e1114c6146bba514e3b6",
      "parents": [
        "79ff96052a366494ec29dad1f30ed9a6a28e2748"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Wed Aug 03 10:13:00 2016 -0400"
      },
      "committer": {
        "name": "Carlos Santana",
        "email": "csantana@us.ibm.com",
        "time": "Wed Aug 03 14:37:20 2016 -0400"
      },
      "message": "Fix link to CLI and add API host tip.\nFix link to db README.\n\nRemove deadcode.\n\nMove gradle helper to gradle directory and update all path.\n"
    },
    {
      "commit": "79ff96052a366494ec29dad1f30ed9a6a28e2748",
      "tree": "824e93debfbeacc70c0fde26f101989190afb460",
      "parents": [
        "8bdfe53bb292763df5b6dedeebbb14c4aa5edfa2"
      ],
      "author": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Tue Jul 26 14:35:30 2016 +0200"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Thu Jul 28 10:26:06 2016 -0400"
      },
      "message": "Make logsize settable for each action\n\nAdds the logsize as a limit that is settable per action and thus included in the quota for each action.\nDocument logsize.\nHandle limit flags as pointers to get proper null values.\nAdding ActionLimit permutation tests.\n\nSigned-off-by: Christian Bickel \u003ccbickel@de.ibm.com\u003e\n"
    },
    {
      "commit": "8bdfe53bb292763df5b6dedeebbb14c4aa5edfa2",
      "tree": "efb803c2c3f7c40ff1b53d0eb6aecc0748cf481d",
      "parents": [
        "3636c70f90ab4f4b944d0dea79e0d287c3b27dde"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Tue Jul 19 21:03:25 2016 -0400"
      },
      "committer": {
        "name": "Philippe Suter",
        "email": "psuter@us.ibm.com",
        "time": "Thu Jul 21 10:01:53 2016 -0400"
      },
      "message": "Allow CLI to set API host including protocol and port - this removes the hardcoded https dependence for the API base.\nAdd tests for using CLI with API host that specifies protocol and port. Enabled only for Python CLI as it fails with Go CLI - see issue #924.\nRemove redundant required properties in Controller/Loadbalancer. Do not startup an actor system if the configuration is not valid. Allow controller to run without container.\nSince errors are now printed to stderr, remove the colon which will appear out of place on stdout in CLI error message.\n"
    },
    {
      "commit": "3636c70f90ab4f4b944d0dea79e0d287c3b27dde",
      "tree": "4a141dc0b3b29e51bc308f914b97036e4b44a74c",
      "parents": [
        "87704fe94be2cf2730961d0eb204d49de386b673"
      ],
      "author": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Sat Jul 09 01:10:33 2016 +0200"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Wed Jul 20 17:08:25 2016 -0400"
      },
      "message": "Further post-ant cleanup\n\nThis removes duplication introduced in the ant -\u003e ansible migration.\n"
    },
    {
      "commit": "87704fe94be2cf2730961d0eb204d49de386b673",
      "tree": "624b36c2a5c41584f7a171ca2b54848cacebf3aa",
      "parents": [
        "cc62768ce3c7beaa0cace9ed65c6a540a7365e65"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sat Jul 02 06:24:26 2016 -0400"
      },
      "committer": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Fri Jul 08 17:11:51 2016 +0200"
      },
      "message": "Remove all ant build files.\n\nRemove ant from ubuuntu setup.\n"
    },
    {
      "commit": "cc62768ce3c7beaa0cace9ed65c6a540a7365e65",
      "tree": "a24fef086c4a881cdce23fc74671bdcd06033c7d",
      "parents": [
        "b192c1a9f63972d7388189ef24945885c83e8c47"
      ],
      "author": {
        "name": "Mark Deuser",
        "email": "mdeuser@us.ibm.com",
        "time": "Wed Jun 29 16:29:13 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Thu Jun 30 21:29:36 2016 -0400"
      },
      "message": "Adds `action update` test that expects failure when missing file is specified\n\nRemoves deadcode from WskCLI.java.\n"
    },
    {
      "commit": "b192c1a9f63972d7388189ef24945885c83e8c47",
      "tree": "dfbb626242db2bf81eb34f967d0165c6a56fd65d",
      "parents": [
        "e0b20da896feb2b88ac017e1a52c3f61b1780d5f"
      ],
      "author": {
        "name": "Justin Berstler",
        "email": "bjustin@us.ibm.com",
        "time": "Fri Jun 24 16:12:36 2016 -0400"
      },
      "committer": {
        "name": "Justin Berstler",
        "email": "bjustin@us.ibm.com",
        "time": "Thu Jun 30 10:26:45 2016 -0400"
      },
      "message": "Resolve \"nodejs:default\" kind into \"nodejs:6\"\n\nThis mapping is separated out into a trait called DefaultRuntimeVersions which can be used to map kind aliases for other runtimes as well.\n\nUpdate swagger doc to include the \"nodejs:6\" and \"nodejs:default\" kind values\n\nAdd unit tests to ensure correct behavior of \"nodejs:default\" kind: Explicitly using this kind value should result in a resolved kind of \"nodejs:6\"; Not specifying any kind value for .js actions should also result in a kind of \"nodejs:6\"\n\nUpdate both Python and Go CLIs to utilize \"nodejs:default\" kind. This kind can be explicitly supplied by the user, or it will be inferred for .js actions where the kind is not explicitly supplied.\n"
    },
    {
      "commit": "e0b20da896feb2b88ac017e1a52c3f61b1780d5f",
      "tree": "4ec5f7ae8409dc05d84d209b615361d42a409e1b",
      "parents": [
        "e72afc04d34ddcd05575ec46f7192c1977217504"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sat Jun 25 17:43:56 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Wed Jun 29 17:00:48 2016 -0400"
      },
      "message": "Add -i/-s for allowing/disallowing untrusted certificates when connecting over HTTPS.\n\nFix comment. Remove status from rule schema conformance test.\n\nAdd test for wskadmin create with explicit uuid:key.\n"
    },
    {
      "commit": "e72afc04d34ddcd05575ec46f7192c1977217504",
      "tree": "bb38cc54b0096834b3c61d5d4e1558569236c88c",
      "parents": [
        "c2ebf9580375a253a03d6d91fd258dad5a2d6f8c"
      ],
      "author": {
        "name": "James Dubee",
        "email": "jwdubee@us.ibm.com",
        "time": "Fri Jun 10 01:53:08 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Wed Jun 29 10:26:43 2016 -0400"
      },
      "message": "Add a switch to all the tests to toggle between Python and GO CLI version.\nFixed use of static python/go CLI switch; replaced with instance variable. Add missing wsk properties overrides in one test. Fix singleton object methods to accept required switch as argument. Add exemption for go cli link.\n"
    },
    {
      "commit": "c2ebf9580375a253a03d6d91fd258dad5a2d6f8c",
      "tree": "de9dc2e8dd66ff4988a06503f0286997b76e8a5a",
      "parents": [
        "b88f15118e532bf15bead83134ed3d5e25487bd9"
      ],
      "author": {
        "name": "Mark Deuser",
        "email": "mdeuser@us.ibm.com",
        "time": "Fri Jun 24 15:35:48 2016 -0400"
      },
      "committer": {
        "name": "Carlos Santana",
        "email": "csantana@us.ibm.com",
        "time": "Tue Jun 28 18:46:48 2016 -0400"
      },
      "message": "Add --insecure|-i flag to the python CLI for CLI syntax parity with the Go CLI.\nThis flag is simply ignored by the python CLI; previously it caused a failure.\n"
    },
    {
      "commit": "b88f15118e532bf15bead83134ed3d5e25487bd9",
      "tree": "91dc8e7ff05b51ebf11380fb16f772ed8296eca4",
      "parents": [
        "76fd4d184244a879ef587e3616a53d44721db0c8"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Thu Jun 23 23:44:11 2016 -0400"
      },
      "committer": {
        "name": "Perry",
        "email": "perry@us.ibm.com",
        "time": "Fri Jun 24 17:34:51 2016 -0400"
      },
      "message": "Fix active ack\u0027s completion of the promise. While the promise\u0027s future was bounded by timeout, it in fact would not fail as expected by the controller since the promise was never completed.\nAddressed by completing the promise on timeout (i.e., when active ack expiration has occurred).\n"
    },
    {
      "commit": "76fd4d184244a879ef587e3616a53d44721db0c8",
      "tree": "35ad824b2e251452ad81986f0ab090ac7e1ea5be",
      "parents": [
        "232a80aa793abc242db315bc69fb168614e144c0"
      ],
      "author": {
        "name": "Perry Cheng",
        "email": "perry@us.ibm.com",
        "time": "Fri Jun 10 15:47:59 2016 -0400"
      },
      "committer": {
        "name": "Perry",
        "email": "perry@us.ibm.com",
        "time": "Tue Jun 21 15:14:01 2016 -0400"
      },
      "message": "Remove CLI manual use of pipe.js and use of parameters and use a new sequence kind and components field.\nUse SequenceExec for sequences but with a NodejsExec-like implementation for now where the compoments meta-data is converted to parameters.\n"
    },
    {
      "commit": "232a80aa793abc242db315bc69fb168614e144c0",
      "tree": "f18fc34cf6931649b0df92564450c0823a289462",
      "parents": [
        "fdb8c3de50321fde0de109918a625cc440744ac5"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Tue Jun 14 07:48:01 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Thu Jun 16 15:43:12 2016 -0400"
      },
      "message": "Fix all parts of the docker skeleton action which were completely broken.\nCheck clientApp returns a JSON parsable object and if not, report error and log a message.\nUpdate example to show how params are received and return a proper JSON.\nFix space in path in various build scripts.\nAdd gradle build for docker skeleton - to enable testing locally.\nReplace broken docker action tests with test that verifies the docker skeleton can tolerate an init message and can receive/respond with JSON objects. This test suite is not complete in that the docker skeleton hardcodes an example and the tests are specific to that example so cannot test that failure modes are correct yet.\nAdd CLI tests to download sdks and verify them.\nMove sdk/docker/dockerSkeleton to sdk/docker.\nRenamed clientApp to action.\nMoved SDK tests.\n"
    },
    {
      "commit": "fdb8c3de50321fde0de109918a625cc440744ac5",
      "tree": "ad0a82ede0b08a86d028aaa4a6819878e39529a8",
      "parents": [
        "57d85aa067c6948c27a118b9289a74998df95a8f"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Thu Jun 09 01:15:33 2016 -0400"
      },
      "committer": {
        "name": "Carlos Santana",
        "email": "csantana@us.ibm.com",
        "time": "Wed Jun 15 21:43:18 2016 -0400"
      },
      "message": "Allow for HTTPS proxy to openwhisk via env var, using https_proxy var name matching cloudfoundy http://docs.cloudfoundry.org/cf-cli/http-proxy.html.\nSupported only for HTTPS endpoints. Fixes issue #586.\n"
    },
    {
      "commit": "57d85aa067c6948c27a118b9289a74998df95a8f",
      "tree": "e04435b27456b72be908ec4e97f2d4a24f54e25e",
      "parents": [
        "4ae6da16c82d412a2375631e926d0d6c5bfaec4f"
      ],
      "author": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Mon Jun 13 11:39:29 2016 +0200"
      },
      "committer": {
        "name": "Carlos Santana",
        "email": "csantana@us.ibm.com",
        "time": "Mon Jun 13 20:01:54 2016 -0400"
      },
      "message": "Ignoring errors on cleanup measures for CLI build, fixes #626\n"
    },
    {
      "commit": "4ae6da16c82d412a2375631e926d0d6c5bfaec4f",
      "tree": "fdd5390a0ec3c54019e8f21668425a00148d83ee",
      "parents": [
        "87e8723e9e30ea51f332afb60eb23c218634c134"
      ],
      "author": {
        "name": "Vincent Hou",
        "email": "shou@us.ibm.com",
        "time": "Thu May 26 10:29:17 2016 -0400"
      },
      "committer": {
        "name": "Carlos Santana",
        "email": "csantana@us.ibm.com",
        "time": "Mon Jun 13 17:32:22 2016 -0400"
      },
      "message": "Add the iOS app examples and the sdk to local deploy\n\nCurrently iOS is not an available SDK for download. This patch adds the\niOS package when the deploy target is located locally. Remote deploy needs\nthe users to copy the iOS artifact to correct location.\n\nCloses-Bug: #502\n"
    },
    {
      "commit": "87e8723e9e30ea51f332afb60eb23c218634c134",
      "tree": "25fae4583277e077b876f4516845e2d54858338f",
      "parents": [
        "957cff5f27caa1407db0590c3ee453db0deca2b8"
      ],
      "author": {
        "name": "jeremiaswerner",
        "email": "jeremias.werner@gmail.com",
        "time": "Thu Jun 09 22:13:10 2016 +0200"
      },
      "committer": {
        "name": "jeremiaswerner",
        "email": "jeremias.werner@gmail.com",
        "time": "Thu Jun 09 22:13:10 2016 +0200"
      },
      "message": "Update wskadmin"
    },
    {
      "commit": "957cff5f27caa1407db0590c3ee453db0deca2b8",
      "tree": "b64fa062cc165653a1b90830df3b0165fe4d2f2b",
      "parents": [
        "1c2448c7224fbe044e5860fa4c70808d02ece4b9"
      ],
      "author": {
        "name": "Philippe Suter",
        "email": "psuter@us.ibm.com",
        "time": "Thu Jun 02 12:30:09 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Fri Jun 03 23:30:28 2016 -0400"
      },
      "message": "Removed Cloudant SDK dependency\n"
    },
    {
      "commit": "1c2448c7224fbe044e5860fa4c70808d02ece4b9",
      "tree": "1bb9b798f3a575259d132f781fd8b4ec5edebff1",
      "parents": [
        "8d9381244fffb10f7c9e5e994da16feae80be33c"
      ],
      "author": {
        "name": "Jason Peterson",
        "email": "jasonpet@us.ibm.com",
        "time": "Mon May 23 16:38:10 2016 -0400"
      },
      "committer": {
        "name": "Jason Peterson",
        "email": "jasonpet@us.ibm.com",
        "time": "Thu Jun 02 23:17:36 2016 -0400"
      },
      "message": "Add Node.js 6 runtime\n"
    },
    {
      "commit": "8d9381244fffb10f7c9e5e994da16feae80be33c",
      "tree": "13bf007dbbb50dbb9ad1cf5756d315f2e4b80259",
      "parents": [
        "481246b122cdd4714394d5d5dc65c715484eaf20"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sat May 28 13:13:29 2016 -0400"
      },
      "committer": {
        "name": "Perry Cheng",
        "email": "perry@us.ibm.com",
        "time": "Wed Jun 01 18:43:40 2016 -0400"
      },
      "message": "Adds support to retrieve logs for a transaction from controller or invoker logs.\n"
    },
    {
      "commit": "481246b122cdd4714394d5d5dc65c715484eaf20",
      "tree": "f42a59cec52566d33e894d52dc53736f08d9df8d",
      "parents": [
        "47b1f76fe5061fdfb0431c151b3b67b8cee55f88"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Thu May 19 01:01:52 2016 -0400"
      },
      "committer": {
        "name": "Philippe Suter",
        "email": "psuter@us.ibm.com",
        "time": "Mon May 23 11:11:08 2016 -0400"
      },
      "message": "Fixes issue #352.\n\nAuthenticatedRoute overrides BasicHttpAuthenticator.apply to provide a custom rejection (either 500 or 503 response).\nAdded unit tests for authenticated route to confirm custom rejection is generated and served as HTTP response by custom rejection handler.\n"
    },
    {
      "commit": "47b1f76fe5061fdfb0431c151b3b67b8cee55f88",
      "tree": "ff819f929a0fcfd0e26b80f04ed30fd6ce2342ce",
      "parents": [
        "29c8553d9c4d3f81b4c67c747d8c53ed364bb4c3"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sat May 21 21:13:49 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sat May 21 21:28:18 2016 -0400"
      },
      "message": "Bump test grace period for swift actions.\nRewrite activation console tests in scala with some hardening.\nFix #417 along the way (activation console when time traveling shows activations in correct order).\nOrganize imports.\n"
    },
    {
      "commit": "29c8553d9c4d3f81b4c67c747d8c53ed364bb4c3",
      "tree": "5eecd4885b90c3c81becd28b02e1071f056fa8cf",
      "parents": [
        "9f71f7fc6b9d9fd1413aa7eb6f908a61817c493a"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sun May 15 09:48:28 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sun May 15 14:27:05 2016 -0400"
      },
      "message": "Factored common shell bits to \u0027common.sh\u0027 from db scripts.\nAdded \u0027wskadmin db get\u0027 operation to list db or view contents.\nRemoved response logging on get.\nFixed: copy action helper assumed copying sequence.\nTweaked error message in CLI on copy.\nAdded Apache 2.0 badge.\n"
    },
    {
      "commit": "9f71f7fc6b9d9fd1413aa7eb6f908a61817c493a",
      "tree": "146705917b27e7fc27ba7767a5562e7601798749",
      "parents": [
        "e3e4ecad9f8283a193febfc6bbda0f667d2b64a9"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Fri May 13 19:28:23 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Fri May 13 23:08:32 2016 -0400"
      },
      "message": "Add tests for creating trigger with an invalid feed from CLI.\nModified CLI output on action invoke so that the activation result is projected correctly for 200, 500 and 502 activations.\nRemoved \"response:\" prefix on blocking activation result.\n"
    },
    {
      "commit": "e3e4ecad9f8283a193febfc6bbda0f667d2b64a9",
      "tree": "facfcc9daa703594579d5488aacb292961ed8db2",
      "parents": [
        "eb6b431af9de644cde11e5626b067d50cea39ad2"
      ],
      "author": {
        "name": "Fatih Ulusoy",
        "email": "ulusoy@de.ibm.com",
        "time": "Tue Apr 05 10:30:06 2016 +0200"
      },
      "committer": {
        "name": "Philippe Suter",
        "email": "psuter@us.ibm.com",
        "time": "Fri May 13 16:22:27 2016 -0400"
      },
      "message": "Fixing issue #132. actions/name?blocking\u003dtrue\u0026result\u003dtrue returns the result.\n"
    },
    {
      "commit": "eb6b431af9de644cde11e5626b067d50cea39ad2",
      "tree": "0c29f99a0db4a12ae97789009ee9fa5077468156",
      "parents": [
        "41ba1f1c2c5a0bf068f8643fffd0a858e2ebe6e2"
      ],
      "author": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Mon Apr 18 21:04:15 2016 +0200"
      },
      "committer": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Mon May 09 15:35:21 2016 +0200"
      },
      "message": "Optimize docker images and travis build\n\n- whisk/scala: installing jre instead of jdk and nuke scala\n- better base images: buildpack-deps\n- drop maven from kafka and use wget instead\n- install nodejs binary directly instead of apt-get it\n- @rabbah consolidated common python build steps to elevate docker caching\n"
    },
    {
      "commit": "41ba1f1c2c5a0bf068f8643fffd0a858e2ebe6e2",
      "tree": "e6afaa73e688ce228bc7848767051eab6edb787a",
      "parents": [
        "3f7af4289c5bcb35be1ab065684c228f812d5b41"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Thu May 05 17:58:43 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Thu May 05 21:22:56 2016 -0400"
      },
      "message": "Moved Swift3 test, fixed formatting issues and extraneous white space in Swift code. Fixed up the CLI comments. Tweaked the Swagger docs more but these are a mess we need to fix more systematically.\n\nRefactored Swift tests so that swift:3 extends swift tests. Rewrite Swift CLI tests in Scala and make Swift:3 test actually run the action.\n\nOrganize Docker to hit in cache on python layer.\n"
    },
    {
      "commit": "3f7af4289c5bcb35be1ab065684c228f812d5b41",
      "tree": "0be13300a91b2a53faa28fd2c0d1c784d39a9676",
      "parents": [
        "40046aac05b1fd6fe27b33e7abc28f3c2fb614c9"
      ],
      "author": {
        "name": "Paul Castro",
        "email": "pcastro@pauls-mbp.cambridge.ibm.com",
        "time": "Fri Apr 29 17:39:39 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Thu May 05 20:22:10 2016 -0400"
      },
      "message": "Create Swift 3 runtime with KituraNet. Update CLI, add CLI and container tests.\n"
    },
    {
      "commit": "40046aac05b1fd6fe27b33e7abc28f3c2fb614c9",
      "tree": "2d4044f032807a140f43e6c563afea63fa59edf4",
      "parents": [
        "28b1228ce40f31541c3d006474d19059798e3c3d"
      ],
      "author": {
        "name": "Ioana Baldini",
        "email": "ioana@us.ibm.com",
        "time": "Tue Apr 19 15:21:02 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Thu May 05 15:53:08 2016 -0400"
      },
      "message": "Adding support for native python actions. Issue #16\n\nFix hello python sample action to fit the same pattern as the js and swift actions.\n"
    },
    {
      "commit": "28b1228ce40f31541c3d006474d19059798e3c3d",
      "tree": "c1b81aff8deea114c4b64822479969554c31c639",
      "parents": [
        "faf29b6885c085f911a9360405848e803c4d1d73"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Wed Apr 27 08:52:55 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Mon May 02 14:46:52 2016 -0400"
      },
      "message": "Print stack trace on one line.\nOn blocking invoke, CLI reports full activation unless --result is used.\nCleanup uses of duration DSL.\nFix typo in catalog doc.\nFix comment.\nTweak test to print error message if defined.\n"
    },
    {
      "commit": "faf29b6885c085f911a9360405848e803c4d1d73",
      "tree": "74435317bfc40ad4843f6796563569e11986ce90",
      "parents": [
        "9f4c5c7cc95aaf4c178a4ac9d5e915950b30840d"
      ],
      "author": {
        "name": "Dominik Jall",
        "email": "djall@de.ibm.com",
        "time": "Mon May 02 09:44:44 2016 +0200"
      },
      "committer": {
        "name": "Dominik Jall",
        "email": "djall@de.ibm.com",
        "time": "Mon May 02 09:44:44 2016 +0200"
      },
      "message": "issue #291 allow api host to be set if nothing else was set yet.\n"
    },
    {
      "commit": "9f4c5c7cc95aaf4c178a4ac9d5e915950b30840d",
      "tree": "344f8122404de2d9c798366e6ad07cd96d291331",
      "parents": [
        "d5a62be13cb34625ba34221b75a7a99d199834df"
      ],
      "author": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Wed Apr 20 17:32:20 2016 +0200"
      },
      "committer": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Wed Apr 20 18:16:19 2016 +0200"
      },
      "message": "Consolidated .gitignore files\n"
    },
    {
      "commit": "d5a62be13cb34625ba34221b75a7a99d199834df",
      "tree": "a6cf78bb4e24a208d21ead7912b8275b50477e57",
      "parents": [
        "1ef216cfb6f99c9e33648f8b421c8d9016942f35"
      ],
      "author": {
        "name": "Dominik Jall",
        "email": "djall@de.ibm.com",
        "time": "Wed Apr 06 14:48:55 2016 +0200"
      },
      "committer": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Mon Apr 18 18:55:35 2016 +0200"
      },
      "message": "issue #197 restructure ansible deployment. using modes for deploy, clean, initdb.\nadding roles for prereq and postdeploy as well as db role for local CouchDB.\n\nissue #197 introduce deploy and clean mode for each role\n\nissue #197 ignore errors on cleanup. invoker mounts provoke some device busy errors.\n\nissue #197 remove logs on cleanup.\n\nissue #197 don\u0027t create retry files\n\nissue #197 merge loadbalancer into controller. remove loadbalancer role.\n\nissue #197 createImmortalDBs, generate whisk.properties, env for travis\n\nissue #197 install ansible via pip on travis.\n\nissue #197 travis does not like us using port 53. changing back to 8600. we are not using consul dns anyway atm.\n\nissue #197 fix cli test\n\nissue #197 fix whisk.version.name and whisk.version.date\n\nissue #197 fix db prefix if hostname has uppercase letters\n\nissue #197 add db role to launch CouchDB if needed.\n\nissue #197 generate db env file to make ant build happy.\n\nissue #197 re-add CLI Dockerfile for now\n\nSigned-off-by: Hoang Anh Le \u003choang@de.ibm.com\u003e\n\nissue #197 replace createImmortalDBs.sh with playbook to reduce dependency on code.\n\nSigned-off-by: Hoang Anh Le \u003choang@de.ibm.com\u003e\n\nissue #197 add openwhisk.home to whisk.properties\n\nSigned-off-by: Hoang Anh Le \u003choang@de.ibm.com\u003e\n\nissue #197 disable ansible on travis for now. enable when team decides to go with ansible.\n\nSigned-off-by: Hoang Anh Le \u003choang@de.ibm.com\u003e\n\nissue #197 applied code review feedback: modularize deployment into individual playbooks, factored out initdb mode into db role, created separate roles for db providers which allows us to add more providers in the future, added user prommpt before dropping immortal db (can be overriden via cmd line param for travis)\n"
    },
    {
      "commit": "1ef216cfb6f99c9e33648f8b421c8d9016942f35",
      "tree": "6b96c16f83cd188dd2078ee94465849d872492f2",
      "parents": [
        "11bee1b288582bcfdec9dc5266ccc50c154ab734"
      ],
      "author": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Fri Apr 08 14:42:04 2016 +0200"
      },
      "committer": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Wed Apr 13 14:24:38 2016 -0400"
      },
      "message": "Make the new build.gradle non-invasive. To be updated later\n"
    },
    {
      "commit": "11bee1b288582bcfdec9dc5266ccc50c154ab734",
      "tree": "a6cf78bb4e24a208d21ead7912b8275b50477e57",
      "parents": [
        "b4eb50f5e7a5e08bec16bd357b95fc90cb1653e6"
      ],
      "author": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Wed Apr 06 14:48:55 2016 +0200"
      },
      "committer": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Wed Apr 13 14:24:38 2016 -0400"
      },
      "message": "Build CLI using Gradle\n\nissue #185: introduce playbook for generating and deploying the CLI tarball\n\nissue #185 don\u0027t deploy consul on ansible host\n\nissue #187 add old Dockerfile for now. will be removed later.\n\nissue #185 fix travis test\n\nSigned-off-by: Hoang Anh Le \u003choang@de.ibm.com\u003e\n"
    },
    {
      "commit": "b4eb50f5e7a5e08bec16bd357b95fc90cb1653e6",
      "tree": "76e070dea34b36928cda90fd888ed227108eb1c6",
      "parents": [
        "ae1b3245351854bc36e0cd3c100fe90b60bc3a0b"
      ],
      "author": {
        "name": "Philippe Suter",
        "email": "psuter@us.ibm.com",
        "time": "Tue Apr 05 17:04:47 2016 -0400"
      },
      "committer": {
        "name": "Philippe Suter",
        "email": "psuter@us.ibm.com",
        "time": "Tue Apr 05 17:35:06 2016 -0400"
      },
      "message": "Normalized whitespaces.\n\n1. Removed all trailing spaces.\n2. Ensured all files end with EOL.\n3. Turned tabs into spaces.\n"
    },
    {
      "commit": "ae1b3245351854bc36e0cd3c100fe90b60bc3a0b",
      "tree": "f61753e35a842f697ba9d5c698404e1013610f2d",
      "parents": [
        "923f32f017b4f4c19bc6db3a7a814309c79a37ac"
      ],
      "author": {
        "name": "Philippe Suter",
        "email": "psuter@us.ibm.com",
        "time": "Fri Apr 01 18:02:53 2016 -0400"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Tue Apr 05 10:03:48 2016 -0400"
      },
      "message": "Making CouchDB accessible over HTTP (instead of HTTPS)\n\nThis introduces a new configuration setting `db.procotol`, whose value should be `http` or `https`. It defaults to `https`. The Cloudant client will not initialize if the protocol is not set to `https`.\n\nIt also makes the convenience container `whisk/couchdb` work over HTTP rather than HTTPS. The main motivation is to allow REST calls to such local CouchDB deployments (interestingly, the CouchDB Java API was apparently happily ignoring the invalid certificates the whole time).\n"
    },
    {
      "commit": "923f32f017b4f4c19bc6db3a7a814309c79a37ac",
      "tree": "507b37232694411769af720b8733f6fc1435d54e",
      "parents": [
        "3be58d08ca0d733c299e0b7737ccfec8e1340d43"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Thu Mar 24 12:02:11 2016 -0400"
      },
      "committer": {
        "name": "Perry Cheng",
        "email": "perry@us.ibm.com",
        "time": "Mon Apr 04 18:45:50 2016 -0400"
      },
      "message": "Remove relative path dependences.\n\nExport openwhisk home as environemnt variable for required shell script.\n\nAdjust openwhisk home resolution to use envar, or system property before trying to find property file.\n\nRename openwhisk.dir to openwhisk.home.\n\nMake method protected.\n"
    },
    {
      "commit": "3be58d08ca0d733c299e0b7737ccfec8e1340d43",
      "tree": "e612ceee4b2ce6122c149d56fe7ab700a01ccbdd",
      "parents": [
        "fe76632163393078f3b6e5f672faa78ee2127b81"
      ],
      "author": {
        "name": "Jeremias Werner",
        "email": "jerewern@dyn-9-152-98-43.boeblingen.de.ibm.com",
        "time": "Wed Mar 16 15:30:41 2016 +0100"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Fri Apr 01 11:54:42 2016 -0400"
      },
      "message": "add new property whisk.version.tag with image tag and expose on /api/v1 endpoint in controller\n\nexpose in cli and add test case\n"
    },
    {
      "commit": "fe76632163393078f3b6e5f672faa78ee2127b81",
      "tree": "56a8d31a9f219489bc36cab299d7ed61e7362fd8",
      "parents": [
        "b27639c2d860924b13c56f5bff5fa2c2136f95c1"
      ],
      "author": {
        "name": "Philippe Suter",
        "email": "psuter@us.ibm.com",
        "time": "Wed Mar 02 23:30:01 2016 -0500"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Wed Mar 23 12:45:39 2016 -0400"
      },
      "message": "Support for Java actions throughout the system\n"
    },
    {
      "commit": "b27639c2d860924b13c56f5bff5fa2c2136f95c1",
      "tree": "8dd7611a1f41ddabfdd7a9affd75e94b5a38467c",
      "parents": [
        "25e270557e2ff985fe9d05e8599d38040e7c8336"
      ],
      "author": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Thu Mar 17 22:57:19 2016 +0100"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sun Mar 20 09:43:56 2016 -0400"
      },
      "message": "Bumping gradle version to 2.11\n\nRefactoring docker tasks, adding dockerWithRetry back in\n\nRun gradle clean in ant clean\n\nAdding missing dependencies on common scala\n\nRemove CMD from Dockerfile since further specification is needed by the caller\n\nMore idiomatic usage of gradle to generate eclipse project files for all projects (root and cli stay for the moment)\n\nUsing the configured SSL certificate in tests\n\nPrevent travis from running gradle assemble, as it is not expected by our current build\n\nHigher verbosity for test logs to make spotting issues from logs alone possible\n\nIdiomatic configuration of scala compilation using resources\n\nSetting DOCKER_HOST to mainmachine to build there\n"
    },
    {
      "commit": "25e270557e2ff985fe9d05e8599d38040e7c8336",
      "tree": "5a1a7022ace1d832da7488ef81f5dc5b67b53115",
      "parents": [
        "faf37cefec4105dfdc80db8351abf3b364c5a3f5"
      ],
      "author": {
        "name": "Markus Thoemmes",
        "email": "markus.thoemmes@de.ibm.com",
        "time": "Thu Mar 17 11:15:51 2016 +0100"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Thu Mar 17 15:43:35 2016 -0400"
      },
      "message": "Make up for cloudant returning 202 in a cluster setting\n\nSigned-off-by: Dominik Jall \u003cdjall@de.ibm.com\u003e\n"
    },
    {
      "commit": "faf37cefec4105dfdc80db8351abf3b364c5a3f5",
      "tree": "6751394119d27f00037e0f72144bb4a5a36969c3",
      "parents": [
        "66aec9d73ba543a42ea1f16549937c4e42dda909"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Mon Mar 07 23:32:58 2016 -0500"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sun Mar 13 16:33:59 2016 -0400"
      },
      "message": "When setting properties, if apihost is given, use it for namespace lookip.\n\nNoisy was renamed Debug. Use Loud for log messages in rate throttling, which is the default level everywhere else.\n"
    },
    {
      "commit": "66aec9d73ba543a42ea1f16549937c4e42dda909",
      "tree": "f9c8d0e95c6d905fbb57d344447e100c9b1d8abc",
      "parents": [
        "1041894fa4b1fe0cae8620a3ffe408c7a032c3d6"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Mon Mar 07 15:08:06 2016 -0500"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sun Mar 13 16:33:59 2016 -0400"
      },
      "message": "Report HTTP error if possible on CLI commands.\n\nSeparated the reading of the HTTP response from the JSON parsing and on error, repor the HTTP response body as it may be useful to see the raw response when the API call fails.\nFor example, if the host is unreachable.\n"
    },
    {
      "commit": "1041894fa4b1fe0cae8620a3ffe408c7a032c3d6",
      "tree": "69b9c179d74e00b24238504a5d84e45248ce9b5b",
      "parents": [
        "0aac14c750f3d47e2f9fb88569136aa1b1023504"
      ],
      "author": {
        "name": "Philippe Suter",
        "email": "psuter@us.ibm.com",
        "time": "Fri Feb 26 11:10:47 2016 -0500"
      },
      "committer": {
        "name": "Philippe Suter",
        "email": "psuter@us.ibm.com",
        "time": "Mon Mar 07 20:50:11 2016 -0500"
      },
      "message": "Support for CouchDb\n\nThe most obvious change is a refactoring of CloudantStore into\nCouchDbLikeStore.  Most complex code is shared between CouchDb and Cloudant\nproviders. This is relatively difficult to achieve due to the fact that the\nCouchDb and Cloudant APIs are type-incompatible, despite performing basically\nthe exact same operations. The consequence is the existence of the classes\n`CouchDbProvider` and `CloudantProvider` which expose all operations through\ntype members.\n"
    },
    {
      "commit": "0aac14c750f3d47e2f9fb88569136aa1b1023504",
      "tree": "579cf43cee9ebfe813455a8b3dff91a8669743f7",
      "parents": [
        "05962967a98808efcdcfd6c9f6ffa6783206daef"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Fri Mar 04 17:40:38 2016 -0500"
      },
      "committer": {
        "name": "Philippe Suter",
        "email": "psuter@us.ibm.com",
        "time": "Fri Mar 04 20:16:00 2016 -0500"
      },
      "message": "Remove references to unsupported python versions.\n"
    },
    {
      "commit": "05962967a98808efcdcfd6c9f6ffa6783206daef",
      "tree": "d13dcfe89eebe1f447b4bed384a6ef1c1292db20",
      "parents": [
        "41966e72df8ca122e66d3d95be3728db5218842e"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Tue Mar 01 10:34:12 2016 -0500"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Tue Mar 01 10:40:00 2016 -0500"
      },
      "message": "Add unit test for missing authentication on required authenticated command.\n"
    },
    {
      "commit": "41966e72df8ca122e66d3d95be3728db5218842e",
      "tree": "b7352758b34fae20170788a94a84b6aa74663413",
      "parents": [
        "853b4c1586d702a768bf5cb5f59d1a55c406e93e"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sat Feb 27 17:57:38 2016 -0500"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sun Feb 28 01:43:21 2016 -0500"
      },
      "message": "Prevent API request if authkey is not set and print error if API host is not set.\n\nThe authentication key may be derived from a saved property file or from the command line as an optional argument to override the property file.\nBut if the property file does not exist, and the command line override is not set, then the API request is made and fails with \"authentication\nrequired\".\n\nThis commit factors all the authenticated commands so that there is a single point where the authentication argument is added to a command or sub-command.\nIt is more convenient then to make the auth key a required positional argument. This is not done at this point however as it will require some changes to the\nunit tests.\n\nThis commit also includes a fix for issue #29. If default.props does not exist because CLI was not built, then CLI should still be usable if user provides an API host override. Hence, allow for missing default properties file but raise an error if trying to do any operation against the API.\n"
    },
    {
      "commit": "853b4c1586d702a768bf5cb5f59d1a55c406e93e",
      "tree": "39d379a6bb07a4d392841917b47cac13f8f08c9a",
      "parents": [
        "148dab0250f0ff7ddc05f671993c7280e6b728b4"
      ],
      "author": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sat Feb 20 08:44:17 2016 -0500"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Sat Feb 20 08:44:17 2016 -0500"
      },
      "message": "Pass authkey to feed delete.\n"
    },
    {
      "commit": "148dab0250f0ff7ddc05f671993c7280e6b728b4",
      "tree": "9204e342c64f39c1919936c8930d351dce8cdc83",
      "parents": [],
      "author": {
        "name": "OpenWhisk",
        "email": "no-reply@us.ibm.com",
        "time": "Fri Feb 19 17:47:33 2016 -0500"
      },
      "committer": {
        "name": "Rodric Rabbah",
        "email": "rabbah@us.ibm.com",
        "time": "Fri Feb 19 17:47:33 2016 -0500"
      },
      "message": "Initial OpenWhisk commit\n"
    }
  ]
}
