)]}'
{
  "log": [
    {
      "commit": "f858158e85eb9abdf308fd356d0246b89922b11b",
      "tree": "dae3d06d1bfd878c73531120676aef8e2c0cb24b",
      "parents": [
        "feccd9044272b98821d8d7d36aa707529eb41aae"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Mon Feb 02 11:01:38 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Mon Feb 02 11:01:38 2026 +0800"
      },
      "message": "feat: avoid expensive str() calls in enforce_ex when logging is disabled (#421)\n"
    },
    {
      "commit": "feccd9044272b98821d8d7d36aa707529eb41aae",
      "tree": "0f6daad95742d2b99d18a6142169439050594168",
      "parents": [
        "ac03e8e69d25ec406f170a07190d8792c2d37d1c"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 10:31:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 01 10:31:21 2026 +0800"
      },
      "message": "fix: improve links in README"
    },
    {
      "commit": "ac03e8e69d25ec406f170a07190d8792c2d37d1c",
      "tree": "5d90fe2d0a75d4961b465a030308f353e6023892",
      "parents": [
        "cd0a9eb9fd048191e62a17b63d7e1280b147f532"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 28 19:43:15 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 28 19:43:15 2025 +0800"
      },
      "message": "feat: remove semantic-release changelog and git commit generation (#416)\n"
    },
    {
      "commit": "cd0a9eb9fd048191e62a17b63d7e1280b147f532",
      "tree": "0f0721db3d4b7ea289cd89eb6901e22adf6ac4b9",
      "parents": [
        "ee50e34f79f6cf49fe61e60cae34cbb923174a0e"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 28 19:32:39 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 28 19:32:39 2025 +0800"
      },
      "message": "fix: replace old org links with new org (#414)\n"
    },
    {
      "commit": "ee50e34f79f6cf49fe61e60cae34cbb923174a0e",
      "tree": "8c583bf13ecf9fb3e7b6a4a3b199441e727fe487",
      "parents": [
        "a688c7be9cf49d591d7b10ed85efd7cadb90690b"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 28 19:20:06 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 28 19:20:06 2025 +0800"
      },
      "message": "fix: improve README"
    },
    {
      "commit": "a688c7be9cf49d591d7b10ed85efd7cadb90690b",
      "tree": "5a6b39ad1b7cc9fb596d09212769abf900452ee4",
      "parents": [
        "6c3df05bde9e733d1f76f2db219b9c820014f0c8"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Fri Dec 19 17:29:48 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Fri Dec 19 17:29:48 2025 +0000"
      },
      "message": "chore(release): 2.6.1 [skip ci]\n\n## [2.6.1](https://github.com/casbin/pycasbin/compare/v2.6.0...v2.6.1) (2025-12-19)\n\n### Bug Fixes\n\n* remove irrelevant links in README ([6c3df05](https://github.com/casbin/pycasbin/commit/6c3df05bde9e733d1f76f2db219b9c820014f0c8))\n"
    },
    {
      "commit": "6c3df05bde9e733d1f76f2db219b9c820014f0c8",
      "tree": "9f239d486d5137ef5005ae82accd82f2be190e02",
      "parents": [
        "02fb301281cef35121853df2725a478f7e2feb3c"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Dec 20 01:07:06 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Dec 20 01:07:06 2025 +0800"
      },
      "message": "fix: remove irrelevant links in README"
    },
    {
      "commit": "02fb301281cef35121853df2725a478f7e2feb3c",
      "tree": "5369e3934269687110a79a78be3912f81ddada34",
      "parents": [
        "dbd28b728c617c28f34478bd9dde3f712fc1c37e"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Nov 06 13:14:39 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Nov 06 13:14:39 2025 +0000"
      },
      "message": "chore(release): 2.6.0 [skip ci]\n\n# [2.6.0](https://github.com/casbin/pycasbin/compare/v2.5.0...v2.6.0) (2025-11-06)\n\n### Features\n\n* fix enforce_ex() API returning empty explanations for allow rules in deny models ([#412](https://github.com/casbin/pycasbin/issues/412)) ([dbd28b7](https://github.com/casbin/pycasbin/commit/dbd28b728c617c28f34478bd9dde3f712fc1c37e))\n"
    },
    {
      "commit": "dbd28b728c617c28f34478bd9dde3f712fc1c37e",
      "tree": "9d1d022d8023412cee4916005a7e5edf6104d911",
      "parents": [
        "785e3064fae0a2ab0b33bd3ac37fa70b1ce57f19"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Nov 06 20:58:39 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Nov 06 20:58:39 2025 +0800"
      },
      "message": "feat: fix enforce_ex() API returning empty explanations for allow rules in deny models (#412)\n"
    },
    {
      "commit": "785e3064fae0a2ab0b33bd3ac37fa70b1ce57f19",
      "tree": "86578f73d349e13b31f6c3014c2efe2f94d1bac6",
      "parents": [
        "2e5783cd1c9131c57da78dcacc992d637985b3c9"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Nov 06 12:38:40 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Nov 06 12:38:40 2025 +0000"
      },
      "message": "chore(release): 2.5.0 [skip ci]\n\n# [2.5.0](https://github.com/casbin/pycasbin/compare/v2.4.0...v2.5.0) (2025-11-06)\n\n### Features\n\n* only run CI for Python \"3.12\", \"3.13\" ([2e5783c](https://github.com/casbin/pycasbin/commit/2e5783cd1c9131c57da78dcacc992d637985b3c9))\n* update CI Node.js version to 20 ([5bd7a08](https://github.com/casbin/pycasbin/commit/5bd7a081bb2c1da1415fdfc7b904105de79ef38e))\n"
    },
    {
      "commit": "2e5783cd1c9131c57da78dcacc992d637985b3c9",
      "tree": "0ed137cf2ba97df596a5c4bfda01785c831c45c1",
      "parents": [
        "5bd7a081bb2c1da1415fdfc7b904105de79ef38e"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Nov 06 20:10:49 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Nov 06 20:10:49 2025 +0800"
      },
      "message": "feat: only run CI for Python \"3.12\", \"3.13\"\n"
    },
    {
      "commit": "5bd7a081bb2c1da1415fdfc7b904105de79ef38e",
      "tree": "1eaaf60f6e04284ed4c63ccd3c164b91d726bfb0",
      "parents": [
        "497cb17eae45e24c4f1f24d74175dff64fe7bdc9"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Nov 06 20:10:35 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Nov 06 20:10:35 2025 +0800"
      },
      "message": "feat: update CI Node.js version to 20\n"
    },
    {
      "commit": "497cb17eae45e24c4f1f24d74175dff64fe7bdc9",
      "tree": "99a3a7ff30fdcf52f9670c7f1c2b036f972dc518",
      "parents": [
        "7875d022249cf94338ef7921a8253f577fafa7ee"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Tue Oct 14 09:19:36 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Tue Oct 14 09:19:36 2025 +0000"
      },
      "message": "chore(release): 2.4.0 [skip ci]\n\n# [2.4.0](https://github.com/casbin/pycasbin/compare/v2.3.0...v2.4.0) (2025-10-14)\n\n### Features\n\n* fix inconsistent async handling bug for watcher.update() API ([#406](https://github.com/casbin/pycasbin/issues/406)) ([7875d02](https://github.com/casbin/pycasbin/commit/7875d022249cf94338ef7921a8253f577fafa7ee))\n"
    },
    {
      "commit": "7875d022249cf94338ef7921a8253f577fafa7ee",
      "tree": "a6cb4ec3063507ad45f0d5ae10bc4f61b5973b3a",
      "parents": [
        "243d51f89939fd1fb462e0807a064fdef9cba7db"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Tue Oct 14 16:52:40 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 14 16:52:40 2025 +0800"
      },
      "message": "feat: fix inconsistent async handling bug for watcher.update() API (#406)\n\n"
    },
    {
      "commit": "243d51f89939fd1fb462e0807a064fdef9cba7db",
      "tree": "18ab8c7f04b589f66d20ac2d28a69ad67b1a1942",
      "parents": [
        "0ff7cd86b6d5756a39e1a6ed37e4e505c81210d0"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Oct 04 15:40:54 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Oct 04 15:40:54 2025 +0000"
      },
      "message": "chore(release): 2.3.0 [skip ci]\n\n# [2.3.0](https://github.com/casbin/pycasbin/compare/v2.2.0...v2.3.0) (2025-10-04)\n\n### Features\n\n* use wcmatch.glob for glob_match with \"**\" support ([#402](https://github.com/casbin/pycasbin/issues/402)) ([0ff7cd8](https://github.com/casbin/pycasbin/commit/0ff7cd86b6d5756a39e1a6ed37e4e505c81210d0))\n"
    },
    {
      "commit": "0ff7cd86b6d5756a39e1a6ed37e4e505c81210d0",
      "tree": "c108b8f578367dabc8cd9efe77522a1f1aa047dc",
      "parents": [
        "97d8c8dfaa7def8efd78e0b3c2cb1c1aec1ce2ad"
      ],
      "author": {
        "name": "Theo",
        "email": "87375548+Chimou0@users.noreply.github.com",
        "time": "Sat Oct 04 23:21:33 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 04 23:21:33 2025 +0800"
      },
      "message": "feat: use wcmatch.glob for glob_match with \"**\" support (#402)\n\n"
    },
    {
      "commit": "97d8c8dfaa7def8efd78e0b3c2cb1c1aec1ce2ad",
      "tree": "c8fed86b1fcf9c9abcea6f724b9faee7e9b1182b",
      "parents": [
        "cd76b7cc6f01146a70258146d326e36cb08de991"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Aug 24 02:27:05 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Aug 24 02:27:05 2025 +0000"
      },
      "message": "chore(release): 2.2.0 [skip ci]\n\n# [2.2.0](https://github.com/casbin/pycasbin/compare/v2.1.0...v2.2.0) (2025-08-24)\n\n### Features\n\n* fix bug that get_all_subjects() and similar APIs get wrong result ([#399](https://github.com/casbin/pycasbin/issues/399)) ([cd76b7c](https://github.com/casbin/pycasbin/commit/cd76b7cc6f01146a70258146d326e36cb08de991))\n"
    },
    {
      "commit": "cd76b7cc6f01146a70258146d326e36cb08de991",
      "tree": "fa0f9ac9c80d893b17d3ec45a5fe54a81e808765",
      "parents": [
        "0894af7f4bc9d210e2c6d65df3bff8b53d1690da"
      ],
      "author": {
        "name": "Theo",
        "email": "87375548+Chimou0@users.noreply.github.com",
        "time": "Sun Aug 24 10:08:07 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 24 10:08:07 2025 +0800"
      },
      "message": "feat: fix bug that get_all_subjects() and similar APIs get wrong result (#399)\n\n"
    },
    {
      "commit": "0894af7f4bc9d210e2c6d65df3bff8b53d1690da",
      "tree": "9a4916bcb4c63763ca973e3425cb482d92177a38",
      "parents": [
        "937b64936cdce128ebd9f967b263549f26f1f42f"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Tue Aug 19 14:48:15 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Tue Aug 19 14:48:15 2025 +0000"
      },
      "message": "chore(release): 2.1.0 [skip ci]\n\n# [2.1.0](https://github.com/casbin/pycasbin/compare/v2.0.0...v2.1.0) (2025-08-19)\n\n### Features\n\n* align add_policy API with Golang Casbin ([#398](https://github.com/casbin/pycasbin/issues/398)) ([937b649](https://github.com/casbin/pycasbin/commit/937b64936cdce128ebd9f967b263549f26f1f42f))\n"
    },
    {
      "commit": "937b64936cdce128ebd9f967b263549f26f1f42f",
      "tree": "6197501a7367373cadb9da21dba5bacff132b7d1",
      "parents": [
        "f3f130f389c51ea1099eea6ee8194bfc4ab40c23"
      ],
      "author": {
        "name": "Theo",
        "email": "87375548+Chimou0@users.noreply.github.com",
        "time": "Tue Aug 19 20:13:48 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 19 20:13:48 2025 +0800"
      },
      "message": "feat: align add_policy API with Golang Casbin (#398)\n\n"
    },
    {
      "commit": "f3f130f389c51ea1099eea6ee8194bfc4ab40c23",
      "tree": "1618f01b9b07a7249b83f0a492ec51feb395d4d1",
      "parents": [
        "79105a0e6fad65ee8d8b736557246f7cd21f2371"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Aug 10 03:43:05 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Aug 10 03:43:05 2025 +0000"
      },
      "message": "chore(release): 2.0.0 [skip ci]\n\n# [2.0.0](https://github.com/casbin/pycasbin/compare/v1.50.0...v2.0.0) (2025-08-10)\n\n### Features\n\n* update README.md status badges and improve TestFastEnforcer() ([#396](https://github.com/casbin/pycasbin/issues/396)) ([79105a0](https://github.com/casbin/pycasbin/commit/79105a0e6fad65ee8d8b736557246f7cd21f2371)), closes [#395](https://github.com/casbin/pycasbin/issues/395)\n\n### BREAKING CHANGES\n\n* this work for release PyCasbin v2\n\n* docs: change status badge\n"
    },
    {
      "commit": "79105a0e6fad65ee8d8b736557246f7cd21f2371",
      "tree": "add3764f7e351e1606d428a906194fd4e81d1aff",
      "parents": [
        "ef44178b444a424c97405711ec4b662e0da7668c"
      ],
      "author": {
        "name": "Yuki Yamada",
        "email": "e155417k@st.u-gakugei.ac.jp",
        "time": "Sun Aug 10 12:28:13 2025 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 10 11:28:13 2025 +0800"
      },
      "message": "feat: update README.md status badges and improve TestFastEnforcer() (#396)\n\nBREAKING CHANGE: this work for release PyCasbin v2\n\n* docs: change status badge\n\nfix: #395\n\n* test: the performance test is fuzzy, measure multiple times and compare the average values.\n\n* docs: Update README.md status badge"
    },
    {
      "commit": "ef44178b444a424c97405711ec4b662e0da7668c",
      "tree": "75e36ae520e92fa807c91985b63b0bcf53b33917",
      "parents": [
        "731fcacf5a262a795ce0b931065a0ae8fa67a903"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Aug 09 08:53:27 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Aug 09 08:53:27 2025 +0000"
      },
      "message": "chore(release): 1.50.0 [skip ci]\n\n# [1.50.0](https://github.com/casbin/pycasbin/compare/v1.49.0...v1.50.0) (2025-08-09)\n\n### Features\n\n* upgrade dependencies to latest ([#393](https://github.com/casbin/pycasbin/issues/393)) ([731fcac](https://github.com/casbin/pycasbin/commit/731fcacf5a262a795ce0b931065a0ae8fa67a903))\n"
    },
    {
      "commit": "731fcacf5a262a795ce0b931065a0ae8fa67a903",
      "tree": "bfa88a351b3fa5cded909f43e3394de56640054f",
      "parents": [
        "19c22f21d9877b65d082fef3dd03630e7d26963e"
      ],
      "author": {
        "name": "Theo",
        "email": "87375548+Chimou0@users.noreply.github.com",
        "time": "Sat Aug 09 16:37:15 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 09 16:37:15 2025 +0800"
      },
      "message": "feat: upgrade dependencies to latest (#393)\n\n"
    },
    {
      "commit": "19c22f21d9877b65d082fef3dd03630e7d26963e",
      "tree": "163a0cf0098bd64a0f570893c00caeb0d5867cfb",
      "parents": [
        "cc34db6218fb4a13b12672ae5971cfa14a9658f1"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Wed Aug 06 17:19:20 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Wed Aug 06 17:19:20 2025 +0000"
      },
      "message": "chore(release): 1.49.0 [skip ci]\n\n# [1.49.0](https://github.com/casbin/pycasbin/compare/v1.48.0...v1.49.0) (2025-08-06)\n\n### Features\n\n* add add_grouping_policies_ex and add_named_grouping_policies_ex APIs ([#392](https://github.com/casbin/pycasbin/issues/392)) ([cc34db6](https://github.com/casbin/pycasbin/commit/cc34db6218fb4a13b12672ae5971cfa14a9658f1))\n"
    },
    {
      "commit": "cc34db6218fb4a13b12672ae5971cfa14a9658f1",
      "tree": "944687e702c3959868c759ad00f17b47b55f8792",
      "parents": [
        "daf3827732d68d83605675a848c689bb6569a136"
      ],
      "author": {
        "name": "Theo",
        "email": "87375548+Chimou0@users.noreply.github.com",
        "time": "Thu Aug 07 00:55:03 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 07 00:55:03 2025 +0800"
      },
      "message": "feat: add add_grouping_policies_ex and add_named_grouping_policies_ex APIs (#392)\n\n"
    },
    {
      "commit": "daf3827732d68d83605675a848c689bb6569a136",
      "tree": "c5e17b6a97bdbaab09780dea1e25b45dd9cc81c9",
      "parents": [
        "e0a64f92463b56e17c1acf49b26d82d166d19c37"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Fri Aug 01 16:56:33 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Fri Aug 01 16:56:33 2025 +0000"
      },
      "message": "chore(release): 1.48.0 [skip ci]\n\n# [1.48.0](https://github.com/casbin/pycasbin/compare/v1.47.0...v1.48.0) (2025-08-01)\n\n### Features\n\n* add new APIs: add_policies_ex() and add_named_policies_ex() ([#391](https://github.com/casbin/pycasbin/issues/391)) ([e0a64f9](https://github.com/casbin/pycasbin/commit/e0a64f92463b56e17c1acf49b26d82d166d19c37))\n"
    },
    {
      "commit": "e0a64f92463b56e17c1acf49b26d82d166d19c37",
      "tree": "163763d287a2874f7424ca54ea051fc48bdf6b77",
      "parents": [
        "b42b0be5ffd553c4c5256c024cd5636803f6d67e"
      ],
      "author": {
        "name": "Theo",
        "email": "87375548+Chimou0@users.noreply.github.com",
        "time": "Sat Aug 02 00:29:08 2025 +0800"
      },
      "committer": {
        "name": "Gucheng Wang",
        "email": "nomeguy@qq.com",
        "time": "Sat Aug 02 00:37:30 2025 +0800"
      },
      "message": "feat: add new APIs: add_policies_ex() and add_named_policies_ex() (#391)\n"
    },
    {
      "commit": "b42b0be5ffd553c4c5256c024cd5636803f6d67e",
      "tree": "49aaa4cc067f4d48a3ad6085b0efabc4906011fe",
      "parents": [
        "c0c6065e038224bc9e06c89d0782a6bf01664d8e"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Jul 26 02:26:46 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Jul 26 02:26:46 2025 +0000"
      },
      "message": "chore(release): 1.47.0 [skip ci]\n\n# [1.47.0](https://github.com/casbin/pycasbin/compare/v1.46.0...v1.47.0) (2025-07-26)\n\n### Features\n\n* fix the bug that add_policies does not update policy_map ([#390](https://github.com/casbin/pycasbin/issues/390)) ([c0c6065](https://github.com/casbin/pycasbin/commit/c0c6065e038224bc9e06c89d0782a6bf01664d8e))\n"
    },
    {
      "commit": "c0c6065e038224bc9e06c89d0782a6bf01664d8e",
      "tree": "d3aa6276fe75b0d31bff3f59c7231fabf5186765",
      "parents": [
        "61d9fb65a9f620dd8e6a6f80f6fa77d27d2c8b13"
      ],
      "author": {
        "name": "Theo",
        "email": "87375548+Chimou0@users.noreply.github.com",
        "time": "Sat Jul 26 09:52:32 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 26 09:52:32 2025 +0800"
      },
      "message": "feat: fix the bug that add_policies does not update policy_map (#390)\n\n"
    },
    {
      "commit": "61d9fb65a9f620dd8e6a6f80f6fa77d27d2c8b13",
      "tree": "77fc1cf599549871e493567f7b22d25e3ce35d56",
      "parents": [
        "7c2f2f5303b5f7eea692ea9de4ff62845633a6c1"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Jul 20 11:57:32 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Jul 20 11:57:32 2025 +0000"
      },
      "message": "chore(release): 1.46.0 [skip ci]\n\n# [1.46.0](https://github.com/casbin/pycasbin/compare/v1.45.0...v1.46.0) (2025-07-20)\n\n### Features\n\n* upgrade Python version to 3.8~3.13 ([#387](https://github.com/casbin/pycasbin/issues/387)) ([7c2f2f5](https://github.com/casbin/pycasbin/commit/7c2f2f5303b5f7eea692ea9de4ff62845633a6c1))\n"
    },
    {
      "commit": "7c2f2f5303b5f7eea692ea9de4ff62845633a6c1",
      "tree": "173ef8aea665f79e7d570c4cc8d5af44e1a96808",
      "parents": [
        "a52324502a7c278d18354e8cfe5cab759d665127"
      ],
      "author": {
        "name": "pualcmd",
        "email": "142505049+pualcmd@users.noreply.github.com",
        "time": "Sun Jul 20 19:54:44 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 20 19:54:44 2025 +0800"
      },
      "message": "feat: upgrade Python version to 3.8~3.13 (#387)\n\n"
    },
    {
      "commit": "a52324502a7c278d18354e8cfe5cab759d665127",
      "tree": "ecf77b751eb972f4c5075060f41d90151c6e6247",
      "parents": [
        "d3149e81c36d29e96ebdf3484897461ab86d8afb"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Jun 07 13:06:07 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Jun 07 13:06:07 2025 +0000"
      },
      "message": "chore(release): 1.45.0 [skip ci]\n\n# [1.45.0](https://github.com/casbin/pycasbin/compare/v1.44.0...v1.45.0) (2025-06-07)\n\n### Features\n\n* Optimize `load_policy_line` to avoid quadratic individual-character loop ([#355](https://github.com/casbin/pycasbin/issues/355)) ([d3149e8](https://github.com/casbin/pycasbin/commit/d3149e81c36d29e96ebdf3484897461ab86d8afb))\n"
    },
    {
      "commit": "d3149e81c36d29e96ebdf3484897461ab86d8afb",
      "tree": "5d2f60ae31145b78ca6677048f536b4856c9cd80",
      "parents": [
        "b9dba515a0ecf3ec7b5b2913bf45d1dda5ccf26a"
      ],
      "author": {
        "name": "Huon Wilson",
        "email": "huon@exoflare.io",
        "time": "Sat Jun 07 23:03:11 2025 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 07 21:03:11 2025 +0800"
      },
      "message": "feat: Optimize `load_policy_line` to avoid quadratic individual-character loop (#355)\n\n"
    },
    {
      "commit": "b9dba515a0ecf3ec7b5b2913bf45d1dda5ccf26a",
      "tree": "d58f03d083ddb32c418859c98106f80f6bc5f6a6",
      "parents": [
        "ed77f0e153357e32ca5c50319ea82cdb34da3338"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Jun 07 11:01:39 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Jun 07 11:01:39 2025 +0000"
      },
      "message": "chore(release): 1.44.0 [skip ci]\n\n# [1.44.0](https://github.com/casbin/pycasbin/compare/v1.43.0...v1.44.0) (2025-06-07)\n\n### Features\n\n* update info ([ed77f0e](https://github.com/casbin/pycasbin/commit/ed77f0e153357e32ca5c50319ea82cdb34da3338))\n"
    },
    {
      "commit": "ed77f0e153357e32ca5c50319ea82cdb34da3338",
      "tree": "077c31e7ce1bd86a36f58489a5fb1af2eb245f78",
      "parents": [
        "f5bee266a597f02369de176f29540252aec993a9"
      ],
      "author": {
        "name": "Gucheng Wang",
        "email": "nomeguy@qq.com",
        "time": "Sat Jun 07 18:57:12 2025 +0800"
      },
      "committer": {
        "name": "Gucheng Wang",
        "email": "nomeguy@qq.com",
        "time": "Sat Jun 07 18:57:12 2025 +0800"
      },
      "message": "feat: update info\n"
    },
    {
      "commit": "f5bee266a597f02369de176f29540252aec993a9",
      "tree": "45c2d328ff0466d04dea9919748e1886a11a3a24",
      "parents": [
        "20719ab63528edcb6243f3d66e26729e5be42679"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat May 10 06:57:14 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat May 10 06:57:14 2025 +0000"
      },
      "message": "chore(release): 1.43.0 [skip ci]\n\n# [1.43.0](https://github.com/casbin/pycasbin/compare/v1.42.0...v1.43.0) (2025-05-10)\n\n### Features\n\n* fix CI error ([20719ab](https://github.com/casbin/pycasbin/commit/20719ab63528edcb6243f3d66e26729e5be42679))\n"
    },
    {
      "commit": "20719ab63528edcb6243f3d66e26729e5be42679",
      "tree": "6d0272b4f5ad73965204b9185a9bf86023840bbe",
      "parents": [
        "27952b6db274c27d7f062e7a77b5d1da7d8680ef"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat May 10 14:53:30 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat May 10 14:53:30 2025 +0800"
      },
      "message": "feat: fix CI error\n"
    },
    {
      "commit": "27952b6db274c27d7f062e7a77b5d1da7d8680ef",
      "tree": "7ef10769462964ae258d2efa48d7c81a39c69c18",
      "parents": [
        "ca264023f60ab83c2f852578ccfb8e567b0d7e0c"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Mon Apr 21 18:32:37 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Mon Apr 21 18:32:37 2025 +0000"
      },
      "message": "chore(release): 1.42.0 [skip ci]\n\n# [1.42.0](https://github.com/casbin/pycasbin/compare/v1.41.0...v1.42.0) (2025-04-21)\n\n### Features\n\n* fix missing await in load_increment_filtered_policy() in async_internal_enforcer.py ([#378](https://github.com/casbin/pycasbin/issues/378)) ([ca26402](https://github.com/casbin/pycasbin/commit/ca264023f60ab83c2f852578ccfb8e567b0d7e0c))\n"
    },
    {
      "commit": "ca264023f60ab83c2f852578ccfb8e567b0d7e0c",
      "tree": "06c83e863cc41fc58a1280115052fca52cfee01e",
      "parents": [
        "963115b371322701ff0c822b4a282d8c8e79c6fb"
      ],
      "author": {
        "name": "Konev Vladimir",
        "email": "pmvovchik@gmail.com",
        "time": "Mon Apr 21 21:29:58 2025 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 22 02:29:58 2025 +0800"
      },
      "message": "feat: fix missing await in load_increment_filtered_policy() in async_internal_enforcer.py (#378)\n\n"
    },
    {
      "commit": "963115b371322701ff0c822b4a282d8c8e79c6fb",
      "tree": "0fc4beca743ce14f2bcc0575dd26f45121ea8f46",
      "parents": [
        "f39ace2f0a185bccd2a3722f0265c488f304f200"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Mar 15 15:34:50 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Mar 15 15:34:50 2025 +0000"
      },
      "message": "chore(release): 1.41.0 [skip ci]\n\n# [1.41.0](https://github.com/casbin/pycasbin/compare/v1.40.0...v1.41.0) (2025-03-15)\n\n### Features\n\n* add \"logging_config\" for PyCasbin logging ([#376](https://github.com/casbin/pycasbin/issues/376)) ([f39ace2](https://github.com/casbin/pycasbin/commit/f39ace2f0a185bccd2a3722f0265c488f304f200))\n"
    },
    {
      "commit": "f39ace2f0a185bccd2a3722f0265c488f304f200",
      "tree": "91ca690adbb219bbdc8e7b9a811092a539cb9557",
      "parents": [
        "28886db94ca7e906fe86f15e12adaa0274062173"
      ],
      "author": {
        "name": "LeTeddy",
        "email": "94374764+LeTeddy@users.noreply.github.com",
        "time": "Sat Mar 15 23:32:12 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 15 23:32:12 2025 +0800"
      },
      "message": "feat: add \"logging_config\" for PyCasbin logging (#376)\n\n"
    },
    {
      "commit": "28886db94ca7e906fe86f15e12adaa0274062173",
      "tree": "18bd0ddf83bf6aec2a9c310518bb07840d6f3865",
      "parents": [
        "54208b66d3fd920adaeac2db37a78e74fa9d3b76"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Mar 13 14:13:47 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Mar 13 14:13:47 2025 +0000"
      },
      "message": "chore(release): 1.40.0 [skip ci]\n\n# [1.40.0](https://github.com/casbin/pycasbin/compare/v1.39.0...v1.40.0) (2025-03-13)\n\n### Features\n\n* fix bug that \"!\u003d\" in policies is replaced with \"not\u003d\" ([#375](https://github.com/casbin/pycasbin/issues/375)) ([54208b6](https://github.com/casbin/pycasbin/commit/54208b66d3fd920adaeac2db37a78e74fa9d3b76))\n"
    },
    {
      "commit": "54208b66d3fd920adaeac2db37a78e74fa9d3b76",
      "tree": "6c1191a2d35f7144da7c15b02f9b1f4a85f910cf",
      "parents": [
        "42d1347ccabb4af3c3cdfe15165435489868b147"
      ],
      "author": {
        "name": "LeTeddy",
        "email": "94374764+LeTeddy@users.noreply.github.com",
        "time": "Thu Mar 13 22:10:54 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 13 22:10:54 2025 +0800"
      },
      "message": "feat: fix bug that \"!\u003d\" in policies is replaced with \"not\u003d\" (#375)\n\n"
    },
    {
      "commit": "42d1347ccabb4af3c3cdfe15165435489868b147",
      "tree": "86261ecc603da4f5d927e68baa5054ac7eb596d0",
      "parents": [
        "c433a5996f5819f750f628625fd2a1f8f556e8db"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Tue Mar 11 13:28:29 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Tue Mar 11 13:28:29 2025 +0000"
      },
      "message": "chore(release): 1.39.0 [skip ci]\n\n# [1.39.0](https://github.com/casbin/pycasbin/compare/v1.38.0...v1.39.0) (2025-03-11)\n\n### Features\n\n* Port get_allowed_object_conditions() from Golang to Python ([#373](https://github.com/casbin/pycasbin/issues/373)) ([c433a59](https://github.com/casbin/pycasbin/commit/c433a5996f5819f750f628625fd2a1f8f556e8db))\n"
    },
    {
      "commit": "c433a5996f5819f750f628625fd2a1f8f556e8db",
      "tree": "ddb0d21e96c3c7ce1099f837e74d0f6d2caaad8b",
      "parents": [
        "f3fc6782cb9e2b7e395155e7a642932c8ab409ba"
      ],
      "author": {
        "name": "LeTeddy",
        "email": "94374764+LeTeddy@users.noreply.github.com",
        "time": "Tue Mar 11 21:25:35 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 11 21:25:35 2025 +0800"
      },
      "message": "feat: Port get_allowed_object_conditions() from Golang to Python (#373)\n\n"
    },
    {
      "commit": "f3fc6782cb9e2b7e395155e7a642932c8ab409ba",
      "tree": "2e8a9015bacea720535ddc5398835f44c2ced04f",
      "parents": [
        "bf84eed7305d22338aae185a7d65e0d429927e89"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Jan 12 14:18:53 2025 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Jan 12 14:18:53 2025 +0000"
      },
      "message": "chore(release): 1.38.0 [skip ci]\n\n# [1.38.0](https://github.com/casbin/pycasbin/compare/v1.37.0...v1.38.0) (2025-01-12)\n\n### Features\n\n* add StringAdapter\u0027s statement in init.py ([#367](https://github.com/casbin/pycasbin/issues/367)) ([bf84eed](https://github.com/casbin/pycasbin/commit/bf84eed7305d22338aae185a7d65e0d429927e89))\n"
    },
    {
      "commit": "bf84eed7305d22338aae185a7d65e0d429927e89",
      "tree": "d9d81884591f7e7dc09f0e9f1945d7f93572a204",
      "parents": [
        "c42b55e9cd00f2a1a65bc3bf08df8f823b7d90a0"
      ],
      "author": {
        "name": "Jason",
        "email": "2653009137@qq.com",
        "time": "Sun Jan 12 22:16:04 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 12 22:16:04 2025 +0800"
      },
      "message": "feat: add StringAdapter\u0027s statement in init.py (#367)\n\n"
    },
    {
      "commit": "c42b55e9cd00f2a1a65bc3bf08df8f823b7d90a0",
      "tree": "c570330403bdc1b1956db00040f7aba13198a290",
      "parents": [
        "936d5f68df1d60b233f411489cc69f8b095c899a"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Mon Nov 25 15:03:05 2024 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Mon Nov 25 15:03:05 2024 +0000"
      },
      "message": "chore(release): 1.37.0 [skip ci]\n\n# [1.37.0](https://github.com/casbin/pycasbin/compare/v1.36.3...v1.37.0) (2024-11-25)\n\n### Features\n\n* enhance FilteredFileAdapter to handle flexible filtering for policies and roles ([#360](https://github.com/casbin/pycasbin/issues/360)) ([936d5f6](https://github.com/casbin/pycasbin/commit/936d5f68df1d60b233f411489cc69f8b095c899a))\n"
    },
    {
      "commit": "936d5f68df1d60b233f411489cc69f8b095c899a",
      "tree": "bc43f8b4774eb9fd16795680021c6bcda3e8517a",
      "parents": [
        "7b64b8511979c2a266f54e73deb95dc3f8028a30"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Mon Nov 25 23:00:00 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 25 23:00:00 2024 +0800"
      },
      "message": "feat: enhance FilteredFileAdapter to handle flexible filtering for policies and roles (#360)\n\n* feat: optimize filtered file adapter policy loading\r\n\r\n* style: standardize whitespace and formatting in filtered_file_adapter.py\r\n\r\n* feat: add test\r\n\r\n* test: improve test_load_filtered_policy_with_comments in test_filter.py\r\n\r\n* test: update test description for mixed filter"
    },
    {
      "commit": "7b64b8511979c2a266f54e73deb95dc3f8028a30",
      "tree": "7f3507e91a7ea6bcdc471adc13faa5a3e93f721e",
      "parents": [
        "0199a34e1bb081fcdeaa4547c2be17fa61f52ada"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Mon Jun 24 16:09:04 2024 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Mon Jun 24 16:09:04 2024 +0000"
      },
      "message": "chore(release): 1.36.3 [skip ci]\n\n## [1.36.3](https://github.com/casbin/pycasbin/compare/v1.36.2...v1.36.3) (2024-06-24)\n\n### Bug Fixes\n\n* KeyError: \u0027g\u0027 when build_role_links ([bf9cb44](https://github.com/casbin/pycasbin/commit/bf9cb4403f290b1313a86a2dce1c81eb36a043b0))\n"
    },
    {
      "commit": "0199a34e1bb081fcdeaa4547c2be17fa61f52ada",
      "tree": "cd967d19efebb66aa9c84e7a726091c95dd55cfa",
      "parents": [
        "b03e65a27ddd772f7f7e96bf641a7783a5087722",
        "bf9cb4403f290b1313a86a2dce1c81eb36a043b0"
      ],
      "author": {
        "name": "Jon",
        "email": "techlee@qq.com",
        "time": "Tue Jun 25 00:06:09 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 25 00:06:09 2024 +0800"
      },
      "message": "Merge pull request #351 from casbin/develop\n\nfix: KeyError: \u0027g\u0027 when build_role_links"
    },
    {
      "commit": "bf9cb4403f290b1313a86a2dce1c81eb36a043b0",
      "tree": "cd967d19efebb66aa9c84e7a726091c95dd55cfa",
      "parents": [
        "b03e65a27ddd772f7f7e96bf641a7783a5087722"
      ],
      "author": {
        "name": "Jon Lee",
        "email": "leeqvip@gmail.com",
        "time": "Tue Jun 25 00:01:08 2024 +0800"
      },
      "committer": {
        "name": "Jon Lee",
        "email": "leeqvip@gmail.com",
        "time": "Tue Jun 25 00:01:08 2024 +0800"
      },
      "message": "fix: KeyError: \u0027g\u0027 when build_role_links\n"
    },
    {
      "commit": "b03e65a27ddd772f7f7e96bf641a7783a5087722",
      "tree": "1840278aa1f602fa63494d05b959364431fec03f",
      "parents": [
        "9f6a379d27d69366c156c8536ec48904c8b321ab"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Tue Jun 11 16:28:00 2024 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Tue Jun 11 16:28:00 2024 +0000"
      },
      "message": "chore(release): 1.36.2 [skip ci]\n\n## [1.36.2](https://github.com/casbin/pycasbin/compare/v1.36.1...v1.36.2) (2024-06-11)\n\n### Bug Fixes\n\n* field_index is incorrect in RBAC with domains mode ([#345](https://github.com/casbin/pycasbin/issues/345)) ([#346](https://github.com/casbin/pycasbin/issues/346)) ([9f6a379](https://github.com/casbin/pycasbin/commit/9f6a379d27d69366c156c8536ec48904c8b321ab))\n"
    },
    {
      "commit": "9f6a379d27d69366c156c8536ec48904c8b321ab",
      "tree": "434b3ca0c8032be26193a88ff2ac9df5530769fc",
      "parents": [
        "846cf2490648f344817d53280cfb3c4f03a91f26"
      ],
      "author": {
        "name": "Truco",
        "email": "22969604+truc0@users.noreply.github.com",
        "time": "Wed Jun 12 00:24:53 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 12 00:24:53 2024 +0800"
      },
      "message": "fix: field_index is incorrect in RBAC with domains mode (#345) (#346)\n\n* fix: field_index is incorrect in RBAC with domains mode (#345)\r\n\r\n* chore: replace field name with constant in ManagementEnforcer"
    },
    {
      "commit": "846cf2490648f344817d53280cfb3c4f03a91f26",
      "tree": "34749366c2ab53d31dad664e967d04cc3dd4e0bb",
      "parents": [
        "8aef43bcd03943a860c2cb530f499e67eac38375"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Tue May 21 10:07:38 2024 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Tue May 21 10:07:38 2024 +0000"
      },
      "message": "chore(release): 1.36.1 [skip ci]\n\n## [1.36.1](https://github.com/casbin/pycasbin/compare/v1.36.0...v1.36.1) (2024-05-21)\n\n### Bug Fixes\n\n* FastEnforcer not fast ([#344](https://github.com/casbin/pycasbin/issues/344)) ([8aef43b](https://github.com/casbin/pycasbin/commit/8aef43bcd03943a860c2cb530f499e67eac38375))\n"
    },
    {
      "commit": "8aef43bcd03943a860c2cb530f499e67eac38375",
      "tree": "b388c166439f77e8e495a930ea8fb88647664b76",
      "parents": [
        "d90b8c7d30cff94cb0353feb4d4fae7481d576b9"
      ],
      "author": {
        "name": "mbierma",
        "email": "mbierma@users.noreply.github.com",
        "time": "Mon May 20 22:39:59 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 21 13:39:59 2024 +0800"
      },
      "message": "fix: FastEnforcer not fast (#344)\n\nCo-authored-by: mbierma \u003c3448579-mbierma@users.noreply.gitlab.com\u003e"
    },
    {
      "commit": "d90b8c7d30cff94cb0353feb4d4fae7481d576b9",
      "tree": "c10b3173bfcf44e0777b5fe1fcd0eede9f02d072",
      "parents": [
        "c04d83237264178624780d70ab6dee89854ac87b"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Fri Feb 09 01:47:39 2024 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Fri Feb 09 01:47:39 2024 +0000"
      },
      "message": "chore(release): 1.36.0 [skip ci]\n\n# [1.36.0](https://github.com/casbin/pycasbin/compare/v1.35.0...v1.36.0) (2024-02-09)\n\n### Features\n\n* Added support for async watcher callbacks [#340](https://github.com/casbin/pycasbin/issues/340) ([#341](https://github.com/casbin/pycasbin/issues/341)) ([c04d832](https://github.com/casbin/pycasbin/commit/c04d83237264178624780d70ab6dee89854ac87b))\n"
    },
    {
      "commit": "c04d83237264178624780d70ab6dee89854ac87b",
      "tree": "c0317c3506e0b238f0b374d6acefb8bed0e4e54e",
      "parents": [
        "e40943447799581bd7a91c9519529979768f1d32"
      ],
      "author": {
        "name": "tanasecucliciu",
        "email": "tanasecucliciu@gmail.com",
        "time": "Fri Feb 09 03:43:44 2024 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 09 09:43:44 2024 +0800"
      },
      "message": "feat: Added support for async watcher callbacks #340 (#341)\n\n"
    },
    {
      "commit": "e40943447799581bd7a91c9519529979768f1d32",
      "tree": "2ea4270a00b6293ccaa12ecbc46be3042ce1c5dc",
      "parents": [
        "6dea20476328b947cf1e4e837acf340e371655c6"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Jan 11 14:13:25 2024 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Jan 11 14:13:25 2024 +0000"
      },
      "message": "chore(release): 1.35.0 [skip ci]\n\n# [1.35.0](https://github.com/casbin/pycasbin/compare/v1.34.0...v1.35.0) (2024-01-11)\n\n### Features\n\n* support up to Python 3.12 ([6dea204](https://github.com/casbin/pycasbin/commit/6dea20476328b947cf1e4e837acf340e371655c6))\n"
    },
    {
      "commit": "6dea20476328b947cf1e4e837acf340e371655c6",
      "tree": "bc29c5d4fc862b974966a1fce003ad022745a574",
      "parents": [
        "0a50077deeef07d73ec998b8a4d0ddeec243062c"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@qq.com",
        "time": "Thu Jan 11 22:09:24 2024 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@qq.com",
        "time": "Thu Jan 11 22:09:24 2024 +0800"
      },
      "message": "feat: support up to Python 3.12\n"
    },
    {
      "commit": "0a50077deeef07d73ec998b8a4d0ddeec243062c",
      "tree": "088c3ca74a99d68b718776d4b8022038a222a809",
      "parents": [
        "d557189eecee788e81d20ceae3cb1dee16a84ae7"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Dec 28 04:20:47 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Dec 28 04:20:47 2023 +0000"
      },
      "message": "chore(release): 1.34.0 [skip ci]\n\n# [1.34.0](https://github.com/casbin/pycasbin/compare/v1.33.0...v1.34.0) (2023-12-28)\n\n### Features\n\n* add interface stubs for async adapters ([#335](https://github.com/casbin/pycasbin/issues/335)) ([d557189](https://github.com/casbin/pycasbin/commit/d557189eecee788e81d20ceae3cb1dee16a84ae7))\n"
    },
    {
      "commit": "d557189eecee788e81d20ceae3cb1dee16a84ae7",
      "tree": "36e86a3cea75e37ec7a153c0b6e21214f4eb6019",
      "parents": [
        "47e5ef552ba1b7127256b8f29c788b6096da764d"
      ],
      "author": {
        "name": "Elias Gabriel",
        "email": "me@eliasfgabriel.com",
        "time": "Wed Dec 27 23:17:24 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 28 12:17:24 2023 +0800"
      },
      "message": "feat: add interface stubs for async adapters (#335)\n\n* refactor!: change reorganize imports for sane asyncio ext\r\n\r\n* feat: async adapter interface stubs\r\n\r\n* chore: reflect pr comments\r\n\r\n* chore: revert black bump pending decision\r\n\r\n* refactor: move update adapter interface to persist module\r\n\r\n* ci: bump tooling and linting versions\r\n\r\n* ci: fix linting action"
    },
    {
      "commit": "47e5ef552ba1b7127256b8f29c788b6096da764d",
      "tree": "dd734c3e8eb4d7c9f2118a4353d1047c09b15aa4",
      "parents": [
        "68d3a0747291013a10bc62b73b7f70cbedc96198"
      ],
      "author": {
        "name": "Gucheng",
        "email": "85475922+nomeguy@users.noreply.github.com",
        "time": "Wed Dec 20 01:54:25 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 20 01:54:25 2023 +0800"
      },
      "message": "Update README.md"
    },
    {
      "commit": "68d3a0747291013a10bc62b73b7f70cbedc96198",
      "tree": "0f83b2f22db3532c768f0e6e10cf9c8a47780553",
      "parents": [
        "8b5ec025b7354678383ca630fbb4b4bffd13ae29"
      ],
      "author": {
        "name": "abichinger",
        "email": "andreas.bichinger@gmail.com",
        "time": "Wed Oct 25 16:03:33 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 25 22:03:33 2023 +0800"
      },
      "message": "chore: semantic-release commits pyproject.toml (#332)\n\n"
    },
    {
      "commit": "8b5ec025b7354678383ca630fbb4b4bffd13ae29",
      "tree": "a239d167afc0277aef4d271c00c43469b7d6a39c",
      "parents": [
        "ad259c0b073a0502a27d7bc4cccd37c505261eeb"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Wed Oct 25 13:41:18 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Wed Oct 25 13:41:18 2023 +0000"
      },
      "message": "chore(release): 1.33.0 [skip ci]\n\n# [1.33.0](https://github.com/casbin/pycasbin/compare/v1.32.0...v1.33.0) (2023-10-25)\n\n### Features\n\n* change log level to warning ([#329](https://github.com/casbin/pycasbin/issues/329)) ([124d2c0](https://github.com/casbin/pycasbin/commit/124d2c05a69d61c17fe16c4ef0ad1423f62e0bbb))\n"
    },
    {
      "commit": "ad259c0b073a0502a27d7bc4cccd37c505261eeb",
      "tree": "66627d30e5501b82dd11cc805e95c8cbbe6e78be",
      "parents": [
        "124d2c05a69d61c17fe16c4ef0ad1423f62e0bbb"
      ],
      "author": {
        "name": "abichinger",
        "email": "andreas.bichinger@gmail.com",
        "time": "Wed Oct 25 15:36:52 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 25 21:36:52 2023 +0800"
      },
      "message": "chore: fix release workflow (#331)\n\n"
    },
    {
      "commit": "124d2c05a69d61c17fe16c4ef0ad1423f62e0bbb",
      "tree": "5c0b2941d6d15ca178801a215fc9bd678b35625d",
      "parents": [
        "2683c154a3de585c0d9cec996e98532356bf737f"
      ],
      "author": {
        "name": "Felix Lu",
        "email": "lufelixgh@gmail.com",
        "time": "Wed Oct 25 13:41:04 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 25 13:41:04 2023 +0800"
      },
      "message": "feat: change log level to warning (#329)\n\n"
    },
    {
      "commit": "2683c154a3de585c0d9cec996e98532356bf737f",
      "tree": "c54d615f1fa8b004813a4b0e426d803b2ee40118",
      "parents": [
        "d5cd58a738ad8e8ad0a5010f9cff904736e1719a"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Wed Oct 18 17:31:09 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Wed Oct 18 17:31:09 2023 +0000"
      },
      "message": "chore(release): 1.32.0 [skip ci]\n\n# [1.32.0](https://github.com/casbin/pycasbin/compare/v1.31.2...v1.32.0) (2023-10-18)\n\n### Features\n\n* fix integer priority sorting ([#327](https://github.com/casbin/pycasbin/issues/327)) ([d5cd58a](https://github.com/casbin/pycasbin/commit/d5cd58a738ad8e8ad0a5010f9cff904736e1719a))\n"
    },
    {
      "commit": "d5cd58a738ad8e8ad0a5010f9cff904736e1719a",
      "tree": "d7d452423bf88bae4fd602f2c8bd53599bdbc582",
      "parents": [
        "49880cb753a6073f0d37d18e227ee6a2b02c280d"
      ],
      "author": {
        "name": "Nick Schwane",
        "email": "nick.schwane@tidalcyber.com",
        "time": "Wed Oct 18 13:27:19 2023 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 19 01:27:19 2023 +0800"
      },
      "message": "feat: fix integer priority sorting (#327)\n\n* fix: fix integer priority sorting\r\n\r\n* fix: fix formatting with black"
    },
    {
      "commit": "49880cb753a6073f0d37d18e227ee6a2b02c280d",
      "tree": "a814e785ddc1d49a9a4109533cfa263852549a6a",
      "parents": [
        "4f191f09a48a61b597fb73b62a841a69407dd292"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Fri Oct 06 02:50:31 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Fri Oct 06 02:50:31 2023 +0000"
      },
      "message": "chore(release): 1.31.2 [skip ci]\n\n## [1.31.2](https://github.com/casbin/pycasbin/compare/v1.31.1...v1.31.2) (2023-10-06)\n\n### Bug Fixes\n\n* use pre defined member ([#325](https://github.com/casbin/pycasbin/issues/325)) ([4f191f0](https://github.com/casbin/pycasbin/commit/4f191f09a48a61b597fb73b62a841a69407dd292))\n"
    },
    {
      "commit": "4f191f09a48a61b597fb73b62a841a69407dd292",
      "tree": "35326fbe24006f41db614298d9488286e918ac60",
      "parents": [
        "475508b11fcf6e7188b6eaf05645a34f0ff071ee"
      ],
      "author": {
        "name": "Přemysl Čončka",
        "email": "premysl.concka@vertice.one",
        "time": "Fri Oct 06 04:47:15 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 06 10:47:15 2023 +0800"
      },
      "message": "fix: use pre defined member (#325)\n\n"
    },
    {
      "commit": "475508b11fcf6e7188b6eaf05645a34f0ff071ee",
      "tree": "8ea6d7457097dd10ec26b48a8ef6ba81eca3b9e7",
      "parents": [
        "ae81a5225b4a045c6eba4f3bae6dade68b92b78a"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Sep 30 23:57:43 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Sep 30 23:57:43 2023 +0000"
      },
      "message": "chore(release): 1.31.1 [skip ci]\n\n## [1.31.1](https://github.com/casbin/pycasbin/compare/v1.31.0...v1.31.1) (2023-09-30)\n\n### Bug Fixes\n\n* disabled all logger ([#324](https://github.com/casbin/pycasbin/issues/324)) ([ae81a52](https://github.com/casbin/pycasbin/commit/ae81a5225b4a045c6eba4f3bae6dade68b92b78a))\n"
    },
    {
      "commit": "ae81a5225b4a045c6eba4f3bae6dade68b92b78a",
      "tree": "1a121af227aa25dad67351e01cb777869063fd05",
      "parents": [
        "bbab2733c430431983660b1d0a10f3473f5310f9"
      ],
      "author": {
        "name": "Rémi Germain",
        "email": "germain.remi@protonmail.com",
        "time": "Sun Oct 01 01:54:08 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 01 07:54:08 2023 +0800"
      },
      "message": "fix: disabled all logger (#324)\n\n* fix: disabled all logger\n\n* fix: disabled all logger\n\nCo-authored-by: AurelienGAB \u003c38694184+AurelienGAB@users.noreply.github.com\u003e\n\n* tests: fix disabled logger\n\n---------\n\nCo-authored-by: AurelienGAB \u003c38694184+AurelienGAB@users.noreply.github.com\u003e"
    },
    {
      "commit": "bbab2733c430431983660b1d0a10f3473f5310f9",
      "tree": "ab1499070edbc40d69fc4f7e1f0e751e53235f61",
      "parents": [
        "09ff1191856345b69026e5fa86a361dd5df8bab5"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Sep 24 02:01:08 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Sep 24 02:01:08 2023 +0000"
      },
      "message": "chore(release): 1.31.0 [skip ci]\n\n# [1.31.0](https://github.com/casbin/pycasbin/compare/v1.30.0...v1.31.0) (2023-09-24)\n\n### Features\n\n* add temporal role model ([#320](https://github.com/casbin/pycasbin/issues/320)) ([09ff119](https://github.com/casbin/pycasbin/commit/09ff1191856345b69026e5fa86a361dd5df8bab5))\n"
    },
    {
      "commit": "09ff1191856345b69026e5fa86a361dd5df8bab5",
      "tree": "28aa73b2132f99405918e8b99a6714ee3026f995",
      "parents": [
        "177e36b137276d73f93112254b22895eee4f0bf3"
      ],
      "author": {
        "name": "Haozhe Pan",
        "email": "haozhe.pan@outlook.com",
        "time": "Sun Sep 24 09:55:06 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 24 09:55:06 2023 +0800"
      },
      "message": "feat: add temporal role model (#320)\n\n"
    },
    {
      "commit": "177e36b137276d73f93112254b22895eee4f0bf3",
      "tree": "851aecc1cf6210c125728e0dbffc68ca92ee65ba",
      "parents": [
        "952c208a9d423a86ac4ae6c7fa5ed15bc94e00dc"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Sep 23 14:08:15 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Sep 23 14:08:15 2023 +0000"
      },
      "message": "chore(release): 1.30.0 [skip ci]\n\n# [1.30.0](https://github.com/casbin/pycasbin/compare/v1.29.0...v1.30.0) (2023-09-23)\n\n### Features\n\n* disable logger when log is not enabled ([#321](https://github.com/casbin/pycasbin/issues/321)) ([952c208](https://github.com/casbin/pycasbin/commit/952c208a9d423a86ac4ae6c7fa5ed15bc94e00dc))\n"
    },
    {
      "commit": "952c208a9d423a86ac4ae6c7fa5ed15bc94e00dc",
      "tree": "e404223ef11697297cf347442b6e46e95d6aaa3a",
      "parents": [
        "955d2de0ed3c12b2e036ab66c672d8ae35956c47"
      ],
      "author": {
        "name": "Haozhe Pan",
        "email": "haozhe.pan@outlook.com",
        "time": "Sat Sep 23 22:02:56 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 23 22:02:56 2023 +0800"
      },
      "message": "feat: disable logger when log is not enabled (#321)\n\n"
    },
    {
      "commit": "955d2de0ed3c12b2e036ab66c672d8ae35956c47",
      "tree": "439e796df12905a6a529412f2eb43026778d8dcd",
      "parents": [
        "f964e2aecbee28e4f9b8d1b4fba0d68cad0879fa"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Sep 23 14:00:33 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Sep 23 14:00:33 2023 +0000"
      },
      "message": "chore(release): 1.29.0 [skip ci]\n\n# [1.29.0](https://github.com/casbin/pycasbin/compare/v1.28.0...v1.29.0) (2023-09-23)\n\n### Features\n\n* Fixed the `subjectPriority` sorting algorithm and support for checking the subject role link loop ([#322](https://github.com/casbin/pycasbin/issues/322)) ([f964e2a](https://github.com/casbin/pycasbin/commit/f964e2aecbee28e4f9b8d1b4fba0d68cad0879fa))\n"
    },
    {
      "commit": "f964e2aecbee28e4f9b8d1b4fba0d68cad0879fa",
      "tree": "da65bc4442ab2a674db18ad1037bcd11e0fdec1b",
      "parents": [
        "45bcc8bb79f16f4d40aceed00648ce287a29b52d"
      ],
      "author": {
        "name": "AmisAdmin",
        "email": "34331297+amisadmin@users.noreply.github.com",
        "time": "Sat Sep 23 21:53:19 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 23 21:53:19 2023 +0800"
      },
      "message": "feat: Fixed the `subjectPriority` sorting algorithm and support for checking the subject role link loop (#322)\n\n* fix: Fixed the `subjectPriority` sorting algorithm and support for checking the subject role link loop.\r\n\r\n* fix: Run black"
    },
    {
      "commit": "45bcc8bb79f16f4d40aceed00648ce287a29b52d",
      "tree": "be887c65e1e7880b38ebfa989376eeeb26d3bf23",
      "parents": [
        "67537d6799d04266f5d27bc3f86fa44db1676821"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Sep 16 05:59:07 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sat Sep 16 05:59:07 2023 +0000"
      },
      "message": "chore(release): 1.28.0 [skip ci]\n\n# [1.28.0](https://github.com/casbin/pycasbin/compare/v1.27.0...v1.28.0) (2023-09-16)\n\n### Features\n\n* port fastbin to casbin ([#318](https://github.com/casbin/pycasbin/issues/318)) ([67537d6](https://github.com/casbin/pycasbin/commit/67537d6799d04266f5d27bc3f86fa44db1676821))\n"
    },
    {
      "commit": "67537d6799d04266f5d27bc3f86fa44db1676821",
      "tree": "00d97d52de221f46f6f6dc40613ef68b7fd98b78",
      "parents": [
        "94b21724d459bac5e69f55e663b0832076a8c5b3"
      ],
      "author": {
        "name": "Haozhe Pan",
        "email": "haozhe.pan@outlook.com",
        "time": "Sat Sep 16 13:54:42 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 16 13:54:42 2023 +0800"
      },
      "message": "feat: port fastbin to casbin (#318)\n\n* feat: port fastbin\r\n\r\n* feat: implement FastEnforcer\r\n\r\n* fix: remove redundant init code"
    },
    {
      "commit": "94b21724d459bac5e69f55e663b0832076a8c5b3",
      "tree": "211a70d6561febe8fa5c9a00ce521047ef48c6cf",
      "parents": [
        "817209768528f249644bbe7ac30f1d235bd192da"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Sep 03 09:31:33 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Sep 03 09:31:33 2023 +0000"
      },
      "message": "chore(release): 1.27.0 [skip ci]\n\n# [1.27.0](https://github.com/casbin/pycasbin/compare/v1.26.0...v1.27.0) (2023-09-03)\n\n### Features\n\n* add get_implicit_users_for_resource api ([#317](https://github.com/casbin/pycasbin/issues/317)) ([8172097](https://github.com/casbin/pycasbin/commit/817209768528f249644bbe7ac30f1d235bd192da))\n"
    },
    {
      "commit": "817209768528f249644bbe7ac30f1d235bd192da",
      "tree": "b88b11ffc5a223fe4351a6bd62c321cedce0ee00",
      "parents": [
        "402063a63af829ad67bea104bf52d04f7aecd022"
      ],
      "author": {
        "name": "Haozhe Pan",
        "email": "haozhe.pan@outlook.com",
        "time": "Sun Sep 03 17:26:57 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 03 17:26:57 2023 +0800"
      },
      "message": "feat: add get_implicit_users_for_resource api (#317)\n\n"
    },
    {
      "commit": "402063a63af829ad67bea104bf52d04f7aecd022",
      "tree": "8b3b7921302328c32aaae72b6294fe7982381592",
      "parents": [
        "22507ca7cc47746a03a97b1d051e209ea4ef96d1"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Aug 31 09:47:00 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Aug 31 09:47:00 2023 +0000"
      },
      "message": "chore(release): 1.26.0 [skip ci]\n\n# [1.26.0](https://github.com/casbin/pycasbin/compare/v1.25.0...v1.26.0) (2023-08-31)\n\n### Features\n\n* add get_all_roles_by_domain api ([#316](https://github.com/casbin/pycasbin/issues/316)) ([22507ca](https://github.com/casbin/pycasbin/commit/22507ca7cc47746a03a97b1d051e209ea4ef96d1))\n"
    },
    {
      "commit": "22507ca7cc47746a03a97b1d051e209ea4ef96d1",
      "tree": "03bf0859465fc44ff1121943818563f279cd0b1b",
      "parents": [
        "70cf61572f3ae829e1bac498e6a62300ae3e6455"
      ],
      "author": {
        "name": "Haozhe Pan",
        "email": "haozhe.pan@outlook.com",
        "time": "Thu Aug 31 17:40:25 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 31 17:40:25 2023 +0800"
      },
      "message": "feat: add get_all_roles_by_domain api (#316)\n\n* feat: add get_all_roles_by_domain api\r\n\r\n* feat: use set to improve performance"
    },
    {
      "commit": "70cf61572f3ae829e1bac498e6a62300ae3e6455",
      "tree": "dd0797b178d3a7bbb43554c4c8f25aee36baf49e",
      "parents": [
        "7d29109d67d8f60c6be9fca6b4aaff523a8c156e"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Wed Aug 30 04:45:19 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Wed Aug 30 04:45:19 2023 +0000"
      },
      "message": "chore(release): 1.25.0 [skip ci]\n\n# [1.25.0](https://github.com/casbin/pycasbin/compare/v1.24.0...v1.25.0) (2023-08-30)\n\n### Features\n\n* add key_match5 function for matcher ([#315](https://github.com/casbin/pycasbin/issues/315)) ([7d29109](https://github.com/casbin/pycasbin/commit/7d29109d67d8f60c6be9fca6b4aaff523a8c156e))\n"
    },
    {
      "commit": "7d29109d67d8f60c6be9fca6b4aaff523a8c156e",
      "tree": "0b37cf41baf5d1e602ce0094e839e1845fd3b6db",
      "parents": [
        "ded3c6e002d1e7c6366149583407532404ea97e5"
      ],
      "author": {
        "name": "Haozhe Pan",
        "email": "haozhe.pan@outlook.com",
        "time": "Wed Aug 30 12:42:09 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 30 12:42:09 2023 +0800"
      },
      "message": "feat: add key_match5 function for matcher (#315)\n\n"
    },
    {
      "commit": "ded3c6e002d1e7c6366149583407532404ea97e5",
      "tree": "1b8ee6219efec5384a1db806de2fa78451085997",
      "parents": [
        "e42f3da582f6d864c1c70b00679af9da560fe0f4"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Aug 27 15:01:55 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Aug 27 15:01:55 2023 +0000"
      },
      "message": "chore(release): 1.24.0 [skip ci]\n\n# [1.24.0](https://github.com/casbin/pycasbin/compare/v1.23.1...v1.24.0) (2023-08-27)\n\n### Features\n\n* add field_index_map and constant ([#314](https://github.com/casbin/pycasbin/issues/314)) ([e42f3da](https://github.com/casbin/pycasbin/commit/e42f3da582f6d864c1c70b00679af9da560fe0f4))\n"
    },
    {
      "commit": "e42f3da582f6d864c1c70b00679af9da560fe0f4",
      "tree": "f5756c53257f26fa5a6448429deafe10775e8591",
      "parents": [
        "f0c17866e90f6334a90ccb38f82ef1e53229f2c9"
      ],
      "author": {
        "name": "Haozhe Pan",
        "email": "haozhe.pan@outlook.com",
        "time": "Sun Aug 27 22:57:49 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 27 22:57:49 2023 +0800"
      },
      "message": "feat: add field_index_map and constant (#314)\n\n* feat: add constants\r\n\r\n* feat: add field_index_map"
    },
    {
      "commit": "f0c17866e90f6334a90ccb38f82ef1e53229f2c9",
      "tree": "b5aef96a46fef0486f38a15bc0a8b2ad24ea8c1c",
      "parents": [
        "92abf08bee36c4bd294753c067aed38c8b1a464f"
      ],
      "author": {
        "name": "Jon",
        "email": "techlee@qq.com",
        "time": "Tue Aug 22 18:32:42 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 22 18:32:42 2023 +0800"
      },
      "message": "docs: Django authorization is coming"
    },
    {
      "commit": "92abf08bee36c4bd294753c067aed38c8b1a464f",
      "tree": "746cb1c6a9ea47e04687a31dbe298de69321ed2e",
      "parents": [
        "8d30537149eeea433441ca62802f3bf06e1fd42c"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Aug 10 05:12:35 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Thu Aug 10 05:12:35 2023 +0000"
      },
      "message": "chore(release): 1.23.1 [skip ci]\n\n## [1.23.1](https://github.com/casbin/pycasbin/compare/v1.23.0...v1.23.1) (2023-08-10)\n\n### Bug Fixes\n\n* fix bug in add policy for priority effectors ([#313](https://github.com/casbin/pycasbin/issues/313)) ([8d30537](https://github.com/casbin/pycasbin/commit/8d30537149eeea433441ca62802f3bf06e1fd42c))\n"
    },
    {
      "commit": "8d30537149eeea433441ca62802f3bf06e1fd42c",
      "tree": "29972015480d8187bc7155312d3e049765aa453c",
      "parents": [
        "5e9efef6e9ea62c8f3903e9089f686784a41bec5"
      ],
      "author": {
        "name": "Aditya Nambiar",
        "email": "adityanambiar@fennel.ai",
        "time": "Wed Aug 09 22:07:49 2023 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 10 13:07:49 2023 +0800"
      },
      "message": "fix: fix bug in add policy for priority effectors (#313)\n\n"
    },
    {
      "commit": "5e9efef6e9ea62c8f3903e9089f686784a41bec5",
      "tree": "63523ab4089ab2560897821e134f373518cc2f74",
      "parents": [
        "9fd4ed4e939fefa298140e50d09b2ca0c13f29fb"
      ],
      "author": {
        "name": "Haozhe Pan",
        "email": "haozhe.pan@outlook.com",
        "time": "Mon Aug 07 12:04:41 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 07 12:04:41 2023 +0800"
      },
      "message": "docs: add async enforcer tutorials to README.md (#312)\n\n"
    },
    {
      "commit": "9fd4ed4e939fefa298140e50d09b2ca0c13f29fb",
      "tree": "30b4eac8b075b633ae33ad6833df1eaaacdb75c9",
      "parents": [
        "4192dc22dab3673b44c87d7dee059bd790c12c60"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Aug 06 16:09:44 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Sun Aug 06 16:09:44 2023 +0000"
      },
      "message": "chore(release): 1.23.0 [skip ci]\n\n# [1.23.0](https://github.com/casbin/pycasbin/compare/v1.22.0...v1.23.0) (2023-08-06)\n\n### Features\n\n* add AsyncEnforcer to pycasbin ([#307](https://github.com/casbin/pycasbin/issues/307)) ([4192dc2](https://github.com/casbin/pycasbin/commit/4192dc22dab3673b44c87d7dee059bd790c12c60))\n"
    },
    {
      "commit": "4192dc22dab3673b44c87d7dee059bd790c12c60",
      "tree": "9f9115701febe10752e9df16fc90f823752fe342",
      "parents": [
        "4b8d4ace034eae9ca0d2f9177c28414aab5cd6be"
      ],
      "author": {
        "name": "Haozhe Pan",
        "email": "haozhe.pan@outlook.com",
        "time": "Mon Aug 07 00:05:43 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 07 00:05:43 2023 +0800"
      },
      "message": "feat: add AsyncEnforcer to pycasbin (#307)\n\n* feat: add async_internal_enforcer\r\n\r\n* feat: add async_enforcer\r\n\r\n* feat: add AsyncEnforcer to __init__.py\r\n\r\n* feat: add unittest for AsyncEnforcer\r\n\r\n* feat: lint code\r\n\r\n* feat: lint code\r\n\r\n* feat: lint code"
    },
    {
      "commit": "4b8d4ace034eae9ca0d2f9177c28414aab5cd6be",
      "tree": "fe9e9e52f832a81ba41cf8f39087bafd67cc80de",
      "parents": [
        "c33cabfa0ac65cd09cf812a65e71794d64cb5132"
      ],
      "author": {
        "name": "AmisAdmin",
        "email": "34331297+amisadmin@users.noreply.github.com",
        "time": "Wed Aug 02 14:04:22 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 02 14:04:22 2023 +0800"
      },
      "message": "Fixed using the rbac model subjectPriority policy, loading the policy failed when the role was not associated with the user (#308)\n\n"
    },
    {
      "commit": "c33cabfa0ac65cd09cf812a65e71794d64cb5132",
      "tree": "d004d79f472e822bf74248f98a8427fff5bc9853",
      "parents": [
        "5c688d7db2c7f5139e2192a0a21d3b2ba3f0807b"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Fri Jul 14 05:52:28 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Fri Jul 14 05:52:28 2023 +0000"
      },
      "message": "chore(release): 1.22.0 [skip ci]\n\n# [1.22.0](https://github.com/casbin/pycasbin/compare/v1.21.0...v1.22.0) (2023-07-14)\n\n### Features\n\n* update logger for more precise log level and format control ([#306](https://github.com/casbin/pycasbin/issues/306)) ([5c688d7](https://github.com/casbin/pycasbin/commit/5c688d7db2c7f5139e2192a0a21d3b2ba3f0807b))\n"
    },
    {
      "commit": "5c688d7db2c7f5139e2192a0a21d3b2ba3f0807b",
      "tree": "a9b241a9da660c62777088108366e5db2eb42e4f",
      "parents": [
        "bacc02b4c967cf5ef240428634f4dc1c7b3225df"
      ],
      "author": {
        "name": "BustDot",
        "email": "bust.dev@outlook.com",
        "time": "Fri Jul 14 13:47:17 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 14 13:47:17 2023 +0800"
      },
      "message": "feat: update logger for more precise log level and format control (#306)\n\n* feat: add log config\r\n\r\n* feat: add enable_log for enforcer init\r\n\r\n* feat: lint code"
    },
    {
      "commit": "bacc02b4c967cf5ef240428634f4dc1c7b3225df",
      "tree": "2372234d9865bdef3e95e58c6e71f32b88eb80f1",
      "parents": [
        "784a46f8f403cf18572c22c8779dc1e3dca315ca"
      ],
      "author": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Mon Jul 10 02:41:30 2023 +0000"
      },
      "committer": {
        "name": "semantic-release-bot",
        "email": "semantic-release-bot@martynus.net",
        "time": "Mon Jul 10 02:41:30 2023 +0000"
      },
      "message": "chore(release): 1.21.0 [skip ci]\n\n# [1.21.0](https://github.com/casbin/pycasbin/compare/v1.20.0...v1.21.0) (2023-07-10)\n\n### Features\n\n* add string adapter ([#304](https://github.com/casbin/pycasbin/issues/304)) ([784a46f](https://github.com/casbin/pycasbin/commit/784a46f8f403cf18572c22c8779dc1e3dca315ca))\n"
    }
  ],
  "next": "784a46f8f403cf18572c22c8779dc1e3dca315ca"
}
