Skip to content
CAI
Software that uses CAICheck a score

badges/shields

53.2

Adequate · 25 September 2026

72.3k

lines of production code

JavaScript

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a self-hostable badge generation service that aggregates status, version, and metric data from hundreds of external platforms—including package registries, CI/CD providers, and social networks—to render standardized SVG badges. It provides a comprehensive API for fetching live data, supported by a modular service architecture that standardizes authentication, error handling, and rendering logic across diverse upstream sources. The platform also includes a frontend interface for badge creation and documentation, alongside robust observability and testing infrastructure to ensure reliability.

How it got here

2014–2018 — Service expansion and architectural modernization

76 changes.

This period focused on significantly expanding the platform's service coverage by adding badges for numerous new package managers, CI/CD tools, and community platforms. Simultaneously, the codebase underwent a major architectural overhaul, migrating services to a unified base class structure, standardizing API interactions, and retiring deprecated or broken integrations.

2019–2020 — Service expansion and core modernization

58 changes.

This period focused on significantly expanding the service catalog with new badges for platforms like Spiget, Ansible, and Keybase, while simultaneously modernizing the core infrastructure through ESM migration and the introduction of standardized base service classes. Operational improvements included adding Prometheus and InfluxDB metrics support, migrating token pooling to PostgreSQL, and enhancing test validation strictness. The work also involved refactoring numerous existing services to use these new architectural patterns and retiring outdated integrations.

2021–2024 — Service expansion and frontend modernization

49 changes.

This period focused on significantly expanding the badge service catalog by integrating numerous new providers for software development, gaming, and social platforms, while simultaneously retiring outdated services. The frontend was modernized through a migration to Docusaurus 3, accompanied by the addition of community, donation, and privacy pages, as well as enhanced documentation tools and UI improvements.

2025–2026 — diversification of badge services

12 changes.

This period focused on expanding the platform's coverage by adding new badge services for diverse ecosystems, including Terraform, Rust, Bluesky, GNOME, and Voxel Shop. Concurrently, legacy integrations such as YouTube and Visual Studio Marketplace were retired due to API limitations or deprecation, while internal dependencies were updated to maintain Node.js compatibility.

Features

Add Ansible Galaxy collection and role badges

New service endpoints are now available to display download counts and version information for Ansible Galaxy collections and roles. Users can now generate badges for collection downloads via /ansible/collection/d/{namespace}/{name}, collection versions via /ansible/collection/v/{namespace}/{name}, and role downloads via /ansible/role/d/{namespace}/{name}.

services/ansible · high confidence

Add Arch Linux package version badge support

Users can now display version badges for Arch Linux packages via the new \/archlinux/v/{repository}/{architecture}/{packageName}\ endpoint. The service fetches package metadata from the Arch Linux JSON API and renders the version, with tests verifying correct handling for valid packages and various 'not found' scenarios.

services/archlinux · high confidence

Add Bluesky followers and posts badges

New service endpoints have been added to display Bluesky social metrics. Users can now generate badges for the number of followers via the \/bluesky/followers/{actor}\ route and for the number of posts via the \/bluesky/posts/{actor}\ route, where \{actor}\ is the Bluesky handle. These badges pull data from the public Bluesky API and handle errors such as user-not-found scenarios.

services/bluesky · high confidence

Add Bugzilla bug status service

A new service has been added to display the status of Bugzilla issues. Users can now generate badges for specific bug numbers, which default to the Mozilla Bugzilla instance but can be configured to target other Bugzilla deployments via a custom base URL query parameter. The badge displays the bug's status (e.g., assigned, fixed, won't fix) with appropriate color coding.

services/bugzilla · high confidence

Add Buildkite build status service

Users can now display build status badges for Buildkite pipelines. This change introduces a new service that fetches status data from the Buildkite API and renders a badge indicating the current build state (including 'unknown' as a valid status), supporting both pipeline-level and specific branch-level queries.

services/buildkite · high confidence

Add CPAN license and version badges

New badges are now available for CPAN packages: the license badge (cpan/l/{packageName}) displays the package's license, and the version badge (cpan/v/{packageName}) displays the package version. The implementation handles cases where the version is returned as a number rather than a string, ensuring consistent formatting.

services/cpan, services/cran · high confidence

Add CTAN service for license and version badges

Introduces a new service that fetches data from the CTAN API (version 2.0) to display license and version badges for TeX packages. The \CtanLicense\ badge shows the package's license, while \CtanVersion\ displays the version number, falling back to the release date if the version is empty, and handles cases where both are missing.

services/ctan · high confidence

Add Chef cookbook version badge service

A new service has been added to display the latest version of Chef cookbooks. Users can now generate a badge using the path \/cookbook/v/{cookbook}\ (e.g., \/cookbook/v/chef-sugar.json\), which fetches version data from the Chef Supermarket API and renders a version badge.

services/cookbook · high confidence

Add ClassicPress platform support badges

New badges are now available for ClassicPress plugins and themes, displaying the required ClassicPress version and the required PHP version. These are accessible via the \/classicpress/{plugin\|theme}/cp-version/{slug}\ and \/classicpress/{plugin\|theme}/required-php/{slug}\ endpoints, pulling data from the ClassicPress directory API.

services/classicpress · high confidence

Add ClearlyDefined score badge service

Introduces a new badge service that displays the ClearlyDefined score for a software package. Users can now generate a badge by providing the package type, provider, namespace, name, and revision (e.g., \/clearlydefined/score/npm/npmjs/-/jquery/3.4.1\). The service fetches the score from the ClearlyDefined API, handles empty or invalid responses gracefully, and renders the score as a value out of 100 with color coding.

services/clearlydefined · high confidence

Add CodeFactor grade badge service

Users can now display a CodeFactor code quality grade badge for their repositories. The new \CodeFactorGrade\ service supports both GitHub and Bitbucket (via the \vcsType\ parameter) and allows specifying an optional branch. The badge displays the grade (A+ through F) with a color-coded background (brightgreen for A+, red for F) and includes proper OpenAPI documentation and test coverage for the new endpoint.

services/codefactor · high confidence

Add CodeRabbit Pull Request Reviews badge

Users can now display a badge showing the number of pull requests reviewed by CodeRabbit for a given repository. This new service, accessible via the \coderabbit/prs/{provider}/{org}/{repo}\ route, fetches review statistics from the CodeRabbit API and renders the count using the standard metric formatter.

services/coderabbit · high confidence

Add Conan Center version badge service

Users can now display the latest version of C++ packages hosted on Conan Center by using the new \/conan/v/{packageName}\ badge route. This service fetches the \config.yml\ file from the \conan-io/conan-center-index\ repository, parses the available versions, and renders a version badge for the most recent release.

services/conan · high confidence

Add Copr build status badge service

Users can now display a build status badge for packages hosted on Fedora Copr (or other Copr instances) by using the new \/copr/build/{owner}/{project}/{package}\ endpoint. The service fetches the latest build state from the Copr API and renders a standard build status badge (passing, failing, building, etc.), supporting both user and group projects (via \@\ prefix) and allowing a custom \baseUrl\ for non-default Copr instances.

(repo-wide) · high confidence

Add Coverity Scan badge service

Introduces a new badge service for Coverity Scan analysis results. Users can now display the status of a Coverity project by providing a project ID, with badges indicating passing, pending, failed, or passed-with-defects states, mapped to bright green, orange, red, and yellow colors respectively.

services/coverity · high confidence

Add CurseForge badges for downloads, version, and game versions

New badges are now available for CurseForge projects, allowing users to display the total download count, the latest mod version, and the supported game versions. These badges require a CurseForge API key and use the project's numeric ID (found in the 'About Project' section) rather than the URL slug. The endpoints are /curseforge/dt/:projectId for downloads, /curseforge/v/:projectId for the version, and /curseforge/game-versions/:projectId for supported game versions.

services/curseforge, services/modrinth · high confidence

Add DUB package badges for downloads, version, license, and score

Users can now display badges for DUB (D Programming Language) packages, including total and periodic download counts, the latest package version, the license type, and a community score. These new services integrate with the existing badge rendering infrastructure and are documented via OpenAPI specifications.

services/dub · high confidence

Add Deps.rs dependency status badges for Rust crates and repositories

Users can now display dependency security status badges for Rust projects by integrating with the deps.rs service. New endpoints allow checking individual crates via \/deps-rs/:crate/:version\ (supporting 'latest' or specific versions) and entire repositories via \/deps-rs/repo/:site/:user/:repo\ (supporting GitHub, GitLab, Bitbucket, Sourcehut, and Codeberg). The badges reflect the dependency state with colors: bright green for 'up to date' or 'none', yellowgreen for 'maybe insecure', red for 'insecure', yellow for 'outdated', and light grey for 'unknown' or 'not found'.

services/deps-rs · high confidence

Add Ecologi carbon offset and trees badges

Users can now display badges for an Ecologi user's carbon offset (in tonnes) and total trees planted by using the new \/ecologi/carbon/:username\ and \/ecologi/trees/:username\ endpoints. These badges pull data from the public Ecologi API, formatting the carbon offset with metric prefixes and applying color thresholds based on the count of trees or tonnes offset.

services/ecologi · high confidence

Add F-Droid version badge service with custom repo support

This change introduces a new F-Droid service that displays the latest version of an Android app from the F-Droid repository. By default, it queries the official f-droid.org API, but users can now specify a custom F-Droid server URL via the \baseUrl\ query parameter to support third-party repositories. The service also includes an \include\_prereleases\ option to show pre-release versions if available.

services/f-droid · high confidence

Add Factorio Mod Portal service

Users can now display badges for Factorio mods from the official Mod Portal, including the latest mod version, the compatible Factorio game version, the last update date, and total download counts.

services/factorio-mod-portal · high confidence

Add GNOME Extensions download count and version badges

Users can now display badges for GNOME Shell extensions, including a download count badge (route: /gnome-extensions/dt/{extensionId}) and a version badge (route: /gnome-extensions/v/{extensionId}). The download badge shows the total number of downloads for a specific extension, while the version badge displays the latest active version name (or number if no name is available) by querying the GNOME Extensions API.

services/gnome-extensions · high confidence

Add Galaxy Toolshed service for version, downloads, and activity badges

New services have been added for the Galaxy Toolshed repository, enabling badges for repository/tool versions, download counts, and creation dates. The implementation includes a base service class that queries the Galaxy Toolshed API for installable revisions and associated metadata, supporting specific endpoints for version (repository, tool, and requirement levels), downloads, and activity (created date).

services/galaxytoolshed · high confidence

Add Gerrit change status badge

Users can now display the status of a Gerrit change (new, merged, or abandoned) via a new badge service. The badge accepts a change ID and a base URL, fetching the current status from the Gerrit REST API and rendering it with distinct colors for each state.

services/gerrit · high confidence

Add Gitea service badges for forks, stars, issues, pull requests, releases, languages, and last commit

Users can now display Gitea badges for repository metrics including forks, stars, open/closed/all issues and pull requests (with label filtering), latest release version, programming language count, and last commit date. The service defaults to gitea.com but supports self-hosted instances (like Codeberg or Forgejo) via the \gitea\_url\ query parameter, and the last commit badge additionally supports filtering by file path and choosing between author or committer timestamps.

services/gitea · high confidence

Add Gitter chat service

A new service has been added to generate badges for Gitter chat rooms. Users can now use the \/gitter/room/{user}/{repo}\ endpoint to display a badge indicating that a project is active on Gitter, with the badge label set to 'chat' and a bright green color.

services/gitter · high confidence

Add Greasy Fork badges for installs, ratings, license, and version

This change introduces new badge services for Greasy Fork scripts, allowing users to display installation counts (both total and daily), rating breakdowns (good/ok/bad with color-coded scores), license information, and current version numbers. The implementation includes a base service that fetches data from the Greasy Fork API (with a fallback to SleazyFork for certain scripts) and specific service classes for each badge type, along with corresponding unit and integration tests.

services/greasyfork · high confidence

Add HSTS preload status badge

A new badge service has been added at \/hsts/preload/:domain\ that checks a domain's status against the Chromium HSTS preload list. Users can now display whether a domain is preloaded (brightgreen 'yes'), pending (yellow 'pending'), or not preloaded/unknown (red 'no') by using the \hsts/preload\ route.

services/hsts · high confidence

Add HackerNews User Karma badge

A new service endpoint has been added at /hackernews/user-karma/:id that displays a user's karma score from Hacker News. The badge shows the karma value with a color-coded indicator (brightgreen for positive, orange for zero, red for negative) and labels the badge as 'U/\<id\> karma'. This feature allows users to easily display their Hacker News reputation on profiles or documentation.

services/hackernews · high confidence

Add Hangar service badges for plugin statistics

New badges are now available for Hangar, the plugin repository for Paper, Waterfall, and Folia. Users can display download counts via the 'hangar/dt' route, and social metrics including stars, views, and watchers via the 'hangar/stars', 'hangar/views', and 'hangar/watchers' routes respectively, by providing the plugin slug.

services/hangar · high confidence

Add Homebrew Cask and Formula version and download badges

Users can now display version and download-count badges for Homebrew packages. New services provide version badges for both Casks (\/homebrew/cask/v/:cask\) and Formulae (\/homebrew/v/:formula\), as well as download badges for Casks (\/homebrew/cask/installs/:interval/:cask\) and Formulae (\/homebrew/installs/:interval/:formula\) supporting monthly, quarterly, and yearly intervals.

services/homebrew · high confidence

Add Lemmy community subscriber badge

Users can now display a social-style badge showing the subscriber count for a Lemmy community. The new service accepts a community alias (e.g., \community@server\) and renders a badge with the label 'subscribe to \[community\]' and the subscriber count, supporting both mocked and live API calls for validation.

services/lemmy · high confidence

Add Mastodon follower count badge service

A new service has been added to display the follower count for Mastodon accounts. Users can generate a badge by providing a user ID and an optional domain (defaulting to mastodon.social), which fetches the follower count via the Mastodon API and renders a social-style badge with links to the user's profile and followers page.

services/mastodon · high confidence

Add Matrix room user count badge

A new badge service has been added for Matrix chat rooms, displaying the number of joined members. It supports two fetch modes: the default 'guest' mode, which registers a temporary guest account to query room state, and a 'summary' mode (configurable via the \fetchMode\ query parameter) that uses the experimental MSC3266 endpoint for better performance. The badge requires the room to be world-readable and the homeserver to allow guest access or support the summary endpoint.

services/matrix · high confidence

Add Maven Central last-updated badge and refactor version service

Users can now display a 'last updated' activity badge for Maven Central artifacts via the new /maven-central/last-update/:groupId/:artifactId route, which fetches and renders the timestamp from the Maven metadata XML. The existing /maven-central/v/:groupId/:artifactId route has been refactored to act as a redirector to the shared /maven-metadata/v service, consolidating version-fetching logic while preserving the original URL structure and query parameters.

services/maven-central · high confidence

Add Mbin magazine subscriber count badge

Users can now display a badge showing the number of subscribers for a specific Mbin magazine. The new service queries the Mbin API for a given magazine (formatted as magazine@instance) and renders a social-style badge with the subscriber count, supporting both mocked and live instance validation.

services/mbin · high confidence

Add Mozilla HTTP Observatory security grade badge

Users can now display a security grade badge for any host by using the Mozilla HTTP Observatory service. The badge shows the security grade (A–F) and, optionally, the numerical score out of 100, fetched from the observatory-api.mdn.mozilla.net scan endpoint. The service validates the response schema using Joi and renders the badge with color coding based on the grade letter.

services/mozilla-observatory · high confidence

Add NPM Stat downloads badge for package authors

Users can now display a badge showing the total download count for NPM packages published by a specific author, sourced from npm-stat.com. The service supports filtering by time interval—weekly (dw), monthly (dm), or yearly (dy)—and renders the badge with a bright green color for positive download counts and red for zero.

services/npm-stat · high confidence

Add NYCRC coverage badge service

Introduces a new coverage badge service that reads threshold configurations from a .nycrc file or the nyc/c8 stanzas in package.json on GitHub. Users can now generate badges for minimum coverage thresholds (branches, lines, or functions) and optionally specify a preferred threshold via query parameters.

services/nycrc · high confidence

Add NodePing status and uptime badges

This change introduces two new badges for the NodePing uptime monitoring service. The \nodeping/status\ badge displays the current operational state (up or down) of a monitored check, supporting custom colors and messages via query parameters. The \nodeping/uptime\ badge displays the 30-day uptime percentage, formatted with a color scale that reflects reliability (bright green for 100%, down to red for lower percentages). Both services require a \checkUuid\ parameter and are implemented as ESM modules using Joi for schema validation.

services/nodeping · high confidence

Add OSSF Scorecard badge service

Users can now display the Open Source Security Foundation (OSSF) Scorecard for any repository via a new badge endpoint at /ossf-scorecard/{host}/{orgName}/{repoName}. The service fetches the score from api.scorecard.dev, renders it with a color scale ranging from red to brightgreen based on the score value, and returns an 'invalid repo path' error for non-existent repositories.

services/ossf-scorecard, services/reproducible-central · high confidence

Add Open Build Service (OBS) badge support

Users can now display build status badges for packages in the Open Build Service. This new service supports querying the build status of a specific package within a project, repository, and architecture, and renders a badge indicating the current state (such as passed, failed, or building). It also allows specifying a custom OBS instance via a query parameter.

services/obs · high confidence

Add Open VSX service for extension badges

This change introduces a new service for the Open VSX registry, enabling badges for VS Code-compatible extensions. Users can now display the current version, download counts, release date, and user ratings (as a score or star rating) for any extension by namespace and name via the new \open-vsx\ badge endpoints.

services/open-vsx · high confidence

Add Ore service badges for plugin metadata

New badges are now available for the Ore platform (a Minecraft package repository for Sponge plugins), allowing users to display the plugin's category, total downloads, license, Sponge version compatibility, star rating, and current version via endpoints like /ore/category/:pluginId, /ore/dt/:pluginId, /ore/l/:pluginId, /ore/sponge-versions/:pluginId, /ore/stars/:pluginId, and /ore/v/:pluginId.

services/ore · high confidence

Add OutageDeck provider status badge

Users can now display a status badge for any OutageDeck provider by requesting the \/outagedeck/status/:provider\ endpoint. The badge reflects the provider's current operational state (operational, degraded, partial outage, major outage, maintenance, or unknown) and uses a corresponding color scheme. An optional API key can be configured to authenticate requests to the OutageDeck public API.

services/outagedeck · high confidence

Add POEditor translation progress badge

Users can now display a badge showing the translation completion percentage for a specific language in a POEditor project. The new service at \services/poeditor\ implements the \poeditor/progress/:projectId/:languageCode\ route, requiring a read-only API token as a query parameter. It fetches data from the POEditor API and renders a percentage badge colored by coverage.

services/localizely, services/poeditor · high confidence

Add Package Control download badge service

Users can now display download statistics for Sublime Text packages managed by Package Control. This new service supports badges for daily, weekly, monthly, and total downloads, fetching data from the Package Control API and rendering them using the standard download badge format.

services/packagecontrol · high confidence

Add Pepy total downloads badge

Users can now display a badge showing the total download count for Python packages via the new Pepy service. This feature requires an API key (configured via \pepy\_key\) to access the Pepy API, and the badge is available at the \/pepy/dt/:packageName\ route.

services/pepy · high confidence

Add PiWheels version badge service

A new service has been added to display the latest version of Python packages hosted on PiWheels (a repository providing Arm platform wheels for Raspberry Pi). Users can now request a version badge via the \/piwheels/v/{wheel}\ endpoint. The service filters out yanked releases and versions that have no associated wheel files, ensuring only valid, installable versions are reported. It defaults to showing the latest stable release but supports an \include\_prereleases\ query parameter to show the latest pre-release version if no stable release is available.

(repo-wide) · high confidence

Add PingPong monitoring service

Users can now display status and uptime badges for services monitored by PingPong. This change introduces new badge endpoints at \pingpong/status/{apiKey}\ and \pingpong/uptime/{apiKey}\, which fetch data from the PingPong API to show operational status (up, issues, down, maintenance) and 30-day uptime percentage, respectively.

services/pingpong · high confidence

Users can now display which operating systems a PowerShell package supports via a new badge endpoint at \powershellgallery/p/{packageName}\. This service queries the PowerShell Gallery API to detect Windows, macOS, and Linux tags, rendering them as a pipe-separated list (e.g., 'windows \| linux') or 'not specified' if no tags are present. The diff also introduces the standard version and download count badges for the platform, leveraging the existing NuGet v2 service family infrastructure.

services/powershellgallery · high confidence

Add Pulsar package download and stargazer badges

Users can now display badges for Pulsar package popularity metrics. New endpoints have been added at \pulsar/dt/:packageName\ to show download counts and at \pulsar/stargazers/:packageName\ to show stargazer counts, both fetching data from the Pulsar Edit API and rendering them in the brand's purple color.

services/pulsar · high confidence

Add REUSE compliance badge service

Users can now display the REUSE compliance status of a project via a new badge at \reuse/compliance/:remote\. This service fetches the status from the \api.reuse.software\ endpoint and displays one of four states—compliant, non-compliant, checking, or unregistered—each with a distinct color (green, red, brightgreen, or red respectively).

services/reuse · high confidence

Add Raycast extension download count badge

Users can now display a badge showing the download count for any Raycast extension. This is available via the new \/raycast/dt/{user}/{extension}\ endpoint, which fetches data from the Raycast API and renders a standard downloads badge.

services/raycast · high confidence

Add Repology repositories badge

Users can now display a badge showing the number of repositories a project has on Repology. This new service endpoint is available at /repology/repositories/{projectName} and renders a blue badge labeled 'repositories' with the count of associated repositories.

services/repology · high confidence

Add Revolt server member badge

Users can now display a badge showing the member count of a Revolt server by providing an invite code. The badge is accessible via the \/revolt/invite/:inviteId\ route and supports an optional \revolt\_api\_url\ query parameter to specify a custom API endpoint, defaulting to the public Revolt API.

services/revolt · high confidence

Add Snapcraft version, license, and last-updated badges

Users can now display Snapcraft package metadata via new badges: the package version (e.g., /snapcraft/v/:package/:track/:risk), the license (e.g., /snapcraft/l/:package), and the last update date for a specific channel (e.g., /snapcraft/last-update/:package/:track/:risk). All three support an optional arch query parameter (defaulting to amd64) to filter by architecture, and return clear errors for missing packages, tracks, risks, or architectures.

services/snapcraft · high confidence

Add Sourcegraph Repo Reference Count badge service

A new service has been added to display the number of projects that reference a specific repository on Sourcegraph. Users can now generate a badge using the \/sourcegraph/rrc/{repo}\ endpoint, which fetches data from Sourcegraph's API and displays the reference count (e.g., '14.0k projects') with a 'used by' label.

services/sourcegraph · high confidence

Add Spack package manager version badge service

Users can now display version badges for packages managed by Spack. This change introduces a new service that fetches the latest version from the Spack package repository (packages.spack.io) and renders a version badge. It includes both the service implementation and corresponding tests to validate correct version rendering and handling of missing packages.

services/spack · high confidence

Add Spiget badge services for downloads, size, version, rating, and tested versions

This change introduces a new set of badge services for Spiget (SpigotMC resources), allowing users to display download counts, file sizes, latest versions, star ratings, and supported server versions. The implementation includes a shared base service (\BaseSpigetService\) that handles API requests to \api.spiget.org\, along with specific services for each metric: \SpigetDownloads\, \SpigetDownloadSize\ (which distinguishes between internal and externally hosted files), \SpigetLatestVersion\, \SpigetRatings\ (supporting both star and numeric formats), and \SpigetTestedVersions\ (which formats version ranges). Each service is accompanied by corresponding tests to validate the badge output.

services/spiget · high confidence

Add Steam Workshop service

New badges are now available for Steam Workshop content, allowing users to display file size, release and update dates, subscriptions, favorites, downloads, views, and the number of files in a collection. This change introduces the \services/steam\ module, including a base API class for connecting to the Steam Web API and specific service implementations for each badge type, along with corresponding integration tests.

services/steam · high confidence

Add Terraform Registry download badges for modules and providers

New services have been added to display download counts for Terraform Registry modules and providers. Users can now generate badges for specific modules (by namespace, name, and provider) and providers (by provider ID), with support for viewing weekly, monthly, yearly, or total download metrics via the new /terraform/module and /terraform/provider endpoints.

services/terraform · high confidence

Add Testspace test result badges

Users can now display Testspace test results on their projects. This change introduces new badge endpoints for the total, passed, failed, skipped, errored, and untested test counts, as well as a pass-ratio percentage badge and a summary badge showing passed/failed/skipped totals. The summary badge supports custom labels and a compact message format.

services/testspace · high confidence

Add Thunderstore badges for downloads, likes, and version

New Thunderstore badge endpoints are now available for package downloads, likes, and latest version. Users can generate badges by providing the package's namespace and name (e.g., /thunderstore/dt/{namespace}/{packageName} for downloads, /thunderstore/likes/{namespace}/{packageName} for likes, and /thunderstore/v/{namespace}/{packageName} for version). The service fetches metrics from the Thunderstore API v1 and supports various community URL formats, including subdomain-based communities like Valheim and the default Risk of Rain 2 format.

services/thunderstore · high confidence

Add Treeware Trees badge service

Users can now display a badge showing the total number of trees planted for a specific package via the Ecologi API. This new service, located at /treeware/trees/{owner}/{packageName}, fetches the tree count associated with the package's unique reference and renders it with color-coded thresholds.

services/treeware · high confidence

Add UptimeObserver monitoring support

Users can now display badges for UptimeObserver monitors. This adds a new service in the monitoring category that fetches data from the UptimeObserver API, providing two badge types: one showing the current status (up, down, paused) and another showing the uptime ratio over 1, 7, or 30-day periods.

services/uptimeobserver · high confidence

Add VPM package version badge service

A new service has been added to display version badges for VRChat Package Manager (VPM) packages. Users can now query the latest version of a specific package by providing its ID and a repository URL via the \/vpm/v/{packageId}\ endpoint. The service supports an optional \include\_prereleases\ query parameter to include pre-release versions in the result, and it validates the package ID against the VPM repository structure to return a standard version badge.

(repo-wide) · high confidence

Add Vcpkg version service

Users can now display version badges for Vcpkg ports via the new /vcpkg/v/{portName} endpoint. The service fetches the vcpkg.json manifest from the Microsoft vcpkg repository and extracts the version from various supported fields (version, version-date, version-semver, or version-string).

services/vcpkg · high confidence

Add Voxel Shop service for downloads, ratings, and version badges

Users can now generate badges for Voxel Shop resources by providing a resource ID. This change introduces three new badge endpoints: \/voxel-shop/dt/:resourceId\ for download counts, \/voxel-shop/v/:resourceId\ for the latest version, and \/voxel-shop/{format}/{resourceId}\ (supporting 'rating' or 'stars' formats) for review ratings. The service fetches data from the Voxel Shop API and renders standard badges for these metrics.

services/voxelshop · high confidence

Add Weblate service badges for project progress, component licenses, and user statistics

This change introduces a new Weblate service integration, allowing users to generate badges for Weblate-hosted translation projects. The new endpoints include \weblate/progress/:project\ to display the percentage of translated strings (with color-coded progress), \weblate/l/:project/:component\ to show a component's license, \weblate/:type\ to count entities like projects, components, users, or languages, and \weblate/:statistic/:user\ to display user-specific metrics such as translations, suggestions, uploads, comments, and languages. The implementation uses a shared base class for API requests with optional Bearer token authentication and supports custom Weblate server instances via a query parameter.

services/weblate · high confidence

Add WinGet version and release date badges

New badges are now available for Windows Package Manager (WinGet) packages. The \/winget/v/{name}\ endpoint displays the latest version of a package, while \/winget/release-date/{name}\ shows its release date. These services use a custom version comparator that respects WinGet's specific sorting rules (such as treating 'latest' as the highest version and handling pre-release tags) rather than simple ASCII ordering, ensuring accurate results for packages like Microsoft.DevHome.

services/winget · high confidence

Add bStats player and server count badges

New badges are now available for the bStats service, allowing users to display the current player count (\/bstats/players/:pluginid\) and server count (\/bstats/servers/:pluginid\) for a specific plugin. These badges fetch live data from the bStats API and render the values as metrics.

services/bstats · high confidence

Add community, donation, and privacy pages to the frontend

The frontend now includes dedicated pages for community support, donation tiers, and privacy policy. Users can view sponsor and backer logos on the community page, select from specific donation amounts (Sponsor, Monthly Backer, Backer, or custom) on the donate page, and read the updated privacy policy detailing data handling, GDPR compliance, and the lack of cookies or visit logs.

frontend/src/pages · high confidence

Add docs.rs build status badge service

Introduces a new badge service for docs.rs that displays the documentation build status for Rust crates. Users can now check if a crate's documentation is building successfully by visiting /docsrs/{crate} or /docsrs/{crate}/{version}, with the badge indicating 'passing' or 'failing' status based on the latest build result from the docs.rs status API.

services/docsrs · high confidence

Add freeCodeCamp points badge

Users can now display a badge showing the total number of points accumulated by a freeCodeCamp user. This new service fetches public profile data from the freeCodeCamp API and renders the point count, while correctly handling cases where the profile is private or the user is not found.

services/freecodecamp · high confidence

Add iTunes App Store version badge service

A new service has been added to generate version badges for iOS/macOS applications via the iTunes App Store. Users can now request a badge using the \/itunes/v/{bundleId}\ route, which fetches the latest version for a given bundle ID and renders it using the standard version badge format. The implementation includes input validation via Joi and handles cases where an app is not found or the input is invalid.

services/itunes · high confidence

Add npms.io score badges

Users can now display npm package quality metrics from npms.io via new badge routes. The service supports final, maintenance, popularity, and quality scores for both scoped and unscoped packages, rendering them as percentage-based badges with appropriate color coding.

services/npms-io · high confidence

Add relative date badge service

A new service has been added that allows users to generate a badge displaying the relative time from or to a specific Unix timestamp. By supplying a timestamp (including negative values for past dates) via the \/date/{timestamp}\ endpoint, users can see a human-readable relative date string, with invalid inputs gracefully handled as 'invalid date'.

services/date · high confidence

Add supported platforms badge for React Native packages

A new badge service has been introduced that displays the platforms supported by a given React Native package (such as Android, iOS, Web, macOS, etc.) by querying the React Native Directory API. Users can now see at a glance which operating systems and environments a specific library is compatible with.

services/react-native-directory · high confidence

Add test-public placeholder page

A new static HTML page has been added to the test-public directory, serving as a minimal placeholder for the shields.io frontend. This file provides a basic structure with a title and simple body text, likely intended for testing or development purposes rather than production use.

core/server/test-public · high confidence

Added InfluxDB v2 format converter for Prometheus metrics

The metrics module now includes a new utility to convert Prometheus client JSON data into InfluxDB line protocol version 2. This addition supports the conversion of various metric types, including counters, gauges, histograms, and summaries, allowing the system to export metrics in a format compatible with InfluxDB v2.

core/server/metrics · high confidence

Added static assets for social sharing and branding

The frontend static directory now includes an OpenGraph image (opengraph.svg) and a collection of badge assets (build, coverage, downloads, license, npm, rating, version) to improve social media previews and branding consistency. Additionally, the site icon (icon.svg) and main logo (logo.svg) have been updated, and a .nojekyll file was added to ensure proper static file serving.

frontend/static · high confidence

Badge-maker v3: ESM migration, CLI, and accessibility improvements

The badge-maker library has been upgraded to version 3, migrating the codebase to ES modules (ESM) and removing CommonJS support. A new command-line interface (CLI) has been added, allowing users to generate badges directly from the terminal. The library now exposes \logoBase64\ and \links\ in its public API, enabling badges with embedded logos and clickable areas. Accessibility has been improved by adding text alternatives for badges with links and ensuring better color contrast. The package also includes a new CLI tool for generating badges via command line, and several internal refactors to optimize SVG output and fix rendering issues in specific browsers.

badge-maker/lib · high confidence

Depfu service now supports GitLab repositories

The Depfu badge service has been updated to support GitLab in addition to GitHub. Users can now generate badges for GitLab projects by specifying 'gitlab' as the VCS type in the route (e.g., /depfu/dependencies/gitlab/:user/:repo). The service also includes a legacy route redirect that assumes GitHub if no VCS type is specified, ensuring backward compatibility for existing GitHub-based badges.

services/depfu · high confidence

Flathub service adds download counts and version badges

The Flathub service now provides two new badge endpoints: one for total installation counts (labelled 'installs') and one for the latest application version (labelled 'flathub'). These new capabilities are implemented by migrating the service to use the Flathub API v2, fetching data from the /api/v2/stats/ endpoint for downloads and the /api/v2/appstream/ endpoint for version information.

services/flathub · high confidence

Introduce Prometheus and InfluxDB metrics support

The server now supports exporting operational metrics to Prometheus and InfluxDB. A new /metrics endpoint exposes Prometheus-formatted data (including request counts, response times, and GitHub token pool status) when enabled via configuration. Additionally, the server can periodically push metrics to an InfluxDB instance, with configurable instance identification strategies (hostname, environment variable, or random) and authentication. This provides self-hosters with better observability into server performance and resource usage.

core/server · high confidence

MyGet service now supports tenant-based feeds

The MyGet service has been updated to support both standard feeds and tenant-based feeds. Users can now generate version and download badges for packages hosted on specific MyGet tenants by including the tenant identifier in the URL path (e.g., \/vs-devcore.myget/vs-devcore/v/MicroBuild.json\). This change aligns the MyGet service implementation with the NuGet v3 service family, ensuring consistent behavior for both public and private tenant-hosted packages.

services/myget · high confidence

New API demo panel and simplified documentation navigation

The frontend theme now includes a new ApiDemoPanel that allows users to generate and copy code samples (cURL, Node, Go, Python) for API endpoints, with support for custom language tabs and syntax highlighting. Additionally, the documentation paginator has been simplified to return an empty string, effectively removing pagination controls from the documentation view.

frontend/src/theme · high confidence

New Bitrise build status badge service

Users can now display build status badges for Bitrise projects. The service supports fetching the status for a specific app ID and optionally a specific branch, requiring a token for authentication. It renders standard build status colors (success, error, unknown) and handles cases where a branch is not found or the token/app ID is invalid.

services/bitrise · high confidence

New CLI and utility scripts for debugging, benchmarking, and configuration

Added several new scripts to the \scripts/\ directory to improve developer workflows and infrastructure management. \badge-cli.js\ allows users to debug and profile badge rendering by starting a local server and tracing the output. \benchmark-performance.js\ and \capture-timings.js\ provide tools for measuring server performance and capturing timing data from badge creation code paths. \export-openapi-cli.js\ generates OpenAPI specification files for service categories. \update-github-api.js\ automates the synchronization of the GitHub REST API version in the configuration. \write-migrations-config.js\ outputs the PostgreSQL connection URL for database migration tools, and \mocha2md.js\ converts Mocha test results into Markdown summaries.

scripts · high confidence

New Dynamic Regex, TOML, and YAML badges; rewritten Dynamic XML and JSON services

This change introduces new Dynamic Regex, Dynamic TOML, and Dynamic YAML badges, allowing users to extract values from plain text via regex or from TOML/YAML documents using JSONPath selectors. The existing Dynamic XML and Dynamic JSON services have been rewritten to use the new \json-path\ factory for JSONPath support (in JSON) and the \@xmldom/xmldom\ parser with \xpath\ for XML, including support for parsing HTML content types. All dynamic services now share a common route helper and validation schema, and enforce a 3500ms request timeout.

services/dynamic · high confidence

New GitHub Actions workflow status badge and refactored API provider

Users can now display the status of a specific GitHub Actions workflow using the new \/github/actions/workflow/status/{user}/{repo}/{workflow}\ badge, which supports filtering by branch and event. The underlying GitHub API integration has been refactored to use a centralized \GithubApiProvider\ that manages token pools for REST, search, and GraphQL endpoints, improving rate-limit handling and authentication for services like the new branch count badge and the rewritten check runs/suites badges.

services/github · high confidence

New GitHub OAuth token acceptor module

A new acceptor module has been introduced in the GitHub authentication service to handle the OAuth flow for user tokens. This component registers the \/github-auth\ and \/github-auth/done\ routes, managing the redirect to GitHub for authorization and the subsequent exchange of the authorization code for an access token. It now explicitly captures and passes token scopes (such as \read:packages\ and \read:user\) to the authentication helper, enabling more granular permission handling for GitHub API requests.

services/github/auth · high confidence

New GitLab badges for contributors, forks, Go version, issues, labels, languages, last commit, license, and merge requests

This update introduces a comprehensive suite of new GitLab badge services, replacing deprecated redirectors for contributors and coverage. Users can now display the number of project contributors, fork counts, the Go version specified in go.mod, issue counts (open, closed, all, or filtered by label), specific label colors, the count of programming languages used, the date of the last commit (with support for specific branches and file paths), the project license, and merge request counts (open, closed, all, locked, or filtered by label). A new base service class handles authentication and pagination for these endpoints, and self-managed GitLab instances are supported via the gitlab\_url query parameter.

services/gitlab · high confidence

New Keybase badges for Bitcoin, PGP, Stellar, and Zcash addresses

Users can now generate social-style badges for specific Keybase profile data points. This change introduces four new badge endpoints: \keybase/btc\ for Bitcoin addresses, \keybase/pgp\ for PGP key fingerprints (displaying the last 16 characters), \keybase/xlm\ for Stellar account IDs, and \keybase/zec\ for Zcash addresses. Each badge is implemented as a dedicated service extending a shared \KeybaseProfile\ base, querying the Keybase API for the respective field and handling cases where the user or specific address is not found.

services/keybase · high confidence

New Maintenance badge service

A new service has been added to display a badge indicating whether a project is currently maintained. Users can query the service with a maintenance status ('yes' or 'no') and a target year to receive a badge that shows 'yes' if the project is maintained, 'no!' if it is not, or 'stale' if the maintenance status is older than one year and the current month is before March. The service includes unit tests for the transformation logic and integration tests for the badge rendering.

services/cii-best-practices, services/maintenance · high confidence

New Node.js version compatibility badges for current and LTS releases

This change introduces two new badges in the \services/node\ directory that indicate whether a package supports specific Node.js versions. The \node-current\ badge checks if the package's \engines.node\ range satisfies the latest Node.js release, while the \node-lts\ badge verifies support against all currently active LTS versions. These badges fetch version data from the npm registry and the Node.js release schedule, applying color coding (brightgreen, yellow, orange, or lightgray) based on compatibility, and support scoped packages, version tags, and custom registries.

services/node · high confidence

New ROS version badge service

Users can now display version badges for ROS packages by specifying a distribution (e.g., humble, noetic) and a repository name. The service fetches the latest release version from the official rosdistro YAML files, handling both active and end-of-life distributions, and returns a standard version badge.

services/ros · high confidence

New RubyGems service badges for downloads, version, rank, and owner

This change introduces a complete set of new badges for RubyGems packages. Users can now display total or per-version download counts (including stable/latest variants), the current gem version with an optional flag to include pre-releases, the gem's popularity rank (total or daily) sourced from bestgems.org, and the number of gems owned by a specific user. These services replace the previous implementation and provide more granular data and better error handling for Ruby library metrics.

services/gem · high confidence

New Travis CI .com build status service

A new service implementation for Travis CI .com build status badges has been added. This service scrapes the Travis CI .com API to display build status for repositories, supporting both default branch and specific branch queries. It includes corresponding integration tests to verify correct badge rendering for valid builds, unknown repositories, and invalid responses.

services/travis · high confidence

New badge for Python version from pyproject.toml

Users can now display the required Python version for a package by providing a URL to a PEP 621 compliant pyproject.toml file. The new endpoint /python/required-version-toml extracts the 'requires-python' field and displays it directly on a badge, allowing users to verify dependency constraints without parsing the file manually.

services/python · high confidence

New base service classes and authentication helper

The core/base-service area introduces a suite of new abstract base classes—BaseGraphqlService, BaseJsonService, BaseJsonlService, BaseStaticService, BaseSvgScrapingService, BaseTomlService, and BaseXmlService—to standardize how services fetch, parse, and validate data from upstream APIs. Additionally, a new AuthHelper class is added to centralize authentication logic, supporting basic auth, API key headers, strict SSL enforcement, and origin validation.

core/base-service · high confidence

New debug service for server diagnostics

A new debug service has been added to expose server-side diagnostic information via badges. Users can now request the current time, the server's start time, or toggle a flip-bit state (useful for cache debugging) by accessing the /debug endpoint with variants like 'time', 'starttime', or 'flip'.

services/debug · high confidence

New homepage features section with GitHub star encouragement

The homepage now includes a dedicated features section that highlights key capabilities such as dynamic and static badges, the Badge-Maker NPM library, and self-hosting via Docker. This section also introduces calls to action for users to donate to the project and to increase visibility by starring the GitHub repository, with links opening in new tabs.

frontend/src/components · high confidence

New query-string-based static badge service alongside the existing path-based badge

The static-badge service now includes a new \QueryStringStaticBadge\ implementation that accepts badge parameters (message, label, color) via URL query strings (e.g., \/static/v1?message=...&label=...\), complementing the existing path-based \StaticBadge\ (e.g., \/badge/label-message-color\). This provides an alternative, more flexible way to generate static badges without encoding parameters in the URL path, while the original path-based service remains available for backward compatibility.

services/static-badge · high confidence

New service helper modules for badge rendering and validation

The services directory now includes a set of new helper modules that standardize badge rendering and validation across the platform. These include \build-status.js\ for normalizing build states (e.g., 'passed' to 'passing') and colors, \color-formatters.js\ for determining badge colors based on version, download counts, or coverage percentages, \date.js\ for formatting dates and relative times using dayjs, \downloads.js\ for rendering download badges with metric formatting, \licenses.js\ for mapping SPDX license IDs to colors and priorities, and \package-json-helpers.js\ for extracting dependency versions from package.json structures. Additionally, \categories.js\ defines the badge categories (e.g., Build, Code Coverage, Test Results) used to organize services, while \dynamic-common.js\ and \endpoint-common.js\ provide shared validation schemas and rendering logic for dynamic and endpoint badges. These changes centralize common logic, ensuring consistent badge appearance and behavior for users across different service types.

services · high confidence

Packagist services migrated to Composer metadata API with custom server support

The Packagist service endpoints (version, license, downloads, stars, and dependency version) have been rewritten to use the Composer metadata API (\/p2/...\) instead of the previous JSON API, resulting in more efficient and up-to-date data fetching. This change introduces a new \server\ query parameter, allowing users to point badges to self-hosted Packagist instances in addition to the default \repo.packagist.org\. The implementation also adds a new \PackagistDependencyVersion\ badge to display the required version of a specific dependency (such as \php\ or \twig/twig\) for a package, and includes a redirector to maintain compatibility with the legacy \/packagist/vpre\ route for pre-release versions.

services/packagist · high confidence

Pub service adds downloads, likes, and points badges; refactors version endpoint

The Pub service now offers three new badges: monthly downloads (pub/dm), likes (pub/likes), and quality points (pub/points), all fetching data from the pub.dev API. The existing version badge (pub/v) has been updated to use the official package API endpoint and now supports an include\_prereleases query parameter to optionally include pre-release versions. The legacy /pub/vpre route is deprecated and redirects users to a migration notice.

services/pub · high confidence

Removals

Cirrus CI service retired

The Cirrus CI badge service has been retired. Requests to the \/cirrus\ endpoint now return a static 'retired badge' message instead of fetching live build status, effectively disabling the feature for users.

services/cirrus · high confidence

Codeship service is retired

The Codeship build badge service has been retired. Users requesting a Codeship badge will now receive a 'retired badge' message instead of build status information, reflecting the service's discontinuation.

services/codeship · high confidence

Deprecate Bit Components service

The Bit Components service has been retired. Users requesting badges for bit collection component counts will now receive a 'retired badge' message instead of live data, with the retirement effective from November 1, 2025.

services/bit · high confidence

Deprecate Offset Earth carbon and trees redirectors

The legacy redirector badges for Offset Earth's carbon offset and tree-count endpoints are now deprecated. Users accessing /offset-earth/carbon/:username or /offset-earth/trees/:username will see a badge indicating the service has been retired, with a link to the deprecation pull request. This change aligns with the broader rebranding of Offset Earth to Ecologi and removes support for these specific alias paths.

services/offset-earth · high confidence

Retire WhatPulse badges

The WhatPulse service has been retired. All existing badge routes (previously supporting keys, clicks, uptime, download, and upload metrics for users and teams) now return a 'retired badge' message instead of fetching live data.

services/whatpulse · high confidence

WikiApiary badge service is retired

The WikiApiary badge service has been officially retired. Requests to the \/wikiapiary\ route (including extension and skin install badges) will now return a 'retired badge' message instead of fetching live data. This change was implemented by replacing the previous service logic with a \retiredService\ helper, ensuring users are clearly informed that this integration is no longer active.

services/wikiapiary · high confidence

Security

Endpoint service now blocks insecure HTTP URLs by default

The endpoint badge service now rejects requests to non-HTTPS URLs unless the server is explicitly configured with \allowUnsecuredEndpointRequests: true\. This change improves security by preventing the service from fetching badge data from unencrypted sources by default, while still allowing users to opt-in to insecure requests if needed for their specific use case.

services/endpoint · high confidence

Behavioural changes

AMO services migrate to v4 API and split into distinct badges

The Mozilla Add-ons (AMO) service has been updated to use the v4 API, which changes the available data points and requires new badge routes. The previous \amo/d\ total downloads badge is deprecated and redirects to the new \amo/dw\ route, which displays weekly downloads instead. New dedicated routes are introduced for ratings (\/amo/rating\ and \/amo/stars\), user counts (\/amo/users\), and version information (\/amo/v\), replacing the previous unified behavior with specific, granular badges for each metric.

services/amo · high confidence

AUR service migrated to v5 API with new badge endpoints

The Arch Linux User Repository (AUR) service has been refactored to use the v5 RPC API endpoint, which changes the underlying data structure and requires updated validation schemas. This update introduces several new badge endpoints for license, votes, popularity, maintainer, and last-modified information, while also improving error handling for missing licenses and empty arrays. The version badge now distinguishes between up-to-date and out-of-date packages by displaying an orange color when a package is marked as out-of-date, and blue otherwise.

services/aur · high confidence

Added vendored http-deceiver to bypass http\_parser deprecation

A vendored copy of the http-deceiver library has been added to the vendor directory. This change implements a workaround to address the deprecation of the http\_parser module in Node.js v12 and later, ensuring compatibility with newer Node.js versions while maintaining support for older releases.

vendor · high confidence

AppVeyor service refactored with new build, job, and test endpoints

The AppVeyor service has been restructured into a modular set of components: a shared base class for fetching data from the AppVeyor API, a redirector to map legacy \/appveyor/ci\ URLs to the new \/appveyor/build\ path, a dedicated build status service, a new job-level build status service (allowing users to track individual jobs), and a test results service that aggregates pass/fail/skipped counts across jobs with support for compact messages and custom labels. This change introduces new URL patterns and query parameters while maintaining backward compatibility via redirects.

services/appveyor · high confidence

Apply custom theme styling and sticky badge builder layout

The frontend now uses a new global CSS file that sets the primary brand color to teal, adjusts code font size, and adapts OpenCollective images to the theme background. Additionally, the badge builder component is made sticky on desktop screens (width ≥ 997px) to remain visible while scrolling, improving usability for users interacting with the builder.

frontend/src/css · high confidence

Azure DevOps services migrated to new base class with stage/job build details and release support

The Azure DevOps service files have been refactored to use a new \AzureDevOpsBase\ class that handles authentication and build ID retrieval, enabling the build badge to optionally filter by specific \stage\ or \job\ via the Timeline API. The release badge now supports a 'never deployed' status, and the coverage badge allows switching between line and branch coverage metrics. Additionally, legacy \vso\ badge URLs are now redirected to the new \azure-devops\ paths.

services/azure-devops · high confidence

Bitbucket service restructure: retire issues, add last-commit, update pipelines and pull-requests

The Bitbucket service location has been restructured. The Bitbucket Issues badges are now retired and return a 'retired badge' message. A new Bitbucket Last Commit badge has been added, supporting branch and optional file path parameters. The Bitbucket Pipelines badge now handles halted pipeline states (e.g., when build minutes are exhausted) by displaying a 'halted' status. The Bitbucket Pull Requests service has been refactored to support both Bitbucket Cloud and Bitbucket Server, with separate authentication helpers and a query parameter to specify a custom server URL.

services/bitbucket · high confidence

Bower service now relies on Libraries.io for version and license data

The Bower badge services have been rewritten to fetch package metadata from the Libraries.io API instead of the legacy Bower registry. This change introduces a new base service that queries Libraries.io, meaning version and license badges now depend on Libraries.io's data coverage and authentication (API keys are supported for rate-limiting). The version badge behavior has also shifted: it now defaults to the \latest\_release\_number\ (including pre-releases) rather than the stable release, and will display 'no releases' if no version data is available.

services/bower · high confidence

BundleJS service now supports export selection, externals, and format options

The BundleJS badge service has been updated to allow users to query specific subpath exports via the \exports\ query parameter, exclude external dependencies via the \externals\ parameter, and control the output format using the \format\ parameter (options: \min\, \minzip\, \both\). This enables more granular size reporting for JavaScript packages, such as viewing the minified size of only selected exports or seeing both uncompressed and gzip-compressed sizes simultaneously.

services/bundlejs · high confidence

Bundlephobia service now supports scoped packages and specific versions

The Bundlephobia service has been refactored to support scoped npm packages (e.g., @scope/package) and specific package versions in the URL pattern. Users can now request bundle size metrics for scoped packages or pin a specific version, in addition to the existing support for unscoped packages. The service also distinguishes between minified and minzipped sizes via the 'min' and 'minzip' format parameters, rendering the size in IEC units.

services/bundlephobia · high confidence

Chocolatey service now uses NuGet v2 API family

The Chocolatey badge service has been refactored to use the shared NuGet v2 service family, replacing the previous standalone implementation. This change aligns Chocolatey with other NuGet-based services (like MyGet and PowerShell Gallery) by reusing the same underlying logic for fetching package data, while maintaining its specific API endpoint at community.chocolatey.org/api/v2. The legacy /vpre route is now deprecated and redirects users to a pull request explaining the migration to the standard version endpoint with the include\_prereleases parameter.

services/chocolatey · high confidence

Chrome Web Store service rewritten with new endpoints and improved data handling

The Chrome Web Store service has been refactored to use the \webextension-store-meta\ library, introducing new badge endpoints for last-updated date, extension size, and user count alongside the existing version, rating, and stars badges. This change improves data accuracy by correctly handling region restrictions (US East), fixing user count rendering for large numbers (e.g., 1M+), and supporting decimal values in size metrics.

services/chrome-web-store · high confidence

CircleCI service restructured with new route pattern and legacy deprecation

The CircleCI service has been refactored to use a new URL structure (\/circleci/build/{vcsType}/{user}/{repo}\) that explicitly requires a version control system type (GitHub or Bitbucket) as a path parameter, replacing the previous implicit or optional VCS handling. The service now scrapes SVG badges from CircleCI and supports optional branch specification and private repository access via a query parameter token. Legacy routes, including the old \/circleci/project/\ path and the deprecated \/circleci/token/\ endpoint, are now handled via redirects or retirement notices, with the token-based route scheduled for removal on 2025-12-20.

services/circleci · high confidence

Clojars service refactored with unified base class and prerelease handling

The Clojars service implementation has been restructured to use a shared \BaseClojarsService\ for API requests, improving maintainability. The version badge now supports an \include\_prereleases\ query parameter to toggle between stable releases and latest versions, and the legacy \/vpre\ route has been deprecated in favor of this parameter. Additionally, the downloads badge now uses a standardized rendering helper, and the service has been migrated to ESM with OpenAPI documentation.

services/clojars · high confidence

Cocoapods service refactored into modular badge endpoints

The Cocoapods service has been restructured from a monolithic implementation into distinct, modular services for version, license, platform, and documentation metrics. This change introduces dedicated badge endpoints for each metric (e.g., \/cocoapods/v/:spec\ for version, \/cocoapods/l/:spec\ for license, \/cocoapods/p/:spec\ for platforms, and \/cocoapods/metrics/doc-percent/:spec\ for docs) and adds a shared base service to handle API requests to the CocoaPods trunk. Each service now includes its own OpenAPI specification and dedicated test suite, improving maintainability and clarity for users relying on specific CocoaPods metadata.

services/cocoapods · high confidence

CodeClimate service is retired

The CodeClimate badge service has been retired. Users requesting a CodeClimate badge will now see a 'retired badge' message instead of live data, as the service implementation has been replaced with a stub that explicitly marks it as deprecated.

services/codeclimate · high confidence

Codecov service refactored with flag and component support

The Codecov badge service has been rewritten to support filtering coverage by specific flags and components via new query parameters, in addition to the existing branch and private repository token support. The implementation now scrapes SVG data from Codecov's graph endpoint for public repositories while retaining a legacy API path for private repos, and includes a new retired redirect service to handle deprecated token-based URLs.

services/codecov · high confidence

Conda service refactored to support variant-based badges

The Conda service implementation has been restructured to support variant-based routing (e.g., \/v/\, \/dn/\, \/p/\) for version, downloads, and platform badges. This change introduces a shared \BaseCondaService\ for API fetching and updates the individual service classes (version, downloads, platform, license) to use the new \routeEnum\ pattern, allowing users to choose whether to include the 'conda' prefix in the badge label. The license badge remains on a separate path (\/l/\) and is unaffected by the variant routing.

services/conda · high confidence

Coveralls service now supports GitLab and standardized VCS routing

The Coveralls badge service has been refactored to support GitLab in addition to GitHub and Bitbucket, allowing users to fetch coverage badges for GitLab repositories via the new /coverallsCoverage/gitlab/ path. The service now uses a unified route structure (/coverallsCoverage/{vcsType}/{user}/{repo}) with explicit VCS type enumeration, and includes redirectors to maintain compatibility with legacy badge URLs that omitted the VCS type or used older branch-in-path patterns. Tests confirm coverage retrieval for all three supported version control systems, including branch-specific queries.

services/coveralls · high confidence

Crates.io service restructured with new badges and base logic

The Crates.io service has been refactored to use a shared base class (crates-base.js) that standardizes API fetching and version resolution, including a preference for max\_stable\_version over max\_version. This change introduces new badges for dependents, MSRV (Minimum Supported Rust Version), and crate size, while updating the downloads badge to support recent download counts and the license badge to handle null values gracefully.

services/crates · high confidence

Database schema updates for GitHub user tokens

The database schema for the \github\_user\_tokens\ table has been updated to support new token management features. A \created\ timestamp column was added to record when each token was generated, and a \scopes\ column (text array) was introduced to store the specific permissions accepted for each token.

migrations · high confidence

Discord badge now supports bot token authentication

The Discord service has been updated to allow users to authenticate with the Discord API using a bot token. This change enables the badge to fetch presence data via the Discord JSON API with proper authorization headers, improving reliability and access to server member counts. The service now handles authentication configuration and includes tests to verify the bearer header is sent correctly.

services/discord · high confidence

Discourse service now accepts server URL via query parameter

The Discourse badge service has been refactored to accept the target forum URL as a \server\ query parameter (e.g., \/discourse/status?server=https://meta.discourse.org\) instead of embedding it in the route path. This change introduces a new redirect service that maps legacy path-based URLs (e.g., \/https/meta.discourse.org/status\) to the new query-parameter format, ensuring backward compatibility. The service now supports metrics for topics, users, posts, and likes, as well as a status check, and handles both singular and plural API response keys for robustness.

services/discourse · high confidence

Docker service refactoring and new badges

The Docker service has been refactored to use a shared authentication helper (docker-hub-common-fetch.js) and utility functions (docker-helpers.js). This change introduces new badges: Docker Automated Build (docker-automated), Docker Last Updated (docker-last-updated), and Docker Stars (docker-stars). It also enhances the existing Docker Image Size (docker-size) and Docker Version (docker-version) badges with support for architecture filtering (arch query parameter) and sorting by semver. Additionally, the deprecated DockerCloud badges (docker-cloud-automated, docker-cloud-build) are now marked as retired.

services/docker · high confidence

Eclipse Marketplace service rewritten with new base class and expanded badges

The Eclipse Marketplace service has been refactored to use a new \BaseXmlService\ for XML-based API requests, replacing the previous implementation. This change introduces several new badge endpoints: a License badge (showing the plugin's license or 'not specified'), a Favorites count badge, a Last Update date badge, and a Version badge, in addition to the existing Downloads badge. The service now supports both monthly and total download intervals for the Downloads badge and includes updated OpenAPI documentation and test coverage for all endpoints.

services/eclipse-marketplace · high confidence

Hex.pm service now supports packages with no stable release

The Hex.pm service has been updated to handle packages that only have pre-release versions available. Previously, if a package lacked a stable release, the version badge might have failed or shown incorrect data; now, the service gracefully falls back to the latest available version (e.g., a release candidate) when \latest\_stable\_version\ is null or missing, ensuring users can still see version information for such packages.

services/hexpm · high confidence

Introduce dedicated helpers for raster redirects and badge format escaping

This change introduces two new utility modules in the badge URL generation core: \make-badge-url.js\ and \path-helpers.js\. The \rasterRedirectUrl\ function now centralizes the logic for constructing redirect URLs to the raster endpoint, ensuring that the original badge request's path and query string are preserved correctly. Additionally, the \escapeFormat\ function provides a standardized implementation for decoding badge format strings, specifically handling the conversion of underscores and dashes (e.g., single underscores to spaces, double underscores to single underscores) according to the established badge encoding scheme. These utilities replace ad-hoc implementations, ensuring consistent behavior for raster image redirects and text formatting in badge URLs.

core/badge-urls · high confidence

Introduce new service test runner with strict badge validation

The service test runner has been reorganized into a new modular structure (cli.js, runner.js, service-tester.js, etc.) that loads and executes service tests via Mocha. A key behavioral change is the introduction of strict validation in the \expectBadge\ helper: it now throws an error if the badge object contains any keys other than the allowed set (label, message, logoWidth, labelColor, color, link), ensuring that unexpected or deprecated badge properties are caught during testing. The runner also supports running tests for specific services via CLI arguments or stdin, and automatically parses PR titles to determine which services to test.

core/service-test-runner · high confidence

Jenkins services migrated to new service architecture

The Jenkins badge services (Build, Tests, Coverage, Plugin Installs, and Plugin Version) have been rewritten to use the new service architecture. This migration introduces a unified base class for handling authentication and API requests, standardizes the route structure to use query parameters for job URLs, and adds comprehensive unit and integration tests for all endpoints. Additionally, legacy redirectors have been implemented to gracefully handle deprecated URL patterns, ensuring existing badges continue to function while users are guided toward the new format.

services/jenkins · high confidence

JetBrains services now support both legacy and modern plugin IDs

The JetBrains plugin services (downloads, rating, and version) have been refactored to automatically detect and handle both legacy string-based plugin identifiers (e.g., 'org.intellij.scala') and modern numeric IDs (e.g., '1347'). The implementation introduces a shared base class that routes requests to the appropriate JetBrains API endpoint—using the legacy XML API for string IDs and the modern JSON API for numeric IDs—ensuring that badges continue to work correctly regardless of which ID format is used in the badge URL.

services/jetbrains · high confidence

Jira issue and sprint badges now require a baseUrl query parameter

The Jira service has been migrated to a new model where the Jira instance URL is no longer embedded in the badge path but is instead passed via a required \baseUrl\ query parameter. This change applies to both the issue status badge (\/jira/issue/{issueKey}?baseUrl=...\) and the sprint completion badge (\/jira/sprint/{sprintId}?baseUrl=...\). To support this, legacy URL patterns that included the hostname in the path have been deprecated and now redirect users to the new format. Users must update their badge URLs to include the \baseUrl\ parameter pointing to their Jira instance.

services/jira · high confidence

JitPack version badge now supports custom domains and deprecated legacy routes

The JitPack version badge service has been refactored to support custom Maven repository domains by switching the underlying API call to the \latestOk\ endpoint, which resolves issues with projects not found under standard GitHub paths. Additionally, legacy version redirect routes (e.g., \/jitpack/v/:user/:repo\) are now deprecated and will display a deprecation notice, while VCS-specific redirects (e.g., \/jitpack/v/github/:user/:repo\) continue to function by mapping to the new \/jitpack/version/com.\<vcs\>.\<user\>/\<artifactId\>\ path structure.

services/jitpack · high confidence

Liberapay service refactored into modular badges with improved goal handling

The Liberapay service has been restructured from a single monolithic implementation into distinct, modular badges for patrons, giving, receiving, and goal progress. This change introduces a shared base service and schema that strictly validates API responses, ensuring that the 'goal' badge correctly handles cases where the goal key is missing or null (previously causing type errors) by displaying 'no public goals' instead of failing. Users will now see specific, separate badges for each metric, with clearer error messages when public statistics are unavailable.

services/liberapay · high confidence

Libraries.io service refactored with token pooling and new dependency badges

The Libraries.io service has been restructured to improve reliability and add new badge types. A new \LibrariesIoApiProvider\ introduces token pooling to manage API rate limits more effectively, rotating through multiple authentication tokens when configured. The service now exposes new badges for project and repository dependency status (showing counts of deprecated or outdated dependencies), as well as badges for dependent repositories and dependents. Existing badges, such as SourceRank, have been migrated to this new architecture, which also includes a longer cache length (900 seconds) for these endpoints.

services/librariesio · high confidence

Logo rendering now supports auto-sizing and automatic light/dark theme adaptation

The library has been refactored to use the \simple-icons\ package for logo handling, introducing two key user-facing improvements. First, logos now automatically adapt to the badge's background color: light logos are switched to a dark fill on light backgrounds, and dark logos are switched to a light fill on dark backgrounds, ensuring better contrast without manual configuration. Second, a new \logoSize=auto\ option allows logos to be automatically resized and repositioned to fit the badge dimensions, preventing distortion for non-square icons. The system also maintains backward compatibility by supporting legacy logo names (e.g., 'linux-foundation') alongside modern slugs.

lib · high confidence

Maven Metadata service now supports version selection strategies and filtering

The Maven Metadata service has been refactored to allow users to control which version is displayed via a new \strategy\ query parameter. Users can now choose between \highestVersion\ (the default, using Maven's ComparableVersion semantics), \releaseProperty\ (using the 'release' metadata property), or \latestProperty\ (using the 'latest' metadata property). Additionally, a \filter\ parameter is now supported for the \highestVersion\ strategy, allowing users to apply wildcard patterns (e.g., \\*beta\) to narrow down the list of versions before selecting the latest. The service also includes a redirector to support legacy URL patterns.

services/maven-metadata · high confidence

Migrate GitHub Gist badges to new service structure

The GitHub Gist badges for 'last commit' and 'stars' have been migrated to a new service implementation. The 'last commit' badge now uses the \renderDateBadge\ helper to display the gist's update date, while the 'stars' badge has been rewritten to use the GitHub GraphQL API (v4) to fetch the stargazer count, replacing the previous implementation. Additionally, the old \/github/stars/gists\ route has been deprecated and now redirects users to the pull request discussing the change, while a new redirector ensures the legacy \/github-gist/last-commit\ path points to the updated \/github/gist/last-commit\ endpoint.

services/github/gist · high confidence

Migrate frontend documentation site to Docusaurus 3

The frontend documentation site has been rebuilt using Docusaurus 3, replacing the previous static site generator. This migration introduces a new configuration structure (docusaurus.config.cjs, sidebars.cjs) and includes a custom plugin to strip automatic link wrapping from code blocks, which was introduced by remark-gfm in Docusaurus 3. The site now features a local search plugin, OpenAPI preset for badge documentation, and updated footer links including a privacy policy and service status links.

frontend · high confidence

Migrate token pooling to PostgreSQL persistence

The token pooling system now persists GitHub tokens and their associated scopes in a PostgreSQL database instead of relying on in-memory storage. This change introduces a new \SqlTokenPersistence\ module that handles loading tokens from the database on initialization and saving new tokens or scope updates via \noteTokenAdded\ and \noteTokenRemoved\. The \TokenPool\ logic has been updated to work with this persistent backend, ensuring that token scopes are correctly stored and retrieved, and that the pool can recover its state across restarts.

core/token-pooling · high confidence

NPM service badges rewritten to use a shared base class

The NPM service implementation has been refactored to use a new \NpmBase\ abstract class, which centralizes registry URL handling, scoped package encoding, and JSON response validation. This change standardizes how badges like version, license, collaborators, and downloads interact with the npm registry, ensuring consistent error handling and support for custom registries across all NPM badges.

services/npm · high confidence

New custom error pages for 404 and 500 responses

The server now serves custom HTML pages for 404 (Not Found) and 500 (Internal Server Error) status codes. The 404 page informs users that the requested page is missing and links back to the main site, while the 500 page indicates a server error occurred and suggests trying again later.

core/server/error-pages · high confidence

Nexus service now requires explicit server URL and supports version filtering

The Nexus badge service has been migrated to a new model where the Nexus server URL is no longer embedded in the badge path but must be provided via the required \server\ query parameter (e.g., \/nexus/r/{groupId}/{artifactId}?server=https://...\). This change also introduces a new \filter\ query parameter, allowing users to apply glob patterns to select specific versions from the search results, and adds support for \queryOpt\ to pass additional search constraints to the Nexus API.

services/nexus · high confidence

Nostr.band followers badge is retired

The Nostr.band followers badge has been deprecated and replaced with a 'retired badge' message. Users requesting this badge will now see a static notification indicating the service is no longer active, rather than live follower counts.

services/nostr-band · high confidence

OSS Lifecycle service now supports non-GitHub sources

The OSS Lifecycle badge service has been refactored to allow fetching the \OSSMETADATA\ file from any URL, not just GitHub repositories. Users can now provide a \file\_url\ query parameter to point to a metadata file hosted elsewhere, and a new redirector service automatically generates this parameter from GitHub user/repo/branch paths for backward compatibility.

services/osslifecycle · high confidence

Open Collective badges now use the GraphQL API v2

The Open Collective service has been rewritten to query the Open Collective GraphQL API (v2) instead of the legacy REST endpoints. This change introduces new badge endpoints for backers, sponsors, and the combined total (backers and sponsors), as well as a tier-specific badge. The implementation now supports optional authentication via an Open Collective token to improve rate-limit handling and data accuracy, and includes updated tests to verify the new GraphQL-based behavior.

services/opencollective · high confidence

Port StackExchange services to the new BaseJsonService architecture

The StackExchange badge services (Questions, Reputation, and Monthly Questions) have been refactored to inherit from the new \BaseJsonService\ base class. This change standardizes how these services handle API requests, authentication (via query string key), and response parsing, ensuring consistent behavior and easier maintenance across the platform.

services/stackexchange · high confidence

Puppet Forge service rewritten with new module and user badges

The Puppet Forge service has been completely rewritten to use the new ESM-based service structure, introducing a set of new badges for module details (version, downloads, endorsement, feedback score, PDK version, and quality score) and user statistics (module count and release count). This change migrates the implementation from CommonJS to ESM, updates the API client to use the v3 endpoints, and replaces the legacy Joi validation with stricter schemas, resulting in more accurate and comprehensive badge data for Puppet Forge modules and users.

services/puppetforge · high confidence

PyPI service rewritten with modular badges and custom license parsing

The PyPI service has been completely rewritten to use a shared base class and helper modules, splitting functionality into distinct badges for version, license, downloads, framework versions, Python versions, implementation, status, types, wheel availability, and package format. License detection now prioritizes the PEP 639 \license\_expression\ field, falls back to the short \license\ field, and uses Trove classifiers as a last resort, mapping specific classifiers to SPDX identifiers. Framework version support has been expanded to include AWS CDK, Django CMS, JupyterLab, Odoo, Plone, Wagtail, and Zope alongside Django. Downloads are now fetched from pypistats.org to support daily, weekly, and monthly periods. The service also supports a configurable \pypiBaseUrl\ via query parameter for self-hosted PyPI instances.

services/pypi · high confidence

ReSharper plugin badges now use the NuGet v2 service family

The ReSharper service has been refactored to use the shared NuGet v2 service family, replacing the previous standalone implementation. This change aligns the ReSharper badge logic with other NuGet-based services (like Chocolatey and MyGet) by reusing the same underlying API client and badge generation logic. Users will see no functional change in the badge output, but the service now benefits from unified maintenance and consistent behavior across the NuGet ecosystem.

services/resharper · high confidence

ReadTheDocs service now uses API v3

The ReadTheDocs badge service has been updated to communicate with the ReadTheDocs API v3 instead of the previous version. This change modifies the endpoint structure and authentication method (using Bearer tokens) to fetch build status information, ensuring the badge continues to reflect the latest documentation build success or failure accurately.

services/readthedocs · high confidence

Reddit badges now support optional authentication for improved reliability

The Reddit service implementation has been refactored to support optional OAuth2 application-only authentication. Users can now configure a Reddit client ID and secret to enable authenticated requests, which are routed to the \oauth.reddit.com\ endpoint; this improves reliability and rate-limit handling for endpoints like subreddit subscribers and user karma. If no credentials are provided, the service falls back to the public \www.reddit.com\ endpoint. The change also introduces a base class that caches and automatically refreshes access tokens, ensuring badges continue to function without interruption during token expiration.

services/reddit · high confidence

Redirect Polymart badges to VoxelShop

The Polymart service endpoints now redirect to the corresponding VoxelShop service. Requests for Polymart downloads, latest versions, and ratings (including /rating and /stars formats) are automatically redirected to the equivalent VoxelShop paths, ensuring continuity as the underlying data source migrates.

services/polymart · high confidence

Refactor NuGet services to use v3 API and helper modules

The NuGet service implementation has been restructured into modular helper and service-family files. The \nuget-helpers.js\ module introduces utilities for rendering download badges, parsing OData responses, caching service index lookups, and specifically handling NuGet version semantics by stripping build metadata and filtering prerelease versions. The \nuget-v3-service-family.js\ file implements the core logic for the NuGet v3 JSON API, including fetching package data via the SearchQueryService and transforming responses for version and download badges. The \nuget-v2-service-family.js\ file provides a parallel implementation for the v2 XML API, maintaining support for legacy feeds. The main \nuget.service.js\ file wires these families together for the standard NuGet feed, exposing version and download badges with updated OpenAPI documentation.

services/nuget · high confidence

Refactor TeamCity services to use a shared base class and query parameters

The TeamCity service implementation has been refactored to use a new \TeamCityBase\ class that centralizes authentication logic (including guest access and Basic Auth) and HTTP requests. The \TeamCityBuild\ and \TeamCityCoverage\ services now require the TeamCity server URL to be passed as a \server\ query parameter instead of being embedded in the route pattern, enabling support for self-hosted instances. Additionally, legacy URL patterns for build badges have been deprecated and replaced with redirectors to the new structure.

services/teamcity · high confidence

Refactor jsDelivr service to use shared base class and ESM

The jsDelivr service files have been refactored to use a shared base class (BaseJsDelivrService) and ESM imports, replacing the previous CommonJS structure. This change introduces a unified rendering method for download badges and standardizes the service's route and schema definitions, while also adding support for scoped npm packages in the npm hits endpoint.

services/jsdelivr · high confidence

Rewrite of the Website status service

The website status service has been rewritten to use the modern BaseService framework, migrating from CommonJS to ESM and replacing the legacy Joi validation with the new queryParamSchema pattern. The service now exposes a single endpoint that accepts the target URL as a query parameter, supporting custom up/down messages and colors, and classifies a site as down if it fails to respond within 3.5 seconds or returns an HTTP status code of 310 or higher. Additionally, legacy URL patterns are now handled via redirector services that map old paths to the new query-parameter-based endpoint.

services/website · high confidence

Scoop service now supports custom bucket URLs

The Scoop badge service has been refactored to allow users to specify a custom bucket via the \bucket\ query parameter, accepting either a standard bucket name (like \extras\) or a direct GitHub repository URL (e.g., \https://github.com/jewlexx/personal-scoop\). This change updates the underlying \ScoopBase\ service to parse and validate these URLs, enabling badges for versions and licenses to be generated from personal or third-party Scoop buckets in addition to the official ones.

services/scoop · high confidence

Scrutinizer service refactored to use a shared base class and explicit route enums

The Scrutinizer service implementation has been restructured to improve maintainability and consistency. A new \ScrutinizerBase\ class now centralizes API fetching and branch-info transformation logic, which is inherited by the specific build, coverage, and quality services. Additionally, the service routes now use explicit \routeEnum\ values (e.g., 'g' for GitHub, 'b' for Bitbucket) instead of implicit patterns, and the legacy root route has been replaced with a redirector that forwards requests to the new \/scrutinizer/quality/...\ endpoints.

services/scrutinizer · high confidence

Security Headers service marked as retired

The Security Headers badge service has been officially retired. Users requesting this badge will now see a 'retired badge' message instead of live data, as the underlying service implementation has been replaced with a stub that signals deprecation.

services/security-headers · high confidence

Sonar service rewritten with modular metric-specific badges and legacy API support

The Sonar service has been completely refactored from a single monolithic implementation into a modular architecture with dedicated services for specific metrics (coverage, documented API density, fortify security rating, quality gate, tech debt, tests, and violations) alongside a generic fallback for other metrics. This change introduces a shared base class that automatically detects and handles both the modern SonarQube API (v6.6+) and the legacy API (v5.3 and earlier), ensuring badges continue to work for older self-hosted instances. Users now get more context-aware badges, such as detailed violation breakdowns by severity and proper test result summaries, while maintaining backward compatibility through redirectors for legacy URL patterns.

services/sonar · high confidence

SourceForge services refactored to support repository parameters and new base class

The SourceForge service implementation has been restructured to support optional repository parameters for commit count and last commit badges, which previously only supported the default 'git' repository. A new BaseSourceForgeService class centralizes common request logic, and redirectors have been added to maintain backward compatibility for old URLs that omitted the repository name. Additionally, the downloads service now uses a routeEnum for interval validation and includes a longer cache duration.

services/sourceforge · high confidence

Split Codacy badges into separate coverage and code quality endpoints

The single legacy Codacy badge has been split into two distinct badges: a 'coverage' badge (labelled 'coverage') and a 'code quality' badge (labelled 'code quality'). This change introduces new service files (\codacy-coverage.service.js\, \codacy-grade.service.js\) and their corresponding testers, replacing the previous unified implementation. Users can now track code coverage percentages and code quality grades (A–F) independently via separate API routes (\/codacy/coverage/...\ and \/codacy/grade/...\), each supporting optional branch specification.

services/codacy · high confidence

Swagger Validator service now supports OpenAPI 3.0

The Swagger Validator badge now accepts OpenAPI 3.0 specifications in addition to 2.0. Users can validate their specs by visiting /swagger/valid/3.0?specUrl=...; the service returns a 'valid' badge for error-free specs (including those with only warnings) and an 'invalid' badge for errors, while handling missing or unreadable files with a 'spec not found or unreadable' message. A legacy redirector has been added at /swagger/valid/2.0 to maintain compatibility with existing URLs.

services/swagger · high confidence

SymfonyInsight service rebranded to Symfony with new badge endpoints

The SymfonyInsight service has been rebranded to Symfony, updating the badge paths from /sensiolabs/ to /symfony/. A redirect is provided for legacy /sensiolabs/i/:projectUuid URLs to ensure existing badges continue to work. The service now exposes three distinct badge types: grade (showing the analysis grade like platinum, gold, silver, bronze, or no medal), stars (displaying a star rating based on the grade), and violations (detailing the count and severity of code violations). These badges require authentication via the sl\_insight\_userUuid and sl\_insight\_apiToken secrets.

services/symfony · high confidence

Twitch service migrated to new OAuth2 token management and API structure

The Twitch service now uses a dedicated base class to handle OAuth2 client credentials flow, automatically managing access token retrieval, caching, and refresh logic for the Twitch Helix API. This change introduces a new 'Twitch Extension Version' badge alongside the existing 'Twitch Status' badge, both of which now require explicit client ID and secret configuration. The implementation also adds robust retry logic to handle API rate limits (429) and authentication errors (401), ensuring more reliable badge generation.

services/twitch · high confidence

Twitter badges now use X branding and static fallbacks

The Twitter service has been updated to reflect the platform's rebranding to X. The badge logo is now 'x', and all generated links (for tweeting and following) point to x.com instead of twitter.com. Additionally, the Twitter Follow badge no longer fetches live follower counts; it now serves as a static badge linking to the follow intent page, addressing the removal of the upstream API while maintaining the badge's utility.

services/twitter · high confidence

Uptime Robot service rewritten with new status and ratio badges

The Uptime Robot integration has been rewritten to provide two distinct badges: a status badge (labelled 'status') that displays the monitor's current state (up, down, paused, etc.) and supports custom up/down messages and colors via query parameters, and a ratio badge (labelled 'uptime') that shows the uptime percentage over a configurable number of days. The implementation now uses a monitor-specific API key (validated to start with 'm') and fetches data from the Uptime Robot v2 API, replacing the previous service logic.

services/uptimerobot · high confidence

Vaadin Directory service refactored to new base class and route structure

The Vaadin Directory service implementation has been refactored to use a new \BaseVaadinDirectoryService\ that fetches data from the Vaadin Directory API, replacing the previous implementation. This change updates the service structure to use \routeEnum\ for cleaner route definitions and introduces new badge endpoints for rating count, rating (stars/rating), release date, status, and version. The refactoring ensures consistent handling of API responses and improves maintainability by centralizing the base service logic.

services/vaadin-directory · high confidence

Visual Studio App Center badges now display 'retired badge'

The Visual Studio App Center service has been officially retired, and all associated badges (including builds, releases, OS version, and size) now return a 'retired badge' message instead of fetching live data. This change ensures that existing badge URLs remain valid but clearly indicate that the service is no longer active, with tests verifying the correct retired status for various input scenarios.

services/visual-studio-app-center · high confidence

Visual Studio Marketplace badges are retired

All Visual Studio Marketplace and VS Code Marketplace badges (including downloads, installs, version, rating, stars, release date, and Azure DevOps installs) now display a 'retired badge' message instead of live data. This change deprecates the service, meaning these endpoints no longer fetch current statistics from the marketplace.

services/visual-studio-marketplace · high confidence

W3C Validation service refactored with helper module and explicit presets

The W3C Validation service has been restructured to extract validation logic into a new \w3c-validation-helper.js\ module, which now handles preset regex matching, schema URL resolution, and badge message/color rendering. The service itself now explicitly supports parser options (default, html, xml, xmldtd) via \routeEnum\ and validates the \preset\ query parameter against a comprehensive list of HTML5, HTML4, XHTML, and SVG schemas. This change improves code maintainability and ensures consistent handling of validation presets and error reporting for users checking document standards.

services/w3c · high confidence

WordPress badges now warn that the underlying API is deprecated

The WordPress service files have been refactored to include a shared description string that explicitly warns users that the WordPress.org API used by these badges is no longer supported by WordPress. This change affects all WordPress badge endpoints (version, rating, downloads, last updated, and platform support) and informs users that Shields.io cannot guarantee these badges will continue to work in the future, while also advising them to double-check the provided plugin or theme slugs.

services/wordpress · high confidence

YouTube service badges retired

The YouTube service has been retired, meaning all previously available badges (including channel view counts, subscriber counts, video view counts, like counts, and comment counts) now return a 'retired badge' message instead of live data. This change ensures that requests to the YouTube badge endpoints no longer attempt to fetch statistics from YouTube.

services/youtube · high confidence

badge-maker v6.0.0: New badge palette, license change, and SVG optimization

The badge-maker package has been updated to version 6.0.0, introducing a new standard color palette with higher text contrast for generated badges. The package license has changed from CC0 to a dual MIT and Apache 2.0 license. Additionally, the structure of the generated SVGs has been optimized. This location provides the core library files, including the new license texts, the updated changelog, and TypeScript definitions for the \makeBadge\ function.

badge-maker · high confidence

Test coverage

Add .c8rc.json coverage configuration; Add end-to-end tests for the main frontend page; Core test infrastructure and ESM migration support; Snapshot tests for SVG badge generation.

Dependencies

Routine dependency updates across 7 manifests

This release updates 4,697 dependencies across 7 manifest files, including production packages like simple-icons, got, and fast-xml-parser, as well as development tools such as cypress, eslint, and gatsby. These updates primarily consist of minor and patch version bumps to maintain compatibility and incorporate upstream improvements.

(dependencies) · high confidence

Housekeeping

Added placeholder for frontend categories directory

A .gitkeep file was added to the frontend/categories directory to ensure the directory is tracked by version control, likely serving as a placeholder for future category-related frontend components or assets.

frontend/categories · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 32 → 53 (+21.0)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 44 → 60 (+16.4)
  • Architecture 97 (new)
  • Maturity 69 → 57 (-11.8)
  • Readiness 18 → 49 (+31.4)
  • Security 40 → 49 (+8.4)

Resolved (149)

  • Change coupling: conda-downloads.service.js ↔ conda-platform.service.js (services/conda/conda-downloads.service.js)
  • Change coupling: jenkins-tests.service.js ↔ jenkins-tests.tester.js (services/jenkins/jenkins-tests.service.js)
  • Change coupling: jsdelivr-hits-github.service.js ↔ jsdelivr-hits-npm.service.js (services/jsdelivr/jsdelivr-hits-github.service.js)
  • Change coupling: opencollective-all.service.js ↔ opencollective-backers.service.js (services/opencollective/opencollective-all.service.js)
  • Change coupling: opencollective-all.service.js ↔ opencollective-sponsors.service.js (services/opencollective/opencollective-all.service.js)
  • Change coupling: opencollective-backers.service.js ↔ opencollective-sponsors.service.js (services/opencollective/opencollective-backers.service.js)
  • Change coupling: pypi-format.service.js ↔ pypi-version.service.js (services/pypi/pypi-format.service.js)
  • Change coupling: pypi-implementation.service.js ↔ pypi-wheel.service.js (services/pypi/pypi-implementation.service.js)
  • Change coupling: sonar-fortify-rating.service.js ↔ sonar-tests.service.js (services/sonar/sonar-fortify-rating.service.js)
  • Change coupling: sonar-fortify-rating.service.js ↔ sonar-violations.service.js (services/sonar/sonar-fortify-rating.service.js)
  • Consequences/trade-offs (e.g., migration cost for ^-prefix versioning) and a recommended remediation are not present (frontend/blog/2025-07-26-[CVE redacted].md)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Dimension evaluation failed
  • FileTooLong: snapshots/make-badge.spec.js (snapshots/make-badge.spec.js)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • …and 129 more

New (229)

  • BaseService.invoke (cognitive 22) (core/base-service/base.js)
  • BaseService.invoke (cyclomatic 16) (core/base-service/base.js)
  • Change coupling: aur.service.js ↔ aur.tester.js (services/aur/aur.service.js)
  • Change coupling: github-downloads.service.js ↔ github-downloads.tester.js (services/github/github-downloads.service.js)
  • Change coupling: nexus.service.js ↔ nexus.tester.js (services/nexus/nexus.service.js)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Curl (cognitive 17) (frontend/src/theme/ApiDemoPanel/Curl/index.js)
  • Curl (cyclomatic 16) (frontend/src/theme/ApiDemoPanel/Curl/index.js)
  • DockerVersion.transform (cognitive 17) (services/docker/docker-version.service.js)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no project overview (README.md)
  • FileTooLong: lib/badge-renderers.js (badge-maker/lib/badge-renderers.js)
  • FunctionTooLong: badge-renderers.forTheBadge (badge-maker/lib/badge-renderers.js)
  • FunctionTooLong: badge-renderers.social (badge-maker/lib/badge-renderers.js)
  • FunctionTooLong: index.Curl (frontend/src/theme/ApiDemoPanel/Curl/index.js)
  • Further sole-owners (lower concentration)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • …and 209 more

Changes since last survey

  • 70 commits — 63 feature/other, 7 fixes

By area

  • (root) — 40 commits
  • core/server — 2 commits
  • services/bitbucket — 2 commits
  • services/classicpress — 2 commits
  • services/docker — 2 commits
  • services/github — 2 commits
  • services/azure-devops — 1 commit
  • services/bundlephobia — 1 commit
  • services/chrome-web-store — 1 commit
  • services/copr — 1 commit
  • services/coveralls — 1 commit
  • services/gitlab — 1 commit
  • services/greasyfork — 1 commit
  • services/homebrew — 1 commit
  • services/matrix — 1 commit
  • services/nexus — 1 commit
  • services/npm — 1 commit
  • services/ossf-scorecard — 1 commit
  • services/outagedeck — 1 commit
  • services/pub — 1 commit

Notable commits

  • fix: Fix Explicitly disable broken server SPDY mode (#12108)
  • fix: Fix [DockerVersion DockerSize] pagination (#12111)
  • fix: Fix [PubDownloads] test (#12101)
  • fix: Fix server test failure (#12114)
  • fix: Improve [ChromeWebStore] rating count handling and fix all examples (#12160)
  • fix: fix: correct regex for triple dotted version validation (#12120)
  • fix: fix: dev dep version for scoped dependency test (#12176)
  • change: Add [ClassicPress] badge (#12097)
  • change: Add [DockerLastUpdated] badge for newest image date (#12105)
  • change: Changelog for Release server-2026-08-15 (#12110)
  • change: Increase PyPI caches again (#12170)
  • change: Retire [BitbucketIssues] badges (#12171)
  • change: Retire [YouTube] badges (#12113)
  • change: Switch to non-mocked [Classicpress] not found tests (#12161)
  • change: Update simple-icons to 16.28.0 (#12103)
  • change: Update simple-icons to 16.29.0 (#12148)
  • change: Update simple-icons to 16.30.0 (#12159)
  • change: Update simple-icons to 16.31.0 (#12179)
  • change: [AzureDevOpsCoverage] Support branch coverage via metric query param (#12099)
  • change: [BitbucketPipelines] Show halted status for halted pipelines (#12098)
  • …and 50 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

badges/shields was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 25 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit c134d45c6247876f0db0496fed78139dcd9b0912 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-dd72cc24c749.