badges/shields
53.2
Adequate · 25 September 2026
72.3k
lines of production code
JavaScript
primary language
4
measurements over time
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
Add PowerShell Gallery platform support badge
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.