)]}'
{
  "log": [
    {
      "commit": "c506f6939c638b151ded4b0a2f6c9b161038247d",
      "tree": "6f2d21414bff68d0dda2895aa444f2681a7e3e84",
      "parents": [
        "63bd2407d3beaa98aa32b00c3820adf8d7ba3f45"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Thu Feb 12 21:36:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 12 21:36:23 2026 +0800"
      },
      "message": "feat: add LoadPolicy API to load policies from database on startup (#59)\n\n"
    },
    {
      "commit": "63bd2407d3beaa98aa32b00c3820adf8d7ba3f45",
      "tree": "92e2875757e4a89d976a56e4e7f47b9f63161137",
      "parents": [
        "a90d601ee3577add78a231750a70d8901f4734c4"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Jan 25 18:27:52 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Jan 25 18:27:52 2026 +0800"
      },
      "message": "feat: add Ecto usage guide (#61)\n"
    },
    {
      "commit": "a90d601ee3577add78a231750a70d8901f4734c4",
      "tree": "c56ece89d69b85a14c333e0c8f715d8946c844eb",
      "parents": [
        "7704016d8f8bcc2b2987dbbad4067772aa5c889f"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 21:19:55 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 21:19:55 2026 +0800"
      },
      "message": "feat: fix invalid regex pattern in keyMatch3 test data (#57)\n"
    },
    {
      "commit": "7704016d8f8bcc2b2987dbbad4067772aa5c889f",
      "tree": "44b36baa1c6f4a8fa5fd5e60b1219af8988c6bab",
      "parents": [
        "409a8e05420c5da9b088ccd79842c395e1b61caf"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 20:33:09 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 20:33:36 2026 +0800"
      },
      "message": "feat: add 7 missing matcher functions: keyMatch, keyGet, keyGet2, keyMatch3, keyMatch4, ipMatch, globMatch (#55)\n"
    },
    {
      "commit": "409a8e05420c5da9b088ccd79842c395e1b61caf",
      "tree": "7b16e271d63bc82bbf4db10f84ca394e3ca5e6bc",
      "parents": [
        "36a38c477aea5bbdc986338c3b58316a92252b2e"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 18:41:32 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 18:41:32 2026 +0800"
      },
      "message": "feat: fix code format\n"
    },
    {
      "commit": "36a38c477aea5bbdc986338c3b58316a92252b2e",
      "tree": "4e0f0de6a9a1c52a662ce6d6384a03be13eb8c91",
      "parents": [
        "0179842086efed55fa0bcf3967a606af36f2154f"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 18:33:21 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 18:33:21 2026 +0800"
      },
      "message": "fix: ignore IDEA files\n"
    },
    {
      "commit": "0179842086efed55fa0bcf3967a606af36f2154f",
      "tree": "738617170c23775946b8144842f0884d262bc7be",
      "parents": [
        "f944c1cdaa17d8ed8cd3cda7e397c00dcd7f3659"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 18:32:27 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 18:32:27 2026 +0800"
      },
      "message": "feat: rename package name (#53)\n"
    },
    {
      "commit": "f944c1cdaa17d8ed8cd3cda7e397c00dcd7f3659",
      "tree": "0572e12fdbc6c918a72947b673fb9d1a4b8f2de4",
      "parents": [
        "3064d9e64479c575e8bb38b09486e3c511f882e4"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 17:49:38 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 17:49:38 2026 +0800"
      },
      "message": "feat: make Release depend on CI completion (#51)\n"
    },
    {
      "commit": "3064d9e64479c575e8bb38b09486e3c511f882e4",
      "tree": "ad91272348a67251aa9a99ca4bafc0545ec26831",
      "parents": [
        "81917f0e94475763c1c89e2587df4a98b8f505b4"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 17:39:44 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 17:39:44 2026 +0800"
      },
      "message": "feat: add Hex.pm publishing to release workflow (#49)\n"
    },
    {
      "commit": "81917f0e94475763c1c89e2587df4a98b8f505b4",
      "tree": "0995e11b39f337d86dd517d05c233ccebddee5ce",
      "parents": [
        "f0e728d9f9cd9dcd6fbf5b81ae39ba1fc5f4636c"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 16:47:24 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 16:47:24 2026 +0800"
      },
      "message": "feat: remove changelog commits from semantic-release workflow (#47)\n"
    },
    {
      "commit": "f0e728d9f9cd9dcd6fbf5b81ae39ba1fc5f4636c",
      "tree": "2906ebe20a6f304c6a5309acbc1a9e8479e516c5",
      "parents": [
        "42b93a269430cd2fac906ffbef1ae3c895b0d326"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Jan 01 03:46:17 2026 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Jan 01 03:46:17 2026 +0000"
      },
      "message": "chore(release): 1.6.1 [skip ci]\n\n## [1.6.1](https://github.com/casbin/casbin-ex/compare/v1.6.0...v1.6.1) (2026-01-01)\n\n### Bug Fixes\n\n* improve links in README ([42b93a2](https://github.com/casbin/casbin-ex/commit/42b93a269430cd2fac906ffbef1ae3c895b0d326))\n"
    },
    {
      "commit": "42b93a269430cd2fac906ffbef1ae3c895b0d326",
      "tree": "3f6a1bb9e3ff9cd2368f121eb69edde6bbdaeeb3",
      "parents": [
        "defc8af06c39e3c4dc7995e75f2aeec0965684fe"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 11:45:52 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 01 11:45:52 2026 +0800"
      },
      "message": "fix: improve links in README"
    },
    {
      "commit": "defc8af06c39e3c4dc7995e75f2aeec0965684fe",
      "tree": "0112ad536c76516adb453077b8b8f2f20dc4f86f",
      "parents": [
        "d8277935f7eaea37ef469eaf8c6a90640187365c"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Nov 09 17:06:22 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Nov 09 17:06:22 2025 +0000"
      },
      "message": "chore(release): 1.6.0 [skip ci]\n\n# [1.6.0](https://github.com/casbin/casbin-ex/compare/v1.5.0...v1.6.0) (2025-11-09)\n\n### Features\n\n* fix EctoAdapter transaction compatibility with Ecto.Adapters.SQL.Sandbox ([#44](https://github.com/casbin/casbin-ex/issues/44)) ([d827793](https://github.com/casbin/casbin-ex/commit/d8277935f7eaea37ef469eaf8c6a90640187365c))\n"
    },
    {
      "commit": "d8277935f7eaea37ef469eaf8c6a90640187365c",
      "tree": "44713c53ddd43807b22c78aa9e88752e01699849",
      "parents": [
        "1cc6a9a592ce32ba70f85009c284860868cf1909"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Mon Nov 10 01:05:42 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Mon Nov 10 01:05:42 2025 +0800"
      },
      "message": "feat: fix EctoAdapter transaction compatibility with Ecto.Adapters.SQL.Sandbox (#44)\n"
    },
    {
      "commit": "1cc6a9a592ce32ba70f85009c284860868cf1909",
      "tree": "cb646cb5b28efbdd3a5af3fd5be40c3a0114ee4d",
      "parents": [
        "e0115f5495b2713f4fac6a008811a8affff70a09"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Nov 01 09:18:31 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Nov 01 09:18:31 2025 +0000"
      },
      "message": "chore(release): 1.5.0 [skip ci]\n\n# [1.5.0](https://github.com/casbin/casbin-ex/compare/v1.4.0...v1.5.0) (2025-11-01)\n\n### Features\n\n* add code formatting check to CI workflow ([#40](https://github.com/casbin/casbin-ex/issues/40)) ([e0115f5](https://github.com/casbin/casbin-ex/commit/e0115f5495b2713f4fac6a008811a8affff70a09))\n"
    },
    {
      "commit": "e0115f5495b2713f4fac6a008811a8affff70a09",
      "tree": "8e31da2c93d98cb7654629310d4b601d13ef5e7b",
      "parents": [
        "6f251fd3e69f4dbf19c9b0ae7d3ba68743c797b4"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Sat Nov 01 17:18:00 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 01 17:18:00 2025 +0800"
      },
      "message": "feat: add code formatting check to CI workflow (#40)\n\n"
    },
    {
      "commit": "6f251fd3e69f4dbf19c9b0ae7d3ba68743c797b4",
      "tree": "23904b43c02db9990e19d0eafcc1511ef1f854aa",
      "parents": [
        "0e856ac077876bbc27e5177d341b5a82f74b2d40"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Nov 01 07:12:07 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Nov 01 07:12:07 2025 +0000"
      },
      "message": "chore(release): 1.4.0 [skip ci]\n\n# [1.4.0](https://github.com/casbin/casbin-ex/compare/v1.3.0...v1.4.0) (2025-11-01)\n\n### Features\n\n* add load_filtered_policy() API ([#38](https://github.com/casbin/casbin-ex/issues/38)) ([0e856ac](https://github.com/casbin/casbin-ex/commit/0e856ac077876bbc27e5177d341b5a82f74b2d40))\n"
    },
    {
      "commit": "0e856ac077876bbc27e5177d341b5a82f74b2d40",
      "tree": "8e0f93ba02771d61687e832227a98f215cbe63a4",
      "parents": [
        "fa3193a3d24f0cb06adaae7bab2a1e4fb8da924e"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Sat Nov 01 15:11:38 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 01 15:11:38 2025 +0800"
      },
      "message": "feat: add load_filtered_policy() API (#38)\n\n"
    },
    {
      "commit": "fa3193a3d24f0cb06adaae7bab2a1e4fb8da924e",
      "tree": "616753010ed085d8fc5fc6457f35d301f13bfb3c",
      "parents": [
        "c478e2d06ccc8fcf972de81d04b2f187e1b6f392"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Oct 30 13:39:39 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Oct 30 13:39:39 2025 +0000"
      },
      "message": "chore(release): 1.3.0 [skip ci]\n\n# [1.3.0](https://github.com/casbin/casbin-ex/compare/v1.2.0...v1.3.0) (2025-10-30)\n\n### Features\n\n* improve README ([#35](https://github.com/casbin/casbin-ex/issues/35)) ([c478e2d](https://github.com/casbin/casbin-ex/commit/c478e2d06ccc8fcf972de81d04b2f187e1b6f392))\n"
    },
    {
      "commit": "c478e2d06ccc8fcf972de81d04b2f187e1b6f392",
      "tree": "8addfbc7f8134ba7a9f0c524b9be0e5f36a4a993",
      "parents": [
        "fb162263cb3c5820be6ddd31b58ee313bdaf4c20"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Thu Oct 30 21:39:08 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 30 21:39:08 2025 +0800"
      },
      "message": "feat: improve README (#35)\n\n"
    },
    {
      "commit": "fb162263cb3c5820be6ddd31b58ee313bdaf4c20",
      "tree": "a073ffcde7b31c1afa44fe4bb2833d25c2cddd0a",
      "parents": [
        "20c7b2beb1ad809ffc65d2895d8b11dd9b291dca"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Oct 30 12:19:06 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Oct 30 12:19:06 2025 +0000"
      },
      "message": "chore(release): 1.2.0 [skip ci]\n\n# [1.2.0](https://github.com/casbin/casbin-ex/compare/v1.1.0...v1.2.0) (2025-10-30)\n\n### Features\n\n* fix RBAC role inheritance with domains ([#29](https://github.com/casbin/casbin-ex/issues/29)) ([20c7b2b](https://github.com/casbin/casbin-ex/commit/20c7b2beb1ad809ffc65d2895d8b11dd9b291dca))\n"
    },
    {
      "commit": "20c7b2beb1ad809ffc65d2895d8b11dd9b291dca",
      "tree": "718a44febfa956c168e2a0e489f3a05959b8a0b9",
      "parents": [
        "668242b88fc0568e95105891d0ecfcfc0d21fcbf"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Thu Oct 30 20:18:37 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 30 20:18:37 2025 +0800"
      },
      "message": "feat: fix RBAC role inheritance with domains (#29)\n\n"
    },
    {
      "commit": "668242b88fc0568e95105891d0ecfcfc0d21fcbf",
      "tree": "ebe56ca9bf82c5c308c61501b05b1b55e979b983",
      "parents": [
        "e74ea15c9677d11cdb01c3b68e5dc72ebfded01e"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Oct 12 03:11:33 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Oct 12 03:11:33 2025 +0000"
      },
      "message": "chore(release): 1.1.0 [skip ci]\n\n# [1.1.0](https://github.com/casbin/casbin-ex/compare/v1.0.0...v1.1.0) (2025-10-12)\n\n### Features\n\n* improve styles: Credo fixes, git pre-push hook ([#24](https://github.com/casbin/casbin-ex/issues/24)) ([e74ea15](https://github.com/casbin/casbin-ex/commit/e74ea15c9677d11cdb01c3b68e5dc72ebfded01e))\n"
    },
    {
      "commit": "e74ea15c9677d11cdb01c3b68e5dc72ebfded01e",
      "tree": "6f559541f4a576defb0b05cd309eb361dfa476ed",
      "parents": [
        "56679a4f38f717a27311f09f837b15a81fc67394"
      ],
      "author": {
        "name": "Pratik Khadloya",
        "email": "tispratik@gmail.com",
        "time": "Sun Oct 12 08:40:57 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 12 11:10:57 2025 +0800"
      },
      "message": "feat: improve styles: Credo fixes, git pre-push hook (#24)\n\n"
    },
    {
      "commit": "56679a4f38f717a27311f09f837b15a81fc67394",
      "tree": "f1002f5b66c58cb87633316106cffe485bd8b8dd",
      "parents": [
        "f775b8f570065d0d9479b2a342240216a7efbea5"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Oct 12 03:00:46 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Oct 12 03:00:46 2025 +0000"
      },
      "message": "chore(release): 1.0.0 [skip ci]\n\n# 1.0.0 (2025-10-12)\n\n### Bug Fixes\n\n* add map support to request struct ([#8](https://github.com/casbin/casbin-ex/issues/8)) ([5b0e701](https://github.com/casbin/casbin-ex/commit/5b0e7012456f884fdb16bce2ddf12c1833093bb1))\n* add_policy at enforcer server hasn\u0027t handled a case where new_enforce comes. ([#6](https://github.com/casbin/casbin-ex/issues/6)) ([a7478b8](https://github.com/casbin/casbin-ex/commit/a7478b83834c4019ed677eb8a7d2f50c3fca732b))\n* enforcer_server ([#21](https://github.com/casbin/casbin-ex/issues/21)) ([85efaa4](https://github.com/casbin/casbin-ex/commit/85efaa43d38ce89065b150debbe51f9dbc7427b9))\n* g3 matcher function + tests ([#13](https://github.com/casbin/casbin-ex/issues/13)) ([d26a73c](https://github.com/casbin/casbin-ex/commit/d26a73cde3801253c991d6a56762c4f664b2b707))\n\n### Features\n\n* add CI/CD automation with GitHub Actions and semantic-release ([#26](https://github.com/casbin/casbin-ex/issues/26)) ([f775b8f](https://github.com/casbin/casbin-ex/commit/f775b8f570065d0d9479b2a342240216a7efbea5))\n* add EnforcerServer.reset_configuration/1 method ([#15](https://github.com/casbin/casbin-ex/issues/15)) ([0e530da](https://github.com/casbin/casbin-ex/commit/0e530daed509bc68240a8c366e18d7a5936fe0fe))\n* added persist adapters and ability to alter policies and mappings ([#19](https://github.com/casbin/casbin-ex/issues/19)) ([d55e97a](https://github.com/casbin/casbin-ex/commit/d55e97a1bb6995db21fc56588ad1a28e0a9e2d73))\n* keyMatch2 implementation ([#11](https://github.com/casbin/casbin-ex/issues/11)) ([c68edd2](https://github.com/casbin/casbin-ex/commit/c68edd2c8b60d1ce70a60dc0b0e8f6f9899b6f9d))\n* RBAC domain model ([#10](https://github.com/casbin/casbin-ex/issues/10)) ([daafa79](https://github.com/casbin/casbin-ex/commit/daafa79a040520cdb5da9ff5ee70d800adc76bf6))\n* upgrade required elixir version to 1.13 ([#17](https://github.com/casbin/casbin-ex/issues/17)) ([e828e3f](https://github.com/casbin/casbin-ex/commit/e828e3f7977bb1a41518543499da7bf1e5ab5ca2))\n\n### BREAKING CHANGES\n\n* Drop support for elixir \u003c 1.13\n\n* chore: mix format\n\n* chore: Add .tool-versions\n"
    },
    {
      "commit": "f775b8f570065d0d9479b2a342240216a7efbea5",
      "tree": "0365244e06d698ed83bfe8450b14083f6d0c3e07",
      "parents": [
        "85efaa43d38ce89065b150debbe51f9dbc7427b9"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Sun Oct 12 11:00:13 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 12 11:00:13 2025 +0800"
      },
      "message": "feat: add CI/CD automation with GitHub Actions and semantic-release (#26)\n\n"
    },
    {
      "commit": "85efaa43d38ce89065b150debbe51f9dbc7427b9",
      "tree": "1e856ba32b2e0c6bb2531e0e80e890eb305fc93c",
      "parents": [
        "b1d7c9be751eb846bd39d789bf1074b0178f07e6"
      ],
      "author": {
        "name": "Nicolas Mark",
        "email": "nmark@cogility.com",
        "time": "Fri Feb 02 04:45:14 2024 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 02 17:45:14 2024 +0800"
      },
      "message": "fix: enforcer_server (#21)\n\n"
    },
    {
      "commit": "b1d7c9be751eb846bd39d789bf1074b0178f07e6",
      "tree": "e15f421e501a74ccd4ab80dc57fc5d3e89048699",
      "parents": [
        "d55e97a1bb6995db21fc56588ad1a28e0a9e2d73"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@qq.com",
        "time": "Fri Dec 22 23:49:22 2023 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@qq.com",
        "time": "Fri Dec 22 23:49:22 2023 +0800"
      },
      "message": "Fix test filename\n"
    },
    {
      "commit": "d55e97a1bb6995db21fc56588ad1a28e0a9e2d73",
      "tree": "9c1521f544b938f9ab4ad073f0a126791d485bc6",
      "parents": [
        "47aa5ec7942c9ee5c429eb42b963b2441f6a00cf"
      ],
      "author": {
        "name": "William Michaels",
        "email": "88730019+PolBreachIty@users.noreply.github.com",
        "time": "Fri Dec 22 09:48:33 2023 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 22 23:48:33 2023 +0800"
      },
      "message": "feat: added persist adapters and ability to alter policies and mappings (#19)\n\n"
    },
    {
      "commit": "47aa5ec7942c9ee5c429eb42b963b2441f6a00cf",
      "tree": "744d06114b2f8a92eaec047a74b660cec650413d",
      "parents": [
        "640b0480e9f9ae097f8a221f230dd36974e5f91f"
      ],
      "author": {
        "name": "YunShu",
        "email": "YunShuEmail@foxmail.com",
        "time": "Thu Aug 10 22:41:07 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 10 22:41:07 2023 +0800"
      },
      "message": "docs: fix broken links (#20)\n\n"
    },
    {
      "commit": "640b0480e9f9ae097f8a221f230dd36974e5f91f",
      "tree": "31c11585d47fbc809346aeb7c63239777155a642",
      "parents": [
        "e828e3f7977bb1a41518543499da7bf1e5ab5ca2"
      ],
      "author": {
        "name": "William Michaels",
        "email": "88730019+PolBreachIty@users.noreply.github.com",
        "time": "Tue Dec 20 08:54:13 2022 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 20 22:54:13 2022 +0800"
      },
      "message": "chore: added Apache 2.0 license file (#18)\n\n"
    },
    {
      "commit": "e828e3f7977bb1a41518543499da7bf1e5ab5ca2",
      "tree": "5071256ce4a21d7351814211bc7e68243c2bef63",
      "parents": [
        "0e530daed509bc68240a8c366e18d7a5936fe0fe"
      ],
      "author": {
        "name": "eltonplima",
        "email": "eltonplima@gmail.com",
        "time": "Fri Nov 25 13:59:03 2022 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 25 21:59:03 2022 +0800"
      },
      "message": "feat: upgrade required elixir version to 1.13 (#17)\n\n* chore: Update mix.exs\r\n\r\n - Upgrade to elixir 1.13\r\n\r\nBREAKING CHANGE: Drop support for elixir \u003c 1.13\r\n\r\n* chore: mix format\r\n\r\n* chore: Add .tool-versions"
    },
    {
      "commit": "0e530daed509bc68240a8c366e18d7a5936fe0fe",
      "tree": "4f6c5daba06858464bf2b935fd5805dec7653a14",
      "parents": [
        "d26a73cde3801253c991d6a56762c4f664b2b707"
      ],
      "author": {
        "name": "Dorian",
        "email": "rousseldorian@gmail.com",
        "time": "Wed Nov 23 15:42:02 2022 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 23 22:42:02 2022 +0800"
      },
      "message": "feat: add EnforcerServer.reset_configuration/1 method (#15)\n\n"
    },
    {
      "commit": "d26a73cde3801253c991d6a56762c4f664b2b707",
      "tree": "da38c7d84ba3b6834979e0a4f07173c4cbf145a9",
      "parents": [
        "c68edd2c8b60d1ce70a60dc0b0e8f6f9899b6f9d"
      ],
      "author": {
        "name": "Dorian",
        "email": "rousseldorian@gmail.com",
        "time": "Sat Mar 26 05:20:38 2022 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 26 12:20:38 2022 +0800"
      },
      "message": "fix: g3 matcher function + tests (#13)\n\n"
    },
    {
      "commit": "c68edd2c8b60d1ce70a60dc0b0e8f6f9899b6f9d",
      "tree": "5ecf3be5f60324250900a59f7c4622d9b2c7d415",
      "parents": [
        "daafa79a040520cdb5da9ff5ee70d800adc76bf6"
      ],
      "author": {
        "name": "Dorian",
        "email": "rousseldorian@gmail.com",
        "time": "Fri Mar 18 14:26:30 2022 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 18 22:26:30 2022 +0800"
      },
      "message": "feat: keyMatch2 implementation (#11)\n\n* feat: keyMatch2 implementation\r\n\r\n* test: adding tests for keyMatch matcher function\r\n\r\n* refactor: update files + key_match_2 naming\r\n\r\n* refactor: key_match2? naming + documentation updated\r\n\r\n* test: adding more tests for key_match2?"
    },
    {
      "commit": "daafa79a040520cdb5da9ff5ee70d800adc76bf6",
      "tree": "5525217b7330b0df72e4719542de07d6fe9e68b8",
      "parents": [
        "5b0e7012456f884fdb16bce2ddf12c1833093bb1"
      ],
      "author": {
        "name": "Dorian",
        "email": "rousseldorian@gmail.com",
        "time": "Fri Mar 18 02:01:39 2022 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 18 10:01:39 2022 +0800"
      },
      "message": "feat: RBAC domain model (#10)\n\n* rbac domain model\r\n\r\n* test: adding tests for rbac domain"
    },
    {
      "commit": "5b0e7012456f884fdb16bce2ddf12c1833093bb1",
      "tree": "a4ecad44e343f64094131cf96599192a8fa9f8dc",
      "parents": [
        "a7478b83834c4019ed677eb8a7d2f50c3fca732b"
      ],
      "author": {
        "name": "Hawatz",
        "email": "49044357+Hawatz@users.noreply.github.com",
        "time": "Tue Jan 11 18:08:32 2022 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 11 23:08:32 2022 +0800"
      },
      "message": "fix: add map support to request struct (#8)\n\n* Add map support to request struct\r\n\r\n* add is_map() check to request validation to be able to use maps in request\r\n\r\n* Fix repo link\r\n\r\n* update the link to point to the current repository, because the previous one is outdated"
    },
    {
      "commit": "a7478b83834c4019ed677eb8a7d2f50c3fca732b",
      "tree": "023fd1cb475f9808b745bb983dacde979c1d130f",
      "parents": [
        "057c64afd8bdc4268b888cdb534e5dbb515727a4"
      ],
      "author": {
        "name": "Dulce Espinoza",
        "email": "53799471+Dulce17mar@users.noreply.github.com",
        "time": "Thu Dec 23 11:10:13 2021 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 24 01:10:13 2021 +0800"
      },
      "message": "fix: add_policy at enforcer server hasn\u0027t handled a case where new_enforce comes. (#6)\n\n* Update in the case of add_policy\r\n\r\nSigned-off-by: Dulce17mar \u003cdulce.espinoza@grupobitelit.com.mx\u003e\r\n\r\n* Update in the case of add_mapping_policy\r\n\r\nSigned-off-by: Dulce17mar \u003cdulce.espinoza@grupobitelit.com.mx\u003e\r\n\r\n* fix: rollback in README.md\r\n\r\nCo-authored-by: Dulce17mar \u003cdulce.espinoza@grupobitelit.com.mx\u003e"
    },
    {
      "commit": "057c64afd8bdc4268b888cdb534e5dbb515727a4",
      "tree": "cff64e8ad0840f3b38525e8aa9a9103c90699c8e",
      "parents": [
        "beb12624bb2ba40e397d91b4efcae870e82f4d48"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Sat Apr 04 17:02:06 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Sat Apr 04 17:02:06 2020 +0700"
      },
      "message": "combine all three prtial range types into one\n"
    },
    {
      "commit": "beb12624bb2ba40e397d91b4efcae870e82f4d48",
      "tree": "934b560dc222ff20f447ce38c90137a5eee528a2",
      "parents": [
        "0f72abf87cfdee8fcc134760e400b43606fff5de"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Sat Apr 04 15:44:04 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Sat Apr 04 15:44:04 2020 +0700"
      },
      "message": "implement \u0026 test PartialRangeFrom\n"
    },
    {
      "commit": "0f72abf87cfdee8fcc134760e400b43606fff5de",
      "tree": "ec48652a8e8539a4ebe1391e1bb4e26fe134e2b9",
      "parents": [
        "0e010218ead267463cd87ba1d424f4ace7d86bce"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 23:12:30 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 23:12:30 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "0e010218ead267463cd87ba1d424f4ace7d86bce",
      "tree": "98b19a0cc9fe19ba126c7d5dde3ee613aaf9e854",
      "parents": [
        "92a9c0e35696b72154cb5acfe4172f0277b36a1c"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 23:11:44 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 23:11:44 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "92a9c0e35696b72154cb5acfe4172f0277b36a1c",
      "tree": "a5ce0f6ea761f772abf680d2ed79c9a26cc2ab1e",
      "parents": [
        "0496e21151d77baa2360640bdf17ae50bf64abbe"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 23:10:28 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 23:10:28 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "0496e21151d77baa2360640bdf17ae50bf64abbe",
      "tree": "bd871978b62c6e2656005a2cdefee20b04441cc0",
      "parents": [
        "f9a650cc3fffc18b7604f8d3f111c489cd7f723d"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 23:04:13 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 23:04:13 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "f9a650cc3fffc18b7604f8d3f111c489cd7f723d",
      "tree": "572b2987dbc361cb4414c49576fa9120c2acb74b",
      "parents": [
        "f6cf0b54755682efb6019deacf6b4e03a88a9f65"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 22:38:10 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 22:38:10 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "f6cf0b54755682efb6019deacf6b4e03a88a9f65",
      "tree": "7d6d0462cc6c92c277837065a3cd7d49553448ca",
      "parents": [
        "4137a0b0372af6da3d95e5994bc8819542d603e1"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 22:33:42 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 22:33:42 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "4137a0b0372af6da3d95e5994bc8819542d603e1",
      "tree": "981d36171a0a1b2309fdafb05973197296d82414",
      "parents": [
        "6cc4e24312c0aa5646d878d59d367a4af60dc43f"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 22:27:47 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 22:27:47 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "6cc4e24312c0aa5646d878d59d367a4af60dc43f",
      "tree": "fc8bb529f7a7a1dd0fb0fb7c8e0f1a6e589aaa02",
      "parents": [
        "02945e876103f2bf9dd1b35883641784fb57509e"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 22:22:14 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 22:22:14 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "02945e876103f2bf9dd1b35883641784fb57509e",
      "tree": "45bbdd349460c19ed0430af492ab98eab86fcf92",
      "parents": [
        "1bba77b8514217a8abe3e7649567b3a2399208c4"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 22:13:22 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 22:13:22 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "1bba77b8514217a8abe3e7649567b3a2399208c4",
      "tree": "c134626957b3b051c3ea566324a85df51e68555f",
      "parents": [
        "f749cd0e3a6280e781a666974ca6cd5ac1605e74"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 22:02:57 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 22:02:57 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "f749cd0e3a6280e781a666974ca6cd5ac1605e74",
      "tree": "8debddd958656eadd8cc3a123b9804bd4a78a5d6",
      "parents": [
        "99c39970f2d25a4ea640add17d0e51bb43df9e35"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:58:43 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:58:43 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "99c39970f2d25a4ea640add17d0e51bb43df9e35",
      "tree": "231fb8ac9c19d5e6244d620fa6e2ac73b4e54afd",
      "parents": [
        "4f972cb0e2a42ba47b0efa501a36413924a99d38"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:49:08 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:49:08 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "4f972cb0e2a42ba47b0efa501a36413924a99d38",
      "tree": "9bcd891f0eca3644f91948fa125ebc05f4f9274a",
      "parents": [
        "d065293916afd7fee7172dae031f5c6bf1eb47c7"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:39:53 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:39:53 2020 +0700"
      },
      "message": "add RBAC diagram\n"
    },
    {
      "commit": "d065293916afd7fee7172dae031f5c6bf1eb47c7",
      "tree": "09c98a7c4fb83a28da7ecc7c578e09255fad7c5b",
      "parents": [
        "987510712e843b82e2a685479b1740cdf74295e4"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:35:45 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:35:45 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "987510712e843b82e2a685479b1740cdf74295e4",
      "tree": "ebae8ff48f1e2a7fe5ef49efba6c25271860f086",
      "parents": [
        "64c037d02e4288eb86ea9cef330b6187150b0004"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:24:17 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:24:17 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "64c037d02e4288eb86ea9cef330b6187150b0004",
      "tree": "cdf346e75633f9e4a467696c71b4f2320a4abf50",
      "parents": [
        "d4ea54fb903e6d1dd35c20d17de2aa489ad6f41d"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:19:30 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:19:30 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "d4ea54fb903e6d1dd35c20d17de2aa489ad6f41d",
      "tree": "e5127ec35bd6fc653f1a84fa4e48c06868fe1829",
      "parents": [
        "3f6860a884498aa384cc5cde6bd8b953c2282b63"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:18:53 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:18:53 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "3f6860a884498aa384cc5cde6bd8b953c2282b63",
      "tree": "ccc508e1ca5ae900d995c968cb03840540e231f1",
      "parents": [
        "a287142271480eefd3f886230b25748cf60c4dd7"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:13:24 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:13:24 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "a287142271480eefd3f886230b25748cf60c4dd7",
      "tree": "bbffe77ae5d0332896ceb2a13aa2096c1be483bf",
      "parents": [
        "f7eea93752d20e039fd48f9483a60431f0df2c95"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:02:14 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 21:02:14 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "f7eea93752d20e039fd48f9483a60431f0df2c95",
      "tree": "514b4baed206f5a4bae2daffabc28d9756347deb",
      "parents": [
        "c07baf0c37fe533166a8eddcd8effd9a85279bae"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 20:59:59 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 20:59:59 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "c07baf0c37fe533166a8eddcd8effd9a85279bae",
      "tree": "faf3744f57117f1684ddc7a49c2c5770dbc6b2ce",
      "parents": [
        "afc08b948c18bd54be8c8f5afb2bdd71a412526e"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 20:48:48 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 20:48:48 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "afc08b948c18bd54be8c8f5afb2bdd71a412526e",
      "tree": "27355421782d39a696d65202ab15a18f518fb58f",
      "parents": [
        "98338b8a9c792e358003ec35893d7a1f19d6d261"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:47:23 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:47:23 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "98338b8a9c792e358003ec35893d7a1f19d6d261",
      "tree": "0795d8fc52c72f06369c6224cbbc5b89141885ab",
      "parents": [
        "97b479609830ae9778a4ce1af3c10eb91f4c137f"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:44:55 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:44:55 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "97b479609830ae9778a4ce1af3c10eb91f4c137f",
      "tree": "b7c2ba898c2a73e8973ee6ab7a5bf095114d94ee",
      "parents": [
        "b21f766de0179746e4565d131bc3a425037f99aa"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:41:23 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:41:23 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "b21f766de0179746e4565d131bc3a425037f99aa",
      "tree": "c1e66f437a9c70c34d28bb0ec16e645a907b81c6",
      "parents": [
        "4e087e97bd8cd1ee43cf38cfa1d549b9c35db37e"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:29:23 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:29:23 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "4e087e97bd8cd1ee43cf38cfa1d549b9c35db37e",
      "tree": "dcf9b7cac95180568a46391fc6093c043db3ac13",
      "parents": [
        "59b0a2811ca80edac8c9d3e43b315f95374386bb"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:23:36 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:23:36 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "59b0a2811ca80edac8c9d3e43b315f95374386bb",
      "tree": "3e1b3ae41006ce14c9b9ea7eced815cac14d4d37",
      "parents": [
        "86401c85045f6fe324de5d4305f0c24f16ae218d"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:17:07 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:17:07 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "86401c85045f6fe324de5d4305f0c24f16ae218d",
      "tree": "6138f1b0b3ca8a4c9e93a7bc21362190f0de5483",
      "parents": [
        "d4ae141bd15b627acc8709b74e83a41116c0c6e7"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:11:16 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 17:11:16 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "d4ae141bd15b627acc8709b74e83a41116c0c6e7",
      "tree": "294af13234c0180392ddddc761a6fc3f48ee475d",
      "parents": [
        "0f91f34eece24ebc2515b2312f7043cec87736be"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 16:52:08 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 16:52:08 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "0f91f34eece24ebc2515b2312f7043cec87736be",
      "tree": "f0109821889942ab1497604da27dad9b4546e64c",
      "parents": [
        "27b541cf5a7ae4c6aa9803f361ce1c342f1e4689"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 16:31:31 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 16:31:31 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "27b541cf5a7ae4c6aa9803f361ce1c342f1e4689",
      "tree": "dd66f3df4f572319c4eb9b668c8cf2713fcf6218",
      "parents": [
        "df82cb33afc8b47e4dcae99ac863303f4cc28f2b"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 16:29:34 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 16:29:34 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "df82cb33afc8b47e4dcae99ac863303f4cc28f2b",
      "tree": "7c52359362f45b7fcc9dce5b4a67b68bbd2002e8",
      "parents": [
        "0a37c960931d47ec06afb77f7b3566ce32e2f634"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 00:12:12 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 00:12:12 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "0a37c960931d47ec06afb77f7b3566ce32e2f634",
      "tree": "c4e338c642fd94c6f96a491ca81868f1516340dd",
      "parents": [
        "f5a9cf40bcb780705ccad05bae9611eace1ec117"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 00:04:25 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Thu Apr 02 00:04:25 2020 +0700"
      },
      "message": "update README\n"
    },
    {
      "commit": "f5a9cf40bcb780705ccad05bae9611eace1ec117",
      "tree": "3821bccef5566592e8ab23868a0a68a053aed0b9",
      "parents": [
        "25d7ffea5aa50ef51271f00f0caec96a4dcfb0f3"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 22:54:15 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 22:54:15 2020 +0700"
      },
      "message": "fix enforcer server and supervisor\n"
    },
    {
      "commit": "25d7ffea5aa50ef51271f00f0caec96a4dcfb0f3",
      "tree": "f40aac7941de1676ae8474c6ef77898d587b71e8",
      "parents": [
        "7dbcac486d57e446d498edf787dba68fa07af872"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:56:31 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:56:31 2020 +0700"
      },
      "message": "add comments to load_mapping_policies/2\n"
    },
    {
      "commit": "7dbcac486d57e446d498edf787dba68fa07af872",
      "tree": "65f60d17dad4187c8f0428a979550eec8567339a",
      "parents": [
        "a81797eeb798222c6d9c301d5ce7c866ba4047c7"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:50:44 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:50:44 2020 +0700"
      },
      "message": "add guard to list_matched_policies/2\n"
    },
    {
      "commit": "a81797eeb798222c6d9c301d5ce7c866ba4047c7",
      "tree": "4927771d7551a7b0d925be597328788ac1582b7e",
      "parents": [
        "8784c8e2cb58f2923028c201f1e13e2f47bf24bc"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:49:36 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:49:36 2020 +0700"
      },
      "message": "add @spec to list_matched_policies/2\n"
    },
    {
      "commit": "8784c8e2cb58f2923028c201f1e13e2f47bf24bc",
      "tree": "f89e558420a36b5e42492af6aa123ec849b93ea8",
      "parents": [
        "c1393cad94be21caf74be670f169cafabe7fcccd"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:48:17 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:48:17 2020 +0700"
      },
      "message": "add doctest to list_policies/2\n"
    },
    {
      "commit": "c1393cad94be21caf74be670f169cafabe7fcccd",
      "tree": "d5b9d9ff2017ea2f0ef0edfd6f340ca00e5b0255",
      "parents": [
        "856ef3c93c4e313d97d485a3719a14196007f132"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:46:12 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:46:12 2020 +0700"
      },
      "message": "add @spec to list_policies/2\n"
    },
    {
      "commit": "856ef3c93c4e313d97d485a3719a14196007f132",
      "tree": "e5b57f882ac0698563c964e4a2b096621ec339f1",
      "parents": [
        "96337aba491e96fa2a96cc07e541cb6d2a8a1664"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:43:19 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:43:19 2020 +0700"
      },
      "message": "add doctest to load_policies/2\n"
    },
    {
      "commit": "96337aba491e96fa2a96cc07e541cb6d2a8a1664",
      "tree": "cb6a795b21eb6b70dfe1d8dca8f299738c70341d",
      "parents": [
        "3fd4960dc4c5b544b7d81e96850c3eb1be5c5f8d"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:35:51 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:35:51 2020 +0700"
      },
      "message": "add @spect to regex_match?/2\n"
    },
    {
      "commit": "3fd4960dc4c5b544b7d81e96850c3eb1be5c5f8d",
      "tree": "19d8a573aa8547e536da9064d02957bd32738c7c",
      "parents": [
        "aff269568ba3f80c67987ec2385930c01c0fefc2"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:29:32 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:29:32 2020 +0700"
      },
      "message": "add @spec to allow?/2\n"
    },
    {
      "commit": "aff269568ba3f80c67987ec2385930c01c0fefc2",
      "tree": "7263b077151835b502eaf52bcb5c1df2acfd7f44",
      "parents": [
        "deb97c74d2a8013762897602f341ada70f30e612"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:26:40 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:26:40 2020 +0700"
      },
      "message": "add add_fun functionto enforcer\n"
    },
    {
      "commit": "deb97c74d2a8013762897602f341ada70f30e612",
      "tree": "d1d457a9cabb80a1a6166acb4bd7df7c26f40eb6",
      "parents": [
        "f3264265517420ac8e655bf04f6328486cd7cad2"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:03:10 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 16:03:10 2020 +0700"
      },
      "message": "add test for ACL RESTful model\n"
    },
    {
      "commit": "f3264265517420ac8e655bf04f6328486cd7cad2",
      "tree": "746d93fac3926e11fb792cd7af873684ff26f1d8",
      "parents": [
        "e460d69efffbba7e45e8335d45348eca0bb32a79"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 15:13:43 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 15:13:43 2020 +0700"
      },
      "message": "RBAC model test\n"
    },
    {
      "commit": "e460d69efffbba7e45e8335d45348eca0bb32a79",
      "tree": "078035ca143b34ce102b1629dbf4c24f5ca61bb8",
      "parents": [
        "9259a63d3bf5b0ea2ea8f392c286ea62807c2f29"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 14:59:59 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 14:59:59 2020 +0700"
      },
      "message": "add list_policies test\n"
    },
    {
      "commit": "9259a63d3bf5b0ea2ea8f392c286ea62807c2f29",
      "tree": "db63a3b90a4cf9e2cc8ffecedef1096d625542cb",
      "parents": [
        "632922c188eb0225e29192b8b269a0f55f49d82f"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 14:24:36 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 14:24:36 2020 +0700"
      },
      "message": "ACL model test\n"
    },
    {
      "commit": "632922c188eb0225e29192b8b269a0f55f49d82f",
      "tree": "814deadf5ebd1fe0fe51c103a356a2ae4aaa3a4f",
      "parents": [
        "d04829ffb55c35fdababce66995524fba3c59ca2"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 00:15:19 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 00:15:19 2020 +0700"
      },
      "message": "move RoleGroup to internal\n"
    },
    {
      "commit": "d04829ffb55c35fdababce66995524fba3c59ca2",
      "tree": "0711c1633c0c5769e2e6c4d3f9865729568703e1",
      "parents": [
        "a01f55d6be513307420c1ddaabe1a676bd625e56"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 00:04:47 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Wed Apr 01 00:04:47 2020 +0700"
      },
      "message": "fix doctest\n"
    },
    {
      "commit": "a01f55d6be513307420c1ddaabe1a676bd625e56",
      "tree": "2645937b75c95bd8a169f7923496c296132628d6",
      "parents": [
        "180e18d5554066a55ad2cd101cf3f77765640596"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Tue Mar 31 23:07:58 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Tue Mar 31 23:07:58 2020 +0700"
      },
      "message": "add doctest for invalid config file\n"
    },
    {
      "commit": "180e18d5554066a55ad2cd101cf3f77765640596",
      "tree": "57056b2adda0a466cc03773e6cf470f1e8010c50",
      "parents": [
        "e412ab91e0308d98143b34abc361a7fa9a48881e"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Tue Mar 31 23:05:25 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Tue Mar 31 23:05:25 2020 +0700"
      },
      "message": "add doctest\n"
    },
    {
      "commit": "e412ab91e0308d98143b34abc361a7fa9a48881e",
      "tree": "81e3a5b2b27c6eacf59b42461f7a217d42ebd667",
      "parents": [
        "4767e7b6240000057a23d8d195dd28725e320f54"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Tue Mar 31 22:08:11 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Tue Mar 31 22:08:11 2020 +0700"
      },
      "message": "refacter has_policy_key?\n"
    },
    {
      "commit": "4767e7b6240000057a23d8d195dd28725e320f54",
      "tree": "9ec6dcb7d7d11ff0e215090484652f073f53f3b2",
      "parents": [
        "a0ff4270caac226d6a978571b2c96157cffd693f"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Tue Mar 31 22:06:01 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Tue Mar 31 22:06:01 2020 +0700"
      },
      "message": "rename role definition ro role mappings\n"
    },
    {
      "commit": "a0ff4270caac226d6a978571b2c96157cffd693f",
      "tree": "e051ab17f08b866e2107e3cff9609886238a023a",
      "parents": [
        "8ea1688f8c3c75859110138ddff16a09601159c4"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Tue Mar 31 01:18:55 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Tue Mar 31 01:18:55 2020 +0700"
      },
      "message": "add validations when parsing config file\n"
    },
    {
      "commit": "8ea1688f8c3c75859110138ddff16a09601159c4",
      "tree": "51c43ed056f280064c0ec1d6b34fcb063748fee6",
      "parents": [
        "bb1489a15eaf53d25aa03083f1a604a4adf91fbb"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Mon Mar 30 23:47:27 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Mon Mar 30 23:47:27 2020 +0700"
      },
      "message": "fixed alias\n"
    },
    {
      "commit": "bb1489a15eaf53d25aa03083f1a604a4adf91fbb",
      "tree": "0816d810b71a147894d9270128c9fad888a547ae",
      "parents": [
        "160bed366883845573facacce9959b01f97d9dfd"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Mon Mar 30 22:07:20 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Mon Mar 30 22:07:20 2020 +0700"
      },
      "message": "remove Emacs backup file\n"
    },
    {
      "commit": "160bed366883845573facacce9959b01f97d9dfd",
      "tree": "9fdb6677fdc3629cb8981950c9ff2e0cf2ed1389",
      "parents": [
        "e11e4e5b1c5a35ae42c7a7416d9d470bcabf0c83"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Mon Mar 30 22:03:00 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Mon Mar 30 22:03:00 2020 +0700"
      },
      "message": "Restructured\n"
    },
    {
      "commit": "e11e4e5b1c5a35ae42c7a7416d9d470bcabf0c83",
      "tree": "2055beb8aa57e5f64ef21f9d5f1cf8490eacd22b",
      "parents": [
        "b2ace86bbe85dabb7dbdd78188fb3eb7c9a30101"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Sun Mar 29 20:37:44 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Sun Mar 29 20:37:44 2020 +0700"
      },
      "message": "implement role group\n"
    },
    {
      "commit": "b2ace86bbe85dabb7dbdd78188fb3eb7c9a30101",
      "tree": "e14c0ce8524775336ead72ede211ab9279835479",
      "parents": [
        "50f3300146392f188f577bd6a880033d882f1fae"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Sun Mar 29 15:46:32 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Sun Mar 29 15:46:32 2020 +0700"
      },
      "message": "digraph to model role inheritance in (H)RBAC system\n"
    },
    {
      "commit": "50f3300146392f188f577bd6a880033d882f1fae",
      "tree": "8262d3f36c465dc5af7129608938876ddd0e9d81",
      "parents": [
        "0cbf55920443edcefd7476f3a09ba69dd7af572a"
      ],
      "author": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Sat Mar 28 19:58:29 2020 +0700"
      },
      "committer": {
        "name": "ngoclinhng",
        "email": "mail2ngoclinh@gmail.com",
        "time": "Sat Mar 28 19:58:29 2020 +0700"
      },
      "message": "add more test\n"
    }
  ],
  "next": "0cbf55920443edcefd7476f3a09ba69dd7af572a"
}
