原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [
"php",
"web-scraping",
"crawling"
],
"is_fork": false,
"size_kb": 748,
"has_wiki": false,
"homepage": "https://roach-php.dev",
"languages": {
"PHP": 364573
},
"pushed_at": "2025-10-27T09:24:16Z",
"created_at": "2021-08-17T06:31:07Z",
"owner_type": "Organization",
"updated_at": "2026-07-25T16:51:07Z",
"description": "The complete web scraping toolkit for PHP.",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "main",
"license_spdx_raw": null,
"primary_language": "PHP",
"significant_languages": [
"PHP"
]
},
"owner": {
"blog": "https://roach-php.dev",
"name": "Roach PHP",
"type": "Organization",
"login": "roach-php",
"company": null,
"location": null,
"followers": 21,
"avatar_url": "https://avatars.githubusercontent.com/u/88873474?v=4",
"created_at": "2021-08-13T05:33:36Z",
"is_verified": null,
"public_repos": 3,
"account_age_days": 1809
},
"license": {
"state": "absent",
"spdx_id": null,
"raw_spdx": null,
"file_present": false,
"scorecard_found": false,
"profile_has_license": false
},
"activity": {
"releases": [
{
"tag": "v3.2.1",
"kind": "patch",
"published_at": "2025-03-21T06:53:50Z"
},
{
"tag": "v3.2.0",
"kind": "minor",
"published_at": "2024-04-04T09:00:24Z"
},
{
"tag": "v3.1.0",
"kind": "minor",
"published_at": "2024-03-22T21:19:13Z"
},
{
"tag": "v3.0.1",
"kind": "patch",
"published_at": "2024-01-25T08:39:51Z"
},
{
"tag": "v3.0.0",
"kind": "major",
"published_at": "2024-01-05T07:12:25Z"
},
{
"tag": "1.1.2",
"kind": "patch",
"published_at": "2023-02-17T09:37:08Z"
},
{
"tag": "2.0.1",
"kind": "patch",
"published_at": "2023-02-17T09:36:15Z"
},
{
"tag": "2.0.0",
"kind": "major",
"published_at": "2023-02-06T05:57:49Z"
},
{
"tag": "1.1.1",
"kind": "patch",
"published_at": "2022-09-09T17:24:55Z"
},
{
"tag": "1.1.0",
"kind": "minor",
"published_at": "2022-06-22T08:01:21Z"
},
{
"tag": "1.0.0",
"kind": "major",
"published_at": "2022-04-19T19:47:58Z"
},
{
"tag": "0.3.0",
"kind": "minor",
"published_at": "2022-01-30T11:18:53Z"
},
{
"tag": "0.2.0",
"kind": "minor",
"published_at": "2021-12-28T13:32:46Z"
},
{
"tag": "0.1.0",
"kind": "minor",
"published_at": "2021-12-27T22:36:48Z"
}
],
"recent_commits": [
{
"oid": "725955e04cd48264fe1cbe373bf6be122ad32dec",
"body": null,
"is_bot": false,
"headline": "chore: upgrade dependencies",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2025-04-09T03:41:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2bd659d99c9ddfeff27042e3baa725ba350ca882",
"body": null,
"is_bot": true,
"headline": "chore(main): release 3.2.1",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2025-03-21T06:53:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "31cdfa60a24f187e52242ae78b9e337377b78715",
"body": null,
"is_bot": false,
"headline": "fix: added missing response middleware dropped event",
"author_name": "Jelle Oppenhuis",
"author_login": "j-oppenhuis",
"committed_at": "2025-03-21T06:47:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fd97d4b25e4f35b8da7337a6bf703ed430485b64",
"body": null,
"is_bot": false,
"headline": "Apply php-cs-fixer changes",
"author_name": "ksassnowski",
"author_login": "ksassnowski",
"committed_at": "2025-03-21T06:42:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd163c0e913c58da067234f937b4b9e16da91310",
"body": "This commit also switches over from vimeo/psalm to phpstan/phpstan\nfor static code analysis.",
"is_bot": false,
"headline": "chore: support php 8.4",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2025-03-21T06:42:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a4e6f159c7de8823a8483ee428cd258485795038",
"body": null,
"is_bot": true,
"headline": "chore(main): release 3.2.0",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2024-04-04T09:00:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "450ed504c556b2243ea7cc76f44161242a551a5a",
"body": null,
"is_bot": false,
"headline": "feat: enable http error middleware by default in BasicSpider",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-04-04T08:57:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f937d89e0afd93d8f2272c89e724b52897d60690",
"body": null,
"is_bot": false,
"headline": "feat: add http error middleware",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-04-04T08:14:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "80f250bd76a2e3cdd3134e7d9b186d7dcd7dcdc9",
"body": null,
"is_bot": true,
"headline": "chore(main): release 3.1.0",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2024-03-22T21:18:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "738e5ee31258c7825ed98d643dc9d8e494833428",
"body": null,
"is_bot": false,
"headline": "feat: drop php 8.1 support",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-03-22T21:11:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ca85ab53c93da374613a47251228bf1dd8715358",
"body": null,
"is_bot": false,
"headline": "chore: drop php 8.1 support",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-03-22T21:08:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "653347a121d22438f23f38081a26208ca9389a10",
"body": null,
"is_bot": false,
"headline": "chore: fix psalm errors",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-03-22T21:06:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "337b628dfd7f899c96af555bbbdce6eea107977d",
"body": null,
"is_bot": false,
"headline": "Apply php-cs-fixer changes",
"author_name": "ksassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-03-22T20:47:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "80947047a2679395a4deda1375479f2414a77649",
"body": null,
"is_bot": false,
"headline": "chore: bump php version to 8.3 in pipeline",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-03-22T20:46:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d80552468d5e94223d641317158b89ff9b8744da",
"body": null,
"is_bot": false,
"headline": "deps: allow version 7 of symfony components",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-03-22T20:44:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c358114c6e03a5307f15bc197372ee35b9bc22cb",
"body": null,
"is_bot": false,
"headline": "Apply php-cs-fixer changes",
"author_name": "ksassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-01-30T03:21:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d448bb242a11cd140eb00a4474d00e5219c9eea7",
"body": "Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 6.11.0 to 6.20.0.\n- [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases)\n- [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md)\n- [Commits](https://github.co\n[…]\n-dependencies:\n- dependency-name: ergebnis/php-cs-fixer-config\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump ergebnis/php-cs-fixer-config from 6.11.0 to 6.20.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-01-30T03:21:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6f0c73ef099bf7cf6f1b56693eb966bb6fc49e39",
"body": "Bumps [spatie/browsershot](https://github.com/spatie/browsershot) from 3.60.0 to 3.61.0.\n- [Release notes](https://github.com/spatie/browsershot/releases)\n- [Changelog](https://github.com/spatie/browsershot/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/spatie/browsershot/compare/3.60.0...3.\n[…]\n--\nupdated-dependencies:\n- dependency-name: spatie/browsershot\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump spatie/browsershot from 3.60.0 to 3.61.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-01-30T03:19:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bd2b7bbe4b1ff483bb26cdc658eaa879af66f0b9",
"body": "Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.8.0 to 7.8.1.\n- [Release notes](https://github.com/guzzle/guzzle/releases)\n- [Changelog](https://github.com/guzzle/guzzle/blob/7.8/CHANGELOG.md)\n- [Commits](https://github.com/guzzle/guzzle/compare/7.8.0...7.8.1)\n\n---\nupdated-dependencies:\n- dependency-name: guzzlehttp/guzzle\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump guzzlehttp/guzzle from 7.8.0 to 7.8.1",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-01-30T03:19:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b381b7e6e4e52f62c4960f795886eaef823c09e2",
"body": "Bumps [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher) from 6.3.2 to 6.4.2.\n- [Release notes](https://github.com/symfony/event-dispatcher/releases)\n- [Changelog](https://github.com/symfony/event-dispatcher/blob/7.0/CHANGELOG.md)\n- [Commits](https://github.com/symfony/event-dis\n[…]\ndated-dependencies:\n- dependency-name: symfony/event-dispatcher\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": "chore(deps): bump symfony/event-dispatcher from 6.3.2 to 6.4.2",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-01-30T03:19:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f71d19a995ab01a723d54b9610ab11d14f07aeb1",
"body": "Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 5.16.0 to 5.20.0.\n- [Release notes](https://github.com/vimeo/psalm/releases)\n- [Commits](https://github.com/vimeo/psalm/compare/5.16.0...5.20.0)\n\n---\nupdated-dependencies:\n- dependency-name: vimeo/psalm\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump vimeo/psalm from 5.16.0 to 5.20.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-01-28T20:43:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "97ec17082766de667d0d7e51a68e337d22fcc66e",
"body": "Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 10.4.2 to 10.5.9.\n- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/10.5.9/ChangeLog-10.5.md)\n- [Commits](https://github.com/sebastianbergmann/phpunit/compare/10.4.2...10.5.9)\n\n---\nupdated-dependencies:\n- dependency-name: phpunit/phpunit\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump phpunit/phpunit from 10.4.2 to 10.5.9",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-01-28T20:43:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0754a577a073f25fbbb725a8823991f1bebbdf82",
"body": "Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.39.0 to 2.41.1.\n- [Release notes](https://github.com/ergebnis/composer-normalize/releases)\n- [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/er\n[…]\nd-dependencies:\n- dependency-name: ergebnis/composer-normalize\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump ergebnis/composer-normalize from 2.39.0 to 2.41.1",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-01-28T20:40:40Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4a743693b7fe0d0c6a8744375aa582102309c2a7",
"body": "Bumps [symfony/options-resolver](https://github.com/symfony/options-resolver) from 6.3.0 to 6.4.0.\n- [Release notes](https://github.com/symfony/options-resolver/releases)\n- [Changelog](https://github.com/symfony/options-resolver/blob/7.0/CHANGELOG.md)\n- [Commits](https://github.com/symfony/options-r\n[…]\ndated-dependencies:\n- dependency-name: symfony/options-resolver\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": "chore(deps): bump symfony/options-resolver from 6.3.0 to 6.4.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-01-28T20:40:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "695119cd6e06563c0e5a8329b4f8f5cb56040996",
"body": "Bumps [symfony/css-selector](https://github.com/symfony/css-selector) from 6.3.2 to 6.4.0.\n- [Release notes](https://github.com/symfony/css-selector/releases)\n- [Changelog](https://github.com/symfony/css-selector/blob/7.0/CHANGELOG.md)\n- [Commits](https://github.com/symfony/css-selector/compare/v6.3\n[…]\n-\nupdated-dependencies:\n- dependency-name: symfony/css-selector\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": "chore(deps): bump symfony/css-selector from 6.3.2 to 6.4.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-01-28T20:40:18Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "da22db236feb4b179c289ba8de564cd72d4573cd",
"body": null,
"is_bot": true,
"headline": "chore(main): release 3.0.1",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2024-01-25T08:39:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ab35e0f9bac48b39505e1d0d57202d8e44cd9dbb",
"body": null,
"is_bot": false,
"headline": "Apply php-cs-fixer changes",
"author_name": "ksassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-01-25T08:38:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2aec066f12d940440cbf63c8815a7182f3fc7613",
"body": null,
"is_bot": false,
"headline": "fix: fix psalm errors on latest release",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-01-25T08:37:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c9d7d4661bc9af9569c59e31914fc7ac88b5a19b",
"body": null,
"is_bot": false,
"headline": "fix: fix race condition in SystemClock",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-01-25T08:34:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8edc07a6e70467d4537278402dfd0063bf1ab119",
"body": null,
"is_bot": true,
"headline": "chore(main): release 3.0.0",
"author_name": "github-actions[bot]",
"author_login": "github-actions[bot]",
"committed_at": "2024-01-05T07:12:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "06f7e3dc3dd2a6ce806a9a82d91dc371c861074a",
"body": null,
"is_bot": false,
"headline": "chore: update changelog",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-01-05T06:02:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "913b34901424a100e59f56ce37108391c3356ad3",
"body": null,
"is_bot": false,
"headline": "feat: add request proxy middleware",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-01-05T06:01:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e896c1a750dc032dda859515d0d4c9a922f89ea3",
"body": null,
"is_bot": false,
"headline": "chore: update changelog",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-01-05T04:51:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "40794f8495bdf271df2c71cd96733bf4f6743a0a",
"body": "Bumps [symfony/dom-crawler](https://github.com/symfony/dom-crawler) from 6.2.9 to 6.4.0.\n- [Release notes](https://github.com/symfony/dom-crawler/releases)\n- [Changelog](https://github.com/symfony/dom-crawler/blob/7.0/CHANGELOG.md)\n- [Commits](https://github.com/symfony/dom-crawler/compare/v6.2.9...\n[…]\n--\nupdated-dependencies:\n- dependency-name: symfony/dom-crawler\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": "chore(deps): bump symfony/dom-crawler from 6.2.9 to 6.4.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-01-05T04:48:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "03da7a325af2f957bc30257e1b4bc4503f6bc19e",
"body": "Bumps [psy/psysh](https://github.com/bobthecow/psysh) from 0.11.22 to 0.12.0.\n- [Release notes](https://github.com/bobthecow/psysh/releases)\n- [Commits](https://github.com/bobthecow/psysh/compare/v0.11.22...v0.12.0)\n\n---\nupdated-dependencies:\n- dependency-name: psy/psysh\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": "chore(deps): bump psy/psysh from 0.11.22 to 0.12.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-01-05T04:46:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd125d2404c447db2b76ab4aa639f6353ef912ed",
"body": "Bumps [tj-actions/branch-names](https://github.com/tj-actions/branch-names) from 7 to 8.\n- [Release notes](https://github.com/tj-actions/branch-names/releases)\n- [Changelog](https://github.com/tj-actions/branch-names/blob/main/HISTORY.md)\n- [Commits](https://github.com/tj-actions/branch-names/compare/v7...v8)\n\n---\nupdated-dependencies:\n- dependency-name: tj-actions/branch-names\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump tj-actions/branch-names in /.github/workflows",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2024-01-05T04:46:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "321626f20cc1eccab407f0e594ed94b231240d15",
"body": null,
"is_bot": false,
"headline": "chore: update copyright year",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2024-01-05T04:43:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "02772afc7eb2e1ec94a8bb265bec82b9ef587ea7",
"body": "* feat: Add PHP 8.3 to composer.json\r\n\r\nchore: coding-standards\r\n\r\nchore: bump ergebnis/php-cs-fixer-config to 6.11.0\r\n\r\nfix: PHP-CS-Fixer ruleset creation\r\n\r\nchore: bump other packages\r\n\r\n* chore: remove unused reference\r\n\r\n* fix: Psalm errors\r\n\r\n* Apply php-cs-fixer changes\r\n\r\n* fix: IntegrationTe\n[…]\nm/psr7-server to resolve RuntimeException for PSR-17 ResponseFactory implementations\r\n\r\n* fix: PHP-CS-Fixer and Psalm\r\n\r\n---------\r\n\r\nCo-authored-by: sweptsquash <sweptsquash@users.noreply.github.com>",
"is_bot": false,
"headline": "feat: php 8.3 support",
"author_name": "Stewie Marsh",
"author_login": "sweptsquash",
"committed_at": "2024-01-05T04:40:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "34e38b9e42e0c10e44b7d8b9b0b1bc30b3f66c6d",
"body": "Bumps [symfony/css-selector](https://github.com/symfony/css-selector) from 6.2.7 to 6.3.2.\n- [Release notes](https://github.com/symfony/css-selector/releases)\n- [Changelog](https://github.com/symfony/css-selector/blob/6.3/CHANGELOG.md)\n- [Commits](https://github.com/symfony/css-selector/compare/v6.2\n[…]\n-\nupdated-dependencies:\n- dependency-name: symfony/css-selector\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": "chore(deps): bump symfony/css-selector from 6.2.7 to 6.3.2",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-09-16T05:15:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fdfa4956097b041acfcb67cfb8415a65a2425ace",
"body": "Bumps [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher) from 6.2.8 to 6.3.2.\n- [Release notes](https://github.com/symfony/event-dispatcher/releases)\n- [Changelog](https://github.com/symfony/event-dispatcher/blob/6.3/CHANGELOG.md)\n- [Commits](https://github.com/symfony/event-dis\n[…]\ndated-dependencies:\n- dependency-name: symfony/event-dispatcher\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": "chore(deps): bump symfony/event-dispatcher from 6.2.8 to 6.3.2",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-09-16T05:15:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "483545871a321b522a29629d7293e58288e8a032",
"body": "Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 5.9.0 to 5.15.0.\n- [Release notes](https://github.com/vimeo/psalm/releases)\n- [Commits](https://github.com/vimeo/psalm/compare/5.9.0...5.15.0)\n\n---\nupdated-dependencies:\n- dependency-name: vimeo/psalm\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump vimeo/psalm from 5.9.0 to 5.15.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-09-16T05:15:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9aded43194f8784fbc57de1ee8e5e98323824e30",
"body": "Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 10.2.0 to 10.3.2.\n- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/10.3.2/ChangeLog-10.3.md)\n- [Commits](https://github.com/sebastianbergmann/phpunit/compare/10.2.0...10.3.2)\n\n---\nupdated-dependencies:\n- dependency-name: phpunit/phpunit\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump phpunit/phpunit from 10.2.0 to 10.3.2",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-09-16T05:15:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0c4e817acd3a4f253fe87db7958402277ff4ce34",
"body": "Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.5.0 to 7.8.0.\n- [Release notes](https://github.com/guzzle/guzzle/releases)\n- [Changelog](https://github.com/guzzle/guzzle/blob/7.8/CHANGELOG.md)\n- [Commits](https://github.com/guzzle/guzzle/compare/7.5.0...7.8.0)\n\n---\nupdated-dependencies:\n- dependency-name: guzzlehttp/guzzle\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": "chore(deps): bump guzzlehttp/guzzle from 7.5.0 to 7.8.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-09-16T05:15:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "00a40c5a0aa26f6fa7f091deb82a281d11fb0e4e",
"body": null,
"is_bot": false,
"headline": "Apply php-cs-fixer changes",
"author_name": "ksassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-06-03T07:14:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1c628d0e898070d1b37b1741e730b756a32e377e",
"body": null,
"is_bot": false,
"headline": "chore: apply cs fixes",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-06-03T07:14:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "355a1e60687d77033202cd024ef3a9177af3ffa0",
"body": "Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 10.0.18 to 10.2.0.\r\n- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/10.2.0/ChangeLog-10.2.md)\r\n- [Commits](https://github.com/sebastianbergmann/phpunit/compare/10.0.18...10.2.0)\r\n\r\n---\r\nupdated-dependencies:\r\n\n[…]\ndevelopment\r\n update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump phpunit/phpunit from 10.0.18 to 10.2.0 (#130)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-06-03T07:12:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1099794ea5e6016f01bc0f956fa644a1a5aca4b3",
"body": "Bumps [symfony/dom-crawler](https://github.com/symfony/dom-crawler) from 6.2.8 to 6.2.9.\r\n- [Release notes](https://github.com/symfony/dom-crawler/releases)\r\n- [Changelog](https://github.com/symfony/dom-crawler/blob/6.2/CHANGELOG.md)\r\n- [Commits](https://github.com/symfony/dom-crawler/compare/v6.2.8\n[…]\n:production\r\n update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps): bump symfony/dom-crawler from 6.2.8 to 6.2.9 (#118)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-06-03T07:10:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "96b5ab16b6adeb5ed6941b58455e5466d82c8be3",
"body": null,
"is_bot": false,
"headline": "Apply php-cs-fixer changes",
"author_name": "ksassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-06-03T07:09:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7572aaefa6f1f310f2faab6d7bc7ffd4ebccbf2a",
"body": "Bumps [guzzlehttp/psr7](https://github.com/guzzle/psr7) from 2.4.3 to 2.5.0.\r\n- [Release notes](https://github.com/guzzle/psr7/releases)\r\n- [Changelog](https://github.com/guzzle/psr7/blob/2.5/CHANGELOG.md)\r\n- [Commits](https://github.com/guzzle/psr7/compare/2.4.3...2.5.0)\r\n\r\n---\r\nupdated-dependencie\n[…]\nency-name: guzzlehttp/psr7\r\n dependency-type: indirect\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps): bump guzzlehttp/psr7 from 2.4.3 to 2.5.0 (#120)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-06-03T07:08:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "61b2d2a8fa5d1aad0907ce9c7b58c64fa94dfca6",
"body": "…0 (#127)\n\nBumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 5.4.0 to 5.7.0.\r\n- [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases)\r\n- [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md)\r\n- [Commits](https\n[…]\ndevelopment\r\n update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump ergebnis/php-cs-fixer-config from 5.4.0 to 5.7.…",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-06-03T07:08:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8e940efce2d4452d03a4fb3e7dc8418968628e7d",
"body": "Bumps [psy/psysh](https://github.com/bobthecow/psysh) from 0.11.13 to 0.11.18.\r\n- [Release notes](https://github.com/bobthecow/psysh/releases)\r\n- [Commits](https://github.com/bobthecow/psysh/compare/v0.11.13...v0.11.18)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: psy/psysh\r\n dependency-type: \n[…]\n:production\r\n update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps): bump psy/psysh from 0.11.13 to 0.11.18 (#128)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-06-03T07:08:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cfaae68eea8107d6fd755fb7f2e1e3d661a5ff80",
"body": "…0 (#113)\n\nBumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 5.3.3 to 5.4.0.\r\n- [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases)\r\n- [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md)\r\n- [Commits](https\n[…]\ndevelopment\r\n update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump ergebnis/php-cs-fixer-config from 5.3.3 to 5.4.…",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-04-11T09:15:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c24018c83fd7d517f4ab9c96f2db533198df7b6a",
"body": "Bumps [symfony/console](https://github.com/symfony/console) from 6.2.7 to 6.2.8.\r\n- [Release notes](https://github.com/symfony/console/releases)\r\n- [Changelog](https://github.com/symfony/console/blob/6.2/CHANGELOG.md)\r\n- [Commits](https://github.com/symfony/console/compare/v6.2.7...v6.2.8)\r\n\r\n---\r\nu\n[…]\n:production\r\n update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps): bump symfony/console from 6.2.7 to 6.2.8 (#111)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-04-11T09:14:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0ef0d781c207a2634116c422702917db062743ba",
"body": "Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 5.8.0 to 5.9.0.\r\n- [Release notes](https://github.com/vimeo/psalm/releases)\r\n- [Commits](https://github.com/vimeo/psalm/compare/5.8.0...5.9.0)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: vimeo/psalm\r\n dependency-type: direct:development\r\n update-type: version-update:semver-minor\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump vimeo/psalm from 5.8.0 to 5.9.0 (#110)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-04-11T09:14:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8302a9a4b071c5726f78e728f3e3b4f524313025",
"body": "Bumps [symfony/dom-crawler](https://github.com/symfony/dom-crawler) from 6.2.7 to 6.2.8.\r\n- [Release notes](https://github.com/symfony/dom-crawler/releases)\r\n- [Changelog](https://github.com/symfony/dom-crawler/blob/6.2/CHANGELOG.md)\r\n- [Commits](https://github.com/symfony/dom-crawler/compare/v6.2.7\n[…]\n:production\r\n update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps): bump symfony/dom-crawler from 6.2.7 to 6.2.8 (#109)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-04-11T09:13:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d8ae43ea5efb7f1cd729fc6dab19756beddb4702",
"body": "… (#106)\n\n* feat: allow request middleware to set a response to bypass downloader\r\n\r\n* tests: Add downloader and request tests",
"is_bot": false,
"headline": "feat: allow request middleware to set a response to bypass downloader…",
"author_name": "Aaron Florey",
"author_login": "aaronflorey",
"committed_at": "2023-03-28T12:37:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "167e824362a9507caa3cc03200eb546d51e35437",
"body": null,
"is_bot": false,
"headline": "feat!: add namespace to run and scheduler (#105)",
"author_name": "Aaron Florey",
"author_login": "aaronflorey",
"committed_at": "2023-03-28T06:10:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4542cbf00fe2b02a86d5b2048a97556706adf44f",
"body": "Bumps [psy/psysh](https://github.com/bobthecow/psysh) from 0.11.12 to 0.11.13.\n- [Release notes](https://github.com/bobthecow/psysh/releases)\n- [Commits](https://github.com/bobthecow/psysh/compare/v0.11.12...v0.11.13)\n\n---\nupdated-dependencies:\n- dependency-name: psy/psysh\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump psy/psysh from 0.11.12 to 0.11.13",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-03-28T03:57:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a5fe27ad0cadb3f74da4916f7b1a97d27abe144c",
"body": "Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 10.0.16 to 10.0.18.\n- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)\n- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-10.0.md)\n- [Commits](https://github.com/sebastianberg\n[…]\n\n\n---\nupdated-dependencies:\n- dependency-name: phpunit/phpunit\n dependency-type: direct:development\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump phpunit/phpunit from 10.0.16 to 10.0.18",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-03-28T03:56:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "33eb25e31769d1d3080174341efeac06cd89ee45",
"body": null,
"is_bot": false,
"headline": "fix: rename integration tests so they actually get run",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-03-27T09:23:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "96c9332c796cf8c64ca8bd15885580b49354a78c",
"body": null,
"is_bot": false,
"headline": "feat: add ResponseReceiving and ResponseReceived events",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-03-27T07:11:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7b6f59fab7bb75efcbacc848122ed23b840b560f",
"body": "Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 5.3.2 to 5.3.3.\n- [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases)\n- [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/\n[…]\n-dependencies:\n- dependency-name: ergebnis/php-cs-fixer-config\n dependency-type: direct:development\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump ergebnis/php-cs-fixer-config from 5.3.2 to 5.3.3",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-03-20T10:38:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "44d81c9855542fec1f8f1c342d666e1ca6680350",
"body": "Bumps [ergebnis/php-cs-fixer-config](https://github.com/ergebnis/php-cs-fixer-config) from 5.3.1 to 5.3.2.\n- [Release notes](https://github.com/ergebnis/php-cs-fixer-config/releases)\n- [Changelog](https://github.com/ergebnis/php-cs-fixer-config/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/\n[…]\n-dependencies:\n- dependency-name: ergebnis/php-cs-fixer-config\n dependency-type: direct:development\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump ergebnis/php-cs-fixer-config from 5.3.1 to 5.3.2",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-03-13T10:12:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "980b92040b6f6ea38907a49d296f69f9a91ab606",
"body": "Bumps [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize) from 2.29.0 to 2.30.2.\n- [Release notes](https://github.com/ergebnis/composer-normalize/releases)\n- [Changelog](https://github.com/ergebnis/composer-normalize/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/er\n[…]\nd-dependencies:\n- dependency-name: ergebnis/composer-normalize\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump ergebnis/composer-normalize from 2.29.0 to 2.30.2",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-03-13T10:12:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "57b4d03bd6ca00c5b17af81ac8ebbc8382c91677",
"body": "Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 10.0.15 to 10.0.16.\n- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)\n- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-10.0.md)\n- [Commits](https://github.com/sebastianberg\n[…]\n\n\n---\nupdated-dependencies:\n- dependency-name: phpunit/phpunit\n dependency-type: direct:development\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump phpunit/phpunit from 10.0.15 to 10.0.16",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-03-13T10:12:29Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b60588ad6e60bd6eb8146466202bd8baf12ad8f0",
"body": "Bumps [vimeo/psalm](https://github.com/vimeo/psalm) from 5.6.0 to 5.8.0.\n- [Release notes](https://github.com/vimeo/psalm/releases)\n- [Commits](https://github.com/vimeo/psalm/compare/5.6.0...5.8.0)\n\n---\nupdated-dependencies:\n- dependency-name: vimeo/psalm\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps-dev): bump vimeo/psalm from 5.6.0 to 5.8.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-03-13T10:11:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a19510e0457867f0a307c8511e2cb0ef85a8e6b",
"body": "Bumps [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher) from 6.2.5 to 6.2.7.\n- [Release notes](https://github.com/symfony/event-dispatcher/releases)\n- [Changelog](https://github.com/symfony/event-dispatcher/blob/6.2/CHANGELOG.md)\n- [Commits](https://github.com/symfony/event-dis\n[…]\ndated-dependencies:\n- dependency-name: symfony/event-dispatcher\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump symfony/event-dispatcher from 6.2.5 to 6.2.7",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-03-13T10:10:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fd830953f85f3ad7a06c04988ca39a24718c5e46",
"body": null,
"is_bot": false,
"headline": "chore: upgrade to phpunit 10",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-03-10T16:20:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "25e48316e49408ad2ce120e76d56fa70be8864dc",
"body": "Bumps [symfony/dom-crawler](https://github.com/symfony/dom-crawler) from 6.2.5 to 6.2.7.\r\n- [Release notes](https://github.com/symfony/dom-crawler/releases)\r\n- [Changelog](https://github.com/symfony/dom-crawler/blob/6.2/CHANGELOG.md)\r\n- [Commits](https://github.com/symfony/dom-crawler/compare/v6.2.5\n[…]\n:production\r\n update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: (deps): bump symfony/dom-crawler from 6.2.5 to 6.2.7 (#92)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-03-10T15:54:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "20fc15b708c6c486b49a2c766630b42512df25c6",
"body": "Bumps [symfony/css-selector](https://github.com/symfony/css-selector) from 6.2.5 to 6.2.7.\n- [Release notes](https://github.com/symfony/css-selector/releases)\n- [Changelog](https://github.com/symfony/css-selector/blob/6.2/CHANGELOG.md)\n- [Commits](https://github.com/symfony/css-selector/compare/v6.2\n[…]\n-\nupdated-dependencies:\n- dependency-name: symfony/css-selector\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore: (deps): bump symfony/css-selector from 6.2.5 to 6.2.7",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-03-10T15:53:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4f535da0d95f6e5a88bea4c1e5d9c7f3219388c6",
"body": "Bumps [symfony/console](https://github.com/symfony/console) from 6.2.5 to 6.2.7.\r\n- [Release notes](https://github.com/symfony/console/releases)\r\n- [Changelog](https://github.com/symfony/console/blob/6.2/CHANGELOG.md)\r\n- [Commits](https://github.com/symfony/console/compare/v6.2.5...v6.2.7)\r\n\r\n---\r\nu\n[…]\n:production\r\n update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] <support@github.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: (deps): bump symfony/console from 6.2.5 to 6.2.7 (#93)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-03-10T15:53:35Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fe24ee3241546c3dc968537b344040dd9bb3c483",
"body": "* chore: set up dependabot\r\n\r\n* chore: (deps): bump symfony/options-resolver from 6.2.5 to 6.2.7\r\n\r\nBumps [symfony/options-resolver](https://github.com/symfony/options-resolver) from 6.2.5 to 6.2.7.\r\n- [Release notes](https://github.com/symfony/options-resolver/releases)\r\n- [Changelog](https://githu\n[…]\nd-by: Kai Sassnowski <me@kai-sassnowski.com>\r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\r\nCo-authored-by: Kai Sassnowski <ksassnowski@users.noreply.github.com>",
"is_bot": true,
"headline": "chore(deps): bump symfony/options-resolver from 6.2.5 to 6.2.7 (#89)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2023-03-10T15:49:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "29fb85ee3e7db67b855a2999b1af592253043e1a",
"body": null,
"is_bot": false,
"headline": "chore: set up dependabot",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-03-10T15:47:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5c4fd81a3a3caa7ee6b3ab42d69f85d0e02dbfbe",
"body": null,
"is_bot": false,
"headline": "chore: add issue templates",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-03-10T15:38:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bdb57e0824cb4c883be3d9109696c74d88586644",
"body": null,
"is_bot": false,
"headline": "chore: add contribution guide",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-03-10T15:24:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ed80fbe7919d0a518d54a4ba48b8cefb0565f6cc",
"body": null,
"is_bot": false,
"headline": "chore: add code of conduct",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-03-10T15:24:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5a7df32ca5fc8816fd4e7b6273eb5071f1203e00",
"body": null,
"is_bot": false,
"headline": "chore: set up release please action",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-03-10T15:14:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "64e785a0a04c5697ec91f17905190cbc062512ce",
"body": null,
"is_bot": false,
"headline": "chore: add commitlint step to pipeline",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-03-10T15:14:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9efec92ce1ba244cbd205037e8c3463d6986f054",
"body": null,
"is_bot": false,
"headline": "chore: add CODEOWNERS file",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-03-10T15:13:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "61f3f5d9dd1b39224c5a4bd8d7292db55cdef925",
"body": null,
"is_bot": false,
"headline": "Update changelog",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-17T09:30:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eb040b45d91862429c8ed51ef4024a6167e13299",
"body": null,
"is_bot": false,
"headline": "Bump version",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-17T09:28:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0b411f58987b40a1c9edf4cfcd6dd4649174aea0",
"body": null,
"is_bot": false,
"headline": "Remove dependency on sebastian/version",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-17T09:28:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a40f2e97eb6a5624a69d142b038c8a11f7958b83",
"body": null,
"is_bot": false,
"headline": "Use actions/cache@v3",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-06T05:57:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3caac789ab5bd0d90e14bd941c830ddd42daee85",
"body": null,
"is_bot": false,
"headline": "Update changelog",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-06T05:56:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bb5c12fb02e7ec6467c71687219b6e04cc53eb42",
"body": null,
"is_bot": false,
"headline": "Update changelog",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-06T05:55:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "407a160186ac86c64d5d292c46056e2dd931f591",
"body": null,
"is_bot": false,
"headline": "Apply php-cs-fixer changes",
"author_name": "ksassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-06T05:53:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2aa3ab5d1b7c3393421d420d3177073e83dfe8a4",
"body": "…t for ExecuteJavascriptMiddleware (#82)\n\nAdds the possibility to configure the user agent on Spatie\\Browsershot\r\n\r\n---------\r\n\r\nCo-authored-by: Kai Sassnowski <me@kai-sassnowski.com>\r\nCo-authored-by: Ricardo Barantini <ricardobarantini@gmail.com>",
"is_bot": false,
"headline": "Adds the possibility to configure the user agent on Spatie\\Browsersho…",
"author_name": "Alexandre",
"author_login": "corbeil",
"committed_at": "2023-02-06T05:52:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "088ffb229c6eba186e64d6169a25654eafc34fd1",
"body": null,
"is_bot": false,
"headline": "Adds option for setDelay on ExecuteJavascriptMiddleware",
"author_name": "Ricardo Barantini",
"author_login": "ricardobarantini",
"committed_at": "2023-02-06T05:42:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "34ff914568b11201c59e720839ce0463812ea215",
"body": null,
"is_bot": false,
"headline": "Drop PHP 8.0 support",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-06T05:41:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1d884e0e27c22005e1eb2fa04a36f1be4fbdb3a0",
"body": null,
"is_bot": false,
"headline": "Update dependencies",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-06T05:41:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8f755075b0fc9324fa2484725a7fa4aca27fa5e2",
"body": null,
"is_bot": false,
"headline": "Apply php-cs-fixer changes",
"author_name": "ksassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-06T05:31:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "639e4a4313a2c5cb7f397a7f65cf14820381a502",
"body": null,
"is_bot": false,
"headline": "Explicitly specify supported PHP versions",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-06T05:31:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cffe02d31e13520a78eb7b121c765487776cce76",
"body": null,
"is_bot": false,
"headline": "Update dependencies",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-06T05:27:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b489ee075135cfe1b1c2f466e08c25e8861b224",
"body": null,
"is_bot": false,
"headline": "Run tests on PHP 8.2 as well",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-06T05:18:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "290ba7023193a0aa1691d16d7e7fcd7fa2ce00ff",
"body": null,
"is_bot": false,
"headline": "Update copyright year",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2023-02-06T05:17:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "827783c0a0500975e37b5fb4bb507609410af6b6",
"body": null,
"is_bot": false,
"headline": "Update changelog",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2022-09-09T17:24:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c776f67d8351c64b638390ad19503095550a4510",
"body": null,
"is_bot": false,
"headline": "Suppress psalm could not infer type error",
"author_name": "Chris Mcintosh",
"author_login": "chrismcintosh",
"committed_at": "2022-09-09T17:21:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bb475dbeeadf16045f7f1be8ca06a1ab9a343c82",
"body": null,
"is_bot": false,
"headline": "make browsershot wait until network idle on ExecuteJavascriptMiddleware",
"author_name": "Chris Mcintosh",
"author_login": "chrismcintosh",
"committed_at": "2022-09-09T17:21:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f4c6b0c99382fa264b94ff6822df1596eb03460e",
"body": null,
"is_bot": false,
"headline": "Use --prefer-dist in pipeline when installing dependencies",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2022-09-09T17:18:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "27c948f2fb209f705fa7c779ceb03bb1f41d30b4",
"body": null,
"is_bot": false,
"headline": "Update changelog",
"author_name": "Kai Sassnowski",
"author_login": "ksassnowski",
"committed_at": "2022-06-22T07:58:08Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 14,
"commits_last_year": 0,
"latest_release_at": "2025-03-21T06:53:50Z",
"latest_release_tag": "v3.2.1",
"releases_from_tags": false,
"days_since_last_push": 273,
"active_weeks_last_year": 0,
"days_since_latest_release": 493,
"mean_days_between_releases": 111.4
},
"community": {
"has_readme": true,
"has_license": false,
"has_description": true,
"has_contributing": true,
"health_percentage": 62,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "roach-php/core",
"exists": true,
"license": "MIT",
"keywords": [],
"ecosystem": "packagist",
"matches_repo": true,
"registry_url": "https://packagist.org/packages/roach-php/core",
"is_deprecated": false,
"latest_version": "v3.2.1",
"repository_url": "https://github.com/roach-php/core",
"versions_count": 14,
"total_downloads": 409319,
"dependents_count": 4,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": 11976,
"first_published_at": null,
"latest_published_at": "2025-03-21T06:53:36Z",
"latest_version_yanked": null,
"days_since_latest_publish": 493
}
]
},
"popularity": {
"forks": 87,
"stars": 1455,
"watchers": 17,
"fork_history": {
"days": [
{
"date": "2021-12-24",
"count": 1
},
{
"date": "2021-12-26",
"count": 1
},
{
"date": "2021-12-27",
"count": 2
},
{
"date": "2021-12-28",
"count": 3
},
{
"date": "2021-12-29",
"count": 2
},
{
"date": "2021-12-30",
"count": 3
},
{
"date": "2021-12-31",
"count": 1
},
{
"date": "2022-01-01",
"count": 1
},
{
"date": "2022-01-07",
"count": 1
},
{
"date": "2022-01-11",
"count": 1
},
{
"date": "2022-01-13",
"count": 1
},
{
"date": "2022-01-16",
"count": 1
},
{
"date": "2022-01-18",
"count": 1
},
{
"date": "2022-01-21",
"count": 1
},
{
"date": "2022-02-01",
"count": 3
},
{
"date": "2022-02-02",
"count": 1
},
{
"date": "2022-02-03",
"count": 2
},
{
"date": "2022-02-06",
"count": 1
},
{
"date": "2022-02-08",
"count": 1
},
{
"date": "2022-02-11",
"count": 1
},
{
"date": "2022-02-14",
"count": 1
},
{
"date": "2022-02-26",
"count": 1
},
{
"date": "2022-03-16",
"count": 1
},
{
"date": "2022-03-20",
"count": 1
},
{
"date": "2022-03-24",
"count": 1
},
{
"date": "2022-03-25",
"count": 2
},
{
"date": "2022-03-31",
"count": 1
},
{
"date": "2022-04-14",
"count": 1
},
{
"date": "2022-04-22",
"count": 1
},
{
"date": "2022-04-24",
"count": 1
},
{
"date": "2022-05-21",
"count": 1
},
{
"date": "2022-06-08",
"count": 1
},
{
"date": "2022-09-09",
"count": 2
},
{
"date": "2022-09-11",
"count": 1
},
{
"date": "2022-09-19",
"count": 1
},
{
"date": "2022-10-04",
"count": 1
},
{
"date": "2022-10-24",
"count": 1
},
{
"date": "2023-05-17",
"count": 1
},
{
"date": "2023-06-14",
"count": 1
},
{
"date": "2023-06-29",
"count": 1
},
{
"date": "2023-08-30",
"count": 1
},
{
"date": "2023-09-22",
"count": 1
},
{
"date": "2023-11-24",
"count": 1
},
{
"date": "2024-01-24",
"count": 1
},
{
"date": "2024-02-06",
"count": 1
},
{
"date": "2024-02-19",
"count": 1
},
{
"date": "2024-03-08",
"count": 1
},
{
"date": "2024-03-13",
"count": 1
},
{
"date": "2024-03-20",
"count": 1
},
{
"date": "2024-04-09",
"count": 1
},
{
"date": "2024-04-30",
"count": 1
},
{
"date": "2024-08-20",
"count": 1
},
{
"date": "2024-09-20",
"count": 1
},
{
"date": "2024-10-06",
"count": 1
},
{
"date": "2025-01-07",
"count": 1
},
{
"date": "2025-01-24",
"count": 1
},
{
"date": "2025-01-31",
"count": 1
},
{
"date": "2025-03-07",
"count": 1
},
{
"date": "2025-03-14",
"count": 1
},
{
"date": "2025-06-24",
"count": 1
},
{
"date": "2025-07-30",
"count": 1
},
{
"date": "2025-08-17",
"count": 1
},
{
"date": "2025-11-25",
"count": 1
},
{
"date": "2025-12-21",
"count": 1
},
{
"date": "2026-01-29",
"count": 1
},
{
"date": "2026-02-07",
"count": 1
},
{
"date": "2026-03-29",
"count": 2
},
{
"date": "2026-04-02",
"count": 1
},
{
"date": "2026-06-01",
"count": 1
},
{
"date": "2026-06-04",
"count": 1
},
{
"date": "2026-06-12",
"count": 1
},
{
"date": "2026-06-27",
"count": 1
}
],
"complete": true,
"collected": 84,
"total_forks": 87
},
"star_history": null,
"open_issues_and_prs": 32
},
"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": 13964,
"source_files_sampled": 165,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"composer.json"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "phpunit/phpunit",
"direct": false,
"version": "10.5.45",
"severity": "high",
"ecosystem": "packagist",
"cvss_score": 7.8,
"advisory_ids": [
"GHSA-vvj3-c3rp-c85p"
],
"fixed_version": "12.5.8",
"advisory_count": 1,
"oldest_advisory_days": 180
},
{
"name": "guzzlehttp/guzzle",
"direct": true,
"version": "7.9.3",
"severity": "moderate",
"ecosystem": "packagist",
"cvss_score": 5.9,
"advisory_ids": [
"GHSA-94pj-82f3-465w",
"GHSA-cwxw-98qj-8qjx",
"GHSA-f283-ghqc-fg79",
"GHSA-g446-98w2-8p5w",
"GHSA-h95v-h523-3mw8",
"GHSA-wm3w-8rrp-j577",
"GHSA-wpwq-4j6v-78m3"
],
"fixed_version": "7.15.1",
"advisory_count": 7,
"oldest_advisory_days": 37
},
{
"name": "psy/psysh",
"direct": true,
"version": "0.12.8",
"severity": "moderate",
"ecosystem": "packagist",
"cvss_score": 6.7,
"advisory_ids": [
"GHSA-4486-gxhx-5mg7"
],
"fixed_version": "0.12.19",
"advisory_count": 1,
"oldest_advisory_days": 177
},
{
"name": "symfony/dom-crawler",
"direct": true,
"version": "7.2.4",
"severity": "moderate",
"ecosystem": "packagist",
"cvss_score": 4.3,
"advisory_ids": [
"GHSA-x6g4-fwcc-jj8w"
],
"fixed_version": "8.0.12",
"advisory_count": 1,
"oldest_advisory_days": 60
},
{
"name": "guzzlehttp/psr7",
"direct": false,
"version": "2.7.1",
"severity": "moderate",
"ecosystem": "packagist",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-34xg-wgjx-8xph",
"GHSA-c2w2-prh8-qm98",
"GHSA-hq7v-mx3g-29hw",
"GHSA-vm85-hxw5-5432"
],
"fixed_version": "2.12.3",
"advisory_count": 4,
"oldest_advisory_days": 45
},
{
"name": "slim/slim",
"direct": false,
"version": "4.14.0",
"severity": "moderate",
"ecosystem": "packagist",
"cvss_score": 6.1,
"advisory_ids": [
"GHSA-53h4-8rc4-f539"
],
"fixed_version": "4.15.2",
"advisory_count": 1,
"oldest_advisory_days": 33
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 1,
"moderate": 5
},
"advisory_count": 15,
"affected_count": 6,
"assessed_count": 98,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 1,
"direct_affected_count": 3
},
"ecosystems": [
"packagist"
],
"dependencies": [
{
"name": "guzzlehttp/guzzle",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^7.8.0"
},
{
"name": "jakeasmith/http_build_url",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^1.0.1"
},
{
"name": "league/container",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^4.2"
},
{
"name": "monolog/monolog",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^3.5"
},
{
"name": "nyholm/psr7",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^1.8.1"
},
{
"name": "nyholm/psr7-server",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^1.1"
},
{
"name": "psr/container",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^2.0.2"
},
{
"name": "psy/psysh",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^0.11.22 || ^0.12.0"
},
{
"name": "spatie/robots-txt",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^2.0.3"
},
{
"name": "symfony/console",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^7.0"
},
{
"name": "symfony/css-selector",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^7.0"
},
{
"name": "symfony/dom-crawler",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^7.0"
},
{
"name": "symfony/event-dispatcher",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^7.0"
},
{
"name": "symfony/options-resolver",
"manifest": "composer.json",
"ecosystem": "packagist",
"version_constraint": "^7.0"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "guzzlehttp/guzzle",
"direct": true,
"version": "7.9.3",
"ecosystem": "packagist"
},
{
"name": "jakeasmith/http_build_url",
"direct": true,
"version": "1.0.1",
"ecosystem": "packagist"
},
{
"name": "league/container",
"direct": true,
"version": "4.2.4",
"ecosystem": "packagist"
},
{
"name": "monolog/monolog",
"direct": true,
"version": "3.9.0",
"ecosystem": "packagist"
},
{
"name": "nyholm/psr7",
"direct": true,
"version": "1.8.2",
"ecosystem": "packagist"
},
{
"name": "nyholm/psr7-server",
"direct": true,
"version": "1.1.0",
"ecosystem": "packagist"
},
{
"name": "psr/container",
"direct": true,
"version": "2.0.2",
"ecosystem": "packagist"
},
{
"name": "psy/psysh",
"direct": true,
"version": "0.12.8",
"ecosystem": "packagist"
},
{
"name": "spatie/robots-txt",
"direct": true,
"version": "2.3.1",
"ecosystem": "packagist"
},
{
"name": "symfony/console",
"direct": true,
"version": "7.2.5",
"ecosystem": "packagist"
},
{
"name": "symfony/css-selector",
"direct": true,
"version": "7.2.0",
"ecosystem": "packagist"
},
{
"name": "symfony/dom-crawler",
"direct": true,
"version": "7.2.4",
"ecosystem": "packagist"
},
{
"name": "symfony/event-dispatcher",
"direct": true,
"version": "7.2.0",
"ecosystem": "packagist"
},
{
"name": "symfony/options-resolver",
"direct": true,
"version": "7.2.0",
"ecosystem": "packagist"
},
{
"name": "clue/ndjson-react",
"direct": false,
"version": "1.3.0",
"ecosystem": "packagist"
},
{
"name": "composer/pcre",
"direct": false,
"version": "3.3.2",
"ecosystem": "packagist"
},
{
"name": "composer/semver",
"direct": false,
"version": "3.4.3",
"ecosystem": "packagist"
},
{
"name": "composer/xdebug-handler",
"direct": false,
"version": "3.0.5",
"ecosystem": "packagist"
},
{
"name": "ergebnis/composer-normalize",
"direct": false,
"version": "2.45.0",
"ecosystem": "packagist"
},
{
"name": "ergebnis/json",
"direct": false,
"version": "1.4.0",
"ecosystem": "packagist"
},
{
"name": "ergebnis/json-normalizer",
"direct": false,
"version": "4.8.0",
"ecosystem": "packagist"
},
{
"name": "ergebnis/json-pointer",
"direct": false,
"version": "3.6.0",
"ecosystem": "packagist"
},
{
"name": "ergebnis/json-printer",
"direct": false,
"version": "3.7.0",
"ecosystem": "packagist"
},
{
"name": "ergebnis/json-schema-validator",
"direct": false,
"version": "4.4.0",
"ecosystem": "packagist"
},
{
"name": "ergebnis/php-cs-fixer-config",
"direct": false,
"version": "6.45.0",
"ecosystem": "packagist"
},
{
"name": "erickskrauch/php-cs-fixer-custom-fixers",
"direct": false,
"version": "1.3.0",
"ecosystem": "packagist"
},
{
"name": "evenement/evenement",
"direct": false,
"version": "3.0.2",
"ecosystem": "packagist"
},
{
"name": "fidry/cpu-core-counter",
"direct": false,
"version": "1.2.0",
"ecosystem": "packagist"
},
{
"name": "friendsofphp/php-cs-fixer",
"direct": false,
"version": "3.71.0",
"ecosystem": "packagist"
},
{
"name": "guzzlehttp/promises",
"direct": false,
"version": "2.2.0",
"ecosystem": "packagist"
},
{
"name": "guzzlehttp/psr7",
"direct": false,
"version": "2.7.1",
"ecosystem": "packagist"
},
{
"name": "http-interop/http-factory-guzzle",
"direct": false,
"version": "1.2.0",
"ecosystem": "packagist"
},
{
"name": "justinrainbow/json-schema",
"direct": false,
"version": "6.4.1",
"ecosystem": "packagist"
},
{
"name": "kubawerlos/php-cs-fixer-custom-fixers",
"direct": false,
"version": "3.23.0",
"ecosystem": "packagist"
},
{
"name": "localheinz/diff",
"direct": false,
"version": "1.2.0",
"ecosystem": "packagist"
},
{
"name": "marc-mabe/php-enum",
"direct": false,
"version": "4.7.1",
"ecosystem": "packagist"
},
{
"name": "masterminds/html5",
"direct": false,
"version": "2.9.0",
"ecosystem": "packagist"
},
{
"name": "myclabs/deep-copy",
"direct": false,
"version": "1.13.0",
"ecosystem": "packagist"
},
{
"name": "nikic/fast-route",
"direct": false,
"version": "1.3.0",
"ecosystem": "packagist"
},
{
"name": "nikic/php-parser",
"direct": false,
"version": "5.4.0",
"ecosystem": "packagist"
},
{
"name": "phar-io/manifest",
"direct": false,
"version": "2.0.4",
"ecosystem": "packagist"
},
{
"name": "phar-io/version",
"direct": false,
"version": "3.2.1",
"ecosystem": "packagist"
},
{
"name": "phpstan/phpstan",
"direct": false,
"version": "2.1.11",
"ecosystem": "packagist"
},
{
"name": "phpunit/php-code-coverage",
"direct": false,
"version": "10.1.16",
"ecosystem": "packagist"
},
{
"name": "phpunit/php-file-iterator",
"direct": false,
"version": "4.1.0",
"ecosystem": "packagist"
},
{
"name": "phpunit/php-invoker",
"direct": false,
"version": "4.0.0",
"ecosystem": "packagist"
},
{
"name": "phpunit/php-text-template",
"direct": false,
"version": "3.0.1",
"ecosystem": "packagist"
},
{
"name": "phpunit/php-timer",
"direct": false,
"version": "6.0.0",
"ecosystem": "packagist"
},
{
"name": "phpunit/phpunit",
"direct": false,
"version": "10.5.45",
"ecosystem": "packagist"
},
{
"name": "psr/event-dispatcher",
"direct": false,
"version": "1.0.0",
"ecosystem": "packagist"
},
{
"name": "psr/http-client",
"direct": false,
"version": "1.0.3",
"ecosystem": "packagist"
},
{
"name": "psr/http-factory",
"direct": false,
"version": "1.1.0",
"ecosystem": "packagist"
},
{
"name": "psr/http-message",
"direct": false,
"version": "1.1",
"ecosystem": "packagist"
},
{
"name": "psr/http-server-handler",
"direct": false,
"version": "1.0.2",
"ecosystem": "packagist"
},
{
"name": "psr/http-server-middleware",
"direct": false,
"version": "1.0.2",
"ecosystem": "packagist"
},
{
"name": "psr/log",
"direct": false,
"version": "3.0.2",
"ecosystem": "packagist"
},
{
"name": "ralouphie/getallheaders",
"direct": false,
"version": "3.0.3",
"ecosystem": "packagist"
},
{
"name": "react/cache",
"direct": false,
"version": "1.2.0",
"ecosystem": "packagist"
},
{
"name": "react/child-process",
"direct": false,
"version": "0.6.6",
"ecosystem": "packagist"
},
{
"name": "react/dns",
"direct": false,
"version": "1.13.0",
"ecosystem": "packagist"
},
{
"name": "react/event-loop",
"direct": false,
"version": "1.5.0",
"ecosystem": "packagist"
},
{
"name": "react/promise",
"direct": false,
"version": "3.2.0",
"ecosystem": "packagist"
},
{
"name": "react/socket",
"direct": false,
"version": "1.16.0",
"ecosystem": "packagist"
},
{
"name": "react/stream",
"direct": false,
"version": "1.4.0",
"ecosystem": "packagist"
},
{
"name": "roave/security-advisories",
"direct": false,
"version": null,
"ecosystem": "packagist"
},
{
"name": "sebastian/cli-parser",
"direct": false,
"version": "2.0.1",
"ecosystem": "packagist"
},
{
"name": "sebastian/code-unit",
"direct": false,
"version": "2.0.0",
"ecosystem": "packagist"
},
{
"name": "sebastian/code-unit-reverse-lookup",
"direct": false,
"version": "3.0.0",
"ecosystem": "packagist"
},
{
"name": "sebastian/comparator",
"direct": false,
"version": "5.0.3",
"ecosystem": "packagist"
},
{
"name": "sebastian/complexity",
"direct": false,
"version": "3.2.0",
"ecosystem": "packagist"
},
{
"name": "sebastian/diff",
"direct": false,
"version": "5.1.1",
"ecosystem": "packagist"
},
{
"name": "sebastian/environment",
"direct": false,
"version": "6.1.0",
"ecosystem": "packagist"
},
{
"name": "sebastian/exporter",
"direct": false,
"version": "5.1.2",
"ecosystem": "packagist"
},
{
"name": "sebastian/global-state",
"direct": false,
"version": "6.0.2",
"ecosystem": "packagist"
},
{
"name": "sebastian/lines-of-code",
"direct": false,
"version": "2.0.2",
"ecosystem": "packagist"
},
{
"name": "sebastian/object-enumerator",
"direct": false,
"version": "5.0.0",
"ecosystem": "packagist"
},
{
"name": "sebastian/object-reflector",
"direct": false,
"version": "3.0.0",
"ecosystem": "packagist"
},
{
"name": "sebastian/recursion-context",
"direct": false,
"version": "5.0.0",
"ecosystem": "packagist"
},
{
"name": "sebastian/type",
"direct": false,
"version": "4.0.0",
"ecosystem": "packagist"
},
{
"name": "sebastian/version",
"direct": false,
"version": "4.0.1",
"ecosystem": "packagist"
},
{
"name": "slim/slim",
"direct": false,
"version": "4.14.0",
"ecosystem": "packagist"
},
{
"name": "spatie/browsershot",
"direct": false,
"version": "5.0.8",
"ecosystem": "packagist"
},
{
"name": "spatie/temporary-directory",
"direct": false,
"version": "2.3.0",
"ecosystem": "packagist"
},
{
"name": "symfony/deprecation-contracts",
"direct": false,
"version": "3.5.1",
"ecosystem": "packagist"
},
{
"name": "symfony/event-dispatcher-contracts",
"direct": false,
"version": "3.5.1",
"ecosystem": "packagist"
},
{
"name": "symfony/filesystem",
"direct": false,
"version": "7.2.0",
"ecosystem": "packagist"
},
{
"name": "symfony/finder",
"direct": false,
"version": "7.2.2",
"ecosystem": "packagist"
},
{
"name": "symfony/polyfill-ctype",
"direct": false,
"version": "1.31.0",
"ecosystem": "packagist"
},
{
"name": "symfony/polyfill-intl-grapheme",
"direct": false,
"version": "1.31.0",
"ecosystem": "packagist"
},
{
"name": "symfony/polyfill-intl-normalizer",
"direct": false,
"version": "1.31.0",
"ecosystem": "packagist"
},
{
"name": "symfony/polyfill-mbstring",
"direct": false,
"version": "1.31.0",
"ecosystem": "packagist"
},
{
"name": "symfony/polyfill-php80",
"direct": false,
"version": "1.31.0",
"ecosystem": "packagist"
},
{
"name": "symfony/polyfill-php81",
"direct": false,
"version": "1.31.0",
"ecosystem": "packagist"
},
{
"name": "symfony/process",
"direct": false,
"version": "7.2.5",
"ecosystem": "packagist"
},
{
"name": "symfony/service-contracts",
"direct": false,
"version": "3.5.1",
"ecosystem": "packagist"
},
{
"name": "symfony/stopwatch",
"direct": false,
"version": "7.2.4",
"ecosystem": "packagist"
},
{
"name": "symfony/string",
"direct": false,
"version": "7.2.0",
"ecosystem": "packagist"
},
{
"name": "symfony/var-dumper",
"direct": false,
"version": "7.2.3",
"ecosystem": "packagist"
},
{
"name": "theseer/tokenizer",
"direct": false,
"version": "1.2.3",
"ecosystem": "packagist"
}
],
"collected": true,
"truncated": false,
"total_count": 99,
"direct_count": 14,
"indirect_count": 85
}
},
"maintainership": {
"issues": {
"open_prs": 14,
"merged_prs": 65,
"open_issues": 18,
"closed_ratio": 0.743,
"closed_issues": 52,
"closed_unmerged_prs": 104
},
"bus_factor": 1,
"bot_contributors": 2,
"top_contributors": [
{
"type": "User",
"login": "ksassnowski",
"commits": 232,
"avatar_url": "https://avatars.githubusercontent.com/u/5139098?v=4"
},
{
"type": "User",
"login": "aaronflorey",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/948073?v=4"
},
{
"type": "User",
"login": "chrismcintosh",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/2763551?v=4"
},
{
"type": "User",
"login": "corbeil",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/3542325?v=4"
},
{
"type": "User",
"login": "inxilpro",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/21592?v=4"
},
{
"type": "User",
"login": "Daanra",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/6588838?v=4"
},
{
"type": "User",
"login": "j-oppenhuis",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/46529655?v=4"
},
{
"type": "User",
"login": "michaelrog",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/102379?v=4"
},
{
"type": "User",
"login": "daikazu",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/4039367?v=4"
},
{
"type": "User",
"login": "bangnokia",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/5652494?v=4"
}
],
"contributors_sampled": 13,
"top_contributor_share": 0.943
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"commitlint.yml",
"fix-style.yml",
"release-please.yml",
"run-tests.yml"
],
"has_docs_dir": false,
"linter_configs": [
".php-cs-fixer.php",
"phpstan.neon"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"composer.lock"
],
"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": 0,
"reason": "0 out of 18 merged PRs checked by a CI test -- score normalized to 0",
"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": 0,
"reason": "Found 1/15 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 0,
"reason": "project has 0 contributing companies or organizations -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"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": 0,
"reason": "license file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"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": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"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": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "15 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "725955e04cd48264fe1cbe373bf6be122ad32dec",
"ran_at": "2026-07-27T10:52:58Z",
"aggregate_score": 2.7,
"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": "2025-10-27T09:09:18Z",
"oldest_open_prs": [
{
"number": 67,
"created_at": "2022-10-02T10:55:47Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 202,
"created_at": "2024-01-24T23:39:47Z",
"last_comment_at": "2024-01-30T02:59:07Z",
"last_comment_author": "josezenem"
},
{
"number": 248,
"created_at": "2024-05-13T20:53:49Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 254,
"created_at": "2024-06-17T09:24:26Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 261,
"created_at": "2024-09-20T09:52:38Z",
"last_comment_at": "2024-09-20T09:53:54Z",
"last_comment_author": "jhg"
},
{
"number": 264,
"created_at": "2025-03-16T17:30:27Z",
"last_comment_at": "2025-04-05T15:06:01Z",
"last_comment_author": "fadarrizz"
},
{
"number": 267,
"created_at": "2025-03-23T20:24:22Z",
"last_comment_at": "2025-04-26T10:51:05Z",
"last_comment_author": "fadarrizz"
},
{
"number": 272,
"created_at": "2025-04-09T03:41:56Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 275,
"created_at": "2025-06-02T10:12:18Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 281,
"created_at": "2025-08-17T10:03:17Z",
"last_comment_at": "2025-08-27T15:25:27Z",
"last_comment_author": "teandr"
},
{
"number": 288,
"created_at": "2025-10-06T09:09:01Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 289,
"created_at": "2025-10-27T09:24:13Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 290,
"created_at": "2025-11-25T12:59:02Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 292,
"created_at": "2025-12-21T10:09:18Z",
"last_comment_at": "2026-07-17T18:59:10Z",
"last_comment_author": "sojeda"
}
],
"last_merged_pr_at": "2025-03-21T06:53:36Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 14,
"created_at": "2022-01-16T10:06:49Z",
"last_comment_at": "2022-01-16T17:30:41Z",
"last_comment_author": "pavlokomarov"
},
{
"number": 36,
"created_at": "2022-04-24T04:29:10Z",
"last_comment_at": "2024-10-07T08:32:21Z",
"last_comment_author": "ZhangChengLin"
},
{
"number": 54,
"created_at": "2022-07-28T22:34:37Z",
"last_comment_at": "2022-09-12T09:43:58Z",
"last_comment_author": "AkioSarkiz"
},
{
"number": 61,
"created_at": "2022-09-19T15:44:34Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 85,
"created_at": "2023-02-21T12:41:31Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 129,
"created_at": "2023-06-01T03:49:50Z",
"last_comment_at": "2023-06-01T06:49:04Z",
"last_comment_author": "chiva-song"
},
{
"number": 143,
"created_at": "2023-07-05T22:27:16Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 164,
"created_at": "2023-09-23T08:32:41Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 221,
"created_at": "2024-03-03T12:45:39Z",
"last_comment_at": "2024-04-04T09:22:42Z",
"last_comment_author": "ksassnowski"
},
{
"number": 239,
"created_at": "2024-04-09T08:52:43Z",
"last_comment_at": "2024-04-09T12:05:35Z",
"last_comment_author": "fadarrizz"
},
{
"number": 247,
"created_at": "2024-05-06T14:30:52Z",
"last_comment_at": "2024-05-07T04:54:46Z",
"last_comment_author": "ZhangChengLin"
},
{
"number": 249,
"created_at": "2024-05-24T12:25:59Z",
"last_comment_at": "2025-01-21T20:58:50Z",
"last_comment_author": "mattheobjornson"
},
{
"number": 251,
"created_at": "2024-06-02T03:06:51Z",
"last_comment_at": "2024-06-02T03:08:47Z",
"last_comment_author": "ZhangChengLin"
},
{
"number": 253,
"created_at": "2024-06-12T10:18:33Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 259,
"created_at": "2024-09-08T03:19:10Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 260,
"created_at": "2024-09-08T03:36:09Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 262,
"created_at": "2024-11-24T16:56:09Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 291,
"created_at": "2025-12-14T18:49:27Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/roach-php/core",
"host": "github.com",
"name": "core",
"owner": "roach-php"
},
"metrics": {
"overall": {
"key": "overall",
"band": "critical",
"name": "Overall health",
"note": "Abandonment Policy applies a 60% multiplier to weighted overall health and gives it a ceiling of 49.",
"notes": [
{
"code": "abandonment_overall_adjustment",
"params": {
"cap": 49,
"pct": 60
}
}
],
"value": 28,
"inputs": {
"security": 34,
"vitality": 26,
"community": 65,
"governance": 49,
"engineering": 64,
"abandonment_cap": 49,
"abandonment_state": "likely_abandoned",
"abandonment_multiplier": 60,
"weighted_overall_before_abandonment": 47,
"overall_after_abandonment_multiplier": 28
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "critical",
"name": "Vitality",
"value": 26,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "critical",
"name": "Development activity",
"note": null,
"notes": [],
"value": 4,
"inputs": {
"commits_last_year": 0,
"human_commit_share": 0.57,
"days_since_last_push": 273,
"active_weeks_last_year": 0
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 273 days ago",
"points": 3.6,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 273
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "0/52 weeks with commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 0
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "0 commits in the last year",
"points": 0,
"status": "missed",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 0
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "moderate",
"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": 60,
"inputs": {
"releases_count": 14,
"latest_release_tag": "v3.2.1",
"releases_from_tags": false,
"days_since_latest_release": 493,
"mean_days_between_releases": 111.4
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "14 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 14
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 493 days ago",
"points": 7.2,
"status": "partial",
"details": [
{
"code": "release_recency",
"params": {
"days": 493
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~111.4 days",
"points": 19.8,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 111.4
}
}
],
"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": "moderate",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"cap": 49,
"state": "likely_abandoned",
"guards": [],
"signals": [
"unanswered_contributions",
"issue_rot",
"release_stall",
"scorecard_unmaintained"
],
"red_flag": true,
"multiplier_pct": 60,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": 14,
"unanswered_open_issues": 16,
"days_since_last_merged_pr": 493,
"days_since_last_human_commit": 474,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "no human commit for 474 days; 4 unmet obligation(s): pull requests unanswered, issues unanswered, releases stalled, Scorecard reports it unmaintained",
"points": 60,
"status": "partial",
"details": [
{
"code": "abandonment_flagged",
"params": {
"days": 474,
"count": 4,
"signals": "pull requests unanswered, issues unanswered, releases stalled, Scorecard reports it unmaintained"
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 65,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "good",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 74,
"inputs": {
"forks": 87,
"stars": 1455,
"watchers": 17,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "1,455 stars",
"points": 51.3,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 1455
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "87 forks",
"points": 16.1,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 87
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "17 watchers",
"points": 6.7,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 17
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"has_readme": true,
"has_license": false,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": true,
"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": "no license file detected",
"points": 0,
"status": "missed",
"details": [
{
"code": "license_absent",
"params": {}
}
],
"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": 13.5,
"status": "met",
"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": "moderate",
"name": "Ecosystem adoption (downloads)",
"note": null,
"notes": [],
"value": 59,
"inputs": {
"packages": [
"roach-php/core"
],
"dependents": 4,
"ecosystems": "packagist",
"total_downloads": 409319,
"monthly_downloads": 11976
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "11,976 downloads/month across packagist",
"points": 54.4,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 11976,
"ecosystems": "packagist"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "4 packages depend on it",
"points": 4.7,
"status": "partial",
"details": [
{
"code": "registry_dependents",
"params": {
"count": 4
}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 49,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 24,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 13,
"top_contributor_share": 0.943
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 94% of commits",
"points": 1.3,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 94
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "13 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 13
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "at_risk",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 49,
"inputs": {
"merged_prs": 65,
"open_issues": 18,
"closed_issues": 52,
"issue_closed_ratio": 0.743,
"closed_unmerged_prs": 104
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "74% of issues closed",
"points": 34.7,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 74
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "65/169 decided PRs merged",
"points": 14.7,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 65,
"decided": 169
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 1/15 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"followers": 21,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "roach-php",
"public_repos": 3,
"account_age_days": 1809
},
"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": "21 followers of roach-php",
"points": 9.7,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 21,
"login": "roach-php"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "3 public repos, account ~4 yr old",
"points": 14.3,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 3
}
},
{
"code": "account_age_years",
"params": {
"years": 4
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "good",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 79,
"inputs": {
"packages": [
"roach-php/core"
],
"ecosystems": "packagist",
"any_deprecated": false,
"min_days_since_publish": 493
},
"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 493 days ago",
"points": 14,
"status": "partial",
"details": [
{
"code": "publish_recency",
"params": {
"days": 493
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "14 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 14
}
}
],
"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": "moderate",
"name": "Engineering Quality",
"value": 64,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 64,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "4 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 4
}
}
],
"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": ".php-cs-fixer.php, phpstan.neon",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".php-cs-fixer.php, phpstan.neon"
}
}
],
"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": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "0 out of 18 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [
"php",
"web-scraping",
"crawling"
],
"has_wiki": false,
"homepage": "https://roach-php.dev",
"has_readme": true,
"has_docs_dir": false,
"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": 0,
"status": "missed",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://roach-php.dev",
"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": "3 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 3
}
}
],
"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": "at_risk",
"name": "Security",
"value": 34,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "critical",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 27,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"scorecard_aggregate": 2.7
},
"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": "0 out of 18 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"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 1/15 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"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 not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"points": 0,
"status": "missed",
"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": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"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": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "15 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "moderate",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 98 resolved dependencies against OSV; 1 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 98
}
},
{
"code": "advisories_unassessed",
"params": {
"count": 1
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 63,
"inputs": {
"source": "osv",
"advisories": 15,
"affected_packages": 6,
"assessed_packages": 98,
"unassessed_packages": 1,
"affected_by_severity": "high 1, moderate 5",
"direct_affected_packages": 3
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "3 affected: guzzlehttp/guzzle 7.9.3 (moderate 5.9), psy/psysh 0.12.8 (moderate 6.7), symfony/dom-crawler 7.2.4 (moderate 4.3)",
"points": 12.9,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 3,
"packages": "guzzlehttp/guzzle 7.9.3 (moderate 5.9), psy/psysh 0.12.8 (moderate 6.7), symfony/dom-crawler 7.2.4 (moderate 4.3)"
}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 177 days ago",
"points": 34.3,
"status": "partial",
"details": [
{
"code": "advisories_stale",
"params": {
"days": 90,
"count": 1,
"oldest": 177
}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 98,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"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": 44,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "critical",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 29,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.544,
"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": "31 of 57 human commits state their intent (structured subject or explanatory body)",
"points": 29,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 31,
"sampled": 57
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 51,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"composer.lock"
],
"has_dockerfile": false,
"typed_language": false,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0.38
},
"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": ".php-cs-fixer.php, phpstan.neon",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".php-cs-fixer.php, phpstan.neon"
}
}
],
"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": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "38 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 38,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"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": 13964,
"source_files_sampled": 165,
"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/165 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 165,
"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"
],
"report_type": "repository",
"generated_at": "2026-07-27T10:53:16.167118Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/r/roach-php/core.svg",
"full_name": "roach-php/core",
"license_state": "absent",
"license_spdx": null
}