)]}'
{
  "log": [
    {
      "commit": "0b7333f43886e12b946592a0ad09b546f477371b",
      "tree": "1a07eba605789ccf72fa2de84d3c2046dd7f900a",
      "parents": [
        "6bf4c13952a7f5e19d8028cc5862d072d2cc92d8"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Tue Apr 28 07:05:46 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 07:05:46 2026 +0200"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10992)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.11 → v0.15.12](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.11...v0.15.12)\n- [github.com/PyCQA/isort: 8.0.1 → 9.0.0a3](https://github.com/PyCQA/isort/compare/8.0.1...9.0.0a3)\n- [github.com/pre-commit/mirrors-mypy: v1.20.1 → v1.20.2](https://github.com/pre-commit/mirrors-mypy/compare/v1.20.1...v1.20.2)\n\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "6bf4c13952a7f5e19d8028cc5862d072d2cc92d8",
      "tree": "886342882f9de7fbb2a2ba11c87423e7c68c4e41",
      "parents": [
        "b080a21ca0005b13e985456537bb8510919a2672"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Apr 27 20:48:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 20:48:22 2026 +0200"
      },
      "message": "Enable flake8-return in ruff (#10988)\n\nflake8-return rule that flags a local variable assigned only to be returned on the next line."
    },
    {
      "commit": "b080a21ca0005b13e985456537bb8510919a2672",
      "tree": "803c0641bf12d056eafc6dd94503f094e081c733",
      "parents": [
        "0e3b9ebafe25e68a37b8d6fc2e695445e6ad7f60"
      ],
      "author": {
        "name": "Emmanuel Ferdman",
        "email": "emmanuelferdman@gmail.com",
        "time": "Fri Apr 24 05:02:28 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 22:02:28 2026 -0400"
      },
      "message": "Fix inconsistent `used-before-assignment` for partial bindings (#10975)\n\nSigned-off-by: Emmanuel Ferdman \u003cemmanuelferdman@gmail.com\u003e"
    },
    {
      "commit": "0e3b9ebafe25e68a37b8d6fc2e695445e6ad7f60",
      "tree": "0eae3ffe81311df4276b445af58d70510ce2600d",
      "parents": [
        "f3e34396aea4cb185fed3a9f4a4b4795033a342d"
      ],
      "author": {
        "name": "Emmanuel Ferdman",
        "email": "emmanuelferdman@gmail.com",
        "time": "Fri Apr 24 00:13:51 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 23:13:51 2026 +0200"
      },
      "message": "Fix wildcard import false positive (#10980)\n\nSigned-off-by: Emmanuel Ferdman \u003cemmanuelferdman@gmail.com\u003e"
    },
    {
      "commit": "f3e34396aea4cb185fed3a9f4a4b4795033a342d",
      "tree": "ff0370d1f52e467f877780fc9b08ed6351965216",
      "parents": [
        "bf16c00318e2365aad96282cb9b7c5683e26fd56"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Mon Apr 20 21:16:38 2026 +0000"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Apr 20 23:40:29 2026 +0200"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.10 → v0.15.11](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.10...v0.15.11)\n- [github.com/rbubley/mirrors-prettier: v3.8.2 → v3.8.3](https://github.com/rbubley/mirrors-prettier/compare/v3.8.2...v3.8.3)\n"
    },
    {
      "commit": "bf16c00318e2365aad96282cb9b7c5683e26fd56",
      "tree": "63d732b2b7ae0a7bb437d921427f8d15ab1aea0a",
      "parents": [
        "de4ea643f419a93ff21c291c429087d1e23604c3"
      ],
      "author": {
        "name": "Daniël van Noord",
        "email": "13665637+DanielNoord@users.noreply.github.com",
        "time": "Mon Apr 20 21:49:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 21:49:02 2026 +0200"
      },
      "message": "Add the ``files`` option (#7496)\n\n* Add the ``files`` option\n\n* [tests] Cover ``files`` option via the config testing framework\n\nReplace the single unit test for the new ``files`` option with functional\nconfiguration files (TOML + INI) and focused tests that use\n``run_using_a_configuration_file``. Extend the helper with a\n``file_to_lint\u003dNone`` mode so a config can supply files via the ``files``\noption itself without positional args forcing an override.\n\n---------\n\nCo-authored-by: Pierre Sassoulas \u003cpierre.sassoulas@gmail.com\u003e"
    },
    {
      "commit": "de4ea643f419a93ff21c291c429087d1e23604c3",
      "tree": "8a3638641cf2e703e8d3ef6d4f46e98ecb48404b",
      "parents": [
        "777682b10d2de0e745d136bf37fa1645cea4d9fd"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Apr 20 21:06:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 21:06:22 2026 +0200"
      },
      "message": "[test] Update test_enable_message_block for astroid block_range change (#10933)\n\nAstroid\u0027s `block_range` now scopes `try` body pragmas to the `try`\nblock only, so pylint\u0027s message control inside `try` no longer leaks\ninto the `except` handler. Update the expected assertion accordingly."
    },
    {
      "commit": "777682b10d2de0e745d136bf37fa1645cea4d9fd",
      "tree": "1068943315f930c2cd3c5a6986bd8b1bd6f925eb",
      "parents": [
        "d234b34d21192e59d739f752ba69574163c6c1e4"
      ],
      "author": {
        "name": "Matt Van Horn",
        "email": "455140+mvanhorn@users.noreply.github.com",
        "time": "Mon Apr 20 06:55:22 2026 -0700"
      },
      "committer": {
        "name": "Daniël van Noord",
        "email": "13665637+DanielNoord@users.noreply.github.com",
        "time": "Mon Apr 20 20:57:37 2026 +0200"
      },
      "message": "Fix false positive for bad-dunder-name on __suppress_context__\n\nAdd __suppress_context__ to DUNDER_PROPERTIES so the bad-dunder-name\nextension checker stays silent when an exception subclass overrides\nthis BaseException attribute as a property.\n\nCloses #10960\n"
    },
    {
      "commit": "d234b34d21192e59d739f752ba69574163c6c1e4",
      "tree": "028caf9df6ae2b037c82e8e31d4f3cbffb3e589a",
      "parents": [
        "308472e2ed388f0e53d83c023ea5cdb77b7f843d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 20 16:12:44 2026 +0000"
      },
      "committer": {
        "name": "Daniël van Noord",
        "email": "13665637+DanielNoord@users.noreply.github.com",
        "time": "Mon Apr 20 20:55:43 2026 +0200"
      },
      "message": "Bump actions/cache from 5.0.4 to 5.0.5\n\nBumps [actions/cache](https://github.com/actions/cache) from 5.0.4 to 5.0.5.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v5.0.4...v5.0.5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/cache\n  dependency-version: 5.0.5\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "308472e2ed388f0e53d83c023ea5cdb77b7f843d",
      "tree": "1a75f0d18582586df6715d5918299e1a85477d62",
      "parents": [
        "3aaceed0a80aa43b420c9e7a76f529a5746a7027"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sat Apr 18 15:04:53 2026 +0200"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sun Apr 19 09:44:07 2026 +0200"
      },
      "message": "[primer] Refactor ``Comparator.__iter__`` return type and split helpers\n\nThe old signature ``Generator[tuple[str, PackageData, PackageData]]``\ngave no hint about what the two ``PackageData`` entries meant, and used\na partially-specified ``Generator`` where ``Iterator`` is sufficient\n(the method does not ``send`` or ``return``).  Yield a\n``PackageDiff(package, missing, new)`` NamedTuple instead so the role\nof each value is obvious at the type level and at call sites.\n\nIn ``CompareCommand``, inline the short per-package header into\n``_create_comment`` and split the former ``_create_comment_for_package``\nbody into two focused helpers — ``_format_new_messages`` and\n``_format_missing_messages`` — that each receive the relevant\n``PackageData`` directly.  The inner loops are otherwise unchanged\nexcept that the missing-messages URL now sources its commit from\n``missing_messages[\u0027commit\u0027]`` (the same value, sourced from the\n``PackageData`` it belongs to).\n"
    },
    {
      "commit": "3aaceed0a80aa43b420c9e7a76f529a5746a7027",
      "tree": "f562f03d78487c9a648aec4063001a3aeda5ae95",
      "parents": [
        "34b7ec5f18993940183d34a8c0c5b22599aa8a72"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sat Apr 18 14:59:32 2026 +0200"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sun Apr 19 09:44:07 2026 +0200"
      },
      "message": "[primer] Cover multi-package truncation edge cases\n\nAdd two tests for previously-uncovered branches in the primer compare\ncommand:\n\n- ``test_truncated_compare_stops_iterating_packages`` exercises the\n  ``break`` in ``_create_comment`` that stops adding new packages once\n  the running comment has reached ``MAX_GITHUB_COMMENT_LENGTH``.\n- ``test_truncate_falls_back_when_no_space`` covers the fallback in\n  ``_truncate_comment`` that cuts at ``max_len - 10`` directly when the\n  pre-limit prefix contains no whitespace.\n\nCoverage of ``primer_compare_command.py`` rises from 94% to 97%.\n"
    },
    {
      "commit": "34b7ec5f18993940183d34a8c0c5b22599aa8a72",
      "tree": "11668262d5757c1e8953ea11395d46d2650837f0",
      "parents": [
        "7114e31f0fd919cff75516d27225bceb454ab51e"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 21:57:44 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 21:57:44 2026 +0000"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10967)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.9 → v0.15.10](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.9...v0.15.10)\n- [github.com/pre-commit/mirrors-mypy: v1.20.0 → v1.20.1](https://github.com/pre-commit/mirrors-mypy/compare/v1.20.0...v1.20.1)\n- [github.com/rbubley/mirrors-prettier: v3.8.1 → v3.8.2](https://github.com/rbubley/mirrors-prettier/compare/v3.8.1...v3.8.2)\n- [github.com/tox-dev/pyproject-fmt: v2.21.0 → v2.21.1](https://github.com/tox-dev/pyproject-fmt/compare/v2.21.0...v2.21.1)\n\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7114e31f0fd919cff75516d27225bceb454ab51e",
      "tree": "42a9c4de2d7730d043ca97db30bf2fbc2310c2f5",
      "parents": [
        "3d5ce5047003e7d8169293deec5b76beb234111e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 13:28:39 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 13:28:39 2026 +0200"
      },
      "message": "Bump actions/github-script from 8.0.0 to 9.0.0 (#10964)\n\nBumps [actions/github-script](https://github.com/actions/github-script) from 8.0.0 to 9.0.0.\n- [Release notes](https://github.com/actions/github-script/releases)\n- [Commits](https://github.com/actions/github-script/compare/v8.0.0...v9.0.0)\n\n---\nupdated-dependencies:\n- dependency-name: actions/github-script\n  dependency-version: 9.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "3d5ce5047003e7d8169293deec5b76beb234111e",
      "tree": "9abbb08f662980c7c5536c75d35bd52068c7b6d9",
      "parents": [
        "8a912b81daab95014e4de636c981c2403f0b777f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 13:22:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 13:22:47 2026 +0200"
      },
      "message": "Bump actions/create-github-app-token from 3.0.0 to 3.1.1 (#10965)\n\n* Bump actions/create-github-app-token from 3.0.0 to 3.1.1\n\nBumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 3.0.0 to 3.1.1.\n- [Release notes](https://github.com/actions/create-github-app-token/releases)\n- [Commits](https://github.com/actions/create-github-app-token/compare/f8d387b68d61c58ab83c6c016672934102569859...1b10c78c7865c340bc4f6099eb2f838309f1e8c3)\n\n---\nupdated-dependencies:\n- dependency-name: actions/create-github-app-token\n  dependency-version: 3.1.1\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Use client-id\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Marc Mueller \u003c30130371+cdce8p@users.noreply.github.com\u003e"
    },
    {
      "commit": "8a912b81daab95014e4de636c981c2403f0b777f",
      "tree": "e5276f38c09d785c451e7fe21c3a089f8fec01ba",
      "parents": [
        "b715af6c5aaded9a2b62c87acfd491686288f9d7"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 13 10:47:17 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 10:47:17 2026 +0000"
      },
      "message": "Bump actions/upload-artifact from 7.0.0 to 7.0.1 (#10966)"
    },
    {
      "commit": "b715af6c5aaded9a2b62c87acfd491686288f9d7",
      "tree": "6918809ba3392bf663fb4288150173b3738b9451",
      "parents": [
        "3c32fef51ea5bf3f20a5d8b7eadaa6ded1ed4c5b"
      ],
      "author": {
        "name": "Matt Van Horn",
        "email": "mvanhorn@users.noreply.github.com",
        "time": "Tue Apr 07 23:46:20 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 06:46:20 2026 +0000"
      },
      "message": "feat(dict-init-mutate): include suggested dict literal in message (#10935)\n\nThe dict-init-mutate message now shows the dictionary literal\nthat the user could write, truncated if the dict would be too long.\n\nCloses #7819\n\nCo-authored-by: Matt Van Horn \u003c455140+mvanhorn@users.noreply.github.com\u003e\nCo-authored-by: Pierre Sassoulas \u003cpierre.sassoulas@gmail.com\u003e"
    },
    {
      "commit": "3c32fef51ea5bf3f20a5d8b7eadaa6ded1ed4c5b",
      "tree": "09cc57174f7012194863d391a2103bf9498ae893",
      "parents": [
        "374f29e66ef2aac714c6c798518d8ad4f9da6cee"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Tue Apr 07 07:00:09 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 07:00:09 2026 +0000"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10957)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.8 → v0.15.9](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.8...v0.15.9)\n- [github.com/pre-commit/mirrors-mypy: v1.19.1 → v1.20.0](https://github.com/pre-commit/mirrors-mypy/compare/v1.19.1...v1.20.0)\n- [github.com/tox-dev/pyproject-fmt: v2.20.0 → v2.21.0](https://github.com/tox-dev/pyproject-fmt/compare/v2.20.0...v2.21.0)\n\nCo-authored-by: Pierre Sassoulas \u003cpierre.sassoulas@gmail.com\u003e"
    },
    {
      "commit": "374f29e66ef2aac714c6c798518d8ad4f9da6cee",
      "tree": "631c11e3ad89408f256ad5d315864d5f7bd9683c",
      "parents": [
        "074153dfd44821c22127c73ef10ab7dcdb5971a4"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 06 20:10:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 06 20:10:26 2026 +0200"
      },
      "message": "Bump pylint-dev/backport from 2.1.7 to 2.1.8 (#10956)\n\nBumps [pylint-dev/backport](https://github.com/pylint-dev/backport) from 2.1.7 to 2.1.8.\n- [Release notes](https://github.com/pylint-dev/backport/releases)\n- [Commits](https://github.com/pylint-dev/backport/compare/35f69bb3064974a24ba7da019038cd616f09e66d...3adad52e5a8ba2ea731c32037442d507eed68b4c)\n\n---\nupdated-dependencies:\n- dependency-name: pylint-dev/backport\n  dependency-version: 2.1.8\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "074153dfd44821c22127c73ef10ab7dcdb5971a4",
      "tree": "44198748698331ef2c6acffe5d4e891005b0175d",
      "parents": [
        "2d941eaf879a3d8a53117ec9900efb49c8057230"
      ],
      "author": {
        "name": "Mark Byrne",
        "email": "31762852+mbyrnepr2@users.noreply.github.com",
        "time": "Fri Apr 03 20:43:55 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 20:43:55 2026 +0200"
      },
      "message": "Bump the upper bound for `astroid` to fix an editable install error. (#10954)"
    },
    {
      "commit": "2d941eaf879a3d8a53117ec9900efb49c8057230",
      "tree": "9110b9f7cb2a47607af78c51d715e8e051975a05",
      "parents": [
        "031ee316c13befc9229cc8fbf7f44a09ca4cfba8"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Thu Apr 02 22:51:46 2026 +0200"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Fri Apr 03 08:11:45 2026 +0200"
      },
      "message": "[primer] Add multi_package test fixture\n\nTest comparator output across two packages with different change\ncategories: astroid has a changed diagnostic, astropy has a new\nfalse positive and a removed message.\n"
    },
    {
      "commit": "031ee316c13befc9229cc8fbf7f44a09ca4cfba8",
      "tree": "f1e7b986acbf727b882eca848e5d82c5bc673353",
      "parents": [
        "2d28041770ea719cfcffd8ce12278ff4683fd784"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Thu Apr 02 22:14:57 2026 +0200"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Fri Apr 03 08:11:45 2026 +0200"
      },
      "message": "[primer] Use realistic package structure in both_empty fixture\n\nReplace bare {} with a package containing an empty messages list,\nwhich is what the primer actually produces.\n"
    },
    {
      "commit": "2d28041770ea719cfcffd8ce12278ff4683fd784",
      "tree": "7ff31cf12a6dd140f07a76def35ef259b73ab2aa",
      "parents": [
        "792fc68e315746d89b138f8020986ee904da4859"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Wed Apr 01 08:40:54 2026 +0200"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Thu Apr 02 21:01:32 2026 +0200"
      },
      "message": "[primer] Switch from JSONReporter to JSON2Reporter\n\nThe old JSONReporter is deprecated; use JSON2Reporter which provides\nconfidence, absolutePath, and camelCase messageId fields.  Update all\nprimer test fixtures accordingly.\n"
    },
    {
      "commit": "792fc68e315746d89b138f8020986ee904da4859",
      "tree": "66a6fc209990900b9206508dfc6aa7d2ab08a676",
      "parents": [
        "a5fd825adc76774b49a86c9424695ebd2e29a95f"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Wed Apr 01 07:51:10 2026 +0200"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Thu Apr 02 21:01:32 2026 +0200"
      },
      "message": "[primer] Separate Comparator data loading from comparison logic\n\nConstructor now takes pre-loaded PackageMessages dicts, making it\ndirectly testable with in-memory data.  I/O and batch merging move to\na from_json() factory method; _load_json() becomes module-level.\n"
    },
    {
      "commit": "a5fd825adc76774b49a86c9424695ebd2e29a95f",
      "tree": "c5397480d039c21b5bee835c877320273aea06a7",
      "parents": [
        "5ad124924983621a5df69fd72e211881bc75c1df"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Tue Mar 31 13:47:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 31 13:47:50 2026 +0200"
      },
      "message": "[primer] Add blank line after \u003cdetails\u003e tag for proper markdown rendering (#10948)\n\nGitHub markdown requires a blank line after \u003cdetails\u003e for the content\ninside to be rendered as markdown rather than plain text."
    },
    {
      "commit": "5ad124924983621a5df69fd72e211881bc75c1df",
      "tree": "90e75e3fc973571f3eccfa3075b9b877a021a893",
      "parents": [
        "ee216bbae0265821c1e7a7b489b29db1ed38aa98"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Mon Mar 30 21:51:49 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 30 21:51:49 2026 +0000"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10947)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.7 → v0.15.8](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.7...v0.15.8)\n\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ee216bbae0265821c1e7a7b489b29db1ed38aa98",
      "tree": "7a768d16058dc7734d53a6a13096c7da251e2035",
      "parents": [
        "f12dfe1de5eef3ea669557cfe5a843f8b660a2cb"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Mar 30 23:33:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 30 21:33:09 2026 +0000"
      },
      "message": "[doc] Upgrade Read the Docs build image to Ubuntu 24.04/Python 3.13 (#10945)\n\nUbuntu 20.04 is being deprecated by Read the Docs (June 2026), might as well upgrade this one to a more modern Ubuntu and a faster python."
    },
    {
      "commit": "f12dfe1de5eef3ea669557cfe5a843f8b660a2cb",
      "tree": "531110e8c5cc325f3f6c0839886f2976566712a0",
      "parents": [
        "b93ffdbb2dbf85f81a7f123f58c6a3e104a4ae0d"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Mar 30 22:38:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 30 22:38:11 2026 +0200"
      },
      "message": "[test] Add primer test cases for suboptimal diff scenarios (#10946)\n\nDocument current behavior where line-only moves, message text changes,\ntype changes, and useless-suppression pairs all show as full remove+add\nin the primer comment. These cases will help validate future smarter\ndiff logic."
    },
    {
      "commit": "b93ffdbb2dbf85f81a7f123f58c6a3e104a4ae0d",
      "tree": "fe6339e9179cc7696139eb3484a13ebdd88ff0a7",
      "parents": [
        "f8ff4b274409f0c3f8de9e5a64394c30ce645338"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 30 19:27:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 30 19:27:12 2026 +0200"
      },
      "message": "Bump codecov/codecov-action from 5 to 6 (#10943)\n\nBumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5 to 6.\n- [Release notes](https://github.com/codecov/codecov-action/releases)\n- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/codecov/codecov-action/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: codecov/codecov-action\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "f8ff4b274409f0c3f8de9e5a64394c30ce645338",
      "tree": "26329bc617c8fe8b9bde0a480493c966664f6f72",
      "parents": [
        "7748d38a4c035b41392a970ae3d383cf7bc8b626"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 30 19:26:40 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 30 19:26:40 2026 +0200"
      },
      "message": "Bump sigstore/gh-action-sigstore-python from 3.2.0 to 3.3.0 (#10944)\n\nBumps [sigstore/gh-action-sigstore-python](https://github.com/sigstore/gh-action-sigstore-python) from 3.2.0 to 3.3.0.\n- [Release notes](https://github.com/sigstore/gh-action-sigstore-python/releases)\n- [Changelog](https://github.com/sigstore/gh-action-sigstore-python/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/sigstore/gh-action-sigstore-python/compare/v3.2.0...v3.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: sigstore/gh-action-sigstore-python\n  dependency-version: 3.3.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7748d38a4c035b41392a970ae3d383cf7bc8b626",
      "tree": "7aa68d09f04f220e14e54de6eb612402da07a8a9",
      "parents": [
        "e039e7ba1c1ac1eed30e9067f434f30ac58189c8"
      ],
      "author": {
        "name": "Julian Grimm",
        "email": "51880314+Julfried@users.noreply.github.com",
        "time": "Sun Mar 29 22:47:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 22:47:47 2026 +0200"
      },
      "message": "Fix augmented sys.path handling for parallel namespace-package checks (#10929)\n\n\nCo-authored-by: Pierre Sassoulas \u003cpierre.sassoulas@gmail.com\u003e"
    },
    {
      "commit": "e039e7ba1c1ac1eed30e9067f434f30ac58189c8",
      "tree": "a1b0728de16f869afbb6d3736dc3ef50308cd7d2",
      "parents": [
        "e525835b22b36f95d209d73a16341b35846cf9db"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Mon Mar 23 21:50:07 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 21:50:07 2026 +0000"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10939)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.6 → v0.15.7](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.6...v0.15.7)\n- [github.com/tox-dev/pyproject-fmt: v2.19.0 → v2.20.0](https://github.com/tox-dev/pyproject-fmt/compare/v2.19.0...v2.20.0)\n\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e525835b22b36f95d209d73a16341b35846cf9db",
      "tree": "cb689026451a8050cebd1a6390c8df7659e60f33",
      "parents": [
        "42ea4b9d8c2791a9a547e32b258deb86dff631bf"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 23 14:05:59 2026 +0000"
      },
      "committer": {
        "name": "Daniël van Noord",
        "email": "13665637+DanielNoord@users.noreply.github.com",
        "time": "Mon Mar 23 21:37:43 2026 +0100"
      },
      "message": "Bump astroid from 4.1.1 to 4.1.2\n\nBumps [astroid](https://github.com/pylint-dev/astroid) from 4.1.1 to 4.1.2.\n- [Release notes](https://github.com/pylint-dev/astroid/releases)\n- [Changelog](https://github.com/pylint-dev/astroid/blob/main/ChangeLog)\n- [Commits](https://github.com/pylint-dev/astroid/compare/v4.1.1...v4.1.2)\n\n---\nupdated-dependencies:\n- dependency-name: astroid\n  dependency-version: 4.1.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "42ea4b9d8c2791a9a547e32b258deb86dff631bf",
      "tree": "9db6df5d39a993e89a6967c4d8a3ce6586cf24a4",
      "parents": [
        "90c8f39a6094c0c87d4395c11bd8623ddb4532cf"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 23 20:57:31 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 23 20:57:31 2026 +0100"
      },
      "message": "Bump actions/cache from 5.0.3 to 5.0.4 (#10936)"
    },
    {
      "commit": "90c8f39a6094c0c87d4395c11bd8623ddb4532cf",
      "tree": "df6fc86e4acefb48cbd61a63dae9f587551fba9a",
      "parents": [
        "8faa924a0090a91f45a8cd378dbb5061dd8265c5"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 23 14:05:38 2026 +0000"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Mar 23 15:38:11 2026 +0100"
      },
      "message": "Bump pylint-dev/backport from 2.1.6 to 2.1.7\n\nBumps [pylint-dev/backport](https://github.com/pylint-dev/backport) from 2.1.6 to 2.1.7.\n- [Release notes](https://github.com/pylint-dev/backport/releases)\n- [Commits](https://github.com/pylint-dev/backport/compare/e071919112ee369aaf4453465fa5037ac25cdd2d...35f69bb3064974a24ba7da019038cd616f09e66d)\n\n---\nupdated-dependencies:\n- dependency-name: pylint-dev/backport\n  dependency-version: 2.1.7\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "8faa924a0090a91f45a8cd378dbb5061dd8265c5",
      "tree": "64ca89679521c15ab6a5b072b53a65bc425d339c",
      "parents": [
        "a3476b20388fd052e1ddff955a6d588ac43f5b2a"
      ],
      "author": {
        "name": "Roman Valov",
        "email": "roman.valov@gmail.com",
        "time": "Mon Mar 23 01:50:29 2026 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 22 21:50:29 2026 +0000"
      },
      "message": "Fix treatment of \"self\" arg for too-many-arguments message (#10885)"
    },
    {
      "commit": "a3476b20388fd052e1ddff955a6d588ac43f5b2a",
      "tree": "79f0c81f2198e22946b84b733b063b55ee3b4043",
      "parents": [
        "8931879b4be43fc9b649b6affda50cded63f5b02"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Fri Mar 20 21:06:57 2026 +0100"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sat Mar 21 19:00:22 2026 +0100"
      },
      "message": "Fix unclosed \u003cdetails\u003e tag when primer comment is truncated mid-block\n\nWhen truncation cuts inside an open \u003cdetails\u003e block, the closing tag\nwas missing, causing GitHub to render the rest of the PR comment inside\nthe collapsed section. Now detect the open tag and close it before\nappending the truncation notice. Add a dedicated test case for this.\n"
    },
    {
      "commit": "8931879b4be43fc9b649b6affda50cded63f5b02",
      "tree": "a8b8321c0c22f460499d8ccc283353516598fdeb",
      "parents": [
        "25dde54917950fc7297a48c29ead0bf2669e9650"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Fri Mar 20 20:23:14 2026 +0100"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sat Mar 21 19:00:22 2026 +0100"
      },
      "message": "Fix extra blank lines and duplicate \u003c/details\u003e in primer comment\n\n- Remove extra blank line between header and first package section\n- Remove blank lines inside \u003cdetails\u003e blocks for cleaner markdown\n- Fix duplicate \u003c/details\u003e when new_messages exist but missing_messages don\u0027t\n  (checked `missing_messages` dict truthiness instead of `missing_messages[\"messages\"]`)\n"
    },
    {
      "commit": "25dde54917950fc7297a48c29ead0bf2669e9650",
      "tree": "42a5d9ad393ba264b6edf7da69413c357b6c40a7",
      "parents": [
        "d796007f3978469a7e6b3a5e883152c77d12e048"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Fri Mar 20 17:24:05 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 20 17:24:05 2026 +0100"
      },
      "message": "Skip deployment for backport job (#10931)"
    },
    {
      "commit": "d796007f3978469a7e6b3a5e883152c77d12e048",
      "tree": "bf47c5e761c2eb24afb96bd9c2ea9b99ccbebc8f",
      "parents": [
        "9a24747407562819745aa70962f4313707d41fe7"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Fri Nov 04 23:55:50 2022 +0100"
      },
      "committer": {
        "name": "Daniël van Noord",
        "email": "13665637+DanielNoord@users.noreply.github.com",
        "time": "Tue Mar 17 21:40:19 2026 +0100"
      },
      "message": "Extract Comparator class from CompareCommand\n\nMove JSON loading, batching, and cross-referencing logic into a\ndedicated Comparator class. CompareCommand.run() now delegates to\nthe Comparator and iterates over it to build the comment.\n"
    },
    {
      "commit": "9a24747407562819745aa70962f4313707d41fe7",
      "tree": "caff2152aeab091103d13c68880f5261c6c5e3b3",
      "parents": [
        "236eb8aaac650e458813e36cff921121bff84a4a"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Tue Mar 17 20:20:07 2026 +0100"
      },
      "committer": {
        "name": "Daniël van Noord",
        "email": "13665637+DanielNoord@users.noreply.github.com",
        "time": "Tue Mar 17 21:40:19 2026 +0100"
      },
      "message": "Extend duplicate-code disable to cover tempdir helper\n\nMove the ``# pylint: enable\u003dduplicate-code`` comment after the\n``tempdir`` context manager so it is covered by the existing\nsuppression scope.\n"
    },
    {
      "commit": "236eb8aaac650e458813e36cff921121bff84a4a",
      "tree": "1711c7534c944085c6b2e0f6ce7195a78f256359",
      "parents": [
        "7d4d3606e5938b0a38d8be59f15cd0714c063b0b"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Tue Mar 17 06:45:26 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 17 06:45:26 2026 +0100"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10928)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.5 → v0.15.6](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.5...v0.15.6)\n- [github.com/psf/black-pre-commit-mirror: 26.3.0 → 26.3.1](https://github.com/psf/black-pre-commit-mirror/compare/26.3.0...26.3.1)\n- [github.com/tox-dev/pyproject-fmt: v2.16.2 → v2.19.0](https://github.com/tox-dev/pyproject-fmt/compare/v2.16.2...v2.19.0)\n\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7d4d3606e5938b0a38d8be59f15cd0714c063b0b",
      "tree": "aa7e925c65b322a4053d49377c731c484d7061b5",
      "parents": [
        "62f1138411720dde19d1e5733cfe0f70ce5361fb"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 16 20:11:16 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 16 20:11:16 2026 +0100"
      },
      "message": "Bump pylint-dev/backport from 2.1.3 to 2.1.6 (#10922)\n\nBumps [pylint-dev/backport](https://github.com/pylint-dev/backport) from 2.1.3 to 2.1.6.\n- [Release notes](https://github.com/pylint-dev/backport/releases)\n- [Commits](https://github.com/pylint-dev/backport/compare/6accae9e09c5ad1bc3a0b56adf37c45357e7bcdc...e071919112ee369aaf4453465fa5037ac25cdd2d)\n\n---\nupdated-dependencies:\n- dependency-name: pylint-dev/backport\n  dependency-version: 2.1.6\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "62f1138411720dde19d1e5733cfe0f70ce5361fb",
      "tree": "5f4403fc97d3f4836e70fb813bede6fc55db0d9e",
      "parents": [
        "2eca4ce6f19447aaf0e87332185a99fa279f5bb5"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 16 20:10:25 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 16 20:10:25 2026 +0100"
      },
      "message": "Bump actions/create-github-app-token from 2.2.1 to 3.0.0 (#10920)\n\nBumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 2.2.1 to 3.0.0.\n- [Release notes](https://github.com/actions/create-github-app-token/releases)\n- [Commits](https://github.com/actions/create-github-app-token/compare/29824e69f54612133e76f7eaac726eef6c875baf...f8d387b68d61c58ab83c6c016672934102569859)\n\n---\nupdated-dependencies:\n- dependency-name: actions/create-github-app-token\n  dependency-version: 3.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "2eca4ce6f19447aaf0e87332185a99fa279f5bb5",
      "tree": "99b85bec92ab31ccdca72e6e9356af2944a98e30",
      "parents": [
        "712ee3901b777ba0eadf35ea52afbff38819f14b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 16 20:08:59 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 16 20:08:59 2026 +0100"
      },
      "message": "Bump actions/download-artifact from 8.0.0 to 8.0.1 (#10921)\n\nBumps [actions/download-artifact](https://github.com/actions/download-artifact) from 8.0.0 to 8.0.1.\n- [Release notes](https://github.com/actions/download-artifact/releases)\n- [Commits](https://github.com/actions/download-artifact/compare/v8.0.0...v8.0.1)\n\n---\nupdated-dependencies:\n- dependency-name: actions/download-artifact\n  dependency-version: 8.0.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "712ee3901b777ba0eadf35ea52afbff38819f14b",
      "tree": "00158d6ed64e23c2ad13fdc74a313ad1dee1057f",
      "parents": [
        "f48e8151447a85de5f67a42272ab7fc3e4d0f257"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Mar 16 12:32:24 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 16 07:32:24 2026 -0400"
      },
      "message": "Pin primer packages to explicit commits, auto-update on release (#10915)"
    },
    {
      "commit": "f48e8151447a85de5f67a42272ab7fc3e4d0f257",
      "tree": "ffc6957aa641008fc3bf4463b145180274d19143",
      "parents": [
        "b6844102c66c5427a8abbf828f862eed2ba77f34"
      ],
      "author": {
        "name": "Jacob Walls",
        "email": "jacobtylerwalls@gmail.com",
        "time": "Mon Mar 16 01:15:22 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 16 06:15:22 2026 +0100"
      },
      "message": "Bump version in \"What\u0027s New\" link (#10917)"
    },
    {
      "commit": "b6844102c66c5427a8abbf828f862eed2ba77f34",
      "tree": "c3e6ec307b854999c621eea18c18a7bd5e3cfe2a",
      "parents": [
        "29abb02ab80e2a9f6f853876ae3c13be838ca8a9"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Tue Mar 10 07:48:04 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 10 07:48:04 2026 +0100"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10913)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.4 → v0.15.5](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.4...v0.15.5)\n- [github.com/psf/black-pre-commit-mirror: 26.1.0 → 26.3.0](https://github.com/psf/black-pre-commit-mirror/compare/26.1.0...26.3.0)\n- [github.com/codespell-project/codespell: v2.4.1 → v2.4.2](https://github.com/codespell-project/codespell/compare/v2.4.1...v2.4.2)\n\nCo-authored-by: Pierre Sassoulas \u003cpierre.sassoulas@gmail.com\u003e"
    },
    {
      "commit": "29abb02ab80e2a9f6f853876ae3c13be838ca8a9",
      "tree": "5e38383237dd05c7664e56939ff92c1feab2ed53",
      "parents": [
        "4f62b34f4d2b974c54cfe9dcffcb4bb9f3f7caf8"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Mar 09 09:31:40 2026 +0100"
      },
      "committer": {
        "name": "Daniël van Noord",
        "email": "13665637+DanielNoord@users.noreply.github.com",
        "time": "Mon Mar 09 17:24:51 2026 +0100"
      },
      "message": "Remove redundant `config.reports` check in `generate_reports`\n\nThe section was created then immediately discarded when reports\nwere disabled. Merge both branches into a single conditional.\n"
    },
    {
      "commit": "4f62b34f4d2b974c54cfe9dcffcb4bb9f3f7caf8",
      "tree": "50514264b7b58cd94799e42b8ae998b22bc64d79",
      "parents": [
        "6ec3d9b291c2936d7530ca729b8c5b969f48759c"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sun Mar 08 23:59:47 2026 +0100"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Mar 09 08:41:53 2026 +0100"
      },
      "message": "Lazily import `tomlkit` in arguments_manager\n"
    },
    {
      "commit": "6ec3d9b291c2936d7530ca729b8c5b969f48759c",
      "tree": "842c6041707608e02751fb729c1e4c37fbf1a785",
      "parents": [
        "60fe32347ea88bbad95ac4bae421d65cbaf3b02a"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sun Mar 08 23:59:43 2026 +0100"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Mar 09 08:41:53 2026 +0100"
      },
      "message": "Lazily import `multiprocessing` and `concurrent.futures` in parallel/run modules\n\n`multiprocessing` (8 modules, ~11 ms) and `concurrent.futures`\n(4 modules, ~14 ms) were imported at top level in both\n`pylint/lint/parallel.py` and `pylint/lint/run.py`. They are now\ndeferred to the functions that actually need them, which only run\nwhen `-j` parallel mode is requested.\n"
    },
    {
      "commit": "60fe32347ea88bbad95ac4bae421d65cbaf3b02a",
      "tree": "53af8057335b5311f8bfd585737b9736946937f1",
      "parents": [
        "ea30fa95b4aaa70c06144a47e01539833b45ac38"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Wed Mar 04 08:44:32 2026 +0100"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Mar 09 08:41:53 2026 +0100"
      },
      "message": "Lazily import `dill` in parallel module to speed up startup\n\n`dill` (12 modules, ~13 ms) was imported at module level in\n`pylint/lint/parallel.py`, meaning every pylint invocation paid the\ncost even when parallel checking was not used.  Move the import into\nthe two functions that actually need it (`_worker_initialize` and\n`check_parallel`).\n\nBenchmark (median of 3, cold-cache):\n  --version: 85 ms → 75 ms  (−12 %)\n  --help:   170 ms → 160 ms  (−6 %)\n"
    },
    {
      "commit": "ea30fa95b4aaa70c06144a47e01539833b45ac38",
      "tree": "2b4e2a1bab72f872451937ceb5660227ee86ae10",
      "parents": [
        "0d77e9054910100d130dceb9244be106da2354ab"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Tue Mar 03 21:37:08 2026 +0100"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Mar 09 08:41:53 2026 +0100"
      },
      "message": "Lazy-import isort to avoid 60ms startup cost\n\nisort is only needed when import-ordering messages are enabled.\nMove the import from module level into the functions that use it\nso it is never loaded when only cyclic-import or other non-ordering\nchecks are active.  This paves the way for making isort an optional\ndependency (refs #10637).\n\nCloses #2866\n"
    },
    {
      "commit": "0d77e9054910100d130dceb9244be106da2354ab",
      "tree": "7030a20f9338cf03d2ca6e9fd3a6512f1513972a",
      "parents": [
        "ae1c6c7c257909d65c79722ce8159af16629b3c1"
      ],
      "author": {
        "name": "Jacob Walls",
        "email": "jacobtylerwalls@gmail.com",
        "time": "Sun Mar 08 13:04:50 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 08 13:04:50 2026 -0400"
      },
      "message": "Skip some workflow steps when running pylint tests from astroid (#10897)"
    },
    {
      "commit": "ae1c6c7c257909d65c79722ce8159af16629b3c1",
      "tree": "dc57ff8ce536938936e6fe3adc2e01991a25ce67",
      "parents": [
        "b5e960745d204b6f1b1df45b1a9ce64549e05bc7"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sun Mar 08 10:04:36 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 08 10:04:36 2026 +0100"
      },
      "message": "Fix ``BaseChecker.add_message`` unnecessary overrides (#10899)\n\n* Remove redundant `line` argument in `unnecessary-lambda` add_message call\n\nLambdas never have `.position` set, so `_add_one_message` already\nextracts `node.fromlineno`, passing it explicitly was a no-op.\n\n* Use `assigned` node directly for `invalid-all-format` instead of module node\n\nPass the `__all__` value node to `add_message` instead of the module node\nwith manual line/col overrides. This also provides end_lineno/end_col_offset\nfor a more precise diagnostic span.\n\nExisting callers that combined both location and nodes have been fixed:\n- Redundant overrides removed (consider-using-f-string, too-many-try-statements,\n  consider-using-augmented-assign, consider-refactoring-into-while-condition) except useless-else-on-loop. \n\nCo-authored-by: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "b5e960745d204b6f1b1df45b1a9ce64549e05bc7",
      "tree": "491f3bbfd515ea8a94b9ce04f167f68e0c37e851",
      "parents": [
        "6ae32dbe8ad9db20e77374919ed517017c25fcdb"
      ],
      "author": {
        "name": "h1whelan",
        "email": "h1whelan@users.noreply.github.com",
        "time": "Sun Mar 08 06:04:49 2026 +0000"
      },
      "committer": {
        "name": "Daniël van Noord",
        "email": "13665637+DanielNoord@users.noreply.github.com",
        "time": "Sun Mar 08 09:59:08 2026 +0100"
      },
      "message": "Fix false positive `unused-variable` for globals matching `dummy-variables-rgx`\n\nWhen `allow-global-unused-variables` is disabled, global variables whose\nnames match `dummy-variables-rgx` were still reported as unused (W0612).\nThis adds a check for the dummy variable regex in `_check_globals`,\nconsistent with how local variables are already handled.\n\nCloses #10890\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "6ae32dbe8ad9db20e77374919ed517017c25fcdb",
      "tree": "71348e84d8393f4836a045771e9592af8bb47a36",
      "parents": [
        "80c2e8ecedad0fc4188e6ea028749be484b1a1e1"
      ],
      "author": {
        "name": "Daniël van Noord",
        "email": "13665637+DanielNoord@users.noreply.github.com",
        "time": "Sat Mar 07 23:26:46 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 07 17:26:46 2026 -0500"
      },
      "message": "Don\u0027t use astroid in import tests (#10896)"
    },
    {
      "commit": "80c2e8ecedad0fc4188e6ea028749be484b1a1e1",
      "tree": "753db5dfe598c25980394acf876b4a23d1ec5bff",
      "parents": [
        "71caace29cd0fd42881f8b445728821dab665333"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sat Mar 07 21:29:18 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 07 20:29:18 2026 +0000"
      },
      "message": "Fix crash in _called_in_methods when getattr returns non-NodeNG (#10892)\n\n`klass.getattr()` can return `UninferableBase` or `BoundMethod` objects\nwhich don\u0027t have `nodes_of_class`, causing a TypeError. Skip these items.\n\nDiscovered via primer crash on astropy in  #10875.\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "71caace29cd0fd42881f8b445728821dab665333",
      "tree": "2aaa13d8569519a8a2fff2e5d7fe7cb93d2cb716",
      "parents": [
        "7f2b8cf1d3ac67a05083264520207dc1b99d671b"
      ],
      "author": {
        "name": "Julian Grimm",
        "email": "51880314+Julfried@users.noreply.github.com",
        "time": "Sat Mar 07 17:23:11 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 07 17:23:11 2026 +0100"
      },
      "message": "Add regression tests for false positive relative-beyond-top-level in parallel mode with namespace packages (#10889)"
    },
    {
      "commit": "7f2b8cf1d3ac67a05083264520207dc1b99d671b",
      "tree": "e93e0f94e1fa6012f67f141ef04841918bf17dcf",
      "parents": [
        "33e1fff268ccf499e6c6327e282a5a66e02da235"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Fri Mar 06 21:36:14 2026 +0100"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sat Mar 07 06:59:52 2026 +0100"
      },
      "message": "smaller changelog message\n"
    },
    {
      "commit": "33e1fff268ccf499e6c6327e282a5a66e02da235",
      "tree": "2e89e1257e984948e66bb4340055da3b3ca43101",
      "parents": [
        "f286599b679a6e19ded8278d88b671cc6aa38ff6"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Tue Mar 03 21:12:08 2026 +0100"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sat Mar 07 06:59:52 2026 +0100"
      },
      "message": "Skip isort classification when only cyclic-import is enabled\n\nOn large codebases cyclic-import is often the only import message\nenabled.  The leave_module hook was unconditionally running isort to\nclassify every import, even when no ordering message was active.\nisort.Config was also recreated per import, defeating isort\u0027s internal\ncache.\n\n- Guard the isort path behind an ISORT_MESSAGES check\n- Cache _isort_config with @cached_property\n\nOn ansible (564 files): ~6s saved when only cyclic-import is enabled,\n~100x faster isort path when ordering checks are active.\n\nRefs #2866, #10637\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "f286599b679a6e19ded8278d88b671cc6aa38ff6",
      "tree": "34641ce4057ecd33f673d1188621d8bcabbfa573",
      "parents": [
        "a078b6180f9f0510bd4e26fa1b4eb3e4af02d5d6"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sat Feb 28 14:51:43 2026 +0100"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Fri Mar 06 15:28:38 2026 +0100"
      },
      "message": "[primer] Add astropy to the primer (scientific repo)\n"
    },
    {
      "commit": "a078b6180f9f0510bd4e26fa1b4eb3e4af02d5d6",
      "tree": "9686fb07fcff208efc08d39a7abdcfcfa73b2aca",
      "parents": [
        "125cb0472a91042690ac6ed686bacb3fcf239cfb"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sat Feb 28 14:50:10 2026 +0100"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Fri Mar 06 15:28:38 2026 +0100"
      },
      "message": "[doc] Upgrade the generated doc\n"
    },
    {
      "commit": "125cb0472a91042690ac6ed686bacb3fcf239cfb",
      "tree": "1ada2b4da343a1ca27ea443867ffbd51fa9db549",
      "parents": [
        "ac74ed95765e53eef32db5e07ee1d2780cae103b"
      ],
      "author": {
        "name": "Kaiden Wang",
        "email": "kaidenwang0309@gmail.com",
        "time": "Wed Mar 04 12:47:57 2026 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 04 21:47:57 2026 +0100"
      },
      "message": "Moves note that section titles are irrelevant for parsing to top of doc (#10864)\n\n"
    },
    {
      "commit": "ac74ed95765e53eef32db5e07ee1d2780cae103b",
      "tree": "dde74406b03c0eaa071fb5d57809a9eb2b799176",
      "parents": [
        "af868f01578e5d81dd3f7f0dceb0408ec08dcd0b"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Tue Mar 03 06:26:12 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 03 06:26:12 2026 +0100"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10884)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.2 → v0.15.4](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.2...v0.15.4)\n- [github.com/PyCQA/isort: 8.0.0 → 8.0.1](https://github.com/PyCQA/isort/compare/8.0.0...8.0.1)\n- [github.com/PyCQA/bandit: 1.9.3 → 1.9.4](https://github.com/PyCQA/bandit/compare/1.9.3...1.9.4)\n\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "af868f01578e5d81dd3f7f0dceb0408ec08dcd0b",
      "tree": "010ab18bc951629d6aae6b710716b52547f242cb",
      "parents": [
        "bfbada70a986f86c3e535da085a6eab6ae943e20"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 02 15:32:19 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 02 15:32:19 2026 +0000"
      },
      "message": "Bump actions/upload-artifact from 6.0.0 to 7.0.0 (#10883)\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6.0.0 to 7.0.0.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v6.0.0...v7.0.0)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-version: 7.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "bfbada70a986f86c3e535da085a6eab6ae943e20",
      "tree": "927a820c63e96f72a963aa72ddfa181eecf8d336",
      "parents": [
        "097fb05727ab723406228de7d81e72c5becf8e2c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Mar 02 15:29:43 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 02 15:29:43 2026 +0000"
      },
      "message": "Bump actions/download-artifact from 7.0.0 to 8.0.0 (#10882)\n\nBumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7.0.0 to 8.0.0.\n- [Release notes](https://github.com/actions/download-artifact/releases)\n- [Commits](https://github.com/actions/download-artifact/compare/v7.0.0...v8.0.0)\n\n---\nupdated-dependencies:\n- dependency-name: actions/download-artifact\n  dependency-version: 8.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "097fb05727ab723406228de7d81e72c5becf8e2c",
      "tree": "d6677ea6e0a97656877901ca564e0f20046d9a62",
      "parents": [
        "5429be161ceadfa32f3e5fe9a7867c9df046f8ef"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Mon Mar 02 11:32:58 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 02 11:32:58 2026 +0100"
      },
      "message": "Don\u0027t run checkers just for their reports when all messages are disabled (#10878)\n\nPreviously, prepare_checkers() would include a checker if any of its\nreports were enabled, even when all its messages were disabled. This\nmeant checkers like `similarities` would still run their expensive\ncomputations (e.g. O(n²) duplicate-code detection) just to populate\na report the user didn\u0027t ask for.\n\nNow, enabled reports only cause a checker to be included if it defines\nno messages at all (i.e. pure report-only checkers like RawMetrics).\n\nCloses #3443\n\nCo-authored-by: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "5429be161ceadfa32f3e5fe9a7867c9df046f8ef",
      "tree": "574c5f1cec63d7dceca0edb625094c6fd0c1e721",
      "parents": [
        "0cdc6e8adee7bf89074b6f664b39520dae726347"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Sun Mar 01 21:39:53 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 01 21:39:53 2026 +0100"
      },
      "message": "[refactor] Remove orphaned lowercase-l-suffix check (dead since 2018) (#10876)\n\nThe W0332 \"lowercase-l-suffix\" message was a Python 2-only check\n(maxversion: 3.0) that flagged `123l` vs `123L` for long integers.\nIts message definition was removed in May 2018 (commit 41d47dd024a3,\n\"Remove a couple of Python 2 specific checks\", closes #1896), but the\ncheck code (`if string.endswith(\"l\")`) survived as dead code — the\nunregistered message would fail if it ever triggered, which it can\u0027t\nsince Python 3\u0027s tokenizer never produces tokens ending in `l`."
    },
    {
      "commit": "0cdc6e8adee7bf89074b6f664b39520dae726347",
      "tree": "2f6851ecd10ed4ede9550271bd3075140bdfa455",
      "parents": [
        "f91da970e2084c731cab9ee22f3c26689cc53a9e"
      ],
      "author": {
        "name": "wlkjyy",
        "email": "wlkjyy@vip.qq.com",
        "time": "Fri Feb 27 23:03:06 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 27 15:03:06 2026 +0000"
      },
      "message": "Fix typo in multiple-statements message text (#10872)\n\n* Fix typo in multiple-statements message text\n\n* Add news fragment for #10870\n\n* Regenerate docs for multiple-statements message text\n\n* Revert \"Add news fragment for #10870\"\n\nThis reverts commit c3378ff3c325d2d67b58af295333bcfa91955b87."
    },
    {
      "commit": "f91da970e2084c731cab9ee22f3c26689cc53a9e",
      "tree": "11127919ae728b3ccd7a1e6840709f8ff8aafada",
      "parents": [
        "79e68862c704955fe894406bde289ad92304a930"
      ],
      "author": {
        "name": "Jacob Walls",
        "email": "jacobtylerwalls@gmail.com",
        "time": "Wed Feb 25 20:41:11 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 25 20:41:11 2026 -0500"
      },
      "message": "Avoid recursing into child nodes on same line when parsing disable comments (#10868)\n\n"
    },
    {
      "commit": "79e68862c704955fe894406bde289ad92304a930",
      "tree": "629767eee594756a2b7a9cd8adc6b5c5635c59c4",
      "parents": [
        "24a69661e1869c78a417649de88cf3976ceac669"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Tue Feb 24 22:16:00 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 22:16:00 2026 +0100"
      },
      "message": "Use new Arguments.get_annotations() helper from astroid (#10636)\n\n"
    },
    {
      "commit": "24a69661e1869c78a417649de88cf3976ceac669",
      "tree": "2e4f3bad166de760150704817acc5a3b725c3a14",
      "parents": [
        "40817ce1a1b62a41486d81eff5b2db3bd9c23755"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Tue Feb 24 12:04:46 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 12:04:46 2026 +0100"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10865)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.1 → v0.15.2](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.1...v0.15.2)\n- [github.com/PyCQA/isort: 7.0.0 → 8.0.0](https://github.com/PyCQA/isort/compare/7.0.0...8.0.0)\n- [github.com/tox-dev/pyproject-fmt: v2.16.0 → v2.16.2](https://github.com/tox-dev/pyproject-fmt/compare/v2.16.0...v2.16.2)"
    },
    {
      "commit": "40817ce1a1b62a41486d81eff5b2db3bd9c23755",
      "tree": "7194dda78102f1d63032908d00480728f9dda524",
      "parents": [
        "f56e41aae3f4759ade9f719b1f9744c4eed0d660"
      ],
      "author": {
        "name": "Jacob Walls",
        "email": "jacobtylerwalls@gmail.com",
        "time": "Mon Feb 23 09:43:04 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 09:43:04 2026 -0500"
      },
      "message": "Bump astroid to 4.1.1 (#10843)\n\n"
    },
    {
      "commit": "f56e41aae3f4759ade9f719b1f9744c4eed0d660",
      "tree": "a0d073d60858ac80445b77913f224b5f4ea49600",
      "parents": [
        "673898f824078be3d6b39b7b4f86bf1d156ccdeb"
      ],
      "author": {
        "name": "Fridayai700",
        "email": "aifriday700@gmail.com",
        "time": "Sun Feb 22 06:43:15 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 22 07:43:15 2026 +0100"
      },
      "message": "Fix undefined-variable false positive with metaclass in nested class (#10853)\n\nWhen an imported name was used as a `metaclass\u003d` argument inside a\nnested class within a method, pylint incorrectly flagged subsequent\nuses of that name at module level as `undefined-variable`.\n\nRoot cause: `_check_classdef_metaclasses()` found the name in\nenclosing scopes and `_check_metaclasses()` popped it directly from\n`to_consume`, making it completely unresolvable. Subsequent references\nto the same name triggered `undefined-variable`.\n\nFix: use `NamesConsumer.mark_as_consumed()` instead of raw dict pop.\nThis properly moves the name from `to_consume` to `consumed`, so:\n1. The import is not flagged as unused (original intent)\n2. Later references find the name in `consumed` and resolve correctly\n\nCloses #10823"
    },
    {
      "commit": "673898f824078be3d6b39b7b4f86bf1d156ccdeb",
      "tree": "af3cea827a7bf0278464534b195d0a54c9bb49c3",
      "parents": [
        "999f4e7e57e02a69ca2dd656efbd1a9c47a877d0",
        "ec19ea9a6a01c980bd61033cac9bc93f747d7d98"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Fri Feb 20 15:03:30 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 20 15:03:30 2026 +0100"
      },
      "message": "Merge maintenance into main following 4.0.5 release (#10861)\n\n"
    },
    {
      "commit": "ec19ea9a6a01c980bd61033cac9bc93f747d7d98",
      "tree": "af3cea827a7bf0278464534b195d0a54c9bb49c3",
      "parents": [
        "999f4e7e57e02a69ca2dd656efbd1a9c47a877d0",
        "88e1ab7545a4af4aea15c305a154c164a95ab842"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Fri Feb 20 10:09:49 2026 +0100"
      },
      "committer": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Fri Feb 20 10:11:03 2026 +0100"
      },
      "message": "Merge branch \u0027maintenance/4.0.x\u0027 into main following 4.0.5 release\n"
    },
    {
      "commit": "88e1ab7545a4af4aea15c305a154c164a95ab842",
      "tree": "db20b9f04aab08c614a86a5ff0ba57951d5fb01f",
      "parents": [
        "d96d489a1743d32b6bfa53fc0f69a4333209a146"
      ],
      "author": {
        "name": "Pierre Sassoulas",
        "email": "pierre.sassoulas@gmail.com",
        "time": "Fri Feb 20 10:02:31 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 20 10:02:31 2026 +0100"
      },
      "message": "Bump pylint to 4.0.5, update changelog (#10860)\n\n"
    },
    {
      "commit": "d96d489a1743d32b6bfa53fc0f69a4333209a146",
      "tree": "c7f3e46ff2055f87ea42af87d53ae8509fbc93d0",
      "parents": [
        "0b08ccb014c265700f244a885bdcbdfa3a03de46"
      ],
      "author": {
        "name": "pylint-backport[bot]",
        "email": "212256041+pylint-backport[bot]@users.noreply.github.com",
        "time": "Fri Feb 20 07:55:55 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 20 07:55:55 2026 +0000"
      },
      "message": "[Backport maintenance/4.0.x] Relax isort version constraint to allow isort 8 (#10859)\n\nRelax isort version constraint to allow isort 8 (#10858)\n\n\n(cherry picked from commit 999f4e7e57e02a69ca2dd656efbd1a9c47a877d0)\n\nCo-authored-by: Copilot \u003c198982749+Copilot@users.noreply.github.com\u003e\nCo-authored-by: Pierre Sassoulas \u003cpierre.sassoulas@gmail.com\u003e"
    },
    {
      "commit": "999f4e7e57e02a69ca2dd656efbd1a9c47a877d0",
      "tree": "8ac98b80177d01edc1c3a7cd12c6846cfb2e1e45",
      "parents": [
        "d2dc5df67eed32675177e0ec8baa055476c31c3d"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Fri Feb 20 08:29:06 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 20 08:29:06 2026 +0100"
      },
      "message": "Relax isort version constraint to allow isort 8 (#10858)\n\n\nCo-authored-by: Pierre Sassoulas \u003cpierre.sassoulas@gmail.com\u003e"
    },
    {
      "commit": "d2dc5df67eed32675177e0ec8baa055476c31c3d",
      "tree": "5f33e3f6179a4e259b8c9bd5baa294f9a37ce0a2",
      "parents": [
        "0d9265cf25ffd58f216ca4f31f739a29cde07086"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Mon Feb 16 23:11:23 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 16 23:11:23 2026 +0100"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10851)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.15.0 → v0.15.1](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.0...v0.15.1)\n- [github.com/tox-dev/pyproject-fmt: v2.15.0 → v2.16.0](https://github.com/tox-dev/pyproject-fmt/compare/v2.15.0...v2.16.0)\n\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "0d9265cf25ffd58f216ca4f31f739a29cde07086",
      "tree": "8a13aeb127a36c50d87784ad9f082ee83f83bb3c",
      "parents": [
        "e7d97684ef4ed949a37d2c31fe917cede342e9d1"
      ],
      "author": {
        "name": "Jacob Walls",
        "email": "jacobtylerwalls@gmail.com",
        "time": "Sun Feb 15 13:32:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 15 20:32:12 2026 +0000"
      },
      "message": "Restore repository param to reusable tests workflow (#10850)\n\n"
    },
    {
      "commit": "e7d97684ef4ed949a37d2c31fe917cede342e9d1",
      "tree": "cbaf6c0528ec4f1c33cadedefa3838cc03cccabc",
      "parents": [
        "67b2d49e1a5f44b8e15bec3ef3ce7175645eb4e0"
      ],
      "author": {
        "name": "Jacob Walls",
        "email": "jacobtylerwalls@gmail.com",
        "time": "Tue Feb 10 19:11:07 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 10 19:11:07 2026 -0500"
      },
      "message": "Enable running pylint test suite with custom astroid SHA (#10841)\n\n"
    },
    {
      "commit": "67b2d49e1a5f44b8e15bec3ef3ce7175645eb4e0",
      "tree": "8c4ee5e491d717fc00d32956a273116c65fbbb6a",
      "parents": [
        "909838e70f2029882dbbc404636d7f23b1860207"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Tue Feb 10 11:16:05 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 10 11:16:05 2026 +0000"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10846)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.14.14 → v0.15.0](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.14...v0.15.0)\n- [github.com/tox-dev/pyproject-fmt: v2.12.1 → v2.15.0](https://github.com/tox-dev/pyproject-fmt/compare/v2.12.1...v2.15.0)\n\nCo-authored-by: Pierre Sassoulas \u003cpierre.sassoulas@gmail.com\u003e"
    },
    {
      "commit": "909838e70f2029882dbbc404636d7f23b1860207",
      "tree": "f4e71dafe52e2ef351650a21d079eeb8ba58feae",
      "parents": [
        "c75d18a89f229bd23566add841a5f1dbcd783f08"
      ],
      "author": {
        "name": "Kelvin Chiu",
        "email": "kelvin.chiu021@outlook.com",
        "time": "Sun Feb 08 01:01:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 07 18:01:35 2026 +0100"
      },
      "message": "Add ``ignore-pattern-in-long-lines`` configuration option (#10834)\n\n"
    },
    {
      "commit": "c75d18a89f229bd23566add841a5f1dbcd783f08",
      "tree": "7420cfcb38fe7d400ea8df757dd2510f32d755ea",
      "parents": [
        "88812e6236bde7d87835a43ff68ec817b1f53a0f"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Tue Feb 03 20:11:51 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 03 20:11:51 2026 +0100"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10837)\n\n* [pre-commit.ci] pre-commit autoupdate\n\nupdates:\n- [github.com/tox-dev/pyproject-fmt: v2.11.1 → v2.12.1](https://github.com/tox-dev/pyproject-fmt/compare/v2.11.1...v2.12.1)\n- [github.com/abravalheri/validate-pyproject: v0.24.1 → v0.25](https://github.com/abravalheri/validate-pyproject/compare/v0.24.1...v0.25)\n\n* [pre-commit.ci] auto fixes from pre-commit.com hooks\n\nfor more information, see https://pre-commit.ci\n\n---------\n\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "88812e6236bde7d87835a43ff68ec817b1f53a0f",
      "tree": "5a956e9e5ddbae96c4b7f92bb76d4c39fa25c745",
      "parents": [
        "c03c726c322ef2d5516b07976cb4a5e9abe26eea"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Feb 03 12:32:33 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 03 12:32:33 2026 +0100"
      },
      "message": "Bump pylint-dev/backport from 2.1.2 to 2.1.3 (#10836)\n\nBumps [pylint-dev/backport](https://github.com/pylint-dev/backport) from 2.1.2 to 2.1.3.\n- [Release notes](https://github.com/pylint-dev/backport/releases)\n- [Commits](https://github.com/pylint-dev/backport/compare/4e74c3a976f76bbcc37eb719425c5d75ed5c13c3...6accae9e09c5ad1bc3a0b56adf37c45357e7bcdc)\n\n---\nupdated-dependencies:\n- dependency-name: pylint-dev/backport\n  dependency-version: 2.1.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "c03c726c322ef2d5516b07976cb4a5e9abe26eea",
      "tree": "a487e8ff06d5531251f9e21f1d65a5f15750842c",
      "parents": [
        "d9170f2692daace8911254df9140655ad86393f3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Feb 02 19:13:21 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 02 19:13:21 2026 +0100"
      },
      "message": "Bump actions/cache from 5.0.2 to 5.0.3 (#10835)\n\nBumps [actions/cache](https://github.com/actions/cache) from 5.0.2 to 5.0.3.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v5.0.2...v5.0.3)\n\n---\nupdated-dependencies:\n- dependency-name: actions/cache\n  dependency-version: 5.0.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "d9170f2692daace8911254df9140655ad86393f3",
      "tree": "ec334103db0c3012803874604aa5b6382d6c5889",
      "parents": [
        "217212fdeaeb911512ae25e6e611d8a71f31a375"
      ],
      "author": {
        "name": "Julian Grimm",
        "email": "51880314+Julfried@users.noreply.github.com",
        "time": "Wed Jan 28 22:36:14 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 22:36:14 2026 +0100"
      },
      "message": "Refactor pyreverse to use dataclass wrappers instead of modifying nodes directly (#10820)\n\n"
    },
    {
      "commit": "0b08ccb014c265700f244a885bdcbdfa3a03de46",
      "tree": "447c0dff88160e62a253f201201bfb170e65e62c",
      "parents": [
        "154dba43276e8232a2e1cb8f90bfcc63886f3460"
      ],
      "author": {
        "name": "Felix Preuschoff",
        "email": "37065638+felixp98@users.noreply.github.com",
        "time": "Tue Jan 27 16:24:40 2026 +0100"
      },
      "committer": {
        "name": "Daniël van Noord",
        "email": "13665637+DanielNoord@users.noreply.github.com",
        "time": "Tue Jan 27 16:25:58 2026 +0100"
      },
      "message": "Fix dynamic color mapping for \"fail-on\" messages when using multiple reporter/output formats (#10826)\n\nCo-authored-by: Felix Preuschoff \u003cf.preuschoff@pilz.de\u003e\n(cherry picked from commit 217212fdeaeb911512ae25e6e611d8a71f31a375)\n"
    },
    {
      "commit": "217212fdeaeb911512ae25e6e611d8a71f31a375",
      "tree": "1539e7d220a141511aba9937db93cbefe89a9231",
      "parents": [
        "3700ef5d8860f19bea1a84c52d13d5d90e67d7f8"
      ],
      "author": {
        "name": "Felix Preuschoff",
        "email": "37065638+felixp98@users.noreply.github.com",
        "time": "Tue Jan 27 16:24:40 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 27 16:24:40 2026 +0100"
      },
      "message": "Fix dynamic color mapping for \"fail-on\" messages when using multiple reporter/output formats (#10826)\n\nCo-authored-by: Felix Preuschoff \u003cf.preuschoff@pilz.de\u003e"
    },
    {
      "commit": "3700ef5d8860f19bea1a84c52d13d5d90e67d7f8",
      "tree": "d40d20c82c0563842e70c96948f93ab9690fa094",
      "parents": [
        "cabed3b3ad8317afd0f11a13c02b2c42a2883d52"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Tue Jan 27 00:26:57 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 27 00:26:57 2026 +0100"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10832)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.14.13 → v0.14.14](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.13...v0.14.14)\n- [github.com/rbubley/mirrors-prettier: v3.8.0 → v3.8.1](https://github.com/rbubley/mirrors-prettier/compare/v3.8.0...v3.8.1)\n\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "cabed3b3ad8317afd0f11a13c02b2c42a2883d52",
      "tree": "36a3d7f4071ecd9d73a46a0492f6a3be82e4747b",
      "parents": [
        "4946cffef60bc42f6170e739680c8c9a7c735d2e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jan 26 22:02:18 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 22:02:18 2026 +0100"
      },
      "message": "Bump pylint-dev/backport from 2.1.1 to 2.1.2 (#10829)\n\nBumps [pylint-dev/backport](https://github.com/pylint-dev/backport) from 2.1.1 to 2.1.2.\n- [Release notes](https://github.com/pylint-dev/backport/releases)\n- [Commits](https://github.com/pylint-dev/backport/compare/94367840595495e101f9a31415897c05da1f08d9...4e74c3a976f76bbcc37eb719425c5d75ed5c13c3)\n\n---\nupdated-dependencies:\n- dependency-name: pylint-dev/backport\n  dependency-version: 2.1.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "4946cffef60bc42f6170e739680c8c9a7c735d2e",
      "tree": "fc521637bfcabc0e0a1323ab506bad0aa7266dcd",
      "parents": [
        "cf0df58db21e67d55bd089459098ae22ab41d6d1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jan 26 21:36:57 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 21:36:57 2026 +0100"
      },
      "message": "Bump actions/checkout from 6.0.1 to 6.0.2 (#10828)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1 to 6.0.2.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v6.0.1...v6.0.2)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: 6.0.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "cf0df58db21e67d55bd089459098ae22ab41d6d1",
      "tree": "9598c1d95f838a31007557dde4d918c83f0a8403",
      "parents": [
        "3e374c6d1cb5088ddaf8250140cfa80e87ebc3eb"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jan 26 21:36:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 21:36:29 2026 +0100"
      },
      "message": "Bump actions/setup-python from 6.1.0 to 6.2.0 (#10830)\n\nBumps [actions/setup-python](https://github.com/actions/setup-python) from 6.1.0 to 6.2.0.\n- [Release notes](https://github.com/actions/setup-python/releases)\n- [Commits](https://github.com/actions/setup-python/compare/v6.1.0...v6.2.0)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-python\n  dependency-version: 6.2.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "3e374c6d1cb5088ddaf8250140cfa80e87ebc3eb",
      "tree": "8fbaaa9a892662762e584f4bc390647d4c486e72",
      "parents": [
        "8f644289992851068db102f07b794edcdc490f7d"
      ],
      "author": {
        "name": "pre-commit-ci[bot]",
        "email": "66853113+pre-commit-ci[bot]@users.noreply.github.com",
        "time": "Tue Jan 20 00:06:03 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 20 00:06:03 2026 +0100"
      },
      "message": "[pre-commit.ci] pre-commit autoupdate (#10819)\n\nupdates:\n- [github.com/astral-sh/ruff-pre-commit: v0.14.11 → v0.14.13](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.11...v0.14.13)\n- [github.com/rbubley/mirrors-prettier: v3.7.4 → v3.8.0](https://github.com/rbubley/mirrors-prettier/compare/v3.7.4...v3.8.0)\n- [github.com/PyCQA/bandit: 1.9.2 → 1.9.3](https://github.com/PyCQA/bandit/compare/1.9.2...1.9.3)\n\nCo-authored-by: pre-commit-ci[bot] \u003c66853113+pre-commit-ci[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "154dba43276e8232a2e1cb8f90bfcc63886f3460",
      "tree": "e12c4db4e273e17ec0591d6b93048c52765a11e1",
      "parents": [
        "7b73bfdedf275935b9c5b43a6aeda5cc648b4847"
      ],
      "author": {
        "name": "pylint-backport[bot]",
        "email": "212256041+pylint-backport[bot]@users.noreply.github.com",
        "time": "Mon Jan 19 20:43:46 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 19 20:43:46 2026 +0100"
      },
      "message": "[Backport maintenance/4.0.x] Fix FP for `invalid-name` with `typing.Final` on dataclass fields (#10817)\n\nFix FP for `invalid-name` with `typing.Final` on dataclass fields (#10797)\n\n(cherry picked from commit 2b8b7e360c79ee92c881eb5be5706be876b4f40a)\n\nCo-authored-by: Jacob Walls \u003cjacobtylerwalls@gmail.com\u003e"
    },
    {
      "commit": "8f644289992851068db102f07b794edcdc490f7d",
      "tree": "5a145a6c57aea0c2d1cb7415cb49232835be6e83",
      "parents": [
        "2b8b7e360c79ee92c881eb5be5706be876b4f40a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jan 19 19:16:32 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 19 19:16:32 2026 +0100"
      },
      "message": "Bump actions/cache from 5.0.1 to 5.0.2 (#10818)\n\nBumps [actions/cache](https://github.com/actions/cache) from 5.0.1 to 5.0.2.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v5.0.1...v5.0.2)\n\n---\nupdated-dependencies:\n- dependency-name: actions/cache\n  dependency-version: 5.0.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "2b8b7e360c79ee92c881eb5be5706be876b4f40a",
      "tree": "63482ec9b2b754dabfef9d5333f5e107a619b564",
      "parents": [
        "0ce30d50e7d4feaec1b9f43e31909c14c81514e2"
      ],
      "author": {
        "name": "Jacob Walls",
        "email": "jacobtylerwalls@gmail.com",
        "time": "Mon Jan 19 09:09:48 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 19 09:09:48 2026 -0500"
      },
      "message": "Fix FP for `invalid-name` with `typing.Final` on dataclass fields (#10797)\n\n"
    },
    {
      "commit": "0ce30d50e7d4feaec1b9f43e31909c14c81514e2",
      "tree": "37128c39a6cb4b364ac8dbe22d0f9dca8e7ede1f",
      "parents": [
        "99e9ec4bd3d9303cac431bede2077bcfd042f3a1"
      ],
      "author": {
        "name": "Jacob Walls",
        "email": "jacobtylerwalls@gmail.com",
        "time": "Mon Jan 19 09:08:04 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 19 15:08:04 2026 +0100"
      },
      "message": "Ignore formatting changes in git blame (#10816)\n\n"
    },
    {
      "commit": "99e9ec4bd3d9303cac431bede2077bcfd042f3a1",
      "tree": "0b89afa2e341fe056d42cf93a907f84b4b95f4fd",
      "parents": [
        "0b67008e719fde61e56d7e01621206e7e88a6262"
      ],
      "author": {
        "name": "Marc Mueller",
        "email": "30130371+cdce8p@users.noreply.github.com",
        "time": "Sun Jan 18 20:43:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 18 20:43:29 2026 +0100"
      },
      "message": "Update black to 26.1.0 (#10815)\n\n"
    }
  ],
  "next": "0b67008e719fde61e56d7e01621206e7e88a6262"
}
