)]}'
{
  "log": [
    {
      "commit": "12ac0c9a42e0245be6da0244737309e369aa4869",
      "tree": "bb2d122f94444d768b717ab52f977f419a5701a2",
      "parents": [
        "16b0c8954262c7fbb4f4ecc01add73cf86281a8d"
      ],
      "author": {
        "name": "TT",
        "email": "70463940+Herrtian@users.noreply.github.com",
        "time": "Wed May 06 13:15:36 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 19:15:36 2026 +0800"
      },
      "message": "perf: pre-compile regex in RegexMatch using cached compilation (#1721)\n\nRegexMatch() called regexp.MatchString() which recompiles the pattern on\nevery invocation. Use the existing mustCompileOrGet() cache instead.\n\nRef #1690\n\nCo-authored-by: tengtian \u003ctengtianmoemoe@gamil,com\u003e"
    },
    {
      "commit": "16b0c8954262c7fbb4f4ecc01add73cf86281a8d",
      "tree": "f5c956e357329b6f489266b14e55f5011bfd207b",
      "parents": [
        "74322db8ebd2fa7a9e15e7369db6add65498f83b"
      ],
      "author": {
        "name": "cooronx",
        "email": "54298598+cooronx@users.noreply.github.com",
        "time": "Mon Apr 27 00:58:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 00:58:17 2026 +0800"
      },
      "message": "feat: auto release snapshot versions now (#1728)"
    },
    {
      "commit": "74322db8ebd2fa7a9e15e7369db6add65498f83b",
      "tree": "53a195d76b2867c2de6b61e7db01adbfa0811ca7",
      "parents": [
        "017ae0ea04fa5355fbdda91be64ce6df9feac011"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Apr 24 21:52:57 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Apr 25 17:25:39 2026 +0800"
      },
      "message": "fix: add gFunctionCache boolean option to enforcer\n"
    },
    {
      "commit": "017ae0ea04fa5355fbdda91be64ce6df9feac011",
      "tree": "291fd518e009fb2501940e7f2258fa558b511541",
      "parents": [
        "098508551fe30a208aafc7732b19c779fbc4059d"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Mon Mar 23 20:21:23 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Mon Mar 23 20:21:23 2026 +0800"
      },
      "message": "chore: add config file\n"
    },
    {
      "commit": "098508551fe30a208aafc7732b19c779fbc4059d",
      "tree": "0c832e77cfaf006905cd89395719e7481f34b95c",
      "parents": [
        "0fe9505818b12d66739b8e86887539b3ce57942a"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Fri Mar 13 00:24:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 00:24:31 2026 +0800"
      },
      "message": "feat: add .asf.yaml and DISCLAIMER (#1710)"
    },
    {
      "commit": "0fe9505818b12d66739b8e86887539b3ce57942a",
      "tree": "10ed16deb6af99955ba5464aed767dd1fc6638c2",
      "parents": [
        "6cfc46383e0de4c53eeaf0c9551f94563901e1b3"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Jan 25 16:47:55 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Jan 25 16:47:55 2026 +0800"
      },
      "message": "feat: add Explain() API to explain the authorization decisions via LLM API (#1678)\n"
    },
    {
      "commit": "6cfc46383e0de4c53eeaf0c9551f94563901e1b3",
      "tree": "0c3ceaf587b5c59c1b1f7f219c14022f2cd6e000",
      "parents": [
        "f1f03cceae31e8fd83d34e26cd19cad3eb370d8b"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 08 23:46:41 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 08 23:46:41 2026 +0800"
      },
      "message": "feat: integrate default detector into Enforcer (#1665)\n"
    },
    {
      "commit": "f1f03cceae31e8fd83d34e26cd19cad3eb370d8b",
      "tree": "b3c91f32a911bd387fd6c0da361d4f4700dcb1d5",
      "parents": [
        "9324df7a6efd447a7971c85106cddb232ded7d57"
      ],
      "author": {
        "name": "Konnyaku",
        "email": "50104361+AKonnyaku@users.noreply.github.com",
        "time": "Thu Jan 08 12:29:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 08 12:29:00 2026 +0800"
      },
      "message": "fix: improve CI benchmark table in PR (#1663)\n\n"
    },
    {
      "commit": "9324df7a6efd447a7971c85106cddb232ded7d57",
      "tree": "9d6eebf8be7ed323cbeced030646d6ded402d632",
      "parents": [
        "1aba8b9b0d8d2e2049bcfe60f513d45eaa9bead7"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Jan 06 17:56:14 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Jan 06 17:56:14 2026 +0800"
      },
      "message": "fix: fix \"Undefined function g\" error by copying RM fields in Assertion.copy() (#1658)\n"
    },
    {
      "commit": "1aba8b9b0d8d2e2049bcfe60f513d45eaa9bead7",
      "tree": "4c7c8dd9d8a1392e8db0d26d7230e5a436b8bf53",
      "parents": [
        "b190fce9b29ccd37ccc542d88e0df7ad451c337e"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Jan 06 15:49:32 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Jan 06 15:49:32 2026 +0800"
      },
      "message": "feat: add GetAllUsers() API to separate users from roles (#1652)\n"
    },
    {
      "commit": "b190fce9b29ccd37ccc542d88e0df7ad451c337e",
      "tree": "0215a39da36aeef20f90ad1ac1cb4c2c517b8d86",
      "parents": [
        "61c876f439e98aa51523403dd3e6531e9f4463e3"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Jan 04 23:04:00 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Jan 04 23:04:00 2026 +0800"
      },
      "message": "feat: add logger integration to Casbin core enforcement and policy APIs (#1651)\n"
    },
    {
      "commit": "61c876f439e98aa51523403dd3e6531e9f4463e3",
      "tree": "eb760d4d66733cd89a766d16e1ea9eabab013060",
      "parents": [
        "6b688f06f1316d71601208dbdf9b5a3f3324ad62"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Jan 03 23:08:30 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Jan 03 23:08:30 2026 +0800"
      },
      "message": "feat: add DefaultLogger (#1648)\n"
    },
    {
      "commit": "6b688f06f1316d71601208dbdf9b5a3f3324ad62",
      "tree": "43928d80ae9bd9c1d7e101a53d184f5bef1752ff",
      "parents": [
        "2d7173fe9c6fc4c40c3fe163e05ac740760ab72e"
      ],
      "author": {
        "name": "Zhifan Cui",
        "email": "beifengxuanxiao@126.com",
        "time": "Fri Jan 02 21:09:26 2026 +0800"
      },
      "committer": {
        "name": "Zhifan Cui",
        "email": "beifengxuanxiao@126.com",
        "time": "Sat Jan 03 22:08:29 2026 +0800"
      },
      "message": "fix: add new Logger interface (#1639)\n"
    },
    {
      "commit": "2d7173fe9c6fc4c40c3fe163e05ac740760ab72e",
      "tree": "1435adae817ba93bae35a6473d2f0056f0878b0e",
      "parents": [
        "ea5872b2df9fa3598dc5867dbb719b88f2410c6c"
      ],
      "author": {
        "name": "Zhifan Cui",
        "email": "beifengxuanxiao@126.com",
        "time": "Fri Jan 02 00:37:37 2026 +0800"
      },
      "committer": {
        "name": "Zhifan Cui",
        "email": "beifengxuanxiao@126.com",
        "time": "Fri Jan 02 00:37:37 2026 +0800"
      },
      "message": "feat: remove legacy logger implementation (#1638)\n"
    },
    {
      "commit": "ea5872b2df9fa3598dc5867dbb719b88f2410c6c",
      "tree": "0a67547f38723555a8e631607772235f9cab7010",
      "parents": [
        "c4072514d08df83773ea942a3bdc29dc766ef89d"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Jan 01 01:10:49 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 01 01:10:49 2026 +0800"
      },
      "message": "fix: remove opencollective links in README"
    },
    {
      "commit": "c4072514d08df83773ea942a3bdc29dc766ef89d",
      "tree": "fc41c21410b47bf2200243230bfb5f83f4f65bcf",
      "parents": [
        "53fb4e4f952c1669038ddcea7c7b7d731d895434"
      ],
      "author": {
        "name": "Zhifan Cui",
        "email": "beifengxuanxiao@126.com",
        "time": "Thu Jan 01 01:08:33 2026 +0800"
      },
      "committer": {
        "name": "Zhifan Cui",
        "email": "beifengxuanxiao@126.com",
        "time": "Thu Jan 01 01:08:33 2026 +0800"
      },
      "message": "fix: add DefaultDetector with DFS-based RBAC cycle detection (#1632)\n"
    },
    {
      "commit": "53fb4e4f952c1669038ddcea7c7b7d731d895434",
      "tree": "aaf309d0bc19ea6f8ff640672d2a9b5cf90993be",
      "parents": [
        "0b35dfaa868cf42ce32b1eb5149dfa856260b0b0"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Wed Dec 31 21:05:01 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Wed Dec 31 21:05:01 2025 +0800"
      },
      "message": "feat: remove github-action-benchmark workflow from CI (#1631)\n"
    },
    {
      "commit": "0b35dfaa868cf42ce32b1eb5149dfa856260b0b0",
      "tree": "2f10928ad7a44fc05e8d25ca1b031689f33e2057",
      "parents": [
        "8ed48c5edc2cf76128d1dfe714cdb7df7ed98e5b"
      ],
      "author": {
        "name": "Zhifan Cui",
        "email": "beifengxuanxiao@126.com",
        "time": "Wed Dec 31 20:22:27 2025 +0800"
      },
      "committer": {
        "name": "Zhifan Cui",
        "email": "beifengxuanxiao@126.com",
        "time": "Wed Dec 31 20:22:27 2025 +0800"
      },
      "message": "fix: add Detector interface (#1629)\n"
    },
    {
      "commit": "8ed48c5edc2cf76128d1dfe714cdb7df7ed98e5b",
      "tree": "0d2fc6dfe9566279a8208ee6d73fdbdd17a6ae8a",
      "parents": [
        "f560001334c59afe896b55591c4550e7f37fecd6"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Mon Dec 29 02:22:59 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 29 02:22:59 2025 +0800"
      },
      "message": "chore: update Casbin version to v3 in README"
    },
    {
      "commit": "f560001334c59afe896b55591c4550e7f37fecd6",
      "tree": "d755545b53642b6b53646a099e1f5e6ed56364db",
      "parents": [
        "b3f44909b23dc03bc88504f175fbd890c0cf1761"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 28 12:54:38 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 28 12:54:38 2025 +0800"
      },
      "message": "chore: improve README"
    },
    {
      "commit": "b3f44909b23dc03bc88504f175fbd890c0cf1761",
      "tree": "4bc3cd71ffc9acede188852ce0e4dabbc9c3be96",
      "parents": [
        "0fd3ee80dac487d976cae4cb4344ee01ec63c1a3"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 21 20:42:23 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 21 20:42:23 2025 +0800"
      },
      "message": "fix: disable benchmark comments on merged commits (#1615)\n"
    },
    {
      "commit": "0fd3ee80dac487d976cae4cb4344ee01ec63c1a3",
      "tree": "8b7f75fa5ef4c65171862752cb8bf000c7f27ceb",
      "parents": [
        "4d32aaf15824c9207be385946400df03e01845ba"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 21 18:09:38 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 21 18:09:38 2025 +0800"
      },
      "message": "feat: fix enforcement failure when renaming domain parameter from \u0027dom\u0027 to arbitrary names (#1611)\n"
    },
    {
      "commit": "4d32aaf15824c9207be385946400df03e01845ba",
      "tree": "c3242833edd48ddc87e9b02f979a1c0340293f17",
      "parents": [
        "80dccb76f4a3eb6e9ad04fbf232a1b02dedb4de9"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 21 15:02:31 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 21 15:02:31 2025 +0800"
      },
      "message": "feat: add performance comparison CI for pull requests (#1613)\n"
    },
    {
      "commit": "80dccb76f4a3eb6e9ad04fbf232a1b02dedb4de9",
      "tree": "f07b29db5b698863858dded314b04b6daf64f4d9",
      "parents": [
        "65d40974e5a17d3defd0700fd24ada6a83b06f57"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Dec 19 21:58:52 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Dec 19 21:58:52 2025 +0800"
      },
      "message": "feat: return clear error for invalid JSON when EnableAcceptJsonRequest is enabled (#1610)\n"
    },
    {
      "commit": "65d40974e5a17d3defd0700fd24ada6a83b06f57",
      "tree": "fa5f6c21b23e9a3b7e61d42072b06080c4f94bcd",
      "parents": [
        "cc7d03a05e024f12567f0acf2a3dbad4af9c1b3c"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Dec 13 22:53:26 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Dec 13 22:53:26 2025 +0800"
      },
      "message": "feat: add \"constraint_definition\" section for RBAC policy validation (#1600)\n"
    },
    {
      "commit": "cc7d03a05e024f12567f0acf2a3dbad4af9c1b3c",
      "tree": "083f0cb57caf0c21c4724427f4a83e09f528b500",
      "parents": [
        "3ced5d7f04a5bbfdc439b5dd4c75a3571130e805"
      ],
      "author": {
        "name": "yuhui",
        "email": "166301612+ctfy66@users.noreply.github.com",
        "time": "Sat Dec 13 20:49:50 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Dec 13 20:49:50 2025 +0800"
      },
      "message": "fix: improve line ending for TestCasbinJsGetPermissionForUser() (#1597)\n\n"
    },
    {
      "commit": "3ced5d7f04a5bbfdc439b5dd4c75a3571130e805",
      "tree": "cf8a62c48df1d1a63d470d393599c7f7cc7e256d",
      "parents": [
        "5fc9fd80389499ebc0603c136db5ac98a357bff2"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Wed Dec 10 00:42:44 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Wed Dec 10 00:42:44 2025 +0800"
      },
      "message": "feat!: upgrade to Casbin v3 (#1595)\n\nBREAKING CHANGE: Module path changed from github.com/casbin/casbin/v2 to github.com/casbin/casbin/v3. All import paths must be updated to use v3.\n"
    },
    {
      "commit": "5fc9fd80389499ebc0603c136db5ac98a357bff2",
      "tree": "1de825dd9c1eb7e86190b085e88a21b8f133b41d",
      "parents": [
        "5d3134d00cfcd6af0adb55224ece2e174c8c9d53"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Dec 09 23:44:48 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Dec 09 23:44:48 2025 +0800"
      },
      "message": "feat: remove Travis script and issue templates\n"
    },
    {
      "commit": "5d3134d00cfcd6af0adb55224ece2e174c8c9d53",
      "tree": "51ba43301426c3b348d5767acbe4ea8b27231f9e",
      "parents": [
        "0a136642d96a93a7a0b668bc42e3ec05ec90a330"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 15 01:33:10 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 15 01:33:10 2025 +0800"
      },
      "message": "feat: fix inconsistent backslash handling between matcher literals and CSV-parsed values (#1577)\n"
    },
    {
      "commit": "0a136642d96a93a7a0b668bc42e3ec05ec90a330",
      "tree": "e9ff1cdd8dd070e0c9a31b4ed06bf80f7cb14437",
      "parents": [
        "4b6c4c81ba9ba40193f1e7d48ac9c2f6ef3b51a8"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 15 00:29:08 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 15 00:29:08 2025 +0800"
      },
      "message": "feat: fix stale g() function cache in BuildRoleLinks causing incorrect permissions (#1580)\n"
    },
    {
      "commit": "4b6c4c81ba9ba40193f1e7d48ac9c2f6ef3b51a8",
      "tree": "92874f5ff81d69061023115fe70480bcb17c0be8",
      "parents": [
        "1eef59a0116b31efe66f924e00449f15d3fb457f"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Nov 04 20:29:19 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Nov 04 20:29:19 2025 +0800"
      },
      "message": "feat: improve README\n"
    },
    {
      "commit": "1eef59a0116b31efe66f924e00449f15d3fb457f",
      "tree": "a042efd49b3faf5dc7d2b7203c2e508b8c353407",
      "parents": [
        "bb1e44390d97b9fc9da463a5e690adc96bf33ebe"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Sun Nov 02 11:34:37 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 02 11:34:37 2025 +0800"
      },
      "message": "feat: fix EscapeAssertion (matcher) incorrectly matching p./r. patterns inside quoted strings (#1572)\n\n"
    },
    {
      "commit": "bb1e44390d97b9fc9da463a5e690adc96bf33ebe",
      "tree": "c309aaabc5dd2daf688980380a36e504a2595c05",
      "parents": [
        "91b9cf29fd28f55624ca7b5ae2d495524b88efd1"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Sun Nov 02 01:36:11 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 02 01:36:11 2025 +0800"
      },
      "message": "feat: fix duplicate CI workflow runs and optimize to test only Go 1.21 (#1571)\n\n"
    },
    {
      "commit": "91b9cf29fd28f55624ca7b5ae2d495524b88efd1",
      "tree": "84d1923738468fa59b3ffd6c5838c89157f3d5db",
      "parents": [
        "87e9956dfd0209e5148faa65f6ef06814e8c704f"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Sat Nov 01 14:18:28 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 01 14:18:28 2025 +0800"
      },
      "message": "feat: add OrBAC (Organisation-Based Access Control) model support (#1567)\n\n"
    },
    {
      "commit": "87e9956dfd0209e5148faa65f6ef06814e8c704f",
      "tree": "d1fe996886489736587171fcd9b4c9c1b01025d8",
      "parents": [
        "1ef00acc917aac9da6b5fdef187fa32e97e8a0bc"
      ],
      "author": {
        "name": "Zhendong Liu",
        "email": "148350506+bugoutianzhen123@users.noreply.github.com",
        "time": "Thu Oct 09 23:03:02 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 09 23:03:02 2025 +0800"
      },
      "message": "feat: add ContextEnforcer: add ctx to AddPolicy and other APIs (#1553)\n\n"
    },
    {
      "commit": "1ef00acc917aac9da6b5fdef187fa32e97e8a0bc",
      "tree": "6591c1053a5333a8bcf64ae7b8ca1422273ed8d2",
      "parents": [
        "0c5a5740886f3964361506e92bc5679334ea16f5"
      ],
      "author": {
        "name": "D0000M",
        "email": "62919166+D0000M@users.noreply.github.com",
        "time": "Sun Sep 21 20:55:57 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 21 20:55:57 2025 +0800"
      },
      "message": "feat: enable concurrent transactions using optimistic locking, versioning and conflict detection (#1552)\n\n"
    },
    {
      "commit": "0c5a5740886f3964361506e92bc5679334ea16f5",
      "tree": "703d1d82a7e4f2c80d9f5a5ff66c21a9b77c5d2b",
      "parents": [
        "ea911954aa403f489a13c19a82a9442e35ac67ea"
      ],
      "author": {
        "name": "Zhendong Liu",
        "email": "148350506+bugoutianzhen123@users.noreply.github.com",
        "time": "Thu Sep 18 22:07:51 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 18 22:07:51 2025 +0800"
      },
      "message": "feat: add PBAC model support and test (#1548)\n\n"
    },
    {
      "commit": "ea911954aa403f489a13c19a82a9442e35ac67ea",
      "tree": "4a440cb69babf001816164e141f66bdb6a478c7e",
      "parents": [
        "c2f3635eaf2b5a176916434721421e58ac32cffa"
      ],
      "author": {
        "name": "FAUST.",
        "email": "126341483+FAUST-BENCHOU@users.noreply.github.com",
        "time": "Wed Sep 17 15:37:43 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 17 15:37:43 2025 +0800"
      },
      "message": "feat: add sync to GetRoleManager methods in SyncedEnforcer (#1544)\n\n"
    },
    {
      "commit": "c2f3635eaf2b5a176916434721421e58ac32cffa",
      "tree": "e90b0a10a9be241f2d6ff1f3dfc530655c313abd",
      "parents": [
        "e50e0f2dd8979481790d68e1d04cd49de012badd"
      ],
      "author": {
        "name": "FAUST.",
        "email": "126341483+FAUST-BENCHOU@users.noreply.github.com",
        "time": "Wed Sep 17 15:22:59 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 17 15:22:59 2025 +0800"
      },
      "message": "feat: resolve golangci-lint issues in transaction code (#1545)\n\n"
    },
    {
      "commit": "e50e0f2dd8979481790d68e1d04cd49de012badd",
      "tree": "e4fbff8df88bddcf3a4864ffb4bb539ae4819279",
      "parents": [
        "33e2e501842315865ab105c73b0d6a985df23d0c"
      ],
      "author": {
        "name": "D0000M",
        "email": "62919166+D0000M@users.noreply.github.com",
        "time": "Sun Sep 14 16:10:53 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 14 16:10:53 2025 +0800"
      },
      "message": "feat: add TransactionalEnforcer (#1541)\n\n"
    },
    {
      "commit": "33e2e501842315865ab105c73b0d6a985df23d0c",
      "tree": "a34231bfe98560063888f66c069a54b7327be862",
      "parents": [
        "b75a3e7cc841610a9436e68349ec6af4ffa7af1b"
      ],
      "author": {
        "name": "FAUST.",
        "email": "126341483+FAUST-BENCHOU@users.noreply.github.com",
        "time": "Thu Sep 04 19:40:58 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 04 19:40:58 2025 +0800"
      },
      "message": "feat: add mutex protection for FieldIndexMap to prevent concurrent writes (#1537)\n\n"
    },
    {
      "commit": "b75a3e7cc841610a9436e68349ec6af4ffa7af1b",
      "tree": "51907f040f679ef0b4d8dadf72b88c1aebf05d8a",
      "parents": [
        "c33fbc287d5d8116286647e6e72351d5cc903b50"
      ],
      "author": {
        "name": "yxrxy",
        "email": "1532529704@qq.com",
        "time": "Wed Aug 27 23:38:36 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 27 23:38:36 2025 +0800"
      },
      "message": "feat: add GetImplicitObjectPatternsForUser API to get user\u0027s resource access patterns (#1532)\n\n"
    },
    {
      "commit": "c33fbc287d5d8116286647e6e72351d5cc903b50",
      "tree": "9b56d6095da589d933f349a00eb61372a7761b41",
      "parents": [
        "e92c4ca95f76fe025a047749cef38d472b435ff8"
      ],
      "author": {
        "name": "yxrxy",
        "email": "1532529704@qq.com",
        "time": "Thu Aug 14 23:33:55 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 14 23:33:55 2025 +0800"
      },
      "message": "feat: add GetNamedImplicitUsersForResource() API to support g2 resource roles (#1523)\n\n"
    },
    {
      "commit": "e92c4ca95f76fe025a047749cef38d472b435ff8",
      "tree": "982ace90c5cf282a3a1953975cbc233db1e7c9c0",
      "parents": [
        "5bddec572032391a126459157f6c7564f4161167"
      ],
      "author": {
        "name": "yxrxy",
        "email": "1532529704@qq.com",
        "time": "Tue Aug 12 13:15:17 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 12 13:15:17 2025 +0800"
      },
      "message": "feat: add LBAC model and test case (#1522)\n\n"
    },
    {
      "commit": "5bddec572032391a126459157f6c7564f4161167",
      "tree": "c462f151fbabd9342ed78556b6480bb34e1d7ee8",
      "parents": [
        "5d4a973070592f23ca4fb23a2d8164da1e3b28d9"
      ],
      "author": {
        "name": "Zhendong Liu",
        "email": "148350506+bugoutianzhen123@users.noreply.github.com",
        "time": "Sun Aug 10 21:26:31 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 10 21:26:31 2025 +0800"
      },
      "message": "feat: add Biba model and test case (#1520)\n\n"
    },
    {
      "commit": "5d4a973070592f23ca4fb23a2d8164da1e3b28d9",
      "tree": "7ad6effdb6d6c8986ab9943e814a0fd5014dc938",
      "parents": [
        "a2a6c3aecabb730b741f16ac17d534489c20985a"
      ],
      "author": {
        "name": "yxrxy",
        "email": "1532529704@qq.com",
        "time": "Sat Aug 09 17:10:58 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 09 17:10:58 2025 +0800"
      },
      "message": "feat: improve BLP model example by removing levelMatch() custom function (#1519)\n\n"
    },
    {
      "commit": "a2a6c3aecabb730b741f16ac17d534489c20985a",
      "tree": "36c64e1df6c2ad8680ae45ac9b6b698bbe485f50",
      "parents": [
        "78ef2c179deed40f0d695a9d914fe8f508ea7c5d"
      ],
      "author": {
        "name": "yxrxy",
        "email": "1532529704@qq.com",
        "time": "Fri Aug 08 00:07:40 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 08 00:07:40 2025 +0800"
      },
      "message": "feat: add BLP (Bell-LaPadula) model support and test (#1512)\n\n"
    },
    {
      "commit": "78ef2c179deed40f0d695a9d914fe8f508ea7c5d",
      "tree": "e7de1ac2ae5f96ea67f08ab2bfb80bdd47493c8a",
      "parents": [
        "8701b5ad446f0fd4d563e3cb2aa68345eeee2f91"
      ],
      "author": {
        "name": "yxrxy",
        "email": "1532529704@qq.com",
        "time": "Sun Aug 03 21:52:09 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 03 21:52:09 2025 +0800"
      },
      "message": "feat: ensure consistent maxHierarchyLevel behavior across RBAC functions (#1508)\n\n"
    },
    {
      "commit": "8701b5ad446f0fd4d563e3cb2aa68345eeee2f91",
      "tree": "878f18b12c416b133b5f0ab1a7921d14812416ea",
      "parents": [
        "a58af29ae9d76517da00d751fd84c11ed2540ada"
      ],
      "author": {
        "name": "yxrxy",
        "email": "1532529704@qq.com",
        "time": "Sat Aug 02 14:50:17 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 02 14:50:17 2025 +0800"
      },
      "message": "feat: fix issue that RBAC pattern doesn\u0027t work with conditions (#1506)\n\n"
    },
    {
      "commit": "a58af29ae9d76517da00d751fd84c11ed2540ada",
      "tree": "aa5333a412be2c2a8f496b879bcb0bebbf0b4838",
      "parents": [
        "10e1cbf75e2d0df81ee9d1a03d0d710556afa705"
      ],
      "author": {
        "name": "bugoutianzhen123",
        "email": "148350506+bugoutianzhen123@users.noreply.github.com",
        "time": "Sat Aug 02 13:49:59 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 02 13:49:59 2025 +0800"
      },
      "message": "feat: resolve issue where Enforcer could not retrieve roles from ConditionalRoleManager (#1504)\n\n"
    },
    {
      "commit": "10e1cbf75e2d0df81ee9d1a03d0d710556afa705",
      "tree": "daac86c5bd2ad47500155851b1bd68c4b3e9aa41",
      "parents": [
        "48aadaf619011d1c1eb9c48dbe589d4efcd1d8f1"
      ],
      "author": {
        "name": "Oleksandr Redko",
        "email": "oleksandr.red+github@gmail.com",
        "time": "Fri Aug 01 15:13:38 2025 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 01 20:13:38 2025 +0800"
      },
      "message": "feat: fix typo in the file name (#1505)\n\n"
    },
    {
      "commit": "48aadaf619011d1c1eb9c48dbe589d4efcd1d8f1",
      "tree": "217efb20dd7c701acf71c8625f671a726aa684f4",
      "parents": [
        "85f9da713a738d2d2403b8e5e948f4b2fa0c9ccd"
      ],
      "author": {
        "name": "yxrxy",
        "email": "1532529704@qq.com",
        "time": "Thu Jul 31 20:14:01 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 31 20:14:01 2025 +0800"
      },
      "message": "feat(rbac): resolve GetRolesForUserInDomain issue with conditional role managers (#1503)\n\n"
    },
    {
      "commit": "85f9da713a738d2d2403b8e5e948f4b2fa0c9ccd",
      "tree": "4bd2ac242bd4c83c2babd367f70c4846219a29dd",
      "parents": [
        "992f81819e031523e4cadde2ae84fcfef77f15eb"
      ],
      "author": {
        "name": "D0000M",
        "email": "62919166+D0000M@users.noreply.github.com",
        "time": "Mon Jul 21 20:41:36 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 21 20:41:36 2025 +0800"
      },
      "message": "feat: add ReBAC model test case (#1501)\n\n"
    },
    {
      "commit": "992f81819e031523e4cadde2ae84fcfef77f15eb",
      "tree": "241bb0ecc35ea00a8c37359ecedc95238b177d8e",
      "parents": [
        "f2818d03173236338bd9cc64b9cb0df1a9470284"
      ],
      "author": {
        "name": "D0000M",
        "email": "62919166+D0000M@users.noreply.github.com",
        "time": "Thu Jul 10 14:54:45 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 10 14:54:45 2025 +0800"
      },
      "message": "feat: completely remove domain from RoleManager when calling DeleteDomains (#1496)\n\n"
    },
    {
      "commit": "f2818d03173236338bd9cc64b9cb0df1a9470284",
      "tree": "abe40ec5d1be4352db52818eab6ea422d7a5e725",
      "parents": [
        "c6f6cfcd1a0b22667290b2aba93290a5ee78ca5d"
      ],
      "author": {
        "name": "Yang Tang",
        "email": "tangyang9464@163.com",
        "time": "Sat Jun 21 23:11:39 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 21 23:11:39 2025 +0800"
      },
      "message": "feat: prevent race condition in HasLink with temporary roles (#1491)\n\n"
    },
    {
      "commit": "c6f6cfcd1a0b22667290b2aba93290a5ee78ca5d",
      "tree": "de605753bfef5ffd6c549ddd3937527e4ed20a2a",
      "parents": [
        "79a635bce75f349776d53a6967bd7063f9999206"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Jun 07 16:53:33 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Jun 07 16:53:33 2025 +0800"
      },
      "message": "feat: refactor out abac_test.go\n"
    },
    {
      "commit": "79a635bce75f349776d53a6967bd7063f9999206",
      "tree": "ebc689c74db70057770cd61356c07d7434d3c3a6",
      "parents": [
        "cbeafe9d65b66640346652ab6f4beb4862fa7ca3"
      ],
      "author": {
        "name": "nohup",
        "email": "hi@nohup.life",
        "time": "Wed Jun 04 10:03:31 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 04 10:03:31 2025 +0800"
      },
      "message": "feat: optimize the complexity of `RemovePolicy` from O(n) to O(1) (#1485)\n\n"
    },
    {
      "commit": "cbeafe9d65b66640346652ab6f4beb4862fa7ca3",
      "tree": "7a87187effa3a8829c1577641be677ee4e314424",
      "parents": [
        "133cffdab5d1d4fd4b01da6043f986f4ad164dc6"
      ],
      "author": {
        "name": "Bishoy",
        "email": "Bishoy.Magdy.Adeeb@gmail.com",
        "time": "Sat Apr 19 17:30:00 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 19 23:30:00 2025 +0800"
      },
      "message": "feat: improve SortArray2D() to support variable-length rows and prevent panics (#1481)\n\n"
    },
    {
      "commit": "133cffdab5d1d4fd4b01da6043f986f4ad164dc6",
      "tree": "0d9f781da21bf4854302a43001f2364a83484318",
      "parents": [
        "d4fc6976a9111013a372c6f60953ec92b1d4cf28"
      ],
      "author": {
        "name": "SMALL-head",
        "email": "skyzyc@126.com",
        "time": "Tue Mar 18 08:53:54 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 18 08:53:54 2025 +0800"
      },
      "message": "feat: fix addPolicyWithoutNotify()\u0027s affected value (#1475)\n\n"
    },
    {
      "commit": "d4fc6976a9111013a372c6f60953ec92b1d4cf28",
      "tree": "194b3dbd9cef45349ecb3b9517ed8249c9b66516",
      "parents": [
        "a98973beed58c2236ee453a126970f00d68c0f34"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Dec 28 20:11:50 2024 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Dec 28 20:11:50 2024 +0800"
      },
      "message": "feat: upgrade govaluate to v1.3.0\n"
    },
    {
      "commit": "a98973beed58c2236ee453a126970f00d68c0f34",
      "tree": "7c0a3ba99bffd5b6da2700ecb0d5586a70f1bb3f",
      "parents": [
        "bf330b3f9e4498561890da0ff854cf9e8bf6de5e"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 01 22:33:35 2024 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Dec 01 22:33:35 2024 +0800"
      },
      "message": "feat: improve error handling in LoadPolicyArray()\n"
    },
    {
      "commit": "bf330b3f9e4498561890da0ff854cf9e8bf6de5e",
      "tree": "0d9def723b3b5f953dc4a06d7e90ab342954f7b3",
      "parents": [
        "c55ed50772950c9b6eb80460fed5b889e0df87fd"
      ],
      "author": {
        "name": "Michael Todorovic",
        "email": "michael.todorovic@outlook.com",
        "time": "Sat Nov 16 11:04:38 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 16 18:04:38 2024 +0800"
      },
      "message": "feat: fix typo in model error message (#1460)\n\n"
    },
    {
      "commit": "c55ed50772950c9b6eb80460fed5b889e0df87fd",
      "tree": "c6ba5c8bc15327059defedff27a9bd06fd19d22a",
      "parents": [
        "62cea2664a300899c774b472067b1e5263bbdb78"
      ],
      "author": {
        "name": "Yury Gargay",
        "email": "yury.gargay@gmail.com",
        "time": "Mon Sep 16 13:05:44 2024 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 16 19:05:44 2024 +0800"
      },
      "message": "feat: improve performance by pre-compiling regexes (#1439)\n\n* perf: Precompile regexps\r\n\r\n* perf: Cache dynamic regexps"
    },
    {
      "commit": "62cea2664a300899c774b472067b1e5263bbdb78",
      "tree": "16b503b7fdd47df199f2b2f4e251120152f1a247",
      "parents": [
        "c52a9b5fc5b721e078f411452cb66518c31110e2"
      ],
      "author": {
        "name": "rshen-tibco",
        "email": "85526583+rshen-tibco@users.noreply.github.com",
        "time": "Fri Aug 30 08:55:14 2024 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 30 21:55:14 2024 +0800"
      },
      "message": "feat: support ** in globMatch (#1436)\n\n* feat: support ** in globMatch\r\n\r\n* test: add ** tests for globMatch"
    },
    {
      "commit": "c52a9b5fc5b721e078f411452cb66518c31110e2",
      "tree": "25c928ebf60a2b44de29d1307599706635a75458",
      "parents": [
        "4e8b1f1842fa260e40a89c3570005422d85a9b4e"
      ],
      "author": {
        "name": "沐",
        "email": "MuZhou233@outlook.com",
        "time": "Thu Jul 18 17:36:08 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 19 00:36:08 2024 +0800"
      },
      "message": "feat: update release CI to fix error (#1421)\n\n"
    },
    {
      "commit": "4e8b1f1842fa260e40a89c3570005422d85a9b4e",
      "tree": "391e0d3d9024bb6fe7b27dc3677ca6e1e2667e24",
      "parents": [
        "71c8c84e300cf8b276f28e21e555a39ad793d65c"
      ],
      "author": {
        "name": "Taron",
        "email": "saribekyantaron@gmail.com",
        "time": "Tue Jul 16 12:28:45 2024 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 16 17:28:45 2024 +0800"
      },
      "message": "feat: update casbin/govaluate package to fix nil pointer panic (#1420)\n\n* Update casbin/govaluate package\r\n\r\n* Update casbin/govaluate package"
    },
    {
      "commit": "71c8c84e300cf8b276f28e21e555a39ad793d65c",
      "tree": "bb78c5c1c2cadcf8e589e8264bf8bf29561c5bce",
      "parents": [
        "963e1c441c34f65a891a5b7514002f528b9f8e5f"
      ],
      "author": {
        "name": "George",
        "email": "cococolanosugar@gmail.com",
        "time": "Mon Jun 17 11:44:19 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 17 11:44:19 2024 +0800"
      },
      "message": "feat: CachedEnforcer does not clean the result cached in memory when call ClearPolicy method (#1413)\n\n* fix: CachedEnforcer does not clean the result cached in memory when call ClearPolicy method\r\n\r\n* fix: remove redundant return statement"
    },
    {
      "commit": "963e1c441c34f65a891a5b7514002f528b9f8e5f",
      "tree": "0cf39272d27ed38ec46fc6135d85b50c2ca62164",
      "parents": [
        "e97e3546451f81f5ba5b501a1b806f905383bc43"
      ],
      "author": {
        "name": "Truco",
        "email": "22969604+truc0@users.noreply.github.com",
        "time": "Wed Jun 12 14:15:00 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 12 14:15:00 2024 +0800"
      },
      "message": "feat: GetAllObjects has wrong result in RBAC with domains model (#1411)\n\n- add GetValuesForFieldInPolicyAllTypesByName function to adynamically get fieldIndex for each ptype\r\n- add test for getting objects (subjects and actions are also included) in RBAC with domains mode"
    },
    {
      "commit": "e97e3546451f81f5ba5b501a1b806f905383bc43",
      "tree": "172949e969372f8283d1bda0e1f38400daf1d0ea",
      "parents": [
        "eec10eb077847eb6fbe0060a85ae8f45abc8c31f"
      ],
      "author": {
        "name": "沐",
        "email": "MuZhou233@outlook.com",
        "time": "Mon Jun 10 09:53:29 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 10 09:53:29 2024 +0800"
      },
      "message": "feat: add named g support to `GetNamedImplicitPermissionsForUser` (#1406)\n\n"
    },
    {
      "commit": "eec10eb077847eb6fbe0060a85ae8f45abc8c31f",
      "tree": "87e5814a52a9f96152ffbc2b9f07d18a8a9b3461",
      "parents": [
        "a29d8a89854746c2ac9521a7d6f24cef83011326"
      ],
      "author": {
        "name": "沐",
        "email": "MuZhou233@outlook.com",
        "time": "Sat Jun 08 14:03:31 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 08 14:03:31 2024 +0800"
      },
      "message": "feat: improve `GetNamedImplicitPermissionsForUser` performance (#1405)\n\n"
    },
    {
      "commit": "a29d8a89854746c2ac9521a7d6f24cef83011326",
      "tree": "18c675c9f4fe0efcd7a9256add222dddf5b4edab",
      "parents": [
        "f8fc84e2d243c59554c36c49e0308c0cd5a29b1c"
      ],
      "author": {
        "name": "沐",
        "email": "MuZhou233@outlook.com",
        "time": "Sat Jun 08 02:32:35 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 08 02:32:35 2024 +0800"
      },
      "message": "feat: update PerformancePush config (#1403)\n\n* feat: update PerformancePush config\r\n\r\n* feat: update PerformancePush config"
    },
    {
      "commit": "f8fc84e2d243c59554c36c49e0308c0cd5a29b1c",
      "tree": "aa4784615009fffc41d75a0a2a0097dad3ca0a8c",
      "parents": [
        "20fd5294ad4929e4dd602b2e015d0826b00a6a69"
      ],
      "author": {
        "name": "feellmoose",
        "email": "112599845+feellmoose@users.noreply.github.com",
        "time": "Thu Jun 06 18:28:56 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 06 18:28:56 2024 +0800"
      },
      "message": "feat: check error in GetNamedImplicitPermissionsForUser of GetFieldIndex (#1401)\n\n"
    },
    {
      "commit": "20fd5294ad4929e4dd602b2e015d0826b00a6a69",
      "tree": "854da47118803828f47323762e9323c12b1a6f7b",
      "parents": [
        "75b90b0dff9915330cb91f18a4c91328c61237ef"
      ],
      "author": {
        "name": "沐",
        "email": "MuZhou233@outlook.com",
        "time": "Thu Jun 06 10:48:52 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 06 10:48:52 2024 +0800"
      },
      "message": "feat: refactor `LoadPolicy`, delete `LoadPolicyFast` (#1402)\n\n* feat: cut down the lock range in `LoadPolicy`, delete outdated `LoadPolicyFast`\r\n\r\n* fix: fix logic"
    },
    {
      "commit": "75b90b0dff9915330cb91f18a4c91328c61237ef",
      "tree": "f213f9a8520c1e3a7056227967b21a8cd438eee4",
      "parents": [
        "65cce21db65c97a0adc81cccffcde3952a990c1d"
      ],
      "author": {
        "name": "沐",
        "email": "MuZhou233@outlook.com",
        "time": "Tue Jun 04 09:29:02 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 04 09:29:02 2024 +0800"
      },
      "message": "feat: add ContextFilteredAdapter, ContextBatchAdapter, ContextUpdatableAdapter interfaces (#1399)\n\n* feat: complement context adapter interface\r\n\r\n* fix: rename"
    },
    {
      "commit": "65cce21db65c97a0adc81cccffcde3952a990c1d",
      "tree": "f6c709c30aeab7589a5ac2d1706511ae8783b10b",
      "parents": [
        "44b890de6147962bd055647faef2d4037ca15ac5"
      ],
      "author": {
        "name": "沐",
        "email": "MuZhou233@outlook.com",
        "time": "Tue May 07 09:11:32 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 07 09:11:32 2024 +0800"
      },
      "message": "feat: add error to some of the APIs (#1389)\n\n* fix: add nil checks\r\n\r\n* fix: lint\r\n\r\n* fix: return error at anywhere assertion not found\r\n\r\n* fix: lint\r\n\r\n* fix: test\r\n\r\n* fix: format"
    },
    {
      "commit": "44b890de6147962bd055647faef2d4037ca15ac5",
      "tree": "d21f81eb7fa6c0404c79c20a37e6f6aab5d5dc55",
      "parents": [
        "64efe3d122bfe68c9cf68e1bd174173a61f11743"
      ],
      "author": {
        "name": "Mo Huishou",
        "email": "1@lailin.xyz",
        "time": "Mon Apr 29 18:10:46 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 29 18:10:46 2024 +0800"
      },
      "message": "feat: fix role manager cache error when LoadPolicy and Enforce calls are concurrent (#1387)\n\n"
    },
    {
      "commit": "64efe3d122bfe68c9cf68e1bd174173a61f11743",
      "tree": "754166e107cbdf88808ff07c3fac60278e395a88",
      "parents": [
        "4ab2e54d2b18e83179bec7d7352170efdc1131ad"
      ],
      "author": {
        "name": "HongKuang",
        "email": "166261675+HongKuang@users.noreply.github.com",
        "time": "Sun Apr 07 17:21:56 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 07 17:21:56 2024 +0800"
      },
      "message": "fix: fix some typos (#1382)\n\nSigned-off-by: hongkuang \u003cliurenhong@outlook.com\u003e"
    },
    {
      "commit": "4ab2e54d2b18e83179bec7d7352170efdc1131ad",
      "tree": "0a4670f95d9262ddf93f7969e9c38b8b8eb53678",
      "parents": [
        "ef8210485de872f8159394c1b1cdaee000a5d0b2"
      ],
      "author": {
        "name": "沐",
        "email": "MuZhou233@outlook.com",
        "time": "Sun Apr 07 14:22:56 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 07 14:22:56 2024 +0800"
      },
      "message": "feat: remove Adapter requirement in ContextAdapter (#1381)\n\n"
    },
    {
      "commit": "ef8210485de872f8159394c1b1cdaee000a5d0b2",
      "tree": "ae8976090831330bc1029ab7642f368aa771be95",
      "parents": [
        "c929fd5c8ae14c5e9b598bf97ade68279ae7da42"
      ],
      "author": {
        "name": "Marif",
        "email": "77922966+Marif226@users.noreply.github.com",
        "time": "Sun Mar 31 09:17:01 2024 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 31 12:17:01 2024 +0800"
      },
      "message": "feat: delete grouping policies with index 0 as well in DeleteRole() API (#1364)\n\n"
    },
    {
      "commit": "c929fd5c8ae14c5e9b598bf97ade68279ae7da42",
      "tree": "6e885a019069b6a3e99ca245d968eb3052764680",
      "parents": [
        "2f7619fe0f8c1e038b7d1a538672e2cff9883103"
      ],
      "author": {
        "name": "沐",
        "email": "MuZhou233@outlook.com",
        "time": "Mon Mar 18 22:25:25 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 18 22:25:25 2024 +0800"
      },
      "message": "feat: enable more lint rules (#1376)\n\n* feat: enable `errorlint` lint rule\r\n\r\n* feat: enable `stylecheck` lint rule without `ST1003`\r\n\r\n* feat: enable `revive` lint rule without `unused-parameter`\r\n\r\n* feat: enable `goconst` lint rule\r\n\r\n* feat: enable `cyclop` `funlen` `gocyclo` `nestif` lint rule\r\n\r\n* Revert \"feat: enable `errorlint` lint rule\"\r\n\r\nThis reverts commit 3b56fa99ef418b938f7519fd3d9237d8697c76e1.\r\n\r\n* Revert \"feat: enable `goconst` lint rule\"\r\n\r\nThis reverts commit 8cec40827e79af9e3c92267634b42be6d2972eac."
    },
    {
      "commit": "2f7619fe0f8c1e038b7d1a538672e2cff9883103",
      "tree": "463fa9e689c44c484b524837370eb4901b975adf",
      "parents": [
        "2858196210f79d0f073bcc1d53557dac367674c3"
      ],
      "author": {
        "name": "yeahyear",
        "email": "138094847+yetyear@users.noreply.github.com",
        "time": "Wed Mar 13 16:41:53 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 13 16:41:53 2024 +0800"
      },
      "message": "fix: fix some comment typos (#1374)\n\nSigned-off-by: yetyear \u003cflite@outlook.com\u003e"
    },
    {
      "commit": "2858196210f79d0f073bcc1d53557dac367674c3",
      "tree": "1f9582bc6f74402ae784929d5801f4b54c8ab830",
      "parents": [
        "caebc401dee42fa5a1004d5a29600b343faca185"
      ],
      "author": {
        "name": "沐",
        "email": "MuZhou233@outlook.com",
        "time": "Sun Mar 10 21:28:36 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 10 21:28:36 2024 +0800"
      },
      "message": "feat: add `.golangci-lint.yml` and apply lint (#1372)\n\n* feat: add golangci-lint config\r\n\r\n* ci: update lint ci config\r\n\r\n* ci: disable noisy lint rules\r\n\r\n* refactor: apply lint\r\n\r\n* ci: disable lint rules for future improvement"
    },
    {
      "commit": "caebc401dee42fa5a1004d5a29600b343faca185",
      "tree": "ad875f1485e551085d8eece3406f91ad95137174",
      "parents": [
        "46136eddcf26a00eb3e94fa0e7c117e8944e43d0"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@qq.com",
        "time": "Sat Mar 09 15:33:15 2024 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@qq.com",
        "time": "Sat Mar 09 15:33:15 2024 +0800"
      },
      "message": "fix: upgrade CI Go version to 1.21\n"
    },
    {
      "commit": "46136eddcf26a00eb3e94fa0e7c117e8944e43d0",
      "tree": "cf7339bec9268e44efaaac12a853bacb2eed402c",
      "parents": [
        "5acc40498bb0a720e86dde4dffccb80fbded93d4"
      ],
      "author": {
        "name": "沐",
        "email": "MuZhou233@outlook.com",
        "time": "Sat Mar 09 12:33:47 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 09 12:33:47 2024 +0800"
      },
      "message": "feat: add nil checks on RoleManager (#1371)\n\n"
    },
    {
      "commit": "5acc40498bb0a720e86dde4dffccb80fbded93d4",
      "tree": "6081242703f91e7950deb8519aeb1de9e0cfb604",
      "parents": [
        "c66aada23606abd050caa4587f50a14f56c18022"
      ],
      "author": {
        "name": "DacongDA",
        "email": "47297289+dacongda@users.noreply.github.com",
        "time": "Wed Feb 07 23:34:31 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 07 23:34:31 2024 +0800"
      },
      "message": "feat: return error in getUserPermissions() related APIs (#1358)\n\n"
    },
    {
      "commit": "c66aada23606abd050caa4587f50a14f56c18022",
      "tree": "6c8f25bc648a9f9bfc3a3f7428d1012fb8de8076",
      "parents": [
        "96826309249a07afbdaa8829097ecdc3ea690caf"
      ],
      "author": {
        "name": "Bart Venter",
        "email": "72999113+bartventer@users.noreply.github.com",
        "time": "Sun Dec 31 12:32:49 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 31 18:32:49 2023 +0800"
      },
      "message": "feat: update IEnforcer for missing domain methods (#1350)\n\n"
    },
    {
      "commit": "96826309249a07afbdaa8829097ecdc3ea690caf",
      "tree": "b1d8be853b9632b288c8553f921f9dfb05a90b0f",
      "parents": [
        "953c551d15c8f64bbe2149d23c3cf5fd3b12fa7f"
      ],
      "author": {
        "name": "Gucheng",
        "email": "85475922+nomeguy@users.noreply.github.com",
        "time": "Wed Dec 20 01:50:47 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 20 01:50:47 2023 +0800"
      },
      "message": "Update README.md"
    },
    {
      "commit": "953c551d15c8f64bbe2149d23c3cf5fd3b12fa7f",
      "tree": "a0168762b1cd5571b4b176f5548e4f1c80d7d97a",
      "parents": [
        "6703d2f87e113696f2f613cde1597fcec6afcf31"
      ],
      "author": {
        "name": "yesgs",
        "email": "53203743+yesgs@users.noreply.github.com",
        "time": "Mon Dec 18 20:46:57 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 18 20:46:57 2023 +0800"
      },
      "message": "feat: fix concurrent map writes issue in getCachedResult() (#1348)\n\nCo-authored-by: king \u003cyewei@myhayo.com\u003e"
    },
    {
      "commit": "6703d2f87e113696f2f613cde1597fcec6afcf31",
      "tree": "00445c0aed43f07194a3cfcda2f01365771e009a",
      "parents": [
        "4d1349af467df69aba9b711525f95fa67f454adc"
      ],
      "author": {
        "name": "abichinger",
        "email": "andreas.bichinger@gmail.com",
        "time": "Fri Nov 24 08:55:12 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 24 15:55:12 2023 +0800"
      },
      "message": "feat: support all types for JSON request in ABAC (#1343)\n\n"
    },
    {
      "commit": "4d1349af467df69aba9b711525f95fa67f454adc",
      "tree": "9e70505929baa0363abb1d7c9603a7628b17ebc4",
      "parents": [
        "17becaef6cfd033a07874fce1ade4953e6ead8b5"
      ],
      "author": {
        "name": "abichinger",
        "email": "andreas.bichinger@gmail.com",
        "time": "Wed Nov 22 15:28:37 2023 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 22 22:28:37 2023 +0800"
      },
      "message": "feat: support map in ABAC (#1341)\n\n"
    },
    {
      "commit": "17becaef6cfd033a07874fce1ade4953e6ead8b5",
      "tree": "0c6d6373c498a1bfc104886cb2eeb041767416f3",
      "parents": [
        "c907b9054e5a179fe7d1f64b3003837de3969bcc"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@qq.com",
        "time": "Mon Oct 30 14:05:45 2023 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@qq.com",
        "time": "Mon Oct 30 14:05:45 2023 +0800"
      },
      "message": "Remove PerformancePR.yml for security issue\n"
    },
    {
      "commit": "c907b9054e5a179fe7d1f64b3003837de3969bcc",
      "tree": "aa1f53a4ef1150c4d74263b08901cdfd8753e3da",
      "parents": [
        "0ee4a9bbdcc427ed9b9a21b0a5451d4c2056b721"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@qq.com",
        "time": "Mon Sep 25 19:23:35 2023 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@qq.com",
        "time": "Mon Sep 25 19:23:35 2023 +0800"
      },
      "message": "Improve README table\n"
    },
    {
      "commit": "0ee4a9bbdcc427ed9b9a21b0a5451d4c2056b721",
      "tree": "17cfe6b0858be828114716cf7bb53afe53434019",
      "parents": [
        "1cde2646d10ad1190c0d784c3a1c0e1ace1b5bc9"
      ],
      "author": {
        "name": "鱼竿钓鱼干",
        "email": "46661603+PokIsemaine@users.noreply.github.com",
        "time": "Sat Sep 02 23:35:45 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 02 23:35:45 2023 +0800"
      },
      "message": "fix: requestJsonReplace (#1313)\n\n"
    },
    {
      "commit": "1cde2646d10ad1190c0d784c3a1c0e1ace1b5bc9",
      "tree": "32b870802f80f7e18c48fa411fdab8687d3d4f49",
      "parents": [
        "37b0889678670bc9cb6cd250b140a13711b4ada6"
      ],
      "author": {
        "name": "鱼竿钓鱼干",
        "email": "46661603+PokIsemaine@users.noreply.github.com",
        "time": "Mon Aug 28 14:36:45 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 28 14:36:45 2023 +0800"
      },
      "message": "fix: fix the ContextRoleManager interface (#1308)\n\n* refactor: ContextRoleManager interface\r\n\r\n* refactor: remove RoleManagerWithContext\r\n\r\n* Update role_manager.go\r\n\r\n* Update context_role_manager.go\r\n\r\n---------\r\n\r\nCo-authored-by: hsluoyz \u003chsluoyz@qq.com\u003e"
    },
    {
      "commit": "37b0889678670bc9cb6cd250b140a13711b4ada6",
      "tree": "5c6fd15e7169d032cdf42f5321ebf45985ce3acd",
      "parents": [
        "3b8840336ccc3b33627d4540e4364b39cf05c884"
      ],
      "author": {
        "name": "鱼竿钓鱼干",
        "email": "46661603+PokIsemaine@users.noreply.github.com",
        "time": "Mon Aug 28 13:16:54 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 28 13:16:54 2023 +0800"
      },
      "message": "feat: add ContextAdapter interface to support context in adapters (#1305)\n\n* feat: AdapterWithContext interface\r\n\r\n* refactor: ContextAdapter interface\r\n\r\n* Update adapter_context.go\r\n\r\n* Update adapter_context.go\r\n\r\n* Update adapter_context.go\r\n\r\n---------\r\n\r\nCo-authored-by: hsluoyz \u003chsluoyz@qq.com\u003e"
    },
    {
      "commit": "3b8840336ccc3b33627d4540e4364b39cf05c884",
      "tree": "a2b47085f714157e6e5e5b479fac559df0277ebb",
      "parents": [
        "e46d08ee10207a3fd89972e40590f794612e27d1"
      ],
      "author": {
        "name": "voidman",
        "email": "retmain@foxmail.com",
        "time": "Sun Aug 27 00:59:33 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 27 00:59:33 2023 +0800"
      },
      "message": "feat: fix different types of role definition wrong g function (#1307)\n\n"
    },
    {
      "commit": "e46d08ee10207a3fd89972e40590f794612e27d1",
      "tree": "bd285b1c898fa6aa9700ec68875f09b1a0bc8708",
      "parents": [
        "985a9144d9da82d71a096f6e874f228fe6b48800"
      ],
      "author": {
        "name": "voidman",
        "email": "retmain@foxmail.com",
        "time": "Fri Aug 25 16:32:34 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 25 16:32:34 2023 +0800"
      },
      "message": "fix: different types of role definition panic (#1304)\n\n"
    },
    {
      "commit": "985a9144d9da82d71a096f6e874f228fe6b48800",
      "tree": "83ad722c088522888cc8302fb88284957091bbd1",
      "parents": [
        "a50c61c77acde6f602cfaa79ffdf06be1db86354"
      ],
      "author": {
        "name": "鱼竿钓鱼干",
        "email": "46661603+PokIsemaine@users.noreply.github.com",
        "time": "Sun Aug 20 10:19:00 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 20 10:19:00 2023 +0800"
      },
      "message": "fix: delete comments for the test case (#1301)\n\n"
    },
    {
      "commit": "a50c61c77acde6f602cfaa79ffdf06be1db86354",
      "tree": "e2e417092e0d3e50f191cb6b90ffd9348545c6e7",
      "parents": [
        "c0c6033e344c606da7c9d8d1a78698d3b2bc159b"
      ],
      "author": {
        "name": "鱼竿钓鱼干",
        "email": "46661603+PokIsemaine@users.noreply.github.com",
        "time": "Wed Aug 16 16:14:41 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 16 16:14:41 2023 +0800"
      },
      "message": "feat: support temporal roles model (#1294)\n\n* feat: support temporal roles model\r\n\r\n* refactor: initRmMap\r\n\r\n* refactor: Conditional interface\r\n\r\n* fix: Conditional RoleManager\r\n\r\n* refactor: extract method\r\n\r\n* refactor: rebuildRoleLinks"
    },
    {
      "commit": "c0c6033e344c606da7c9d8d1a78698d3b2bc159b",
      "tree": "14ac1b276f6977389cfd7d73f9c2766919a1d263",
      "parents": [
        "ae1a9341510d705722374e4e0961e94f931f9977"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@qq.com",
        "time": "Tue Aug 15 22:12:24 2023 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@qq.com",
        "time": "Tue Aug 15 23:26:23 2023 +0800"
      },
      "message": "Improve README\n"
    }
  ],
  "next": "ae1a9341510d705722374e4e0961e94f931f9977"
}
