)]}'
{
  "log": [
    {
      "commit": "3099aef9191c839ebdac502324b50e03656c205f",
      "tree": "79e85161a5f8b939b41411c7715a5af88bbcc06f",
      "parents": [
        "06a2f98eeb19a5f3ccce844c1d7d9416c346aab7"
      ],
      "author": {
        "name": "garciadeblas",
        "email": "gerardo.garciadeblas@telefonica.com",
        "time": "Wed Oct 01 10:56:51 2025 +0200"
      },
      "committer": {
        "name": "garciadeblas",
        "email": "gerardo.garciadeblas@telefonica.com",
        "time": "Sat Dec 06 20:52:37 2025 +0100"
      },
      "message": "Upgrade python version to 3.13\n\nChange-Id: Iac995c4cf6521a33207e9ec228f49a53c3a23ec8\nSigned-off-by: garciadeblas \u003cgerardo.garciadeblas@telefonica.com\u003e\n"
    },
    {
      "commit": "8f3ab9a82608ffe74e6fd5d0c532822412dbc88a",
      "tree": "b82b2695a966ab40b9298e51618fb6d0ade9befe",
      "parents": [
        "bc94e3403ebab364fff7603c1a353c793b52966e"
      ],
      "author": {
        "name": "k4.rahul",
        "email": "rahul.k4@tataelxsi.co.in",
        "time": "Fri May 05 14:18:47 2023 +0530"
      },
      "committer": {
        "name": "aticig",
        "email": "gulsum.atici@canonical.com",
        "time": "Fri May 12 13:56:10 2023 +0200"
      },
      "message": "Coverity-CWE 22: Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)\n\nCoverity fix for 137960 Filesystem path, filename, or URI manipulation\n\nChange-Id: I0691a9f231d6b7019fe413c261f50262ea7fb923\nSigned-off-by: k4.rahul \u003crahul.k4@tataelxsi.co.in\u003e\n"
    },
    {
      "commit": "09496abf441b0f3730f0288df161da1ca004be69",
      "tree": "b1b2bd6e7ebc9b0739b8cdcfdbcb90148191f8e0",
      "parents": [
        "76394efe9fbee088dddd1dc9d4da6f043c3959a5"
      ],
      "author": {
        "name": "Gabriel Cuba",
        "email": "gcuba@whitestack.com",
        "time": "Tue Apr 04 01:57:17 2023 -0500"
      },
      "committer": {
        "name": "Gabriel Cuba",
        "email": "gcuba@whitestack.com",
        "time": "Tue Apr 04 01:57:17 2023 -0500"
      },
      "message": "Fix bug 2231: reverse_sync in fsmongo obtains file timestamp with UTC timezone instead of local timezone, so\nthat filesystem and mongodb timestamps are correctly compared\n\nChange-Id: I0056026704a624329aae1ae52a45143d12f6dfdd\nSigned-off-by: Gabriel Cuba \u003cgcuba@whitestack.com\u003e\n"
    },
    {
      "commit": "76394efe9fbee088dddd1dc9d4da6f043c3959a5",
      "tree": "970e62efc5a8cda80b96bd55d41ac405fc8863b4",
      "parents": [
        "abe9dced7126c866b751acf560aee085d6d2d69d"
      ],
      "author": {
        "name": "Gulsum Atici",
        "email": "gulsum.atici@canonical.com",
        "time": "Mon Jan 09 23:19:18 2023 +0300"
      },
      "committer": {
        "name": "Gulsum Atici",
        "email": "gulsum.atici@canonical.com",
        "time": "Wed Feb 01 17:46:14 2023 +0300"
      },
      "message": "Feature 10950 Replace pycrypto with pycryptodome\n\nRemove the pycrypto library and change encrypt and decrypt methods to work with pycryptodome.\nMove encryption methods from N2VC to common.\n\nChange-Id: I12a5f6138664ab6ebb7100c82523e91750f05f14\nSigned-off-by: Gulsum Atici \u003cgulsum.atici@canonical.com\u003e\n"
    },
    {
      "commit": "7da9795a4b73c72e81ac4880a9e9507e441aa90f",
      "tree": "1972c5acc115744a5ee209fb6e691b9b1843cff0",
      "parents": [
        "3dd0db6efaab109fa1bd43395fbbddecf1eb73d4"
      ],
      "author": {
        "name": "aticig",
        "email": "gulsum.atici@canonical.com",
        "time": "Thu Mar 31 23:07:21 2022 +0300"
      },
      "committer": {
        "name": "aticig",
        "email": "gulsum.atici@canonical.com",
        "time": "Fri Apr 22 20:51:06 2022 +0300"
      },
      "message": "Code Cleanup and adding unit tests\n\nCleaning code to allow only URI type MongoClient connection,\nadding unit tests\n\nChange-Id: Iacca44c00006a1072ff70989b0220e2b27bc5fd8\nSigned-off-by: aticig \u003cgulsum.atici@canonical.com\u003e\n"
    },
    {
      "commit": "3dd0db6efaab109fa1bd43395fbbddecf1eb73d4",
      "tree": "c3b98117e61e9c4aa237ebeecea97b770ffb173b",
      "parents": [
        "3d82ba2cc4c3ebb340a88400aaa4a8d3683806a1"
      ],
      "author": {
        "name": "aticig",
        "email": "gulsum.atici@canonical.com",
        "time": "Fri Mar 04 19:35:45 2022 +0300"
      },
      "committer": {
        "name": "aticig",
        "email": "gulsum.atici@canonical.com",
        "time": "Fri Apr 22 18:13:44 2022 +0300"
      },
      "message": "Adding release notes and enabling import order check\n\nEnabling Flake8 library import order check,\nadding release_notes, enabling stage-test failing by tox results.\n\nChange-Id: I490b4cb3fe5904f54d84f0ce9b41fe91ec8b4f5d\nSigned-off-by: aticig \u003cgulsum.atici@canonical.com\u003e\n"
    },
    {
      "commit": "3d82ba2cc4c3ebb340a88400aaa4a8d3683806a1",
      "tree": "172f5b1ce2f5a18ed2e5b4f3809555d21b3053fb",
      "parents": [
        "40f57c87816f6e3e99f495b4e6f8b5abe8cce7a9"
      ],
      "author": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Tue Apr 19 14:12:50 2022 -0400"
      },
      "committer": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Tue Apr 19 14:12:50 2022 -0400"
      },
      "message": "Increase Logging, fix directory delete\n\nWhen deleting a directory, we need to do a rexep search of all files that start\nwith the directory that we want to delete, but not revisions that happen to\nshare the same UUID.  Changes the regexp for directory delete to include the\ntrailing \u0027/\u0027 so it limits the scope.\n\nAdds logging where needed\n\nChange-Id: Ia60618c17a863417224fadd9c055be658fb4ba4a\nSigned-off-by: beierlm \u003cmark.beierl@canonical.com\u003e\n"
    },
    {
      "commit": "40f57c87816f6e3e99f495b4e6f8b5abe8cce7a9",
      "tree": "6223f6e86c8839bd9baa9dc73b12573295f46597",
      "parents": [
        "945fa22703037593544f3ea0c93913d562cf1532"
      ],
      "author": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Thu Apr 14 14:45:07 2022 -0400"
      },
      "committer": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Thu Apr 14 14:45:07 2022 -0400"
      },
      "message": "Bug 1977: Strip trailing /\n\nEnsure no files or directories are stored with a trailing /\n\nEnsure file/directory lookups happen without trailing /\n\nChange-Id: Id34438495170756883a4adeac3b6970e4f91b6b6\nSigned-off-by: beierlm \u003cmark.beierl@canonical.com\u003e\n"
    },
    {
      "commit": "945fa22703037593544f3ea0c93913d562cf1532",
      "tree": "ea77c92300fcce3a03fabf34e91e6c737637bce5",
      "parents": [
        "b0291ff5010f5776a2f1e9e16154fc87e6fa95dc"
      ],
      "author": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Mon Apr 04 11:44:03 2022 -0400"
      },
      "committer": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Mon Apr 04 14:43:13 2022 -0400"
      },
      "message": "Bug 1977: FSMongo Reverse Sync\n\nDirectories represented by a symlink are not stored properly on reverse\nsync, resulting in empty directories being created instead of preserving\nthe link\n\nFixes Bug 1977\n\nChange-Id: Ia6a3b3dfdfde498751a79e04b2824ac38d0b7feb\nSigned-off-by: beierlm \u003cmark.beierl@canonical.com\u003e\n"
    },
    {
      "commit": "f73a900d6ca2e6002efe1533d7188fb52a5ee7fe",
      "tree": "d6d0dfef3ed74c7947c6a875b76d177b73b8b10c",
      "parents": [
        "98fc8f01d18d1a05c16fed7ccee355611a6e20ce"
      ],
      "author": {
        "name": "bravof",
        "email": "fbravo@whitestack.com",
        "time": "Tue Nov 23 10:34:43 2021 -0300"
      },
      "committer": {
        "name": "bravof",
        "email": "fbravo@whitestack.com",
        "time": "Wed Nov 24 11:39:50 2021 -0300"
      },
      "message": "bugfix: fix for folders missing in mongoFS\n\nChange-Id: I9c8a07755457c3c297853bda8e6c5516409a6fde\nSigned-off-by: bravof \u003cfbravo@whitestack.com\u003e\n"
    },
    {
      "commit": "98fc8f01d18d1a05c16fed7ccee355611a6e20ce",
      "tree": "5bdb9df9cba07bbb46f40532294518e6ec51d0ef",
      "parents": [
        "2644b76248a1b96f7a47013b414e31b4e3feecf8"
      ],
      "author": {
        "name": "bravof",
        "email": "fbravo@whitestack.com",
        "time": "Thu Nov 04 21:16:00 2021 -0300"
      },
      "committer": {
        "name": "bravof",
        "email": "fbravo@whitestack.com",
        "time": "Fri Nov 05 13:07:33 2021 -0300"
      },
      "message": "feature: sol004 and sol007\n\nChange-Id: Ib4c4656f3660011a0f1ee80e4903a31958068be5\nSigned-off-by: bravof \u003cfbravo@whitestack.com\u003e\n"
    },
    {
      "commit": "2644b76248a1b96f7a47013b414e31b4e3feecf8",
      "tree": "a2cc93cfba479ab16e42942a425a7d22183ac0de",
      "parents": [
        "fee977a304dbfadee797e25906df2db3cf51f1e3"
      ],
      "author": {
        "name": "garciadeblas",
        "email": "gerardo.garciadeblas@telefonica.com",
        "time": "Wed Mar 24 09:21:01 2021 +0100"
      },
      "committer": {
        "name": "sousaedu",
        "email": "eduardo.sousa@canonical.com",
        "time": "Wed May 19 19:08:33 2021 +0200"
      },
      "message": "Reformat common to standardized format\n\nChange-Id: I9ba54f3510e17de285e1e774d18ee5c7205818ad\nSigned-off-by: garciadeblas \u003cgerardo.garciadeblas@telefonica.com\u003e\n"
    },
    {
      "commit": "f296d2a468e38fef4145f526b5bc0726502d77cf",
      "tree": "31dc69114852853b1d7961a34e0f097ad1ee36e7",
      "parents": [
        "41ca4d07a903990706ea2a5ccae6bcf21e32bdf7"
      ],
      "author": {
        "name": "lloretgalleg",
        "email": "illoret@indra.es",
        "time": "Wed Sep 02 09:36:24 2020 +0000"
      },
      "committer": {
        "name": "lloretgalleg",
        "email": "illoret@indra.es",
        "time": "Mon Oct 26 09:20:06 2020 +0000"
      },
      "message": "Added reverse sync\n\nChange-Id: Ied5dc10b4b92d900ba8a3f5f88ff64ba68c0804c\nSigned-off-by: lloretgalleg \u003cilloret@indra.es\u003e\n"
    },
    {
      "commit": "ff2e826ee2ead832eff974e331aed3994e9b06f9",
      "tree": "83f031b83254f9a05bc3cfc54ef4640f8fd105b8",
      "parents": [
        "a8747992fc5a037c060b43d655a1be059ce6fae9"
      ],
      "author": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Wed Jul 08 16:32:50 2020 -0400"
      },
      "committer": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Wed Jul 08 22:57:18 2020 +0200"
      },
      "message": "Remove symlink if exists\n\nOn sync, if the symlink already exists, an exception would\nbe thrown.  This change removes the file if it already\nexists.\n\nBug 1132\n\nChange-Id: I151a96adcac5d7cd51b84c2770f498a78d7d68be\nSigned-off-by: beierlm \u003cmark.beierl@canonical.com\u003e\n(cherry picked from commit 6d72d5cfb6f75c62402d493fdc2d81797cd48081)\n"
    },
    {
      "commit": "b07e4ef6e44bae6044be7420d982406ab0122275",
      "tree": "2481785a0b3ea39663990b52ad9d2358b49248ac",
      "parents": [
        "8ab6cc621e77323982e19eaf4f4e1d8ddcd356df"
      ],
      "author": {
        "name": "tierno",
        "email": "alfonso.tiernosepulveda@telefonica.com",
        "time": "Wed May 06 14:22:48 2020 +0000"
      },
      "committer": {
        "name": "tierno",
        "email": "alfonso.tiernosepulveda@telefonica.com",
        "time": "Wed Jul 01 13:07:34 2020 +0000"
      },
      "message": "allow partial sync for fsmongo\n\nChange-Id: I8c1d729bcff5a0fa2c58b25d57c5434ac0528668\nSigned-off-by: tierno \u003calfonso.tiernosepulveda@telefonica.com\u003e\n"
    },
    {
      "commit": "8ab6cc621e77323982e19eaf4f4e1d8ddcd356df",
      "tree": "48fa4eb6b66374fbfcfe840f80e733c34dd78de9",
      "parents": [
        "0d8e4bc4bc2e7bc1e46048fe779b7e2f0012fda0"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri Jun 26 17:04:37 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Jun 30 13:21:38 2020 +0200"
      },
      "message": "Fix bug 1112: Save content of symlinks with FSMongo\n\n- Store data for symlinks with GridFS\n- Add unit tests: This includes an Example of a tar with a folder, a file, a symlink to folder and a symlink to file\n\nChange-Id: I3ac9cb1a3bc2dc39b58e61658a96c7f97f59c2a5\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "7982b78adc05fc52c2259d900004ca570e38bdbf",
      "tree": "8818f45e7ae50828aac286bdfebf494b9920bd56",
      "parents": [
        "afc5cb6c6c8e3b3e1780d339ba5debb2288a22fe"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed May 20 12:09:37 2020 +0200"
      },
      "committer": {
        "name": "tierno",
        "email": "alfonso.tiernosepulveda@telefonica.com",
        "time": "Wed Jun 17 13:46:49 2020 +0000"
      },
      "message": "Fix bug 1069: Add default value for fsmongo.GridByteStream.file_type\n\nChange-Id: Icf2b6c76a77526f118facd2053bd8dac33730415\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "b95cca6f0bd7e6c20e5ec945def54565de6ac02f",
      "tree": "95f3a6658ddfe6ff97d1f304191047484efaca30",
      "parents": [
        "7fc50dd812c4006d1b34d52e3be0de79528724ba"
      ],
      "author": {
        "name": "sousaedu",
        "email": "eduardo.sousa@canonical.com",
        "time": "Thu Mar 12 11:12:25 2020 +0000"
      },
      "committer": {
        "name": "sousaedu",
        "email": "eduardo.sousa@canonical.com",
        "time": "Thu Mar 12 11:14:48 2020 +0000"
      },
      "message": "Fixing bug 1032\n\nThis bugfix introduces the notion of symlink handling in the\nFSMongo plugin. The change focus mainly in setting properly\nthe flags for a symlink file and store that metadata in an\nadequate format in MongoDB.\n\nChange-Id: I04ea122d3feed08762c38fa2557113ff2de35e3b\nSigned-off-by: sousaedu \u003ceduardo.sousa@canonical.com\u003e\n"
    },
    {
      "commit": "788b9d66ded6d5b8a5fe13befdcdf1aede6bbfc0",
      "tree": "1aa7b97af36211a985537bbf2d96f4eb3a6af96a",
      "parents": [
        "52520529eb28608e73fea9d30022a70acc5ff0de"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Jan 20 13:21:06 2020 +0100"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Jan 21 10:17:47 2020 +0100"
      },
      "message": "Add sync function to FSBase, and implementations to fslocal and fsmongo\n\nThe reason behind this change is that FSMongo needs to sync the charm to the local storage in order for libjuju to reach it.\n\nChange-Id: Ic5838fd4ab64dd2c3e2cf78c439f33363885dd14\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "0593abaff9f986845d9a89d5354784dc3900e7b5",
      "tree": "f22b11fdafb528ba0c85b61e45ab01c8fe66399d",
      "parents": [
        "13a71fb5070a5d14134d517023377fb4687afeab"
      ],
      "author": {
        "name": "Eduardo Sousa",
        "email": "eduardo.sousa@canonical.com",
        "time": "Tue Jun 04 12:55:43 2019 +0100"
      },
      "committer": {
        "name": "Eduardo Sousa",
        "email": "eduardo.sousa@canonical.com",
        "time": "Fri Nov 29 09:37:36 2019 +0000"
      },
      "message": "Adding FsMongo\n\nChange-Id: I2380bf7c916533199d686c7448c474ca64635077\nSigned-off-by: Eduardo Sousa \u003ceduardo.sousa@canonical.com\u003e\n"
    }
  ]
}
