Public record
Software health reportschema 0.27.0 · metrics 2.5.0 · 2026-07-29 06:06 UTC

bugsnag / bugsnag-symfony

BugSnag notifier for the Symfony PHP framework. Monitor and report errors in your Symfony apps.

PHPMIT★ 44 stars⑂ 19 forkssince Jul 2016View on GitHub ↗
KindLibraryCommand-line toolhow this is determined

bugsnag/bugsnag-symfony holds a health index of 65 out of 100, placing it in the Good band. It scores highest on Sustainability & Governance (70/100) and lowest on AI Readiness (41/100). It was last updated today. A single contributor accounts for most of its recent work.

65
overall / 100
Good

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean, calibrated against the distribution of the public record so bands carry percentile meaning; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At Risk ceiling of 34.

65
Exceptional93-100The record's top tier (≈ top 5%); essentially all checked criteria met
Excellent80-92Strong across the board; minor gaps
Good65-79Healthy; gaps are limited and manageable
Moderate50-64Acceptable with notable gaps; review recommended
Weak35-49Material weaknesses across several areas
At Risk20-34Significant weaknesses; adoption warrants caution
Critical1-19Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

The weighted overall 60 is calibrated to 65 on the published index scale (record calibration 2026-08-02).

Ownership

BugSnagOrganization
144 followers140 public repossince Sep 2011

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
Packagistbugsnag/bugsnag-symfonyv2.0.041,65324231 days agologgingsymfonyerrorsexceptionsbugsnagtracking

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

54Moderate · 21% of overall
How it's scored
36/36Push recency — last push 0 days ago
1.4/36Commit cadence — 2/52 weeks with commits
11.1/18Commit volume — 16 commits in the last year
0/10OpenSSF Scorecard: Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Inputs used
commits_last_year16
human_commit_share1
days_since_last_push0
active_weeks_last_year2
How it's scored
27/27Ships releases — 24 releases published
16.2/36Release recency — latest release 231 days ago
12.6/27Release cadence — a release every ~161.9 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count24
latest_release_tagv2.0.0
releases_from_tagsno
days_since_latest_release231
mean_days_between_releases161.9
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

61Moderate · 17% of overall
How it's scored
26.5/60Stars — 44 stars
10.5/25Forks — 19 forks
7.7/15Watchers — 25 watchers
Inputs used
forks19
stars44
watchers25
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (MIT)
18/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
readme_badges
has_contributingyes
has_issue_templateno
has_code_of_conductno
readme_badge_services
has_pull_request_templateyes
How it's scored
61.6/80Monthly downloads — 41,653 downloads/month across packagist
4.7/20Registry dependents — 4 packages depend on it
Inputs used
packagesbugsnag/bugsnag-symfony
dependents4
ecosystemspackagist
total_downloads3,141,290
monthly_downloads41,653

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

70Good · 23% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
9.1/22.5Commit distribution — top contributor authored 60% of commits
13.5/13.5Contributor breadth — 15 contributors
10/10OpenSSF Scorecard: Contributors — project has 22 contributing companies or organizations
Inputs used
bus_factor1
contributors_sampled15
top_contributor_share0.597
How it's scored
35.8/42Issue resolution — 85% of issues closed
25.5/30PR acceptance — 141/166 decided PRs merged
0/13Newcomer PR acceptance — no first-time contributor's PR decided in 30d
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Inputs used
merged_prs141
open_issues4
closed_issues23
prs_merged_7d
prs_decided_7d
prs_merged_30d
prs_decided_30d
issue_closed_ratio0.852
closed_unmerged_prs25
first_time_authors_30d
first_time_prs_merged_30d
first_time_prs_decided_30d
Excluded from scoring (no data or not applicable): newcomer_pr_acceptance. Remaining weights renormalized.
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
15.5/25Owner reach — 144 followers of bugsnag
25/25Track record — 140 public repos, account ~14 yr old
Inputs used
followers144
owner_typeOrganization
is_verified
owner_loginbugsnag
public_repos140
account_age_days5,428
How it's scored
25/25Published & resolvable — 1 package(s) on packagist
26/35Publish recency — latest publish 231 days ago
20/20Version history — 24 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesbugsnag/bugsnag-symfony
ecosystemspackagist
any_deprecatedno
min_days_since_publish231

Engineering Quality

Are baseline engineering and documentation practices in place?

61Moderate · 19% of overall
How it's scored
24/24CI workflows — 3 workflow(s)
24/24Tests present
0/16Linter config
0/9.6Pre-commit hooks
6.4/6.4.editorconfig
4/20OpenSSF Scorecard: CI-Tests — 2 out of 7 merged PRs checked by a CI test -- score normalized to 2
Inputs used
has_ciyes
has_testsyes
has_editorconfigyes
has_linter_configno
has_precommit_configno
How it's scored
30/30README
0/25Documentation directory
15/15Documentation / homepage site — https://docs.bugsnag.com/platforms/php/symfony
10/10Repository description
10/10Topics — 16 topics
0/10Wiki
Inputs used
topicsbugsnag, symfony, php, error-monitoring, error-reporting, error-notification, exception-reporting, crash-reporting, crash-reporting-tool, exception-handling, errors, bugs, notifier, platforms, debug, debugging-tool
has_wikino
homepagehttps://docs.bugsnag.com/platforms/php/symfony
has_readmeyes
has_docs_dirno
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

53Moderate · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — no data
0.5/2.5CI-Tests — 2 out of 7 merged PRs checked by a CI test -- score normalized to 2
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
7.5/7.5Code-Review — all changesets reviewed
2.5/2.5Contributors — project has 22 contributing companies or organizations
0/10Dangerous-Workflow — no data
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
0/7.5Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
0/5Packaging — no data
0/5Pinned-Dependencies — no data
2.5/5SAST — SAST tool is not run on all commits -- score normalized to 5
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — no data
0/7.5Token-Permissions — no data
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated12
scorecard_versionv5.5.0
checks_inconclusive6
scorecard_aggregate4.9
Excluded from scoring (no data or not applicable): branch_protection, dangerous_workflow, packaging, pinned_dependencies, signed_releases, token_permissions. Remaining weights renormalized.
How it's scored
12.3/35Direct dependencies free of known advisories — 2 affected: symfony/http-kernel 8.0.0 (high 8.1), symfony/http-foundation 8.0.0 (low)
0/25Indirect dependencies free of known advisories — transitive set not separable from development and test dependencies in this scope
40/40No advisories left outstanding — no advisory has been public longer than 90 days
Inputs used
sourceosv
advisories48
affected_packages18
assessed_packages136
unassessed_packages82
affected_by_severitycritical 2, high 6, moderate 8, low 2
direct_affected_packages2
Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 136 resolved dependencies against OSV. 82 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.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight (4%): agent tooling is a real maintenance signal, but a repository with none can still reach 100/100.

41Weak · 4% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
12.8/40Legible commit history — 24 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.24
agent_instruction_files
agent_instruction_max_bytes
How it's scored
18/18One-command bootstrap — Makefile
22/22Automated tests
0/11Lint / format config
0/11Static type checking
10/10Reproducible environment — Dockerfile, lockfile
0/10Demonstrated agent practice — no agent-authored commits among the last 100
0/8Automated maintenance — no automated dependency updates observed
0/10OpenSSF Scorecard: Pinned-Dependencies — no data
Inputs used
has_nixno
has_testsyes
lockfilescomposer.lock
has_dockerfileyes
typed_languageno
bootstrap_filesMakefile
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.
How it's scored
0/45Type-checkable code — PHP without a type-check config
54.7/55Manageable file sizes — 1/174 source files over 60KB
Inputs used
primary_languagePHP
largest_source_bytes91,938
source_files_sampled174
oversized_source_files1
How it's scored
0/40API schema (OpenAPI/GraphQL/proto)
0/20MCP server
40/40Runnable examples — example
Inputs used
example_dirsexample
has_mcp_signalno
api_schema_files

Key facts

44GitHub stars
15contributors
16commits, last 12 months
0days since last push
24releases
1bus factor
4open issues
Packagist, RubyGemspackage ecosystems

Data collection warnings

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

More detail

Star and fork history 0 ★ / 19 ⇿
0Stars
19Forks
21Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

0481216201812016-102020-122025-01
Major 0Minor 14Patch 7

Each point covers 8 days.

OpenSSF Scorecard 4.9 / 10
4.9aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-29 06:06 UTC

10Binary-Artifactsno binaries found in the repo
n/aBranch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
2CI-Tests2 out of 7 merged PRs checked by a CI test -- score normalized to 2
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
10Code-Reviewall changesets reviewed
10Contributorsproject has 22 contributing companies or organizations
n/aDangerous-Workflowno workflows found
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
0Maintained0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
n/aPackagingpackaging workflow not detected
n/aPinned-Dependenciesno dependencies found
5SASTSAST tool is not run on all commits -- score normalized to 5
0Security-Policysecurity policy file not detected
n/aSigned-Releasesno releases found
n/aToken-PermissionsNo tokens found
10Vulnerabilities0 existing vulnerabilities detected
Direct dependencies 9
RegistryPackageVersion constraintManifest
RubyGemsbugsnag-maze-runnerGemfile
RubyGemswebrickGemfile
Packagistbugsnag/bugsnag^3.29.0composer.json
Packagistsymfony/config^5|^6|^7|^8composer.json
Packagistsymfony/console^5|^6|^7|^8composer.json
Packagistsymfony/dependency-injection^5|^6|^7|^8composer.json
Packagistsymfony/http-foundation^5|^6|^7|^8composer.json
Packagistsymfony/http-kernel^5|^6|^7|^8composer.json
Packagistsymfony/security-core^5|^6|^7|^8composer.json
All dependencies 218

Full resolved dependency set from the GitHub dependency graph: 16 direct and 202 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

RegistryPackageVersionRelation
Packagistbugsnag/bugsnagdirect
Packagistbugsnag/bugsnag3.30.0direct
Packagistsymfony/configdirect
Packagistsymfony/config8.0.0direct
Packagistsymfony/consoledirect
Packagistsymfony/console8.0.0direct
Packagistsymfony/dependency-injectiondirect
Packagistsymfony/dependency-injection8.0.0direct
Packagistsymfony/http-foundationdirect
Packagistsymfony/http-foundation8.0.0direct
Packagistsymfony/http-kerneldirect
Packagistsymfony/http-kernel8.0.0direct
Packagistsymfony/security-coredirect
Packagistsymfony/security-core8.0.0direct
RubyGemsbugsnag-maze-runnerdirect
RubyGemswebrickdirect
npm@hotwired/stimulus^3.0.0indirect
npm@symfony/stimulus-bridge^3.0.0indirect
npm@symfony/webpack-encore^1.7.0indirect
npmcore-js^3.0.0indirect
npmregenerator-runtime^0.13.2indirect
npmwebpack-notifier^1.6.0indirect
Packagistbugsnag/bugsnag-symfonyindirect
Packagistbugsnag/bugsnag-symfony99.99.99indirect
Packagistcomposer/ca-bundle1.5.9indirect
Packagistcomposer/package-versions-deprecated1.11.99.2indirect
Packagistcomposer/semver3.4.4indirect
Packagistdoctrine/annotationsindirect
Packagistdoctrine/collections2.4.0indirect
Packagistdoctrine/dbal4.4.0indirect
Packagistdoctrine/deprecations1.1.5indirect
Packagistdoctrine/doctrine-bundleindirect
Packagistdoctrine/doctrine-bundle3.1.0indirect
Packagistdoctrine/doctrine-cache-bundleindirect
Packagistdoctrine/doctrine-migrations-bundleindirect
Packagistdoctrine/doctrine-migrations-bundle3.7.0indirect
Packagistdoctrine/event-manager2.0.1indirect
Packagistdoctrine/inflector2.1.0indirect
Packagistdoctrine/instantiator2.0.0indirect
Packagistdoctrine/lexer3.0.1indirect
Packagistdoctrine/migrations3.9.5indirect
Packagistdoctrine/ormindirect
Packagistdoctrine/orm3.5.8indirect
Packagistdoctrine/persistence4.1.1indirect
Packagistdoctrine/sql-formatter1.5.3indirect
Packagistegulias/email-validator4.0.4indirect
Packagistext-ctypeindirect
Packagistext-iconvindirect
Packagistgraham-campbell/testbench-coreindirect
Packagistguzzlehttp/guzzle7.10.0indirect
Packagistguzzlehttp/promises2.3.0indirect
Packagistguzzlehttp/psr72.8.0indirect
Packagistincenteev/composer-parameter-handlerindirect
Packagistmockery/mockeryindirect
Packagistmonolog/monolog3.9.0indirect
Packagistmyclabs/deep-copy1.13.4indirect
Packagistnikic/php-parser5.6.2indirect
Packagistphar-io/manifest2.0.4indirect
Packagistphar-io/version3.2.1indirect
Packagistphpindirect
Packagistphpdocumentor/reflection-common2.2.0indirect
Packagistphpdocumentor/reflection-docblockindirect
Packagistphpdocumentor/reflection-docblock5.6.5indirect
Packagistphpdocumentor/type-resolver1.12.0indirect
Packagistphpstan/phpdoc-parserindirect
Packagistphpstan/phpdoc-parser2.3.0indirect
Packagistphpunit/php-code-coverage12.5.0indirect
Packagistphpunit/php-file-iterator6.0.0indirect
Packagistphpunit/php-invoker6.0.0indirect
Packagistphpunit/php-text-template5.0.0indirect
Packagistphpunit/php-timer8.0.0indirect
Packagistphpunit/phpunitindirect
Packagistphpunit/phpunit12.4.5indirect
Packagistpsr/cache3.0.0indirect
Packagistpsr/clock1.0.0indirect
Packagistpsr/container2.0.2indirect
Packagistpsr/event-dispatcher1.0.0indirect
Packagistpsr/http-client1.0.3indirect
Packagistpsr/http-factory1.1.0indirect
Packagistpsr/http-message2.0indirect
Packagistpsr/link2.0.1indirect
Packagistpsr/log3.0.2indirect
Packagistralouphie/getallheaders3.0.3indirect
Packagistsebastian/cli-parser4.2.0indirect
Packagistsebastian/comparator7.1.3indirect
Packagistsebastian/complexity5.0.0indirect
Packagistsebastian/diff7.0.0indirect
Packagistsebastian/environment8.0.3indirect
Packagistsebastian/exporter7.0.2indirect
Packagistsebastian/global-state8.0.2indirect
Packagistsebastian/lines-of-code4.0.0indirect
Packagistsebastian/object-enumerator7.0.0indirect
Packagistsebastian/object-reflector5.0.0indirect
Packagistsebastian/recursion-context7.0.1indirect
Packagistsebastian/type6.0.3indirect
Packagistsebastian/version6.0.0indirect
Packagistsensio/distribution-bundleindirect
Packagistsensio/framework-extra-bundleindirect
Packagistsensio/generator-bundleindirect
Packagiststaabm/side-effects-detector1.0.5indirect
Packagistsymfony/assetindirect
Packagistsymfony/asset8.0.0indirect
Packagistsymfony/asset-mapperindirect
Packagistsymfony/asset-mapper8.0.0indirect
Packagistsymfony/assetic-bundleindirect
Packagistsymfony/browser-kitindirect
Packagistsymfony/browser-kit8.0.0indirect
Packagistsymfony/cache8.0.0indirect
Packagistsymfony/cache-contracts3.6.0indirect
Packagistsymfony/clock8.0.0indirect
Packagistsymfony/css-selectorindirect
Packagistsymfony/css-selector8.0.0indirect
Packagistsymfony/debug-bundleindirect
Packagistsymfony/debug-bundle8.0.0indirect
Packagistsymfony/deprecation-contracts3.6.0indirect
Packagistsymfony/doctrine-bridge8.0.0indirect
Packagistsymfony/doctrine-messengerindirect
Packagistsymfony/doctrine-messenger8.0.0indirect
Packagistsymfony/dom-crawler8.0.0indirect
Packagistsymfony/dotenvindirect
Packagistsymfony/dotenv8.0.0indirect
Packagistsymfony/error-handler8.0.0indirect
Packagistsymfony/event-dispatcher8.0.0indirect
Packagistsymfony/event-dispatcher-contracts3.6.0indirect
Packagistsymfony/expression-languageindirect
Packagistsymfony/expression-language8.0.0indirect
Packagistsymfony/filesystem8.0.0indirect
Packagistsymfony/finder8.0.0indirect
Packagistsymfony/flexindirect
Packagistsymfony/flex2.10.0indirect
Packagistsymfony/formindirect
Packagistsymfony/form8.0.0indirect
Packagistsymfony/framework-bundleindirect
Packagistsymfony/framework-bundle8.0.0indirect
Packagistsymfony/http-clientindirect
Packagistsymfony/http-client8.0.0indirect
Packagistsymfony/http-client-contracts3.6.0indirect
Packagistsymfony/intlindirect
Packagistsymfony/intl8.0.0indirect
Packagistsymfony/ltsindirect
Packagistsymfony/mailerindirect
Packagistsymfony/mailer8.0.0indirect
Packagistsymfony/maker-bundleindirect
Packagistsymfony/maker-bundle1.65.1indirect
Packagistsymfony/messengerindirect
Packagistsymfony/messenger8.0.0indirect
Packagistsymfony/mimeindirect
Packagistsymfony/mime8.0.0indirect
Packagistsymfony/monolog-bridge8.0.0indirect
Packagistsymfony/monolog-bundleindirect
Packagistsymfony/monolog-bundle4.0.0indirect
Packagistsymfony/notifierindirect
Packagistsymfony/notifier8.0.0indirect
Packagistsymfony/options-resolver8.0.0indirect
Packagistsymfony/password-hasher8.0.0indirect
Packagistsymfony/phpunit-bridgeindirect
Packagistsymfony/polyfill-apcuindirect
Packagistsymfony/polyfill-intl-grapheme1.33.0indirect
Packagistsymfony/polyfill-intl-icu1.33.0indirect
Packagistsymfony/polyfill-intl-idn1.33.0indirect
Packagistsymfony/polyfill-intl-normalizer1.33.0indirect
Packagistsymfony/polyfill-mbstring1.33.0indirect
Packagistsymfony/polyfill-php851.33.0indirect
Packagistsymfony/processindirect
Packagistsymfony/process8.0.0indirect
Packagistsymfony/property-accessindirect
Packagistsymfony/property-access8.0.0indirect
Packagistsymfony/property-infoindirect
Packagistsymfony/property-info8.0.0indirect
Packagistsymfony/proxy-manager-bridgeindirect
Packagistsymfony/routingindirect
Packagistsymfony/routing8.0.0indirect
Packagistsymfony/runtimeindirect
Packagistsymfony/runtime8.0.0indirect
Packagistsymfony/security-bundleindirect
Packagistsymfony/security-bundle8.0.0indirect
Packagistsymfony/security-csrf8.0.0indirect
Packagistsymfony/security-http8.0.0indirect
Packagistsymfony/serializerindirect
Packagistsymfony/serializer8.0.0indirect
Packagistsymfony/service-contracts3.6.1indirect
Packagistsymfony/stimulus-bundleindirect
Packagistsymfony/stimulus-bundle2.31.0indirect
Packagistsymfony/stopwatchindirect
Packagistsymfony/stopwatch8.0.0indirect
Packagistsymfony/stringindirect
Packagistsymfony/string8.0.0indirect
Packagistsymfony/swiftmailer-bundleindirect
Packagistsymfony/symfonyindirect
Packagistsymfony/translationindirect
Packagistsymfony/translation8.0.0indirect
Packagistsymfony/translation-contracts3.6.1indirect
Packagistsymfony/twig-bridge8.0.0indirect
Packagistsymfony/twig-bundleindirect
Packagistsymfony/twig-bundle8.0.0indirect
Packagistsymfony/type-info8.0.0indirect
Packagistsymfony/ux-turboindirect
Packagistsymfony/ux-turbo2.31.0indirect
Packagistsymfony/validatorindirect
Packagistsymfony/validator8.0.0indirect
Packagistsymfony/var-dumperindirect
Packagistsymfony/var-dumper8.0.0indirect
Packagistsymfony/var-exporter8.0.0indirect
Packagistsymfony/web-linkindirect
Packagistsymfony/web-link8.0.0indirect
Packagistsymfony/web-profiler-bundleindirect
Packagistsymfony/web-profiler-bundle8.0.0indirect
Packagistsymfony/web-server-bundleindirect
Packagistsymfony/webapp-metaindirect
Packagistsymfony/webpack-encore-bundleindirect
Packagistsymfony/yamlindirect
Packagistsymfony/yaml8.0.0indirect
Packagisttheseer/tokenizer1.3.1indirect
Packagisttwig/extra-bundleindirect
Packagisttwig/extra-bundle3.22.1indirect
Packagisttwig/twigindirect
Packagisttwig/twig3.22.1indirect
Packagistwebmozart/assert1.12.1indirect
Dependency advisories 18

This repository publishes no package the index resolves, so its own dependency graph was assessed — 136 packages, which also include development and test pins that never ship: 18 carry known advisories, of which 2 are direct. 82 could not be assessed — no resolved version, an unsupported ecosystem, or beyond the reported package list.

PackageVersionRelationSeverityAdvisoriesFixed in
symfony/monolog-bridge8.0.0indirectcritical18.0.12
twig/twig3.22.1indirectcritical143.27.0
symfony/http-kernel8.0.0directhigh18.0.12
phpunit/phpunit12.4.5indirecthigh112.5.8
symfony/cache8.0.0indirecthigh18.0.12
symfony/mailer8.0.0indirecthigh18.0.12
symfony/runtime8.0.0indirecthigh18.0.12
symfony/security-http8.0.0indirecthigh58.0.13
guzzlehttp/guzzle7.10.0indirectmoderate77.15.1
guzzlehttp/psr72.8.0indirectmoderate42.12.3
symfony/dom-crawler8.0.0indirectmoderate18.0.12
symfony/mime8.0.0indirectmoderate28.0.12
symfony/polyfill-intl-idn1.33.0indirectmoderate11.38.1
symfony/process8.0.0indirectmoderate18.0.5
symfony/routing8.0.0indirectmoderate28.0.13
symfony/yaml8.0.0indirectmoderate38.0.12
symfony/http-foundation8.0.0directlow18.0.13
symfony/web-profiler-bundle8.0.0indirectlow18.0.12

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "bugsnag",
        "symfony",
        "php",
        "error-monitoring",
        "error-reporting",
        "error-notification",
        "exception-reporting",
        "crash-reporting",
        "crash-reporting-tool",
        "exception-handling",
        "errors",
        "bugs",
        "notifier",
        "platforms",
        "debug",
        "debugging-tool"
      ],
      "is_fork": false,
      "size_kb": 587,
      "has_wiki": false,
      "homepage": "https://docs.bugsnag.com/platforms/php/symfony",
      "languages": {
        "CSS": 122,
        "PHP": 440290,
        "Ruby": 5329,
        "Twig": 18980,
        "Shell": 2895,
        "Gherkin": 25773,
        "Makefile": 666,
        "Dockerfile": 3977,
        "JavaScript": 8530
      },
      "pushed_at": "2026-07-29T06:03:39Z",
      "created_at": "2016-07-06T16:53:22Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-13T08:49:47Z",
      "description": "BugSnag notifier for the Symfony PHP framework. Monitor and report errors in your Symfony apps.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "master",
      "license_spdx_raw": "MIT",
      "primary_language": "PHP",
      "significant_languages": [
        "PHP"
      ]
    },
    "owner": {
      "blog": "https://bugsnag.com",
      "name": "BugSnag",
      "type": "Organization",
      "login": "bugsnag",
      "company": null,
      "location": null,
      "followers": 144,
      "avatar_url": "https://avatars.githubusercontent.com/u/1058895?v=4",
      "created_at": "2011-09-17T21:14:51Z",
      "is_verified": null,
      "public_repos": 140,
      "account_age_days": 5428
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2025-12-09T12:33:37Z"
        },
        {
          "tag": "v1.14.3",
          "kind": "patch",
          "published_at": "2025-01-30T14:00:16Z"
        },
        {
          "tag": "v1.14.2",
          "kind": "patch",
          "published_at": "2024-06-06T08:49:42Z"
        },
        {
          "tag": "v1.14.1",
          "kind": "patch",
          "published_at": "2024-01-23T12:16:50Z"
        },
        {
          "tag": "v1.14.0",
          "kind": "minor",
          "published_at": "2024-01-16T08:35:28Z"
        },
        {
          "tag": "v1.13.0",
          "kind": "minor",
          "published_at": "2022-10-24T10:26:19Z"
        },
        {
          "tag": "v1.12.0",
          "kind": "minor",
          "published_at": "2022-05-20T14:10:26Z"
        },
        {
          "tag": "v1.11.2",
          "kind": "patch",
          "published_at": "2022-02-02T11:49:18Z"
        },
        {
          "tag": "v1.11.1",
          "kind": "patch",
          "published_at": "2022-01-19T15:00:27Z"
        },
        {
          "tag": "v1.11.0",
          "kind": "minor",
          "published_at": "2021-12-13T09:39:04Z"
        },
        {
          "tag": "v1.10.0",
          "kind": "minor",
          "published_at": "2021-06-30T14:40:30Z"
        },
        {
          "tag": "v1.9.0",
          "kind": "minor",
          "published_at": "2021-02-10T13:14:18Z"
        },
        {
          "tag": "v1.8.0",
          "kind": "minor",
          "published_at": "2020-11-25T13:22:10Z"
        },
        {
          "tag": "v1.7.0",
          "kind": "minor",
          "published_at": "2020-06-01T10:25:00Z"
        },
        {
          "tag": "v1.6.2",
          "kind": "patch",
          "published_at": "2020-02-26T22:12:40Z"
        },
        {
          "tag": "v1.6.1",
          "kind": "patch",
          "published_at": "2020-01-30T16:27:00Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2019-12-03T15:04:15Z"
        },
        {
          "tag": "v1.5.1",
          "kind": "patch",
          "published_at": "2019-06-24T13:40:39Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2018-02-01T11:15:57Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2017-12-21T16:25:45Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2017-11-23T14:32:10Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2017-10-02T18:25:39Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2017-06-28T14:11:02Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2016-09-05T17:07:06Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "316eddd367bb1c6325ef09fab1c45f22a2ee36e5",
          "body": "Release v2.0.0",
          "is_bot": false,
          "headline": "Merge pull request #189 from bugsnag/release/2.0.0",
          "author_name": "Aleksander",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-09T12:30:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ebc09fc3ccf68ad4a4d863930c4993b179894f17",
          "body": null,
          "is_bot": false,
          "headline": "update branding",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-09T12:23:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79d57c28242ba24be5d4c0cd9385230ff3fcdfaf",
          "body": null,
          "is_bot": false,
          "headline": "update branding",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-09T12:17:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e537b8bd7da2d82779e1758e0650d6230745969a",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'master' into release/2.0.0",
          "author_name": "Aleksander",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-09T11:24:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2ba9f8869c99c904a120d31c339aa47a02062d26",
          "body": null,
          "is_bot": false,
          "headline": "v2.0.0",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-09T11:10:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0888769e7cf7251bfdeda0b8c2e4917de9aeede2",
          "body": "feat(symfony): Add support for Symfony 8",
          "is_bot": false,
          "headline": "Merge pull request #188 from bugsnag/symfony-8",
          "author_name": "Aleksander",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-09T11:08:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "070ce06c7b9ae84e4713c9387968cd30471ced68",
          "body": null,
          "is_bot": false,
          "headline": "removed unsupported symfony versions",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-05T11:51:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05e3e4ff4e2dcd2392ec0727611b1763430952f1",
          "body": "update fixture\n\nupdate fixture\n\nupdate fixture\n\nupdate fixture\n\nupdate fixture\n\nupdate fixture\n\nupdate fixture\n\nupdate fixture",
          "is_bot": false,
          "headline": "update fixture",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-04T14:10:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6261b542f2946c4e49f9c452e19e68f5430463b0",
          "body": null,
          "is_bot": false,
          "headline": "removed obsolete annotations",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-03T15:03:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5797144de1dbc871227497e22be30f96d0a327f5",
          "body": null,
          "is_bot": false,
          "headline": "update minimal PHP version dependency",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-03T14:52:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9748769df65d75ee8c7b3b6e573117840b279973",
          "body": null,
          "is_bot": false,
          "headline": "update tests",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-03T14:44:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e3fba7378de1b405af615fd1aa05dfb7b9adcf8",
          "body": null,
          "is_bot": false,
          "headline": "removed unused fixtures",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-03T14:10:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "621911144693ff94baf5d9692a4a96e78194e925",
          "body": null,
          "is_bot": false,
          "headline": "updated tests for symfony-8",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-03T11:11:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6f79101577e1450c2a9c4df767aa0df8587d587",
          "body": null,
          "is_bot": false,
          "headline": "added symfony-8 fixture",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-12-03T11:11:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b469c6e11fba472cd37207e9ffdbfa108f4f0815",
          "body": null,
          "is_bot": false,
          "headline": "fix PHP 8.4 compatibility",
          "author_name": "Damien ALEXANDRE",
          "author_login": "damienalexandre",
          "committed_at": "2025-12-02T11:48:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9b2eb281593a218a011fd42573b8a540515f119",
          "body": null,
          "is_bot": false,
          "headline": "feat(symfony): Add support for Symfony 8",
          "author_name": "Damien ALEXANDRE",
          "author_login": "damienalexandre",
          "committed_at": "2025-12-02T11:48:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df24965dc4ebc2fa1baa1ddce414d9da0a262511",
          "body": "Create Symfony 6.4 example app",
          "is_bot": false,
          "headline": "Merge pull request #166 from bugsnag/SUP-3062/create-symfony-62-example",
          "author_name": "Milo Clack",
          "author_login": "mclack",
          "committed_at": "2025-05-16T13:32:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "134eede8fcdca2d9250015b5de73a973d756cc5a",
          "body": "Add /composer.lock",
          "is_bot": false,
          "headline": "Update .gitignore",
          "author_name": "Milo Clack",
          "author_login": "mclack",
          "committed_at": "2025-05-16T13:22:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "29d761d93ab4a0e92cf2539d566c458e5b0d1287",
          "body": null,
          "is_bot": false,
          "headline": "Delete example/symfony64/composer.lock",
          "author_name": "Milo Clack",
          "author_login": "mclack",
          "committed_at": "2025-05-16T13:21:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d42a11f3468518728545f1c6f54be32a53762f41",
          "body": null,
          "is_bot": false,
          "headline": "PHP version dependency outlined",
          "author_name": "mclack",
          "author_login": "mclack",
          "committed_at": "2025-05-16T13:02:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "772e66bd9d71a4756bb56da194e443dc1e28b388",
          "body": "…le-to-54\n\nSymfony dependencies in composer.json updated to 5.4",
          "is_bot": false,
          "headline": "Merge pull request #167 from bugsnag/SUP-3042/upgrade-symfony50-examp…",
          "author_name": "Milo Clack",
          "author_login": "mclack",
          "committed_at": "2025-04-04T14:49:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a229f1f388fd579e36a9c53b11f0f4ef275443b",
          "body": null,
          "is_bot": false,
          "headline": "updated README",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-04-04T12:18:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47b196505c3b1d749692d9ea3f5924107f97968e",
          "body": null,
          "is_bot": false,
          "headline": "removed DS_Store",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-04-04T12:08:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a773dcfb14e096facb49a78d784b76f2eaf151d",
          "body": null,
          "is_bot": false,
          "headline": "renamed symfony62 to symfony64",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-04-04T12:05:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1507211c4f3254830714fb9165f3095919cd94e7",
          "body": null,
          "is_bot": false,
          "headline": "upgraded symfony to 6.4, added dockerfile",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-04-04T12:05:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d4b47a45970d6e4647c6ea62e57637a5ee959bd",
          "body": "* remove PHP 8.4 depreciation warning\r\n\r\n* fix test suite\r\n\r\n* removed setup-php action\r\n\r\n* updated version matrix\r\n\r\n* remove checking of the HTTP response\r\n\r\n* removed unsupported matrix combos\r\n\r\n* increased memory limit in test\r\n\r\n* Release 1.14.3 (#184)\r\n\r\nCo-authored-by: Alex Moinet <alex.moi\n[…]\n\r\nCo-authored-by: Aleksander Grzegorzewski <aleksander.grzegorzewski@smartbear.com>\r\nCo-authored-by: Aleksander <aleksander@grzegorzew.ski>\r\nCo-authored-by: Alex Moinet <alex.moinet@SBUK0FPXQGW.local>",
          "is_bot": false,
          "headline": "Merge down and release PHP 8.4 support (#185)",
          "author_name": "Alex Moinet",
          "author_login": "Cawllec",
          "committed_at": "2025-01-30T13:59:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "128a0a37f56b1ab59a6812268960bb1079852b55",
          "body": "Co-authored-by: Alex Moinet <alex.moinet@SBUK0FPXQGW.local>",
          "is_bot": false,
          "headline": "Release 1.14.3 (#184)",
          "author_name": "Alex Moinet",
          "author_login": "Cawllec",
          "committed_at": "2025-01-29T15:42:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8b047a8c059dd3cc3519a6ebe9c7d26fd6dea115",
          "body": "Restore test workflows",
          "is_bot": false,
          "headline": "Merge pull request #183 from bugsnag/fix/tests",
          "author_name": "Aleksander",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-01-23T16:11:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48958f1026c0b79cd09b96d8d2cc4e4fcb0337b7",
          "body": null,
          "is_bot": false,
          "headline": "increased memory limit in test",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-01-23T14:55:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aef372c15af144fd08c884372fa5c2fb18f8bbbe",
          "body": null,
          "is_bot": false,
          "headline": "removed unsupported matrix combos",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-01-23T14:01:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ce5255d542554d32364fcad01229cf3a562b315",
          "body": null,
          "is_bot": false,
          "headline": "remove checking of the HTTP response",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-01-23T13:37:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94568b277c631bf16f13bc9782b0bf80afaa8a0c",
          "body": null,
          "is_bot": false,
          "headline": "updated version matrix",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-01-23T13:36:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5713760901d29d446a3a4d42f7cd0350b545f76b",
          "body": null,
          "is_bot": false,
          "headline": "removed setup-php action",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-01-22T15:28:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8fb03dea3533968226df942aebf379c5ea6c6627",
          "body": null,
          "is_bot": false,
          "headline": "fix test suite",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-01-22T11:10:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6963c65852a765525ccfa0adb512e484e56e8389",
          "body": null,
          "is_bot": false,
          "headline": "remove PHP 8.4 depreciation warning",
          "author_name": "Aleksander Grzegorzewski",
          "author_login": "agrzegorzewski",
          "committed_at": "2025-01-22T11:10:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f3da228472a8aadcb31059f98ef09f8152fffa15",
          "body": null,
          "is_bot": false,
          "headline": "Release v1.14.2",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-06-06T08:48:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6aa51c5551d41e34cec52fddb41115a6cac3aa9",
          "body": null,
          "is_bot": false,
          "headline": "Add missing headings to changelog",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-06-06T08:14:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "410caf066965f6fac6e91e411acfd20d8a43c568",
          "body": null,
          "is_bot": false,
          "headline": "Bump version to v1.14.2",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-06-06T08:14:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c3fd91275631f2e1db9e564645a18b3fb49d1a5",
          "body": null,
          "is_bot": false,
          "headline": "Prevent duplicate class declaration warnings",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-06-04T10:41:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e25f53c50f976a433c25201db5f6fcdf2b4af49",
          "body": "We don't need these and the importmap block is causing Twig to throw a\nsyntax error:\n\n> Twig\\Error\\SyntaxError: The block 'importmap' has already been defined\n> line 11.",
          "is_bot": false,
          "headline": "Remove CSS & JS blocks from base template",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-03-07T11:41:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ca4466448f5e74aa4d26e37f48a950313787edb",
          "body": null,
          "is_bot": false,
          "headline": "Release v1.14.1",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-01-23T12:15:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a61ffdbfe830c0e68b5b1f7d7a8a5b13dd646ddb",
          "body": null,
          "is_bot": false,
          "headline": "Update changelog",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-01-23T12:08:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "248788eb909d7676960a6ca52ebf2db2c72ca783",
          "body": null,
          "is_bot": false,
          "headline": "Bump version",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-01-23T12:08:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3a0cb84157253794936adc03a36338b8b1dd56f",
          "body": null,
          "is_bot": false,
          "headline": "Use authoritative classmap & prod env in Symfony 7",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-01-23T12:06:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "970bb9cfbb9641a59de7477abc9b4bdbbc1fb523",
          "body": "This happens when using composer's '--classmap-authoritative' option",
          "is_bot": false,
          "headline": "Fix 'Class Configuration not found' error",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-01-23T12:06:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d10b9d25b73bff5f8a12ab371663b2ace8e1bf4b",
          "body": null,
          "is_bot": false,
          "headline": "Release v1.14.0",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-01-16T08:34:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d508771ec6526956047b5b3d75d434846fd0aa1",
          "body": null,
          "is_bot": false,
          "headline": "Bump version",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-01-15T12:07:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "02c6f3a759bb943b56daa31fad21a62a6eceefdf",
          "body": null,
          "is_bot": false,
          "headline": "Add Symfony 7 MR fixture",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-01-15T12:03:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "655b596e5db53003bab45a6efdcbc89eb4ffccc0",
          "body": null,
          "is_bot": false,
          "headline": "Add Symfony 7 skeleton app",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-01-15T12:03:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d84c58b88d1b8789dcd8bfa586d3f2dfb74d992",
          "body": null,
          "is_bot": false,
          "headline": "Add support for Symfony 7",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-01-15T11:49:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6fc1cf9a6887aa7be2ec1ee0b7e85cbaef32b89",
          "body": null,
          "is_bot": false,
          "headline": "Add PHP 8.3 to CI",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-01-15T11:49:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a16030d12b765127f2b2363121671c6587bfb39a",
          "body": null,
          "is_bot": false,
          "headline": "Fix assertion in Maze Runner tests with Twig 3.8+",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2024-01-15T11:49:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5baaf91b82eb6baddbea5717192db30dfdc08764",
          "body": "…t BugSnag Symfony integration docs",
          "is_bot": false,
          "headline": "READEM, services.yaml and DefaultController updated to reflect curren…",
          "author_name": "mclack",
          "author_login": "mclack",
          "committed_at": "2023-05-18T13:43:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2105c291bc50b0c8b4f7f7e10837076c6ca24614",
          "body": "…t BugSnag Symfony integration docs. Routes tested and exceptions reported successfully.",
          "is_bot": false,
          "headline": "README, services.yaml and DefaultController updated to reflect curren…",
          "author_name": "mclack",
          "author_login": "mclack",
          "committed_at": "2023-05-18T13:43:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dce795d551d1c2c89129eb2805773d58069e0302",
          "body": null,
          "is_bot": false,
          "headline": "Delete empty .gitignore",
          "author_name": "Milo Clack",
          "author_login": "mclack",
          "committed_at": "2023-05-18T13:03:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f07cd95c43114629167d3a4cdc5ae674313ac49a",
          "body": "…med to symfony54",
          "is_bot": false,
          "headline": "Symfony dependencies in composer.json upgraded to 5.4. symfony50 rena…",
          "author_name": "mclack",
          "author_login": "mclack",
          "committed_at": "2023-05-18T12:57:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d11963cb58b185cb18be8fc25c0750b0413d1aa4",
          "body": null,
          "is_bot": false,
          "headline": "Symfony dependencies in composer.json updated to 5.4",
          "author_name": "mclack",
          "author_login": "mclack",
          "committed_at": "2023-05-18T12:38:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1c06a221fd9e6775996038794924269245b3b90",
          "body": null,
          "is_bot": false,
          "headline": "new example app",
          "author_name": "mclack",
          "author_login": "mclack",
          "committed_at": "2023-05-18T10:32:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "69085722ebcf2a4f87d8afc8ba55f0779faae126",
          "body": null,
          "is_bot": false,
          "headline": "Submodule removed",
          "author_name": "mclack",
          "author_login": "mclack",
          "committed_at": "2023-05-18T10:27:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "efd347bdfc8bc963d8c0249c115b7409d19b89a5",
          "body": "…es tested.",
          "is_bot": false,
          "headline": "Basic Symfony 6.2 example app created with BugSnag installed and rout…",
          "author_name": "mclack",
          "author_login": "mclack",
          "committed_at": "2023-05-18T09:59:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7998ca5ff4eff0180772d88ecbf9053df082c7e9",
          "body": null,
          "is_bot": false,
          "headline": "Update lastversion version",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2023-05-09T09:40:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "35dcde855324d55000f66e72ad43290eb1120cf4",
          "body": "SUP-2616 / Bump Symfony 5 example to supported PHP version",
          "is_bot": false,
          "headline": "Merge pull request #162 from bugsnag/SUP-2616/bump-php-version-symfony50",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2023-03-07T08:42:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48c3c5a3f1feaece141cc39fc21909cd0a4b066f",
          "body": "Co-authored-by: Joe Haines <hello@joehaines.co.uk>",
          "is_bot": false,
          "headline": "Update example/symfony50/composer.json",
          "author_name": "Milo Clack",
          "author_login": "mclack",
          "committed_at": "2023-03-06T15:16:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "315947323b7822e70690c04c3bc1d834f2523a2b",
          "body": null,
          "is_bot": false,
          "headline": "PHP version bumped to ^8.1.0 in symfony50 example's composer.json",
          "author_name": "Milo Clack",
          "author_login": null,
          "committed_at": "2023-01-18T17:02:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dae78cc4391e8d0728cbded3fe7aa352e8fe5489",
          "body": "Add PHP 8.2 to CI",
          "is_bot": false,
          "headline": "Merge pull request #161 from bugsnag/php-8.2-ci",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-11-24T13:29:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d5411285b142dcca0d602891ad6c98aa66ea5ec",
          "body": null,
          "is_bot": false,
          "headline": "Add PHP 8.2 to CI",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-11-24T10:54:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be4bb456f002e9662594eb281694e4ce06e2d6ca",
          "body": null,
          "is_bot": false,
          "headline": "Release v1.13.0",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-10-24T10:25:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee37ab3fe1b65c9bc6198a1f24fc5f65581c4ba3",
          "body": null,
          "is_bot": false,
          "headline": "Bump version number",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-10-24T09:09:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8d55fc32426e9e731f55bec53e785a9594838c3",
          "body": "Add `max_breadcrumbs` config option",
          "is_bot": false,
          "headline": "Merge pull request #158 from bugsnag/max-breadcrumbs",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-10-24T08:40:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf6500bb4e3b974e7c1e516d406244cede25e5e7",
          "body": "Fix test to expect feature flags correctly",
          "is_bot": false,
          "headline": "Merge pull request #156 from bugsnag/fix-test",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-10-24T08:40:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f2da5c9291a2b6f8f1d320725d0d5b6669b9569",
          "body": null,
          "is_bot": false,
          "headline": "Add max_breadcrumbs config option",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-10-20T10:24:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87cbb7ae3fcd788baa9d0c551f4393317119ef7e",
          "body": "Unpin Symfony 5 & 6 fixture versions",
          "is_bot": false,
          "headline": "Merge pull request #157 from bugsnag/unpin-symfony-fixture-versions",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-10-20T08:26:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c964eb454f6746290a6723e8bc7dbadaba64157",
          "body": null,
          "is_bot": false,
          "headline": "Add missing feature flags default argument",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-10-19T11:35:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4587d6330a4c5d51482017e5a19867167d189b4d",
          "body": "These should have been running against the latest v5 & v6 versions, but\nwere accidentally pinned to 5.3.* & 6.0.*",
          "is_bot": false,
          "headline": "Unpin Symfony 5 & 6 fixture versions",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-10-19T11:32:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e2cbc8e97dfa55fe00712d214054d0dd791e5a23",
          "body": "The private API for getting feature flags changed in v3.29.0",
          "is_bot": false,
          "headline": "Fix test to expect feature flags correctly",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-10-19T10:05:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "08ed5030e92eb0aba97fbdb64a7a4421a5557995",
          "body": "Fix CI failing due to changes to composer",
          "is_bot": false,
          "headline": "Merge pull request #155 from bugsnag/allow-composer-plugins",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-10-03T08:28:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "241ff5ad054fb84947430cfb2aeae93bb3f0e4f2",
          "body": null,
          "is_bot": false,
          "headline": "Allow composer plugins in test fixtures",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-09-26T11:57:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0cb1831f3feafc6801d94463cdb8bcf231127520",
          "body": null,
          "is_bot": false,
          "headline": "Release v1.12.0",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-05-20T14:09:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7e1aaf3eb0e6be099f83d147d7eecec257e29ed",
          "body": null,
          "is_bot": false,
          "headline": "Bump version",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-05-20T09:01:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92ac586a37592ad52b4770320775681ae27af7a2",
          "body": "Add support for loading feature flags & experiments in configuration",
          "is_bot": false,
          "headline": "Merge pull request #153 from bugsnag/feature-flags",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-05-19T08:23:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d07f688375f11e0f1ec78343405979707ff6478d",
          "body": null,
          "is_bot": false,
          "headline": "Update changelog",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-05-18T16:52:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bbd6756b87f4335ca42b65a4e858bdcec2512912",
          "body": null,
          "is_bot": false,
          "headline": "Add Maze Runner tests for feature flags",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-05-18T16:52:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "476de8ec875363e0cb01bade2d96e7d0f023ce16",
          "body": null,
          "is_bot": false,
          "headline": "Allow dev versions in fixture apps",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-05-18T16:52:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f5d48050856b6abf7e777f2cd62e17c4be40e73",
          "body": null,
          "is_bot": false,
          "headline": "Support loading feature flags from config",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-05-18T16:52:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33e09aed82028c4c25ac06f99306e56edc8014ab",
          "body": null,
          "is_bot": false,
          "headline": "Update bugsnag-php version",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-05-18T14:17:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "113a067aae85caa2894e5210f01370b20911a21c",
          "body": null,
          "is_bot": false,
          "headline": "Ensure Entity directory exists",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-02-23T09:28:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28e2a1a4e50c5a1966e482dbd0cfc92953b0ac94",
          "body": null,
          "is_bot": false,
          "headline": "Release v1.11.2",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-02-02T11:48:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4ee55e50eb17db7ea79187fdc9cbeddec9a69a19",
          "body": null,
          "is_bot": false,
          "headline": "Add version & date to changelog",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-02-02T10:31:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f9df48d16efb223275d1d164db7271cf6167c47",
          "body": null,
          "is_bot": false,
          "headline": "Bump version",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-02-02T10:30:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45b4704058cf16ba1b1310f5d6edd05525c4c414",
          "body": "Fix PHP 8.1 deprecation",
          "is_bot": false,
          "headline": "Merge pull request #149 from bugsnag/fix/php8_1",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-02-01T15:54:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "402899d4d72ae304cf78c5edef8efe30b6a263bc",
          "body": null,
          "is_bot": false,
          "headline": "Simplify nested conditionals",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-01-31T17:47:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91c6e64c8b98a6ae235655999805f109f3ca48e5",
          "body": null,
          "is_bot": false,
          "headline": "Add changelog",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-01-31T17:47:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da39657dbde51d1b588439d39bfa21fe2f01a8dd",
          "body": null,
          "is_bot": false,
          "headline": "Add test coverage for SymfonyRequest class",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-01-31T17:32:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "39f5b92d22a162a5b9d712d510853f0487e8f4fe",
          "body": null,
          "is_bot": false,
          "headline": "fix: checks haystack is null before using stripos()",
          "author_name": "Romain Simon",
          "author_login": "niamzor",
          "committed_at": "2022-01-31T17:32:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "00272f42bdca0cebac1ad01ef277d473ca987296",
          "body": "Fixed invalid phpDoc",
          "is_bot": false,
          "headline": "Merge pull request #140 from iambrosi/fix-phpdoc",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-01-31T14:52:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fad8c41ab717d4aa035fd6dbcb793528ea8fc5f0",
          "body": null,
          "is_bot": false,
          "headline": "Release v1.11.1",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-01-19T14:58:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f43ad1606d5dbe292141fa7e730f06b08ce221e",
          "body": null,
          "is_bot": false,
          "headline": "Add version to changelog",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-01-19T14:39:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d3d8808ce1aa6fce5a12ec909f492909a1c20ad",
          "body": null,
          "is_bot": false,
          "headline": "Bump version",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-01-19T14:39:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b083b5009b139623e7147ba77e75fa24620cbc0",
          "body": "Implement user detection tests on Symfony 2 & 5",
          "is_bot": false,
          "headline": "Merge pull request #146 from bugsnag/user-detection-tests",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-01-17T14:19:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1c03198c1a2f122e87312d9e45e44fd5240d896",
          "body": "Call `getUserIdentifier` instead of `getUsername` on Symfony 6",
          "is_bot": false,
          "headline": "Merge pull request #145 from bugsnag/userinterface-changes",
          "author_name": "Joe Haines",
          "author_login": "imjoehaines",
          "committed_at": "2022-01-17T14:18:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 24,
      "commits_last_year": 16,
      "latest_release_at": "2025-12-09T12:33:37Z",
      "latest_release_tag": "v2.0.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 2,
      "days_since_latest_release": 231,
      "mean_days_between_releases": 161.9
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 62,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "bugsnag/bugsnag-symfony",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "logging",
            "symfony",
            "errors",
            "exceptions",
            "bugsnag",
            "tracking"
          ],
          "ecosystem": "packagist",
          "matches_repo": true,
          "registry_url": "https://packagist.org/packages/bugsnag/bugsnag-symfony",
          "is_deprecated": false,
          "latest_version": "v2.0.0",
          "repository_url": "https://github.com/bugsnag/bugsnag-symfony",
          "versions_count": 24,
          "total_downloads": 3141290,
          "dependents_count": 4,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 41653,
          "first_published_at": null,
          "latest_published_at": "2025-12-09T12:30:40Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 231
        }
      ]
    },
    "popularity": {
      "forks": 19,
      "stars": 44,
      "watchers": 25,
      "fork_history": {
        "days": [
          {
            "date": "2016-10-24",
            "count": 1
          },
          {
            "date": "2017-03-25",
            "count": 1
          },
          {
            "date": "2017-04-03",
            "count": 1
          },
          {
            "date": "2017-08-30",
            "count": 1
          },
          {
            "date": "2018-05-02",
            "count": 1
          },
          {
            "date": "2018-12-18",
            "count": 1
          },
          {
            "date": "2018-12-30",
            "count": 1
          },
          {
            "date": "2019-01-05",
            "count": 1
          },
          {
            "date": "2019-03-02",
            "count": 1
          },
          {
            "date": "2019-06-13",
            "count": 1
          },
          {
            "date": "2019-10-07",
            "count": 1
          },
          {
            "date": "2020-01-20",
            "count": 1
          },
          {
            "date": "2020-03-04",
            "count": 1
          },
          {
            "date": "2021-05-23",
            "count": 1
          },
          {
            "date": "2022-01-03",
            "count": 1
          },
          {
            "date": "2023-12-22",
            "count": 1
          },
          {
            "date": "2024-06-03",
            "count": 1
          },
          {
            "date": "2025-01-20",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 18,
        "total_forks": 19
      },
      "star_history": null,
      "open_issues_and_prs": 6
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "example"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 91938,
      "source_files_sampled": 174,
      "oversized_source_files": 1,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "Gemfile",
        "composer.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "symfony/monolog-bridge",
            "direct": false,
            "version": "8.0.0",
            "severity": "critical",
            "ecosystem": "packagist",
            "cvss_score": 9.8,
            "advisory_ids": [
              "GHSA-m7v2-7gxm-vc2v"
            ],
            "fixed_version": "8.0.12",
            "advisory_count": 1,
            "oldest_advisory_days": 62
          },
          {
            "name": "twig/twig",
            "direct": false,
            "version": "3.22.1",
            "severity": "critical",
            "ecosystem": "packagist",
            "cvss_score": 9.8,
            "advisory_ids": [
              "GHSA-24x9-r6q4-q93w",
              "GHSA-2g2g-8p8h-fgwm",
              "GHSA-2q52-x2ff-qgfr",
              "GHSA-45vw-wh46-2vx8",
              "GHSA-4j38-f5cw-54h7",
              "GHSA-529h-vh3j-85hq",
              "GHSA-5v5v-ww74-355v",
              "GHSA-7fxw-r6jv-74c8",
              "GHSA-7p85-w9px-jpjp",
              "GHSA-8x9c-rmqh-456c"
            ],
            "fixed_version": "3.27.0",
            "advisory_count": 14,
            "oldest_advisory_days": 68
          },
          {
            "name": "symfony/http-kernel",
            "direct": true,
            "version": "8.0.0",
            "severity": "high",
            "ecosystem": "packagist",
            "cvss_score": 8.1,
            "advisory_ids": [
              "GHSA-6439-2f28-8p8q"
            ],
            "fixed_version": "8.0.12",
            "advisory_count": 1,
            "oldest_advisory_days": 62
          },
          {
            "name": "phpunit/phpunit",
            "direct": false,
            "version": "12.4.5",
            "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": 182
          },
          {
            "name": "symfony/cache",
            "direct": false,
            "version": "8.0.0",
            "severity": "high",
            "ecosystem": "packagist",
            "cvss_score": 7.1,
            "advisory_ids": [
              "GHSA-6qh9-h6wf-jgqc"
            ],
            "fixed_version": "8.0.12",
            "advisory_count": 1,
            "oldest_advisory_days": 62
          },
          {
            "name": "symfony/mailer",
            "direct": false,
            "version": "8.0.0",
            "severity": "high",
            "ecosystem": "packagist",
            "cvss_score": 8.1,
            "advisory_ids": [
              "GHSA-xx3c-qf5g-hc39"
            ],
            "fixed_version": "8.0.12",
            "advisory_count": 1,
            "oldest_advisory_days": 62
          },
          {
            "name": "symfony/runtime",
            "direct": false,
            "version": "8.0.0",
            "severity": "high",
            "ecosystem": "packagist",
            "cvss_score": 7.3,
            "advisory_ids": [
              "GHSA-fqc7-9xjw-jrh3"
            ],
            "fixed_version": "8.0.12",
            "advisory_count": 1,
            "oldest_advisory_days": 49
          },
          {
            "name": "symfony/security-http",
            "direct": false,
            "version": "8.0.0",
            "severity": "high",
            "ecosystem": "packagist",
            "cvss_score": 8.1,
            "advisory_ids": [
              "GHSA-29fc-p6c4-24cg",
              "GHSA-6439-2f28-8p8q",
              "GHSA-6h46-9jf5-q59x",
              "GHSA-j8gj-9rm5-4xhx",
              "GHSA-ph86-p8f6-f9r2"
            ],
            "fixed_version": "8.0.13",
            "advisory_count": 5,
            "oldest_advisory_days": 62
          },
          {
            "name": "guzzlehttp/guzzle",
            "direct": false,
            "version": "7.10.0",
            "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": 39
          },
          {
            "name": "guzzlehttp/psr7",
            "direct": false,
            "version": "2.8.0",
            "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": 47
          },
          {
            "name": "symfony/dom-crawler",
            "direct": false,
            "version": "8.0.0",
            "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": 62
          },
          {
            "name": "symfony/mime",
            "direct": false,
            "version": "8.0.0",
            "severity": "moderate",
            "ecosystem": "packagist",
            "cvss_score": 6.5,
            "advisory_ids": [
              "GHSA-qpmx-3rfj-7rhv",
              "GHSA-vqc8-7275-q272"
            ],
            "fixed_version": "8.0.12",
            "advisory_count": 2,
            "oldest_advisory_days": 62
          },
          {
            "name": "symfony/polyfill-intl-idn",
            "direct": false,
            "version": "1.33.0",
            "severity": "moderate",
            "ecosystem": "packagist",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-2xf4-cg6j-vhgq"
            ],
            "fixed_version": "1.38.1",
            "advisory_count": 1,
            "oldest_advisory_days": 61
          },
          {
            "name": "symfony/process",
            "direct": false,
            "version": "8.0.0",
            "severity": "moderate",
            "ecosystem": "packagist",
            "cvss_score": 6.3,
            "advisory_ids": [
              "GHSA-r39x-jcww-82v6"
            ],
            "fixed_version": "8.0.5",
            "advisory_count": 1,
            "oldest_advisory_days": 181
          },
          {
            "name": "symfony/routing",
            "direct": false,
            "version": "8.0.0",
            "severity": "moderate",
            "ecosystem": "packagist",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-72xp-p242-47p9",
              "GHSA-h5x3-xfc9-m39h"
            ],
            "fixed_version": "8.0.13",
            "advisory_count": 2,
            "oldest_advisory_days": 62
          },
          {
            "name": "symfony/yaml",
            "direct": false,
            "version": "8.0.0",
            "severity": "moderate",
            "ecosystem": "packagist",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-4qpc-3hr4-r2p4",
              "GHSA-9frc-8383-795m",
              "GHSA-c2p3-7m5p-cv8x"
            ],
            "fixed_version": "8.0.12",
            "advisory_count": 3,
            "oldest_advisory_days": 62
          },
          {
            "name": "symfony/http-foundation",
            "direct": true,
            "version": "8.0.0",
            "severity": "low",
            "ecosystem": "packagist",
            "cvss_score": 0,
            "advisory_ids": [
              "GHSA-38cx-cq6f-5755"
            ],
            "fixed_version": "8.0.13",
            "advisory_count": 1,
            "oldest_advisory_days": 43
          },
          {
            "name": "symfony/web-profiler-bundle",
            "direct": false,
            "version": "8.0.0",
            "severity": "low",
            "ecosystem": "packagist",
            "cvss_score": 0,
            "advisory_ids": [
              "GHSA-hmr5-2xcr-v8pp"
            ],
            "fixed_version": "8.0.12",
            "advisory_count": 1,
            "oldest_advisory_days": 62
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "low": 2,
          "high": 6,
          "critical": 2,
          "moderate": 8
        },
        "advisory_count": 48,
        "affected_count": 18,
        "assessed_count": 136,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 82,
        "direct_affected_count": 2
      },
      "ecosystems": [
        "packagist",
        "rubygems"
      ],
      "dependencies": [
        {
          "name": "bugsnag-maze-runner",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "webrick",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "bugsnag/bugsnag",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^3.29.0"
        },
        {
          "name": "symfony/config",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5|^6|^7|^8"
        },
        {
          "name": "symfony/console",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5|^6|^7|^8"
        },
        {
          "name": "symfony/dependency-injection",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5|^6|^7|^8"
        },
        {
          "name": "symfony/http-foundation",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5|^6|^7|^8"
        },
        {
          "name": "symfony/http-kernel",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5|^6|^7|^8"
        },
        {
          "name": "symfony/security-core",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5|^6|^7|^8"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "bugsnag/bugsnag",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "bugsnag/bugsnag",
            "direct": true,
            "version": "3.30.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/config",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/config",
            "direct": true,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/console",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/console",
            "direct": true,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/dependency-injection",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/dependency-injection",
            "direct": true,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/http-foundation",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/http-foundation",
            "direct": true,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/http-kernel",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/http-kernel",
            "direct": true,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/security-core",
            "direct": true,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/security-core",
            "direct": true,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "bugsnag-maze-runner",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "webrick",
            "direct": true,
            "version": null,
            "ecosystem": "rubygems"
          },
          {
            "name": "@hotwired/stimulus",
            "direct": false,
            "version": "^3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@symfony/stimulus-bridge",
            "direct": false,
            "version": "^3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@symfony/webpack-encore",
            "direct": false,
            "version": "^1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "core-js",
            "direct": false,
            "version": "^3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "regenerator-runtime",
            "direct": false,
            "version": "^0.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "webpack-notifier",
            "direct": false,
            "version": "^1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "bugsnag/bugsnag-symfony",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "bugsnag/bugsnag-symfony",
            "direct": false,
            "version": "99.99.99",
            "ecosystem": "packagist"
          },
          {
            "name": "composer/ca-bundle",
            "direct": false,
            "version": "1.5.9",
            "ecosystem": "packagist"
          },
          {
            "name": "composer/package-versions-deprecated",
            "direct": false,
            "version": "1.11.99.2",
            "ecosystem": "packagist"
          },
          {
            "name": "composer/semver",
            "direct": false,
            "version": "3.4.4",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/annotations",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/collections",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/dbal",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/deprecations",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/doctrine-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/doctrine-bundle",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/doctrine-cache-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/doctrine-migrations-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/doctrine-migrations-bundle",
            "direct": false,
            "version": "3.7.0",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/event-manager",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/inflector",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/instantiator",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/lexer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/migrations",
            "direct": false,
            "version": "3.9.5",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/orm",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/orm",
            "direct": false,
            "version": "3.5.8",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/persistence",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/sql-formatter",
            "direct": false,
            "version": "1.5.3",
            "ecosystem": "packagist"
          },
          {
            "name": "egulias/email-validator",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "packagist"
          },
          {
            "name": "ext-ctype",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "ext-iconv",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "graham-campbell/testbench-core",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "guzzlehttp/guzzle",
            "direct": false,
            "version": "7.10.0",
            "ecosystem": "packagist"
          },
          {
            "name": "guzzlehttp/promises",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "packagist"
          },
          {
            "name": "guzzlehttp/psr7",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "packagist"
          },
          {
            "name": "incenteev/composer-parameter-handler",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "mockery/mockery",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "monolog/monolog",
            "direct": false,
            "version": "3.9.0",
            "ecosystem": "packagist"
          },
          {
            "name": "myclabs/deep-copy",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "packagist"
          },
          {
            "name": "nikic/php-parser",
            "direct": false,
            "version": "5.6.2",
            "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": "php",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "phpdocumentor/reflection-common",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpdocumentor/reflection-docblock",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "phpdocumentor/reflection-docblock",
            "direct": false,
            "version": "5.6.5",
            "ecosystem": "packagist"
          },
          {
            "name": "phpdocumentor/type-resolver",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpstan/phpdoc-parser",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "phpstan/phpdoc-parser",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-code-coverage",
            "direct": false,
            "version": "12.5.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-file-iterator",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-invoker",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-text-template",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-timer",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/phpunit",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/phpunit",
            "direct": false,
            "version": "12.4.5",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/cache",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/clock",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/container",
            "direct": false,
            "version": "2.0.2",
            "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": "2.0",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/link",
            "direct": false,
            "version": "2.0.1",
            "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": "sebastian/cli-parser",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/comparator",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/complexity",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/diff",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/environment",
            "direct": false,
            "version": "8.0.3",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/exporter",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/global-state",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/lines-of-code",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/object-enumerator",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/object-reflector",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/recursion-context",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/type",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/version",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sensio/distribution-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "sensio/framework-extra-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "sensio/generator-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "staabm/side-effects-detector",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/asset",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/asset",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/asset-mapper",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/asset-mapper",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/assetic-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/browser-kit",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/browser-kit",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/cache",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/cache-contracts",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/clock",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/css-selector",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/css-selector",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/debug-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/debug-bundle",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/deprecation-contracts",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/doctrine-bridge",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/doctrine-messenger",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/doctrine-messenger",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/dom-crawler",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/dotenv",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/dotenv",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/error-handler",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/event-dispatcher",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/event-dispatcher-contracts",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/expression-language",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/expression-language",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/filesystem",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/finder",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/flex",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/flex",
            "direct": false,
            "version": "2.10.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/form",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/form",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/framework-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/framework-bundle",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/http-client",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/http-client",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/http-client-contracts",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/intl",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/intl",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/lts",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/mailer",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/mailer",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/maker-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/maker-bundle",
            "direct": false,
            "version": "1.65.1",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/messenger",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/messenger",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/mime",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/mime",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/monolog-bridge",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/monolog-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/monolog-bundle",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/notifier",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/notifier",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/options-resolver",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/password-hasher",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/phpunit-bridge",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-apcu",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-intl-grapheme",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-intl-icu",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-intl-idn",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-intl-normalizer",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-mbstring",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-php85",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/process",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/process",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/property-access",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/property-access",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/property-info",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/property-info",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/proxy-manager-bridge",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/routing",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/routing",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/runtime",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/runtime",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/security-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/security-bundle",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/security-csrf",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/security-http",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/serializer",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/serializer",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/service-contracts",
            "direct": false,
            "version": "3.6.1",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/stimulus-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/stimulus-bundle",
            "direct": false,
            "version": "2.31.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/stopwatch",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/stopwatch",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/string",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/string",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/swiftmailer-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/symfony",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/translation",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/translation",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/translation-contracts",
            "direct": false,
            "version": "3.6.1",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/twig-bridge",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/twig-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/twig-bundle",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/type-info",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/ux-turbo",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/ux-turbo",
            "direct": false,
            "version": "2.31.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/validator",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/validator",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/var-dumper",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/var-dumper",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/var-exporter",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/web-link",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/web-link",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/web-profiler-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/web-profiler-bundle",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/web-server-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/webapp-meta",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/webpack-encore-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/yaml",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/yaml",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "theseer/tokenizer",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "packagist"
          },
          {
            "name": "twig/extra-bundle",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "twig/extra-bundle",
            "direct": false,
            "version": "3.22.1",
            "ecosystem": "packagist"
          },
          {
            "name": "twig/twig",
            "direct": false,
            "version": null,
            "ecosystem": "packagist"
          },
          {
            "name": "twig/twig",
            "direct": false,
            "version": "3.22.1",
            "ecosystem": "packagist"
          },
          {
            "name": "webmozart/assert",
            "direct": false,
            "version": "1.12.1",
            "ecosystem": "packagist"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 218,
        "direct_count": 16,
        "indirect_count": 202
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 2,
        "merged_prs": 141,
        "open_issues": 4,
        "closed_ratio": 0.852,
        "closed_issues": 23,
        "closed_unmerged_prs": 25
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "imjoehaines",
          "commits": 213,
          "avatar_url": "https://avatars.githubusercontent.com/u/282732?v=4"
        },
        {
          "type": "User",
          "login": "GrahamCampbell",
          "commits": 59,
          "avatar_url": "https://avatars.githubusercontent.com/u/2829600?v=4"
        },
        {
          "type": "User",
          "login": "agrzegorzewski",
          "commits": 26,
          "avatar_url": "https://avatars.githubusercontent.com/u/16973183?v=4"
        },
        {
          "type": "User",
          "login": "Cawllec",
          "commits": 17,
          "avatar_url": "https://avatars.githubusercontent.com/u/7754028?v=4"
        },
        {
          "type": "User",
          "login": "mclack",
          "commits": 14,
          "avatar_url": "https://avatars.githubusercontent.com/u/89254998?v=4"
        },
        {
          "type": "User",
          "login": "tomlongridge",
          "commits": 13,
          "avatar_url": "https://avatars.githubusercontent.com/u/6351188?v=4"
        },
        {
          "type": "User",
          "login": "kattrali",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/333454?v=4"
        },
        {
          "type": "User",
          "login": "damienalexandre",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/225704?v=4"
        },
        {
          "type": "User",
          "login": "Nispeon",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/37938250?v=4"
        },
        {
          "type": "User",
          "login": "luke-belton",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/58511679?v=4"
        }
      ],
      "contributors_sampled": 15,
      "top_contributor_share": 0.597
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "license-audit.yml",
        "maze-runner.yml",
        "test-package.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "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": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 2,
            "reason": "2 out of 7 merged PRs checked by a CI test -- score normalized to 2",
            "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": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 22 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": null,
            "reason": "no workflows found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 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": null,
            "reason": "no dependencies found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 5,
            "reason": "SAST tool is not run on all commits -- score normalized to 5",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": null,
            "reason": "No tokens found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "316eddd367bb1c6325ef09fab1c45f22a2ee36e5",
        "ran_at": "2026-07-29T06:06:24Z",
        "aggregate_score": 4.9,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-10T17:23:02Z",
      "oldest_open_prs": [
        {
          "number": 36,
          "created_at": "2017-03-25T12:29:17Z",
          "last_comment_at": "2017-10-10T12:08:09Z",
          "last_comment_author": "Baldinof"
        },
        {
          "number": 195,
          "created_at": "2026-07-29T06:04:21Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-09T09:07:47Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 66,
          "created_at": "2018-02-02T03:32:13Z",
          "last_comment_at": "2018-02-02T11:57:26Z",
          "last_comment_author": "Cawllec"
        },
        {
          "number": 151,
          "created_at": "2022-03-21T11:27:46Z",
          "last_comment_at": "2022-03-25T14:55:18Z",
          "last_comment_author": "xljones"
        },
        {
          "number": 160,
          "created_at": "2022-11-10T18:26:57Z",
          "last_comment_at": "2022-11-30T14:34:21Z",
          "last_comment_author": "johnkiely1"
        },
        {
          "number": 177,
          "created_at": "2024-04-08T09:21:54Z",
          "last_comment_at": "2024-04-17T09:29:19Z",
          "last_comment_author": "mclack"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/bugsnag/bugsnag-symfony",
    "host": "github.com",
    "name": "bugsnag-symfony",
    "owner": "bugsnag"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": "The weighted overall 60 is calibrated to 65 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 60,
            "calibrated": 65,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 65,
      "inputs": {
        "security": 53,
        "vitality": 54,
        "community": 61,
        "governance": 70,
        "calibration": "2026-08-02",
        "engineering": 61,
        "ai_readiness": 41,
        "weighted_overall_raw": 60
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 54,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "weak",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 48,
            "inputs": {
              "commits_last_year": 16,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 2
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "2/52 weeks with commits",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "16 commits in the last year",
                "points": 11.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 16
                    }
                  }
                ],
                "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": 62,
            "inputs": {
              "releases_count": 24,
              "latest_release_tag": "v2.0.0",
              "releases_from_tags": false,
              "days_since_latest_release": 231,
              "mean_days_between_releases": 161.9
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "24 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 24
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 231 days ago",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 231
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~161.9 days",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 161.9
                    }
                  }
                ],
                "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": "exceptional",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "dormant",
              "guards": [
                "recent_release"
              ],
              "signals": [
                "scorecard_unmaintained"
              ],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": 1,
              "unanswered_open_issues": 2,
              "days_since_last_merged_pr": 26,
              "days_since_last_human_commit": 238,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "no human commit for 238 days, with nothing left unanswered; held at dormant by a release within the year",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_quiet",
                    "params": {
                      "days": 238
                    }
                  },
                  {
                    "code": "abandonment_guarded",
                    "params": {
                      "guards": "a release within the year"
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 61,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "weak",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 45,
            "inputs": {
              "forks": 19,
              "stars": 44,
              "watchers": 25,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "44 stars",
                "points": 26.5,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 44
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "19 forks",
                "points": 10.5,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "25 watchers",
                "points": 7.7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 25
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": null,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "readme_badge_services": [],
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "good",
            "name": "Ecosystem adoption (downloads)",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "packages": [
                "bugsnag/bugsnag-symfony"
              ],
              "dependents": 4,
              "ecosystems": "packagist",
              "total_downloads": 3141290,
              "monthly_downloads": 41653
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "41,653 downloads/month across packagist",
                "points": 61.6,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 41653,
                      "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": "good",
        "name": "Sustainability & Governance",
        "value": 70,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "weak",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 42,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 15,
              "top_contributor_share": 0.597
            },
            "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 60% of commits",
                "points": 9.1,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 60
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "15 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 22 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 88,
            "inputs": {
              "merged_prs": 141,
              "open_issues": 4,
              "closed_issues": 23,
              "prs_merged_7d": null,
              "prs_decided_7d": null,
              "prs_merged_30d": null,
              "prs_decided_30d": null,
              "issue_closed_ratio": 0.852,
              "closed_unmerged_prs": 25,
              "first_time_authors_30d": null,
              "first_time_prs_merged_30d": null,
              "first_time_prs_decided_30d": null
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "85% of issues closed",
                "points": 35.8,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 85
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "141/166 decided PRs merged",
                "points": 25.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 141,
                      "decided": 166
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "followers": 144,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "bugsnag",
              "public_repos": 140,
              "account_age_days": 5428
            },
            "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": "144 followers of bugsnag",
                "points": 15.5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 144,
                      "login": "bugsnag"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "140 public repos, account ~14 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 140
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 14
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 91,
            "inputs": {
              "packages": [
                "bugsnag/bugsnag-symfony"
              ],
              "ecosystems": "packagist",
              "any_deprecated": false,
              "min_days_since_publish": 231
            },
            "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 231 days ago",
                "points": 26,
                "status": "partial",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 231
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "24 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 24
                    }
                  }
                ],
                "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": 61,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 58,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "2 out of 7 merged PRs checked by a CI test -- score normalized to 2",
                "points": 4,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [
                "bugsnag",
                "symfony",
                "php",
                "error-monitoring",
                "error-reporting",
                "error-notification",
                "exception-reporting",
                "crash-reporting",
                "crash-reporting-tool",
                "exception-handling",
                "errors",
                "bugs",
                "notifier",
                "platforms",
                "debug",
                "debugging-tool"
              ],
              "has_wiki": false,
              "homepage": "https://docs.bugsnag.com/platforms/php/symfony",
              "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://docs.bugsnag.com/platforms/php/symfony",
                "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": "16 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 16
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 53,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "weak",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Dangerous-Workflow, Packaging, Pinned-Dependencies, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "dangerous_workflow",
                    "packaging",
                    "pinned_dependencies",
                    "signed_releases",
                    "token_permissions"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 49,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 12,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 6,
              "scorecard_aggregate": 4.9
            },
            "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": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "2 out of 7 merged PRs checked by a CI test -- score normalized to 2",
                "points": 0.5,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 22 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no workflows found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "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": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 5",
                "points": 2.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "No tokens found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "good",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 136 resolved dependencies against OSV; 82 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": 136
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 82
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 70,
            "inputs": {
              "source": "osv",
              "advisories": 48,
              "affected_packages": 18,
              "assessed_packages": 136,
              "unassessed_packages": 82,
              "affected_by_severity": "critical 2, high 6, moderate 8, low 2",
              "direct_affected_packages": 2
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "2 affected: symfony/http-kernel 8.0.0 (high 8.1), symfony/http-foundation 8.0.0 (low)",
                "points": 12.3,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 2,
                      "packages": "symfony/http-kernel 8.0.0 (high 8.1), symfony/http-foundation 8.0.0 (low)"
                    }
                  }
                ],
                "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": "no advisory has been public longer than 90 days",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "advisories_none_stale",
                    "params": {
                      "days": 90
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "exceptional",
            "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": 136,
              "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": "exceptional",
            "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"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 14
            },
            "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": "weak",
        "name": "AI Readiness",
        "value": 41,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "critical",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 13,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.24,
              "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": "24 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 12.8,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 24,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_pinned_dependencies"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 56,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "composer.lock"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, 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": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "primary_language": "PHP",
              "largest_source_bytes": 91938,
              "source_files_sampled": 174,
              "oversized_source_files": 1
            },
            "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": "1/174 source files over 60KB",
                "points": 54.7,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 174,
                      "oversized": 1
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "weak",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "example"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "example",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "example"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "top": [
        "library",
        "application"
      ],
      "labels": [
        "library",
        "cli"
      ],
      "scores": {
        "cli": 4,
        "library": 8
      },
      "primary": "library",
      "evidence": [
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:packagist",
          "weight": 6
        },
        {
          "tier": "dependencies",
          "label": "cli",
          "source": "dep:symfony/console",
          "weight": 4
        },
        {
          "tier": "description",
          "label": "library",
          "source": "description:library",
          "weight": 2
        }
      ],
      "artifacts": [],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": true,
      "consumed_by_code": true
    },
    "metrics_version": "2.5.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-29T06:06:44.896265Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/b/bugsnag/bugsnag-symfony.svg",
  "full_name": "bugsnag/bugsnag-symfony",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v2.5.0, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsPackagist.