JSON-Rohbericht maschinenlesbar
{
"data": {
"repo": {
"topics": [
"api",
"laravel",
"php",
"hacktoberfest"
],
"is_fork": false,
"size_kb": 1377,
"has_wiki": false,
"homepage": "https://spatie.be/docs/laravel-query-builder",
"languages": {
"PHP": 209847
},
"pushed_at": "2026-07-29T16:03:06Z",
"created_at": "2018-01-15T16:14:37Z",
"owner_type": "Organization",
"updated_at": "2026-07-29T06:16:43Z",
"description": "Easily build Eloquent queries from API requests",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "PHP",
"significant_languages": [
"PHP"
]
},
"owner": {
"blog": "https://spatie.be/open-source",
"name": "Spatie",
"type": "Organization",
"login": "spatie",
"company": null,
"location": "Antwerp, Belgium",
"followers": 3808,
"avatar_url": "https://avatars.githubusercontent.com/u/7535935?v=4",
"created_at": "2014-05-09T16:26:39Z",
"is_verified": null,
"public_repos": 524,
"account_age_days": 4463
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "7.3.0",
"kind": "minor",
"published_at": "2026-05-02T11:22:39Z"
},
{
"tag": "7.2.1",
"kind": "patch",
"published_at": "2026-04-17T07:58:54Z"
},
{
"tag": "7.2.0",
"kind": "minor",
"published_at": "2026-04-08T12:52:18Z"
},
{
"tag": "7.0.1",
"kind": "patch",
"published_at": "2026-03-16T10:22:19Z"
},
{
"tag": "7.0.0",
"kind": "major",
"published_at": "2026-03-15T14:23:38Z"
},
{
"tag": "6.4.4",
"kind": "patch",
"published_at": "2026-03-08T13:45:11Z"
},
{
"tag": "6.4.3",
"kind": "patch",
"published_at": "2026-02-21T21:10:45Z"
},
{
"tag": "6.4.2",
"kind": "patch",
"published_at": "2026-02-18T09:22:41Z"
},
{
"tag": "6.4.1",
"kind": "patch",
"published_at": "2026-01-27T07:27:35Z"
},
{
"tag": "6.4.0",
"kind": "minor",
"published_at": "2026-01-09T13:36:13Z"
},
{
"tag": "6.3.6",
"kind": "patch",
"published_at": "2025-10-20T09:50:38Z"
},
{
"tag": "6.3.5",
"kind": "patch",
"published_at": "2025-08-04T07:36:52Z"
},
{
"tag": "6.3.4",
"kind": "patch",
"published_at": "2025-07-25T07:02:14Z"
},
{
"tag": "6.3.3",
"kind": "patch",
"published_at": "2025-07-14T08:31:57Z"
},
{
"tag": "6.3.2",
"kind": "patch",
"published_at": "2025-04-16T07:30:26Z"
},
{
"tag": "6.3.1",
"kind": "patch",
"published_at": "2025-02-21T09:24:11Z"
},
{
"tag": "6.3.0",
"kind": "minor",
"published_at": "2024-12-23T22:17:31Z"
},
{
"tag": "6.2.3",
"kind": "patch",
"published_at": "2024-12-23T09:51:53Z"
},
{
"tag": "6.2.2",
"kind": "patch",
"published_at": "2024-12-11T09:54:06Z"
},
{
"tag": "6.2.1",
"kind": "patch",
"published_at": "2024-10-03T11:11:30Z"
},
{
"tag": "6.2.0",
"kind": "minor",
"published_at": "2024-09-27T08:00:56Z"
},
{
"tag": "6.1.0",
"kind": "minor",
"published_at": "2024-09-23T08:27:54Z"
},
{
"tag": "6.0.1",
"kind": "patch",
"published_at": "2024-05-21T12:12:31Z"
},
{
"tag": "6.0.0",
"kind": "major",
"published_at": "2024-05-10T09:08:28Z"
},
{
"tag": "5.8.1",
"kind": "patch",
"published_at": "2024-05-10T08:22:19Z"
},
{
"tag": "5.8.0",
"kind": "minor",
"published_at": "2024-02-06T20:09:40Z"
},
{
"tag": "5.7.0",
"kind": "minor",
"published_at": "2024-01-08T10:08:44Z"
},
{
"tag": "5.6.0",
"kind": "minor",
"published_at": "2023-10-05T11:28:59Z"
},
{
"tag": "5.5.0",
"kind": "minor",
"published_at": "2023-09-12T09:08:20Z"
},
{
"tag": "5.4.0",
"kind": "minor",
"published_at": "2023-09-08T14:45:57Z"
},
{
"tag": "5.3.0",
"kind": "minor",
"published_at": "2023-08-21T10:59:17Z"
},
{
"tag": "5.2.0",
"kind": "minor",
"published_at": "2023-02-24T16:11:33Z"
},
{
"tag": "5.1.2",
"kind": "patch",
"published_at": "2023-01-24T23:33:29Z"
},
{
"tag": "5.1.1",
"kind": "patch",
"published_at": "2022-12-02T21:29:00Z"
},
{
"tag": "4.0.4",
"kind": "patch",
"published_at": "2022-11-28T13:51:45Z"
},
{
"tag": "5.1.0",
"kind": "minor",
"published_at": "2022-11-28T11:24:23Z"
},
{
"tag": "3.6.3",
"kind": "patch",
"published_at": "2022-08-30T06:54:01Z"
},
{
"tag": "5.0.3",
"kind": "patch",
"published_at": "2022-07-29T14:20:02Z"
},
{
"tag": "5.0.2",
"kind": "patch",
"published_at": "2022-04-25T07:07:57Z"
},
{
"tag": "4.0.3",
"kind": "patch",
"published_at": "2022-03-23T14:26:35Z"
},
{
"tag": "5.0.1",
"kind": "patch",
"published_at": "2022-03-18T07:45:48Z"
},
{
"tag": "5.0.0",
"kind": "major",
"published_at": "2022-01-13T10:59:01Z"
},
{
"tag": "3.6.2",
"kind": "patch",
"published_at": "2022-01-09T15:39:38Z"
},
{
"tag": "4.0.2",
"kind": "patch",
"published_at": "2021-12-26T19:19:28Z"
},
{
"tag": "3.6.1",
"kind": "patch",
"published_at": "2021-11-17T15:42:00Z"
},
{
"tag": "4.0.1",
"kind": "patch",
"published_at": "2021-10-27T14:49:52Z"
},
{
"tag": "4.0.0",
"kind": "major",
"published_at": "2021-10-20T12:46:26Z"
},
{
"tag": "3.6.0",
"kind": "minor",
"published_at": "2021-09-06T08:04:13Z"
},
{
"tag": "3.5.0",
"kind": "minor",
"published_at": "2021-07-05T14:17:56Z"
},
{
"tag": "3.4.3",
"kind": "patch",
"published_at": "2021-07-05T12:47:39Z"
},
{
"tag": "3.4.2",
"kind": "patch",
"published_at": "2021-07-05T12:41:19Z"
},
{
"tag": "1.18.0",
"kind": "minor",
"published_at": "2021-06-10T22:29:45Z"
},
{
"tag": "3.4.1",
"kind": "patch",
"published_at": "2021-05-24T10:13:46Z"
},
{
"tag": "3.4.0",
"kind": "minor",
"published_at": "2021-05-20T09:44:39Z"
},
{
"tag": "3.3.4",
"kind": "patch",
"published_at": "2020-11-26T14:55:31Z"
},
{
"tag": "3.3.3",
"kind": "patch",
"published_at": "2020-10-27T16:14:58Z"
},
{
"tag": "3.3.2",
"kind": "patch",
"published_at": "2020-10-27T15:24:36Z"
},
{
"tag": "3.3.1",
"kind": "patch",
"published_at": "2020-10-11T08:33:24Z"
},
{
"tag": "3.3.0",
"kind": "minor",
"published_at": "2020-10-05T19:31:21Z"
},
{
"tag": "3.2.4",
"kind": "patch",
"published_at": "2020-10-01T13:53:09Z"
},
{
"tag": "3.2.3",
"kind": "patch",
"published_at": "2020-09-30T12:44:19Z"
},
{
"tag": "3.2.2",
"kind": "patch",
"published_at": "2020-09-09T16:43:46Z"
},
{
"tag": "3.2.1",
"kind": "patch",
"published_at": "2020-09-09T16:28:06Z"
},
{
"tag": "2.8.4",
"kind": "patch",
"published_at": "2020-10-02T15:31:06Z"
},
{
"tag": "2.8.3",
"kind": "patch",
"published_at": "2020-09-08T22:42:14Z"
},
{
"tag": "3.2.0",
"kind": "minor",
"published_at": "2020-09-08T22:38:43Z"
},
{
"tag": "3.0.0",
"kind": "major",
"published_at": "2020-08-18T14:54:09Z"
},
{
"tag": "2.8.2",
"kind": "patch",
"published_at": "2020-05-25T09:37:10Z"
},
{
"tag": "2.8.0",
"kind": "minor",
"published_at": "2020-03-02T21:21:58Z"
},
{
"tag": "2.7.2",
"kind": "patch",
"published_at": "2020-02-26T14:38:33Z"
},
{
"tag": "2.7.1",
"kind": "patch",
"published_at": "2020-02-26T14:36:38Z"
},
{
"tag": "2.7.0",
"kind": "minor",
"published_at": "2020-02-11T10:16:23Z"
},
{
"tag": "2.6.1",
"kind": "patch",
"published_at": "2020-02-11T09:26:17Z"
},
{
"tag": "2.6.0",
"kind": "minor",
"published_at": "2020-02-10T15:25:06Z"
},
{
"tag": "2.5.1",
"kind": "patch",
"published_at": "2020-01-22T13:24:07Z"
},
{
"tag": "2.5.0",
"kind": "minor",
"published_at": "2020-01-09T12:14:49Z"
},
{
"tag": "2.4.0",
"kind": "minor",
"published_at": "2020-01-04T22:55:53Z"
},
{
"tag": "2.3.0",
"kind": "minor",
"published_at": "2019-10-08T08:49:31Z"
},
{
"tag": "2.2.1",
"kind": "patch",
"published_at": "2019-10-03T10:01:04Z"
},
{
"tag": "2.2.0",
"kind": "minor",
"published_at": "2019-10-03T10:00:48Z"
},
{
"tag": "2.1.0",
"kind": "minor",
"published_at": "2019-09-03T13:33:37Z"
},
{
"tag": "2.0.1",
"kind": "patch",
"published_at": "2019-08-12T15:01:50Z"
},
{
"tag": "2.0.0",
"kind": "major",
"published_at": "2019-08-12T10:01:18Z"
},
{
"tag": "1.17.5",
"kind": "patch",
"published_at": "2019-07-08T09:12:49Z"
},
{
"tag": "1.17.4",
"kind": "patch",
"published_at": "2019-06-03T09:48:32Z"
},
{
"tag": "1.17.3",
"kind": "patch",
"published_at": "2019-04-16T15:36:31Z"
},
{
"tag": "1.17.2",
"kind": "patch",
"published_at": "2019-04-12T16:52:07Z"
},
{
"tag": "1.17.1",
"kind": "patch",
"published_at": "2019-04-09T14:30:11Z"
},
{
"tag": "1.16.1",
"kind": "patch",
"published_at": "2019-04-09T14:29:53Z"
},
{
"tag": "1.17.0",
"kind": "minor",
"published_at": "2019-03-11T10:02:32Z"
},
{
"tag": "1.16.0",
"kind": "minor",
"published_at": "2019-03-06T10:14:20Z"
},
{
"tag": "1.15.2",
"kind": "patch",
"published_at": "2019-02-28T11:44:36Z"
},
{
"tag": "1.15.1",
"kind": "patch",
"published_at": "2019-02-28T09:51:47Z"
},
{
"tag": "1.15.0",
"kind": "minor",
"published_at": "2019-02-27T15:12:27Z"
},
{
"tag": "1.14.0",
"kind": "minor",
"published_at": "2019-02-27T13:51:26Z"
},
{
"tag": "1.13.2",
"kind": "patch",
"published_at": "2019-02-27T13:34:33Z"
},
{
"tag": "1.13.1",
"kind": "patch",
"published_at": "2019-01-18T22:09:29Z"
},
{
"tag": "1.12.0",
"kind": "minor",
"published_at": "2018-11-27T09:11:04Z"
},
{
"tag": "1.11.2",
"kind": "patch",
"published_at": "2018-10-30T09:11:10Z"
},
{
"tag": "1.11.1",
"kind": "patch",
"published_at": "2018-10-09T15:22:01Z"
}
],
"recent_commits": [
{
"oid": "1fbfd741e8b7bdd7039783455e5d0bd70285986a",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.\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...v7)\n\n---\nupdated-dependenc\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump actions/checkout from 6 to 7 (#1063)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-26T09:51:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0a74159205cb4632e326b8d5b7ad94d4962e5846",
"body": "github.actor reflects the actor that triggered the run, not the PR\nauthor, so it can read 'dependabot[bot]' on a PR whose code is not\nfrom Dependabot. Gate on the immutable PR author instead, and add a\nrepository guard so forks that copy this workflow do not auto-merge.\n\nReported by Volker Dusch (@edorian) and the PHP Foundation.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Harden Dependabot auto-merge actor check",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-06-02T10:33:03Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "78d3ee5821eead1989399590088b5b9b92e27877",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Use native GitHub Actions badges in README",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-06-02T06:36:21Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2005f8d86471d0ac9667953252c5e2f2dae159c5",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Fix code style badge to point at pint.yml workflow",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-06-01T22:57:28Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e54ef7d970fce43407e34b11abb2f2a57a703945",
"body": "…s/checkout-6\n\nBump actions/checkout from 5 to 6",
"is_bot": false,
"headline": "Merge pull request #1061 from spatie/dependabot/github_actions/action…",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-05-11T08:13:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "af04e4483fed9aa519ba0050e0ef820e4566a51d",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.\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/v5...v6)\n\n---\nupdated-dependenc\n[…]\n:\n- dependency-name: actions/checkout\n dependency-version: '6'\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump actions/checkout from 5 to 6",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-05-04T22:02:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "04ec2d9ac2b6d3a2ab9867a46c09fd5061ebb080",
"body": null,
"is_bot": false,
"headline": "Fix styling",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2026-05-02T18:16:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5897a3dff299fb574b0a58b287e40d9f5d242040",
"body": null,
"is_bot": false,
"headline": "Switch to Laravel Pint",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-05-02T18:15:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "131858e0a536da590da99dd0a55f1b3f513256cd",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2026-05-02T11:22:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3554c005f778d9da89d44b9895d2cca149110fea",
"body": "…060)\n\n* refactor(AllowedFilter): extract applyTo(Builder) primitive from filter()\n\n* feat(FiltersGroup): add filter class skeleton with constructor validation\n\n* test(FiltersGroup): rename test file to match Spatie convention (Filters* prefix)\n\n* feat(FiltersGroup): implement OR/AND dispatch with c\n[…]\ndrop incomplete filter type list to match README phrasing\n\n* fix(types): add PHPStan generic annotations for applyTo() and FiltersGroup\n\n* style: apply php-cs-fixer ordered imports in FiltersGroupTest",
"is_bot": false,
"headline": "feat: filter groups (OR/AND conjunction) — JSON:API Fancy Filters (#1…",
"author_name": "Birtan Taşkın",
"author_login": "taskinbirtan",
"committed_at": "2026-05-02T11:22:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bab39543e4a4b0bc4466a64235e4a02bf642a4ed",
"body": "* docs: add Angular front-end implementation\n\n* docs: add missing dot on typescript / typescript + react entries for consistency\n\n---------\n\nCo-authored-by: Andrea Tantimonaco <learning@andreatantimonaco.me>",
"is_bot": false,
"headline": "docs: add Angular front-end implementation (#1059)",
"author_name": "Andrea Tantimonaco",
"author_login": "AndreaAlhena",
"committed_at": "2026-04-30T16:14:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aa448a17d809c785c65766f3e3e6630769cf8755",
"body": "…abot/fetch-metadata-3.1.0\n\nBump dependabot/fetch-metadata from 3.0.0 to 3.1.0",
"is_bot": true,
"headline": "Merge pull request #1058 from spatie/dependabot/github_actions/depend…",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-04-20T19:54:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "317dc292b37c68447124588b5fd4a5d0d5837752",
"body": "Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 3.0.0 to 3.1.0.\n- [Release notes](https://github.com/dependabot/fetch-metadata/releases)\n- [Commits](https://github.com/dependabot/fetch-metadata/compare/v3.0.0...v3.1.0)\n\n---\nupdated-dependencies:\n- dependency-name: dependabot/fetch-metadata\n dependency-version: 3.1.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump dependabot/fetch-metadata from 3.0.0 to 3.1.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-04-20T19:54:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3ccccf2fb6e15a5da6cdfa5f767428703da34159",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2026-04-17T08:00:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "72b8c2675b8b0642658b5ad83bfef3b6ee77b28f",
"body": null,
"is_bot": false,
"headline": "Fix PHPStan errors on main (#1057)",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-04-17T07:37:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dceb56097f150d71d4d025158265c2f7cc03fd62",
"body": "* wip\n\n* Run CI workflows on pull_request events\n\n---------\n\nCo-authored-by: Freek Van der Herten <freek@spatie.be>",
"is_bot": false,
"headline": "Add support for disabling global filter value splitting (#1056)",
"author_name": "Paul A.",
"author_login": "paulandroshchuk",
"committed_at": "2026-04-17T07:16:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c9ff7db6508f3affb9625c0baabb5f047664fbae",
"body": null,
"is_bot": false,
"headline": "Update changelog for 7.2.0",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-04-08T12:52:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "52db3a8e31d4a224679113649593ce1e8f472c62",
"body": "* fix: query builder request should handle empty delimiter string gracefully\n\n* Rename maybeExplode to toParameterArray and improve test\n\n- Rename method to describe intent rather than implementation\n- Test with comma-containing values to verify delimiter is truly disabled\n- Fix test closure style (\n[…]\n test to better describe intent\n- Document disabling global delimiter in multi-value-delimiter docs\n- Add changelog entry for the fix\n\n---------\n\nCo-authored-by: Freek Van der Herten <freek@spatie.be>",
"is_bot": false,
"headline": "fix: handle empty delimiters gracefully in query builder (#1055)",
"author_name": "flexponsive",
"author_login": "flexponsive",
"committed_at": "2026-04-08T12:51:43Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "12252d2962e3865b98fd0cbbd03f5b576fc7448b",
"body": "Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.5.0 to 3.0.0.\n- [Release notes](https://github.com/dependabot/fetch-metadata/releases)\n- [Commits](https://github.com/dependabot/fetch-metadata/compare/v2.5.0...v3.0.0)\n\n---\nupdated-dependencies:\n- dependency-name\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump dependabot/fetch-metadata from 2.5.0 to 3.0.0 (#1053)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-04-08T07:35:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e2d651dff2a1010aff315e82580a1dde998d104c",
"body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-03-29T21:38:07Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ef0a1ff7c4331485b2056542875c60187e12d5f6",
"body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add per-filter delimiter support via fluent delimiter() method",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-03-29T21:37:55Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a19293fd0e2b32ae31118cb0930211fa7a56735b",
"body": "Bumps [ramsey/composer-install](https://github.com/ramsey/composer-install) from 3 to 4.\n- [Release notes](https://github.com/ramsey/composer-install/releases)\n- [Commits](https://github.com/ramsey/composer-install/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: ramsey/composer-instal\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "Bump ramsey/composer-install from 3 to 4 (#1052)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-03-19T07:50:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3e973e363894ea812c02b667e13041d919b3d399",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2026-03-16T10:22:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ec7246a4c162499381a6e1ddb58a6f0debd8926",
"body": "…(#1051)\n\n* fix: handle nullable filter edge cases for empty and not-null values\n\nFixes two edge cases in FiltersOperator when using dynamic operator filters\nwith nullable():\n\n1. Empty filter value (?filter[x]=) now defaults to EQUAL operator instead\n of empty string, correctly producing WHERE x I\n[…]\nsion should only apply when a dynamic\noperator prefix is stripped (e.g. '<>' stripped from '<>' leaves ''),\nnot for all operator filters. Moves the check inside the isDynamic &&\nvalue !== null branch.",
"is_bot": false,
"headline": "fix: handle nullable filter edge cases for empty and not-null values …",
"author_name": "isaackaara",
"author_login": "isaackaara",
"committed_at": "2026-03-16T10:22:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "109698599637acf838c6e46d75e80eeb67456373",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2026-03-15T14:24:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9b3228b9e54bb53552c50574dc4466431a662b36",
"body": "* Prepare v7 with modernized API and new features\n\nDrop Laravel 10/11, require Laravel 12+, Pest 4, PHPUnit 12.\nConvert SortDirection to PHP enum, use variadic parameters across all\nallowed* methods, extract HandlesRelationConstraints trait, move delimiter\nconfig from global static state to config f\n[…]\nred-By: Claude Opus 4.6 <noreply@anthropic.com>\n\n* v7\n\n* wip\n\n---------\n\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>\nCo-authored-by: freekmurze <483853+freekmurze@users.noreply.github.com>",
"is_bot": false,
"headline": "v7: Modernized API and aggregate includes (#1050)",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-03-15T14:23:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "27b8ce9167f3cf841335913ee06f184c99b88a92",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2026-03-08T13:45:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ab9c4c369fc913d6c020a0f6776f3c82f3e523fb",
"body": "When a filter is marked nullable and the request sends an empty value\n(resolving to null), FiltersOperator::getDynamicFilterOperator() was\ncalled with null despite its string type declaration, causing a TypeError.\n\nGuard the dynamic operator detection with a null check so that null\nvalues fall through to the where() call directly, which Laravel\ncorrectly translates to a WHERE IS NULL clause.\n\nFixes #1047",
"is_bot": false,
"headline": "Fix TypeError when nullable operator filter receives null value (#1048)",
"author_name": "isaackaara",
"author_login": "isaackaara",
"committed_at": "2026-03-08T13:45:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4f6b6797935c637beee0c0cc36b56251a12e6d73",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2026-02-21T21:14:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "317cf7e7146daec502241dd1cd1d8fd4bb6d5cff",
"body": "* Bump dependencies for Laravel 13\n\n* Update GitHub Actions for Laravel 13\n\n---------\n\nCo-authored-by: Shift <shift@laravelshift.com>",
"is_bot": false,
"headline": "Add Laravel 13 support (#1046)",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-02-21T21:10:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f46f49626ba27b0d28bf59516fa6dd17c73c7c8",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2026-02-18T09:22:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3d86f49fffa39d542753d15b741b83ca33087fc1",
"body": null,
"is_bot": false,
"headline": "add generics types to methods (#1044)",
"author_name": "lorenzolosa",
"author_login": "lorenzolosa",
"committed_at": "2026-02-18T09:22:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f61df0a2060251b9ace2662667fbb486f1845cba",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2026-01-27T07:27:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c7427c0dff87d7232beeecd2d33bf7d21952b43",
"body": null,
"is_bot": false,
"headline": "fix typo (#1040)",
"author_name": "Masatoshi Ogiwara",
"author_login": "zigzagdev",
"committed_at": "2026-01-27T07:27:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2042b684b8e5b94c944d1ab584dee49b461f1171",
"body": "…abot/fetch-metadata-2.5.0\n\nBump dependabot/fetch-metadata from 2.4.0 to 2.5.0",
"is_bot": true,
"headline": "Merge pull request #1038 from spatie/dependabot/github_actions/depend…",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2026-01-12T21:33:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "553f03d9f051362bcf8ac6f82a09194c2580a5ad",
"body": "Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.4.0 to 2.5.0.\n- [Release notes](https://github.com/dependabot/fetch-metadata/releases)\n- [Commits](https://github.com/dependabot/fetch-metadata/compare/v2.4.0...v2.5.0)\n\n---\nupdated-dependencies:\n- dependency-name: dependabot/fetch-metadata\n dependency-version: 2.5.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump dependabot/fetch-metadata from 2.4.0 to 2.5.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-01-12T21:33:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ff2f73a7394e3bfeca8f8a50ce3a9f77b95f9375",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2026-01-09T13:36:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f73627028538bfa58d5437f79344fa93ae254a36",
"body": null,
"is_bot": false,
"headline": "Fix styling",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2026-01-09T13:35:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "49a260508aa9688d15dbd194d9f1abd10a5c08ac",
"body": "…n-class\n\nfix: use instanceof for relation detection",
"is_bot": false,
"headline": "Merge pull request #1027 from zigzagdev/fix/type-judgement-in-relatio…",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-01-09T13:35:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "45dd750d3cbed174bbb8c44e8dd0f421c4f9f9fe",
"body": "…s/checkout-6\n\nBump actions/checkout from 5 to 6",
"is_bot": false,
"headline": "Merge pull request #1030 from spatie/dependabot/github_actions/action…",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-01-09T13:34:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "97c4135e2035201e1d90c3d0aac5a3d64776d77a",
"body": "fix typo in docs",
"is_bot": false,
"headline": "Merge pull request #1035 from lorenzolosa/typo",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-01-09T13:34:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "74fcfc8c1c94bad51cb0124d716a829d50fb1ed6",
"body": "Compatibility of Laravel 12 scopes with model binding",
"is_bot": false,
"headline": "Merge pull request #1036 from lorenzolosa/laravel_12_scopes",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-01-09T13:34:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1a0e7663cca9b9a8daeee420e33354d4b2ac80fb",
"body": null,
"is_bot": false,
"headline": "test filters for Laravel 12 style scopes",
"author_name": "Lorenzo Losa",
"author_login": "lorenzolosa",
"committed_at": "2026-01-08T14:41:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ba8cab78998771f6e9923949848465cde175ce13",
"body": null,
"is_bot": false,
"headline": "Fix styling",
"author_name": "lorenzolosa",
"author_login": "lorenzolosa",
"committed_at": "2026-01-08T14:18:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c6ebe0ab1637b6fd415e48dd59f317af8ea69270",
"body": null,
"is_bot": false,
"headline": "check for Laravel 12 style scopes",
"author_name": "Lorenzo Losa",
"author_login": "lorenzolosa",
"committed_at": "2026-01-08T14:17:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "220933e6e5e342c73009ca365d965582e13929ad",
"body": null,
"is_bot": false,
"headline": "fix typo in docs",
"author_name": "Lorenzo Losa",
"author_login": "lorenzolosa",
"committed_at": "2026-01-08T14:00:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "912276f9b5416db8bd024ee5440169a20f3bbeca",
"body": "Update README.md to reference v6 documentation pages",
"is_bot": false,
"headline": "Merge pull request #1033 from cezar-popa/main",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2026-01-07T07:56:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c5a5bd30056bb209f52f83bae05cf5fc66845731",
"body": null,
"is_bot": false,
"headline": "Update README.md to reference v6 documentation pages",
"author_name": "cezar-popa",
"author_login": "cezar-popa",
"committed_at": "2026-01-06T09:21:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "96700ac736a4c80d19de68cf82963e69e2f0e4ae",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.\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/v5...v6)\n\n---\nupdated-dependenc\n[…]\n:\n- dependency-name: actions/checkout\n dependency-version: '6'\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump actions/checkout from 5 to 6",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-11-24T17:54:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "eb20789311c3ca400958186be6f2a85ccd313f51",
"body": null,
"is_bot": false,
"headline": "fix: relation detection type check changed",
"author_name": "zigzagdev",
"author_login": "zigzagdev",
"committed_at": "2025-11-05T08:33:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cc6c69db1aaf26bae498e836ab3bc551eae1529b",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2025-10-20T09:51:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b9a5af31c79ae8fb79ae0aa8ba2b9e7180f39481",
"body": "…zweifel/git-auto-commit-action-7\n\nBump stefanzweifel/git-auto-commit-action from 6 to 7",
"is_bot": false,
"headline": "Merge pull request #1022 from spatie/dependabot/github_actions/stefan…",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-10-20T09:50:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a2d98b092c51795464ea000c2d6a57af5d711521",
"body": "…ategy-none\n\nFix using convert_relation_table_name_strategy of \"none\"",
"is_bot": false,
"headline": "Merge pull request #1023 from wrurik/feature/fix-convert-relation-str…",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-10-20T09:50:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "31a2fd5247828ed9333d6cec2304908f2dde2f43",
"body": null,
"is_bot": false,
"headline": "Fix using convert_relation_table_name_strategy of \"none\"",
"author_name": "Rurik Wind",
"author_login": null,
"committed_at": "2025-10-16T21:15:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9dd9f23f5c9c24259846396e26a23dadae7ce93b",
"body": "Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 6 to 7.\n- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)\n- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)\n- [Co\n[…]\n stefanzweifel/git-auto-commit-action\n dependency-version: '7'\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump stefanzweifel/git-auto-commit-action from 6 to 7",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-10-13T17:02:39Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3fc0dedd32abf201aa6bebb7bbb57d23e98c67f8",
"body": "Test against php 8.5",
"is_bot": false,
"headline": "Merge pull request #1020 from sergiy-petrov/php-8.5",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-10-08T07:56:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9bc9db497d42493fd75eabf047ecaf2d6b52b7c1",
"body": "* Test against php 8.5\n\n* Allow pest v4\n\n* Allow phpunit v12",
"is_bot": false,
"headline": "Test against php 8.5",
"author_name": "Serhii Petrov",
"author_login": "sergiy-petrov",
"committed_at": "2025-10-04T11:22:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e6498aef5354423b88970d2989558525e1a18f6f",
"body": "Update issue template",
"is_bot": false,
"headline": "Merge pull request #1018 from spatie/fix-issue-template",
"author_name": "Alex Vanderbist",
"author_login": "AlexVanderbist",
"committed_at": "2025-09-08T09:07:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7c3503caa908da01f1f54e2f909b9707b3fadd0b",
"body": null,
"is_bot": false,
"headline": "Update issue template",
"author_name": "Alex Vanderbist",
"author_login": "AlexVanderbist",
"committed_at": "2025-09-08T06:55:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a7c73ac5d0eebe76419e7562087290e8c2679fb",
"body": null,
"is_bot": false,
"headline": "Update config.yml",
"author_name": "Alex Vanderbist",
"author_login": "AlexVanderbist",
"committed_at": "2025-09-06T20:24:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "935e8d20c9c2448ad26f4645c19c088042a81e3c",
"body": null,
"is_bot": false,
"headline": "Remove Bug Report link from issue template",
"author_name": "Alex Vanderbist",
"author_login": "AlexVanderbist",
"committed_at": "2025-09-05T14:57:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ef3f2196b7728559ed2739786ba9f5b5cf772fdd",
"body": null,
"is_bot": false,
"headline": "Enable blank issues in issue template configuration",
"author_name": "Alex Vanderbist",
"author_login": "AlexVanderbist",
"committed_at": "2025-09-05T14:56:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "538b10080406081d8ef9707c9851bc76613def9a",
"body": "…s/checkout-5\n\nBump actions/checkout from 4 to 5",
"is_bot": false,
"headline": "Merge pull request #1016 from spatie/dependabot/github_actions/action…",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-08-25T07:45:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b5012cb0cad6788f629a7b278c31502876ad72bc",
"body": "Update documentation in the config",
"is_bot": false,
"headline": "Merge pull request #1017 from alexkart/fix-docs-typos",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-08-25T07:44:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "edd01869505fd771e92fd035bd52d5cf851d08a5",
"body": null,
"is_bot": false,
"headline": "fix: update example API requests in query builder documentation",
"author_name": "Alexander Kartavenko",
"author_login": "alexkart",
"committed_at": "2025-08-22T21:13:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "606484864cc0ef0d1cd33fce6d79135b9ee237ea",
"body": "Update reference to Laravel Pagination docs",
"is_bot": false,
"headline": "Merge pull request #1015 from timmch/patch-1",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-08-18T08:27:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e458f93a4726f2e5cb1298c400f69da96e99d05",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.\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/v4...v5)\n\n---\nupdated-dependenc\n[…]\n:\n- dependency-name: actions/checkout\n dependency-version: '5'\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump actions/checkout from 4 to 5",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-08-12T00:49:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1f048feb58a378047d4be5eabb9bcbb764afd937",
"body": null,
"is_bot": false,
"headline": "Update reference to Laravel Pagination docs",
"author_name": "Tim McHugh",
"author_login": "timmch",
"committed_at": "2025-08-11T17:31:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d201d286c024ae7d682bbc279398045890475227",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2025-08-04T07:37:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee3c98235616f88c11e75d3df5ea48dc7b20dd93",
"body": "Make nullable parameter types explicit to avoid deprecation warnings",
"is_bot": false,
"headline": "Merge pull request #1013 from zigzagdev/feature/fix-nullable-argument",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-08-04T07:36:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0347519a4f9623e3fe29b20b99bbbc9b4f9d73f7",
"body": null,
"is_bot": false,
"headline": "fix: nullable-argument-fix",
"author_name": "Masatoshi Ogiwara",
"author_login": null,
"committed_at": "2025-08-04T02:04:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2abca2a1b77d03810e587ee1d1a4b3a48fb86ef9",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2025-07-25T07:02:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d6c137391f1b5e7365cfaf0633a2ba1a97e79e53",
"body": "Improve QueryBuilder Generic Support",
"is_bot": false,
"headline": "Merge pull request #1012 from liamduckett/main",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-07-25T07:01:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0fd2e4f33c36882b2acd8b50111179071187ed9c",
"body": null,
"is_bot": false,
"headline": "add type assertion test for query builder for",
"author_name": "Liam Duckett",
"author_login": "liamduckett",
"committed_at": "2025-07-23T18:24:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f42132e74ccf722124970d784d2fced09b96dac",
"body": null,
"is_bot": false,
"headline": "fix incorrect generic on query builder for docblock",
"author_name": "Liam Duckett",
"author_login": "liamduckett",
"committed_at": "2025-07-23T18:16:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4b41ef2affb430160f40d2ff5539e0a0e83b7671",
"body": "…tion",
"is_bot": false,
"headline": "allow inferring generic for query builder for when called with a rela…",
"author_name": "Liam Duckett",
"author_login": "liamduckett",
"committed_at": "2025-07-19T20:39:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c4cf2ee37aadc5ca22aa13939103e97e700cfb42",
"body": "…an't use class level generic",
"is_bot": false,
"headline": "use method declared generic for query builder for, as static method c…",
"author_name": "Liam Duckett",
"author_login": "liamduckett",
"committed_at": "2025-07-19T20:36:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4f937d806afb63dc516f3ce2ea7a11857d0a0af5",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2025-07-14T08:32:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0d80323d2b2ffc410f06bf73c2e3a6ad763e4b8d",
"body": "Allow nested filters",
"is_bot": false,
"headline": "Merge pull request #1010 from bambamboole/feat/allow-filters-as-array",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-07-14T08:31:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ab103eb87266319c0c471433150a9cf88f53f6d",
"body": null,
"is_bot": false,
"headline": "Allow nested filters",
"author_name": "bambamboole",
"author_login": "bambamboole",
"committed_at": "2025-07-04T10:15:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7e89e7de70c580ae631023722daca9e5b3a24d19",
"body": "…zweifel/git-auto-commit-action-6\n\nBump stefanzweifel/git-auto-commit-action from 5 to 6",
"is_bot": false,
"headline": "Merge pull request #1009 from spatie/dependabot/github_actions/stefan…",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-06-23T07:28:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "47541876c97b198c2648096e54ede0b598365275",
"body": null,
"is_bot": false,
"headline": "Update Larastan dependency",
"author_name": "Tim Van Dijck",
"author_login": "timvandijck",
"committed_at": "2025-06-20T14:00:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "38aed93ec7ffc0093c640f6965aec5f5c8cd02e0",
"body": "Add larastan and fix static analysis issue",
"is_bot": false,
"headline": "Merge pull request #1003 from alexkart/add-larastan",
"author_name": "Tim Van Dijck",
"author_login": "timvandijck",
"committed_at": "2025-06-20T13:55:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48543e62cc6912490c7c430630054623740516f7",
"body": null,
"is_bot": false,
"headline": "Add doc block",
"author_name": "Tim Van Dijck",
"author_login": "timvandijck",
"committed_at": "2025-06-20T13:53:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2bbad969d7e3c1524c7088720f6423a9b1b417aa",
"body": "Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 5 to 6.\n- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)\n- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)\n- [Co\n[…]\n stefanzweifel/git-auto-commit-action\n dependency-version: '6'\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump stefanzweifel/git-auto-commit-action from 5 to 6",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-06-16T18:35:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1c111030018b02f0b9ca4b23009e1436f90643c2",
"body": null,
"is_bot": false,
"headline": "Update README.md",
"author_name": "Jimi Robaer",
"author_login": "jimirobaer",
"committed_at": "2025-06-05T11:13:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ed706e8469e1e608f7074e150920fa13c5529908",
"body": "Docs: clarify selecting fields for included relations",
"is_bot": false,
"headline": "Merge pull request #1008 from amyavari/docs/select-include-fields",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-05-20T08:44:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "86ba5ca4c0353f18063088f1696377b2c450d42f",
"body": null,
"is_bot": false,
"headline": "docs: fix refering to old version of doc",
"author_name": "Ali M. Yavari",
"author_login": "amyavari",
"committed_at": "2025-05-19T15:51:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fa69a1357644403a67b7aa459e5a3847a65e07c3",
"body": null,
"is_bot": false,
"headline": "docs: clarify selecting fields for included relations",
"author_name": "Ali M. Yavari",
"author_login": "amyavari",
"committed_at": "2025-05-19T15:50:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9b4822374e76b28e91e8eda207cd466029f6d272",
"body": "…abot/fetch-metadata-2.4.0\n\nBump dependabot/fetch-metadata from 2.3.0 to 2.4.0",
"is_bot": true,
"headline": "Merge pull request #1006 from spatie/dependabot/github_actions/depend…",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-05-12T17:34:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7de97f9ebb0ffbdf88eda32dce30a6d7d9f851df",
"body": "Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.3.0 to 2.4.0.\n- [Release notes](https://github.com/dependabot/fetch-metadata/releases)\n- [Commits](https://github.com/dependabot/fetch-metadata/compare/v2.3.0...v2.4.0)\n\n---\nupdated-dependencies:\n- dependency-name: dependabot/fetch-metadata\n dependency-version: 2.4.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2025-05-12T17:34:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9083970997296a58df9ce3b64d403ad480eec180",
"body": "update some links so point to v6 docs",
"is_bot": false,
"headline": "Merge pull request #1004 from KnudH/patch-1",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-05-03T13:29:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ff95255a136c4e9c9127325cac600dd3667af181",
"body": null,
"is_bot": false,
"headline": "update some links so point to v6 docs",
"author_name": "Knud Hollander",
"author_login": "KnudH",
"committed_at": "2025-05-03T08:58:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "87e7a9671f4c9630f256ad1309cfc7bc14521e61",
"body": null,
"is_bot": false,
"headline": "Update README.md",
"author_name": "Jimi Robaer",
"author_login": "jimirobaer",
"committed_at": "2025-04-22T07:34:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1d9de6da8d1d61a1fcc12e6c6de9c3845836965d",
"body": null,
"is_bot": false,
"headline": "Update CHANGELOG",
"author_name": "freekmurze",
"author_login": "freekmurze",
"committed_at": "2025-04-16T07:30:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3675f7bace346dc5243f58fa7c531e36471200f4",
"body": "Enhance QueryBuilder with generics support for better type inference",
"is_bot": false,
"headline": "Merge pull request #1002 from alexkart/query-buikder-generic",
"author_name": "Freek Van der Herten",
"author_login": "freekmurze",
"committed_at": "2025-04-16T07:30:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4c4f9b3af1862015926b16d964be13764876024d",
"body": null,
"is_bot": false,
"headline": "Add type hint for query builder in FiltersExact.php",
"author_name": "Alexander Kartavenko",
"author_login": "alexkart",
"committed_at": "2025-04-15T18:33:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8a39b523dd20cfd2a58ae67467e20b9c44c70d7c",
"body": null,
"is_bot": false,
"headline": "Add larastan as a dev dependency",
"author_name": "Alexander Kartavenko",
"author_login": "alexkart",
"committed_at": "2025-04-15T18:31:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fc207334ca9738fa2576fda18293d1ce1e87b6af",
"body": null,
"is_bot": false,
"headline": "revert some changes",
"author_name": "Alexander Kartavenko",
"author_login": "alexkart",
"committed_at": "2025-04-15T18:27:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f73be49ce4a4781f74e4499edb1e14f21fbf2f0d",
"body": "…erics",
"is_bot": false,
"headline": "Refactor clone method in QueryBuilder to improve type safety with gen…",
"author_name": "Alexander Kartavenko",
"author_login": "alexkart",
"committed_at": "2025-04-15T17:37:25Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 100,
"commits_last_year": 71,
"latest_release_at": "2026-05-02T11:22:39Z",
"latest_release_tag": "7.3.0",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 24,
"days_since_latest_release": 88,
"mean_days_between_releases": 12.5
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 50,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "spatie/laravel-query-builder",
"exists": true,
"license": "MIT",
"keywords": [
"spatie",
"laravel-query-builder"
],
"ecosystem": "packagist",
"matches_repo": true,
"registry_url": "https://packagist.org/packages/spatie/laravel-query-builder",
"is_deprecated": false,
"latest_version": "7.3.0",
"repository_url": "https://github.com/spatie/laravel-query-builder",
"versions_count": 133,
"total_downloads": 31994583,
"dependents_count": 256,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 1327413,
"first_published_at": null,
"latest_published_at": "2026-05-02T11:22:31Z",
"latest_version_yanked": null,
"days_since_latest_publish": 88
}
]
},
"popularity": {
"forks": 418,
"stars": 4461,
"watchers": 47,
"fork_history": {
"days": [
{
"date": "2018-01-17",
"count": 2
},
{
"date": "2018-01-18",
"count": 2
},
{
"date": "2018-01-19",
"count": 2
},
{
"date": "2018-01-24",
"count": 1
},
{
"date": "2018-01-28",
"count": 1
},
{
"date": "2018-02-06",
"count": 1
},
{
"date": "2018-02-07",
"count": 1
},
{
"date": "2018-02-23",
"count": 2
},
{
"date": "2018-03-08",
"count": 1
},
{
"date": "2018-03-15",
"count": 1
},
{
"date": "2018-03-26",
"count": 2
},
{
"date": "2018-04-03",
"count": 1
},
{
"date": "2018-04-06",
"count": 1
},
{
"date": "2018-04-18",
"count": 1
},
{
"date": "2018-05-06",
"count": 1
},
{
"date": "2018-05-15",
"count": 1
},
{
"date": "2018-06-04",
"count": 1
},
{
"date": "2018-06-08",
"count": 1
},
{
"date": "2018-07-18",
"count": 1
},
{
"date": "2018-07-24",
"count": 1
},
{
"date": "2018-07-25",
"count": 1
},
{
"date": "2018-07-27",
"count": 1
},
{
"date": "2018-08-10",
"count": 1
},
{
"date": "2018-08-14",
"count": 1
},
{
"date": "2018-08-18",
"count": 1
},
{
"date": "2018-08-20",
"count": 1
},
{
"date": "2018-08-21",
"count": 1
},
{
"date": "2018-08-26",
"count": 1
},
{
"date": "2018-09-06",
"count": 1
},
{
"date": "2018-09-09",
"count": 1
},
{
"date": "2018-09-17",
"count": 1
},
{
"date": "2018-09-21",
"count": 2
},
{
"date": "2018-10-01",
"count": 1
},
{
"date": "2018-10-05",
"count": 1
},
{
"date": "2018-10-19",
"count": 1
},
{
"date": "2018-10-20",
"count": 2
},
{
"date": "2018-10-22",
"count": 1
},
{
"date": "2018-10-24",
"count": 1
},
{
"date": "2018-10-26",
"count": 1
},
{
"date": "2018-10-29",
"count": 1
},
{
"date": "2018-10-30",
"count": 2
},
{
"date": "2018-10-31",
"count": 1
},
{
"date": "2018-11-20",
"count": 2
},
{
"date": "2018-11-22",
"count": 2
},
{
"date": "2018-12-14",
"count": 1
},
{
"date": "2018-12-19",
"count": 1
},
{
"date": "2018-12-21",
"count": 1
},
{
"date": "2019-01-09",
"count": 2
},
{
"date": "2019-01-14",
"count": 1
},
{
"date": "2019-01-17",
"count": 1
},
{
"date": "2019-01-30",
"count": 1
},
{
"date": "2019-02-05",
"count": 1
},
{
"date": "2019-02-15",
"count": 1
},
{
"date": "2019-02-27",
"count": 1
},
{
"date": "2019-03-19",
"count": 1
},
{
"date": "2019-04-19",
"count": 1
},
{
"date": "2019-04-30",
"count": 1
},
{
"date": "2019-05-23",
"count": 1
},
{
"date": "2019-05-29",
"count": 1
},
{
"date": "2019-06-03",
"count": 1
},
{
"date": "2019-06-05",
"count": 1
},
{
"date": "2019-06-12",
"count": 1
},
{
"date": "2019-06-13",
"count": 1
},
{
"date": "2019-06-24",
"count": 1
},
{
"date": "2019-06-25",
"count": 1
},
{
"date": "2019-07-14",
"count": 1
},
{
"date": "2019-07-26",
"count": 1
},
{
"date": "2019-07-30",
"count": 1
},
{
"date": "2019-08-01",
"count": 2
},
{
"date": "2019-08-06",
"count": 1
},
{
"date": "2019-08-07",
"count": 1
},
{
"date": "2019-08-12",
"count": 1
},
{
"date": "2019-08-13",
"count": 2
},
{
"date": "2019-08-15",
"count": 1
},
{
"date": "2019-08-31",
"count": 3
},
{
"date": "2019-09-15",
"count": 1
},
{
"date": "2019-09-18",
"count": 1
},
{
"date": "2019-09-25",
"count": 1
},
{
"date": "2019-09-27",
"count": 1
},
{
"date": "2019-10-09",
"count": 1
},
{
"date": "2019-10-25",
"count": 1
},
{
"date": "2019-10-29",
"count": 2
},
{
"date": "2019-10-30",
"count": 1
},
{
"date": "2019-11-04",
"count": 1
},
{
"date": "2019-11-14",
"count": 1
},
{
"date": "2019-11-18",
"count": 1
},
{
"date": "2019-11-21",
"count": 1
},
{
"date": "2019-11-25",
"count": 1
},
{
"date": "2019-11-29",
"count": 1
},
{
"date": "2019-12-06",
"count": 1
},
{
"date": "2019-12-10",
"count": 2
},
{
"date": "2019-12-13",
"count": 2
},
{
"date": "2019-12-14",
"count": 1
},
{
"date": "2019-12-25",
"count": 1
},
{
"date": "2019-12-27",
"count": 1
},
{
"date": "2019-12-31",
"count": 1
},
{
"date": "2020-01-06",
"count": 2
},
{
"date": "2020-01-09",
"count": 1
},
{
"date": "2020-01-17",
"count": 1
},
{
"date": "2020-01-19",
"count": 1
},
{
"date": "2020-01-27",
"count": 1
},
{
"date": "2020-02-06",
"count": 1
},
{
"date": "2020-02-07",
"count": 1
},
{
"date": "2020-02-13",
"count": 1
},
{
"date": "2020-02-14",
"count": 2
},
{
"date": "2020-02-24",
"count": 1
},
{
"date": "2020-02-26",
"count": 1
},
{
"date": "2020-02-27",
"count": 1
},
{
"date": "2020-03-02",
"count": 1
},
{
"date": "2020-03-03",
"count": 2
},
{
"date": "2020-03-06",
"count": 1
},
{
"date": "2020-03-10",
"count": 1
},
{
"date": "2020-03-20",
"count": 1
},
{
"date": "2020-03-22",
"count": 1
},
{
"date": "2020-03-26",
"count": 1
},
{
"date": "2020-04-10",
"count": 1
},
{
"date": "2020-04-15",
"count": 1
},
{
"date": "2020-04-16",
"count": 1
},
{
"date": "2020-04-18",
"count": 1
},
{
"date": "2020-04-30",
"count": 1
},
{
"date": "2020-05-04",
"count": 1
},
{
"date": "2020-05-05",
"count": 1
},
{
"date": "2020-05-06",
"count": 1
},
{
"date": "2020-05-13",
"count": 1
},
{
"date": "2020-05-18",
"count": 1
},
{
"date": "2020-05-25",
"count": 1
},
{
"date": "2020-06-01",
"count": 1
},
{
"date": "2020-06-02",
"count": 1
},
{
"date": "2020-06-05",
"count": 1
},
{
"date": "2020-06-11",
"count": 1
},
{
"date": "2020-06-21",
"count": 1
},
{
"date": "2020-06-30",
"count": 1
},
{
"date": "2020-07-22",
"count": 1
},
{
"date": "2020-07-28",
"count": 1
},
{
"date": "2020-08-03",
"count": 1
},
{
"date": "2020-08-04",
"count": 2
},
{
"date": "2020-08-05",
"count": 1
},
{
"date": "2020-08-16",
"count": 1
},
{
"date": "2020-08-21",
"count": 1
},
{
"date": "2020-09-01",
"count": 1
},
{
"date": "2020-09-03",
"count": 1
},
{
"date": "2020-09-09",
"count": 1
},
{
"date": "2020-09-11",
"count": 2
},
{
"date": "2020-09-13",
"count": 1
},
{
"date": "2020-09-17",
"count": 1
},
{
"date": "2020-09-23",
"count": 1
},
{
"date": "2020-09-24",
"count": 1
},
{
"date": "2020-10-08",
"count": 1
},
{
"date": "2020-10-11",
"count": 1
},
{
"date": "2020-10-13",
"count": 1
},
{
"date": "2020-10-14",
"count": 1
},
{
"date": "2020-10-19",
"count": 2
},
{
"date": "2020-10-29",
"count": 1
},
{
"date": "2020-10-30",
"count": 1
},
{
"date": "2020-10-31",
"count": 1
},
{
"date": "2020-11-05",
"count": 1
},
{
"date": "2020-11-11",
"count": 1
},
{
"date": "2020-11-15",
"count": 1
},
{
"date": "2020-12-11",
"count": 1
},
{
"date": "2020-12-29",
"count": 2
},
{
"date": "2021-02-04",
"count": 1
},
{
"date": "2021-02-15",
"count": 1
},
{
"date": "2021-02-20",
"count": 1
},
{
"date": "2021-02-22",
"count": 1
},
{
"date": "2021-03-24",
"count": 1
},
{
"date": "2021-04-11",
"count": 1
},
{
"date": "2021-04-21",
"count": 1
},
{
"date": "2021-05-16",
"count": 1
},
{
"date": "2021-05-20",
"count": 1
},
{
"date": "2021-05-24",
"count": 1
},
{
"date": "2021-06-03",
"count": 1
},
{
"date": "2021-06-08",
"count": 1
},
{
"date": "2021-06-15",
"count": 1
},
{
"date": "2021-06-28",
"count": 1
},
{
"date": "2021-07-02",
"count": 2
},
{
"date": "2021-07-27",
"count": 1
},
{
"date": "2021-08-12",
"count": 1
},
{
"date": "2021-08-18",
"count": 1
},
{
"date": "2021-08-19",
"count": 1
},
{
"date": "2021-08-20",
"count": 1
},
{
"date": "2021-08-27",
"count": 1
},
{
"date": "2021-08-28",
"count": 2
},
{
"date": "2021-08-31",
"count": 2
},
{
"date": "2021-09-02",
"count": 2
},
{
"date": "2021-09-09",
"count": 1
},
{
"date": "2021-09-16",
"count": 1
},
{
"date": "2021-09-22",
"count": 2
},
{
"date": "2021-09-24",
"count": 1
},
{
"date": "2021-09-26",
"count": 1
},
{
"date": "2021-10-07",
"count": 1
},
{
"date": "2021-10-09",
"count": 1
},
{
"date": "2021-10-11",
"count": 1
},
{
"date": "2021-10-15",
"count": 1
},
{
"date": "2021-10-19",
"count": 1
},
{
"date": "2021-10-24",
"count": 1
},
{
"date": "2021-10-25",
"count": 1
},
{
"date": "2021-10-28",
"count": 1
},
{
"date": "2021-11-02",
"count": 2
},
{
"date": "2021-11-09",
"count": 1
},
{
"date": "2021-11-22",
"count": 1
},
{
"date": "2021-11-29",
"count": 1
},
{
"date": "2021-12-01",
"count": 1
},
{
"date": "2021-12-15",
"count": 1
},
{
"date": "2021-12-31",
"count": 1
},
{
"date": "2022-01-08",
"count": 1
},
{
"date": "2022-01-13",
"count": 1
},
{
"date": "2022-01-16",
"count": 1
},
{
"date": "2022-01-28",
"count": 1
},
{
"date": "2022-01-31",
"count": 1
},
{
"date": "2022-02-08",
"count": 1
},
{
"date": "2022-02-10",
"count": 1
},
{
"date": "2022-02-11",
"count": 1
},
{
"date": "2022-02-15",
"count": 1
},
{
"date": "2022-02-16",
"count": 1
},
{
"date": "2022-02-17",
"count": 2
},
{
"date": "2022-02-19",
"count": 1
},
{
"date": "2022-03-08",
"count": 1
},
{
"date": "2022-03-10",
"count": 1
},
{
"date": "2022-03-19",
"count": 1
},
{
"date": "2022-03-23",
"count": 1
},
{
"date": "2022-03-25",
"count": 1
},
{
"date": "2022-04-04",
"count": 1
},
{
"date": "2022-04-09",
"count": 1
},
{
"date": "2022-04-17",
"count": 1
},
{
"date": "2022-04-22",
"count": 1
},
{
"date": "2022-04-24",
"count": 1
},
{
"date": "2022-05-30",
"count": 1
},
{
"date": "2022-06-02",
"count": 1
},
{
"date": "2022-06-03",
"count": 1
},
{
"date": "2022-06-20",
"count": 1
},
{
"date": "2022-06-25",
"count": 1
},
{
"date": "2022-07-11",
"count": 1
},
{
"date": "2022-07-28",
"count": 1
},
{
"date": "2022-08-01",
"count": 1
},
{
"date": "2022-08-23",
"count": 1
},
{
"date": "2022-08-31",
"count": 1
},
{
"date": "2022-09-01",
"count": 1
},
{
"date": "2022-09-13",
"count": 1
},
{
"date": "2022-10-18",
"count": 1
},
{
"date": "2022-10-23",
"count": 1
},
{
"date": "2022-10-26",
"count": 1
},
{
"date": "2022-10-27",
"count": 1
},
{
"date": "2022-10-31",
"count": 1
},
{
"date": "2022-11-28",
"count": 2
},
{
"date": "2022-12-02",
"count": 1
},
{
"date": "2022-12-12",
"count": 1
},
{
"date": "2022-12-26",
"count": 1
},
{
"date": "2023-01-02",
"count": 1
},
{
"date": "2023-01-04",
"count": 1
},
{
"date": "2023-01-06",
"count": 1
},
{
"date": "2023-01-10",
"count": 1
},
{
"date": "2023-01-17",
"count": 1
},
{
"date": "2023-01-20",
"count": 2
},
{
"date": "2023-01-23",
"count": 1
},
{
"date": "2023-01-24",
"count": 1
},
{
"date": "2023-01-26",
"count": 1
},
{
"date": "2023-02-01",
"count": 1
},
{
"date": "2023-02-07",
"count": 1
},
{
"date": "2023-02-08",
"count": 2
},
{
"date": "2023-02-17",
"count": 1
},
{
"date": "2023-02-19",
"count": 1
},
{
"date": "2023-02-21",
"count": 1
},
{
"date": "2023-03-06",
"count": 1
},
{
"date": "2023-03-09",
"count": 1
},
{
"date": "2023-03-19",
"count": 1
},
{
"date": "2023-03-25",
"count": 1
},
{
"date": "2023-04-10",
"count": 1
},
{
"date": "2023-04-24",
"count": 1
},
{
"date": "2023-05-10",
"count": 2
},
{
"date": "2023-05-15",
"count": 1
},
{
"date": "2023-05-18",
"count": 1
},
{
"date": "2023-06-09",
"count": 1
},
{
"date": "2023-06-21",
"count": 2
},
{
"date": "2023-06-23",
"count": 1
},
{
"date": "2023-07-16",
"count": 1
},
{
"date": "2023-07-28",
"count": 2
},
{
"date": "2023-07-31",
"count": 1
},
{
"date": "2023-08-08",
"count": 1
},
{
"date": "2023-08-13",
"count": 1
},
{
"date": "2023-08-25",
"count": 1
},
{
"date": "2023-08-31",
"count": 1
},
{
"date": "2023-09-19",
"count": 1
},
{
"date": "2023-09-30",
"count": 1
},
{
"date": "2023-10-05",
"count": 1
},
{
"date": "2023-10-08",
"count": 1
},
{
"date": "2023-10-09",
"count": 1
},
{
"date": "2023-10-12",
"count": 1
},
{
"date": "2023-10-16",
"count": 1
},
{
"date": "2023-10-28",
"count": 1
},
{
"date": "2023-11-02",
"count": 1
},
{
"date": "2023-11-15",
"count": 1
},
{
"date": "2023-11-27",
"count": 1
},
{
"date": "2023-11-28",
"count": 1
},
{
"date": "2024-01-03",
"count": 1
},
{
"date": "2024-01-14",
"count": 1
},
{
"date": "2024-01-21",
"count": 1
},
{
"date": "2024-02-06",
"count": 2
},
{
"date": "2024-02-20",
"count": 1
},
{
"date": "2024-02-23",
"count": 1
},
{
"date": "2024-03-14",
"count": 1
},
{
"date": "2024-03-29",
"count": 1
},
{
"date": "2024-03-30",
"count": 1
},
{
"date": "2024-04-06",
"count": 1
},
{
"date": "2024-05-08",
"count": 1
},
{
"date": "2024-05-14",
"count": 1
},
{
"date": "2024-05-27",
"count": 1
},
{
"date": "2024-06-04",
"count": 1
},
{
"date": "2024-06-09",
"count": 1
},
{
"date": "2024-06-14",
"count": 1
},
{
"date": "2024-06-20",
"count": 1
},
{
"date": "2024-06-26",
"count": 1
},
{
"date": "2024-07-05",
"count": 1
},
{
"date": "2024-08-03",
"count": 1
},
{
"date": "2024-08-23",
"count": 1
},
{
"date": "2024-08-27",
"count": 1
},
{
"date": "2024-09-06",
"count": 1
},
{
"date": "2024-09-16",
"count": 1
},
{
"date": "2024-09-17",
"count": 1
},
{
"date": "2024-09-23",
"count": 1
},
{
"date": "2024-10-08",
"count": 1
},
{
"date": "2024-10-19",
"count": 1
},
{
"date": "2024-11-03",
"count": 1
},
{
"date": "2024-12-01",
"count": 1
},
{
"date": "2024-12-03",
"count": 1
},
{
"date": "2024-12-23",
"count": 1
},
{
"date": "2024-12-26",
"count": 1
},
{
"date": "2025-02-12",
"count": 1
},
{
"date": "2025-02-19",
"count": 1
},
{
"date": "2025-02-20",
"count": 1
},
{
"date": "2025-03-13",
"count": 1
},
{
"date": "2025-04-04",
"count": 1
},
{
"date": "2025-04-15",
"count": 1
},
{
"date": "2025-05-23",
"count": 1
},
{
"date": "2025-07-06",
"count": 1
},
{
"date": "2025-07-19",
"count": 1
},
{
"date": "2025-07-28",
"count": 1
},
{
"date": "2025-08-04",
"count": 1
},
{
"date": "2025-08-06",
"count": 1
},
{
"date": "2025-08-11",
"count": 1
},
{
"date": "2025-09-10",
"count": 1
},
{
"date": "2025-09-17",
"count": 1
},
{
"date": "2025-09-23",
"count": 1
},
{
"date": "2025-10-09",
"count": 1
},
{
"date": "2025-10-16",
"count": 1
},
{
"date": "2025-10-26",
"count": 1
},
{
"date": "2025-11-12",
"count": 1
},
{
"date": "2025-12-07",
"count": 1
},
{
"date": "2025-12-25",
"count": 1
},
{
"date": "2026-01-06",
"count": 1
},
{
"date": "2026-01-10",
"count": 1
},
{
"date": "2026-01-23",
"count": 1
},
{
"date": "2026-02-02",
"count": 1
},
{
"date": "2026-03-06",
"count": 1
},
{
"date": "2026-04-07",
"count": 1
},
{
"date": "2026-04-08",
"count": 1
},
{
"date": "2026-04-09",
"count": 1
},
{
"date": "2026-04-30",
"count": 1
},
{
"date": "2026-05-28",
"count": 1
},
{
"date": "2026-06-23",
"count": 1
},
{
"date": "2026-07-03",
"count": 1
},
{
"date": "2026-07-04",
"count": 1
},
{
"date": "2026-07-19",
"count": 4
},
{
"date": "2026-07-28",
"count": 1
}
],
"complete": true,
"collected": 405,
"total_forks": 418
},
"star_history": null,
"open_issues_and_prs": 2
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": 38060,
"source_files_sampled": 74,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"composer.json"
],
"advisories": {
"error": "No resolved dependencies carried a version and a supported ecosystem",
"scope": "repository_graph",
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 12,
"direct_affected_count": 0
},
"ecosystems": [
"packagist"
],
"dependencies": [
{
"name": "illuminate/database",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^12.0|^13.0"
},
{
"name": "illuminate/http",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^12.0|^13.0"
},
{
"name": "illuminate/support",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^12.0|^13.0"
},
{
"name": "spatie/laravel-package-tools",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^1.11"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "illuminate/database",
"direct": true,
"version": null,
"ecosystem": "packagist"
},
{
"name": "illuminate/http",
"direct": true,
"version": null,
"ecosystem": "packagist"
},
{
"name": "illuminate/support",
"direct": true,
"version": null,
"ecosystem": "packagist"
},
{
"name": "spatie/laravel-package-tools",
"direct": true,
"version": null,
"ecosystem": "packagist"
},
{
"name": "ext-json",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "larastan/larastan",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "mockery/mockery",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "orchestra/testbench",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "pestphp/pest",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "php",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "phpunit/phpunit",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "spatie/invade",
"direct": false,
"version": null,
"ecosystem": "packagist"
}
],
"collected": true,
"truncated": false,
"total_count": 12,
"direct_count": 4,
"indirect_count": 8
}
},
"maintainership": {
"issues": {
"open_prs": 2,
"merged_prs": 300,
"open_issues": 0,
"closed_ratio": 1,
"closed_issues": 339,
"closed_unmerged_prs": 150
},
"bus_factor": 2,
"bot_contributors": 2,
"top_contributors": [
{
"type": "User",
"login": "AlexVanderbist",
"commits": 408,
"avatar_url": "https://avatars.githubusercontent.com/u/6287961?v=4"
},
{
"type": "User",
"login": "freekmurze",
"commits": 316,
"avatar_url": "https://avatars.githubusercontent.com/u/483853?v=4"
},
{
"type": "User",
"login": "dominikb",
"commits": 15,
"avatar_url": "https://avatars.githubusercontent.com/u/28777818?v=4"
},
{
"type": "User",
"login": "laravel-shift",
"commits": 12,
"avatar_url": "https://avatars.githubusercontent.com/u/15991828?v=4"
},
{
"type": "User",
"login": "Nielsvanpach",
"commits": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/10651054?v=4"
},
{
"type": "User",
"login": "stevebauman",
"commits": 10,
"avatar_url": "https://avatars.githubusercontent.com/u/6421846?v=4"
},
{
"type": "User",
"login": "AdrianMrn",
"commits": 8,
"avatar_url": "https://avatars.githubusercontent.com/u/12762044?v=4"
},
{
"type": "User",
"login": "alexkart",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/8249105?v=4"
},
{
"type": "User",
"login": "cornelp",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/10222052?v=4"
},
{
"type": "User",
"login": "lorenzolosa",
"commits": 6,
"avatar_url": "https://avatars.githubusercontent.com/u/11164571?v=4"
}
],
"contributors_sampled": 98,
"top_contributor_share": 0.432
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"dependabot-auto-merge.yml",
"phpstan.yml",
"pint.yml",
"run-tests.yml",
"update-changelog.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": true,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 7,
"reason": "10 out of 14 merged PRs checked by a CI test -- score normalized to 7",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 2,
"reason": "Found 6/23 approved changesets -- score normalized to 2",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 10 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": null,
"reason": "no workflows found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 9,
"reason": "11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": null,
"reason": "no dependencies found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": null,
"reason": "No tokens found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "1fbfd741e8b7bdd7039783455e5d0bd70285986a",
"ran_at": "2026-07-29T16:05:27Z",
"aggregate_score": 5.4,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": true
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-27T17:32:30Z",
"oldest_open_prs": [
{
"number": 1065,
"created_at": "2026-07-29T08:59:22Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 1066,
"created_at": "2026-07-29T16:03:20Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-06-26T09:51:05Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/spatie/laravel-query-builder",
"host": "github.com",
"name": "laravel-query-builder",
"owner": "spatie"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"security": 54,
"vitality": 87,
"community": 84,
"governance": 77,
"engineering": 77
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 87,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 78,
"inputs": {
"commits_last_year": 71,
"human_commit_share": 0.86,
"days_since_last_push": 0,
"active_weeks_last_year": 24
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "24/52 weeks with commits",
"points": 16.6,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 24
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "71 commits in the last year",
"points": 16.7,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 71
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9",
"points": 9,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 100,
"inputs": {
"releases_count": 100,
"latest_release_tag": "7.3.0",
"releases_from_tags": false,
"days_since_latest_release": 88,
"mean_days_between_releases": 12.5
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "100 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 100
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 88 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 88
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~12.5 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 12.5
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 57,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 57 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 57
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "good",
"name": "Community & Adoption",
"value": 84,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "excellent",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"forks": 418,
"stars": 4461,
"watchers": 47,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "4,461 stars",
"points": 59.2,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 4461
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "418 forks",
"points": 21.8,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 418
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "47 watchers",
"points": 9.2,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 47
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "good",
"name": "Community health",
"note": null,
"notes": [],
"value": 70,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "excellent",
"name": "Ecosystem adoption (downloads)",
"note": null,
"notes": [],
"value": 96,
"inputs": {
"packages": [
"spatie/laravel-query-builder"
],
"dependents": 256,
"ecosystems": "packagist",
"total_downloads": 31994583,
"monthly_downloads": 1327413
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "1,327,413 downloads/month across packagist",
"points": 80,
"status": "met",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 1327413,
"ecosystems": "packagist"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "256 packages depend on it",
"points": 16.1,
"status": "partial",
"details": [
{
"code": "registry_dependents",
"params": {
"count": 256
}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "good",
"name": "Sustainability & Governance",
"value": 77,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "moderate",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 62,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 98,
"top_contributor_share": 0.432
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "2 contributor(s) cover half of all commits",
"points": 25.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 2
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 43% of commits",
"points": 12.8,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 43
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "98 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 98
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 10 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"merged_prs": 300,
"open_issues": 0,
"closed_issues": 339,
"issue_closed_ratio": 1,
"closed_unmerged_prs": 150
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "100% of issues closed",
"points": 46.8,
"status": "met",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 100
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "300/450 decided PRs merged",
"points": 25.5,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 300,
"decided": 450
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 6/23 approved changesets -- score normalized to 2",
"points": 3,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "good",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"followers": 3808,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "spatie",
"public_repos": 524,
"account_age_days": 4463
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "organization-owned",
"points": 30,
"status": "met",
"details": [
{
"code": "owner_organization",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "3,808 followers of spatie",
"points": 25,
"status": "met",
"details": [
{
"code": "owner_followers",
"params": {
"count": 3808,
"login": "spatie"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "524 public repos, account ~12 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 524
}
},
{
"code": "account_age_years",
"params": {
"years": 12
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"spatie/laravel-query-builder"
],
"ecosystems": "packagist",
"any_deprecated": false,
"min_days_since_publish": 88
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on packagist",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "packagist"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 88 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 88
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "133 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 133
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 77,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": true,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "5 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 5
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 6.4,
"status": "met",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "10 out of 14 merged PRs checked by a CI test -- score normalized to 7",
"points": 14,
"status": "partial",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"topics": [
"api",
"laravel",
"php",
"hacktoberfest"
],
"has_wiki": false,
"homepage": "https://spatie.be/docs/laravel-query-builder",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://spatie.be/docs/laravel-query-builder",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "4 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 4
}
}
],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "moderate",
"name": "Security",
"value": 54,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Dangerous-Workflow, Packaging, Pinned-Dependencies, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"dangerous_workflow",
"packaging",
"pinned_dependencies",
"signed_releases",
"token_permissions"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 54,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 13,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 5,
"scorecard_aggregate": 5.4
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "10 out of 14 merged PRs checked by a CI test -- score normalized to 7",
"points": 1.8,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 6/23 approved changesets -- score normalized to 2",
"points": 1.5,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 10 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no workflows found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "11 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 9",
"points": 6.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "no dependencies found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "No tokens found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 13
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "at_risk",
"name": "AI Readiness",
"value": 39,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 24,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.442,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "38 of 86 human commits state their intent (structured subject or explanatory body)",
"points": 23.6,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 38,
"sampled": 86
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"name": "Verify loop (build / test / typecheck)",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_pinned_dependencies"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 44,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": false,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0.06,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0.11
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "6 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 6,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "11 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 11,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "no dependencies found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "moderate",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 55,
"inputs": {
"primary_language": "PHP",
"largest_source_bytes": 38060,
"source_files_sampled": 74,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "PHP without a type-check config",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_typecheck_config_language",
"params": {
"language": "PHP"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/74 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 74,
"oversized": 0
}
}
],
"max_points": 55
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"No resolved dependencies carried a version and a supported ecosystem"
],
"report_type": "repository",
"generated_at": "2026-07-29T16:05:51.517850Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/spatie/laravel-query-builder.svg",
"full_name": "spatie/laravel-query-builder",
"license_state": "standard",
"license_spdx": "MIT"
}