)]}'
{
  "log": [
    {
      "commit": "4ae527ee394a9794c25e7a90fe895aa446c6c797",
      "tree": "6b7ef933262741b2d1701bd73b31a348c94dce83",
      "parents": [
        "d8d4b6e70c0e4410a4b5c274faecd37ee821f3b7"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Jul 26 16:04:59 2021 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Jul 27 11:09:58 2021 +0200"
      },
      "message": "Unit tests improvements\n\n- From now on, black must pass. Jenkins will give a -1 if it doesn\u0027t\n- Ignore E203 because it is not pep8 compliant, and conflicts with black\n    https://github.com/psf/black/issues/315#issuecomment-395457972\n- Black fixes and minor fix in unit test\n- Fix devops-stages/stage-test.sh: jenkins was not giving a -1 when tox\nwas failing\n\nChange-Id: Ic7318dcb6d4006a271607cd064a1f36d0936b7b9\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "d8d4b6e70c0e4410a4b5c274faecd37ee821f3b7",
      "tree": "9de6fb7e8dcc56292a905d50432384cba3d4c836",
      "parents": [
        "2a3ffde1771ec4431eef96f4908b3572a883ef01"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Jun 24 18:47:22 2021 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Jun 30 16:55:30 2021 +0200"
      },
      "message": "Upgrade to libjuju 2.9.2\n\n- The upgrade to libjuju enables Pebble support\n- Libjuju requires a newer version of Kubernetes so I updated it to the\nlatest one\n- Additionally, a group of functions were moved from k8s_juju_conn.p to\nkubectl.py, because they fit better there.\n\nRelated feature number: 10884\n\nChange-Id: I354a2f49e7fc7b87a204bf60131a8d52a4f74cac\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "979c54e4633964caf15a0f7e157be75a08cb0723",
      "tree": "981f1060e03fd2569ae2ebee763224b10fba9efa",
      "parents": [
        "82b591ceed704c798ead2d9104085a08e75b511b"
      ],
      "author": {
        "name": "garciadeblas",
        "email": "gerardo.garciadeblas@telefonica.com",
        "time": "Fri May 28 14:10:59 2021 +0200"
      },
      "committer": {
        "name": "garciadeblas",
        "email": "gerardo.garciadeblas@telefonica.com",
        "time": "Fri May 28 14:10:59 2021 +0200"
      },
      "message": "Fix bug 1542 to allow juju to add Azure AKS\n\nStorage classes in Azure might have no metadata annotations. This\nchange takes into account that situation.\n\nChange-Id: I4f7151d2481b41fd8434e0d95ea5d1a156b68309\nSigned-off-by: garciadeblas \u003cgerardo.garciadeblas@telefonica.com\u003e\n"
    },
    {
      "commit": "f6e9b00b6f7cd35e45ace4c84b53fe8d12b2438c",
      "tree": "86711bb6ca5aaf63d032860441dc8f605e067a2d",
      "parents": [
        "1c83f2e4d061ad37ba898e114cb42e70fdee5145"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri Nov 27 15:32:02 2020 +0100"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Sat Nov 28 11:12:41 2020 +0100"
      },
      "message": "Fix bug 1298\n\nThis bug was caused because a bad parsing of the kubeconfig.\nThe token should be the secret from k8s for the created service\naccount.\n\nWhen adding a k8s cluster, a clusterrole, clusterrolebinding, and\nserviceaccounts are created.\n\nTests are needed for oauth2 and userpass kubeconfigs.\n\nChange-Id: I6a4a2834bd6477f255e8ca48e7f53cd3a0d3fddf\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "475a7221e3598ad1c75ce802c5ad74ef7ecf72f1",
      "tree": "d4d2a9a5d1430567848e4721d9ba7e4eea869189",
      "parents": [
        "85755d17a807df83d0e472e6e73500a4d743296b"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Sep 21 16:19:15 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Sep 22 18:24:22 2020 +0200"
      },
      "message": "Add new kubectl.py functions, modify some libjuju.py functions, add unit tests\n\n- Kubectl.py: two new functions added (get_configuration and get_default_storage_class)\n  - get_configuration(): Returns a kubernetes Configuration object.\n    It can be used to properly parse the kubeconfig.\n  - get_default_storage_class(): Searches for the default storage class of a k8s cluster.\n- Libjuju.py: modified add_k8s function and get_k8s_cloud_credential function was added.\n  - add_k8s(): Improves the way of generation Cloud and CloudCredential objects for the K8s Cloud\n  - get_k8s_cloud_credential(): It parses the kubeconfig to properly determine the authentication\n    method type that should be used for that k8s cluster.\n- Unit tests: Added unit tests for all the new functions added.\n- Exceptions: Make all Juju Exceptions to inherit from N2VC Exception.\n  Now Juju exceptions have the message attribute, that is useful for unit testing, to not only check that\n  an exception raised, but to check the message too.\n- Move get_k8s_cloud_credential() function to n2vc/utils in order to share that code between different connectors.\n\nChange-Id: Ife9027d80663fe95f1f3ad883cb9a3376b047d0b\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "84ebb751f36f724b6ddd7d9925e43534b2420ab2",
      "tree": "0bb7f1eb23b8d72641941ae79cbc2f5c16d2e94a",
      "parents": [
        "e7b9a5b179648694b7461fd9ac13f2f4728dc86f"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Jul 22 13:17:56 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Aug 20 11:47:32 2020 +0200"
      },
      "message": "Fix bug 1167\n\nChange-Id: Id0ea5f19d57d2214219eec8f59f13a378d61c870\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "37004983e8e484d5504ae4253bdb75204ff389d9",
      "tree": "704c2d727211989aa20768c5ff20047a53e00b52",
      "parents": [
        "810459632a4fb28e1bde897aaef8775cba342b4b"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Jul 16 17:53:20 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Aug 20 11:47:32 2020 +0200"
      },
      "message": "Fix an issue with the service ports in Kubectl.py\n\nThe ports were retrieved as V1ServicePort classes, and LCM cannot store that in the database\n\nChange-Id: I451ab65478f36c5cb7f33594b4454bd315c22878\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "5d79939ab780d4717fe36bfd62f398b922f84829",
      "tree": "bbcb0cd986c1a4d073dd2d20d083f006cc245474",
      "parents": [
        "7ff392f6b60850ac7408f96fd42ab16b005ec2bf"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Jul 02 13:56:58 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Aug 20 11:47:32 2020 +0200"
      },
      "message": "Implement get_service and get_services methods for K8sJujuConnector\n\n- Add a new class (n2vc.kubectl.Kubectl) for managing the Kubectl commands\n  - Add unit tests\n- Add get_config_file() method for getting the path of the kubeconfig in K8sJujuConnector\n- Implement get_service() and get_services() methods in K8sJujuConnector\n\nChange-Id: I883ec21dad519c2dc65cb9bd601e539685336756\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    }
  ]
}
