Files
shields/index.html
2025-03-16 20:33:30 +00:00

218 lines
20 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Home</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Home</h1>
<h3> </h3>
<section>
<article><p align="center">
<img src="https://raw.githubusercontent.com/badges/shields/master/readme-logo.svg?sanitize=true"
height="130">
</p>
<p align="center">
<a href="https://shields.io/community#backers" alt="Backers on Open Collective">
<img src="https://img.shields.io/opencollective/backers/shields" /></a>
<a href="https://shields.io/community#sponsors" alt="Sponsors on Open Collective">
<img src="https://img.shields.io/opencollective/sponsors/shields" /></a>
<a href="https://github.com/badges/shields/pulse" alt="Activity">
<img src="https://img.shields.io/github/commit-activity/m/badges/shields" /></a>
<a href="https://github.com/badges/shields/discussions" alt="Discussions">
<img src="https://img.shields.io/github/discussions/badges/shields" /></a>
<a href="https://github.com/badges/shields/actions/workflows/daily-tests.yml">
<img src="https://img.shields.io/github/actions/workflow/status/badges/shields/daily-tests.yml?label=daily%20tests"
alt="Daily Tests Status"></a>
<a href="https://coveralls.io/github/badges/shields">
<img src="https://img.shields.io/coveralls/github/badges/shields"
alt="Code Coverage"></a>
<a href="https://discord.gg/HjJCwm5">
<img src="https://img.shields.io/discord/308323056592486420?logo=discord&logoColor=white"
alt="Chat on Discord"></a>
</p>
<p>This is home to <a href="https://shields.io/">Shields.io</a>, a service for concise, consistent,
and legible badges in SVG and raster format, which can easily be included in
GitHub readmes or any other web page. The service supports dozens of
continuous integration services, package registries, distributions, app
stores, social networks, code coverage services, and code analysis services.
Every month it serves over 1.6 billion images and is used by some of the
world's most popular open-source projects, <a href="https://github.com/Microsoft/vscode">VS Code</a>, <a href="https://github.com/vuejs/vue">Vue.js</a>
and <a href="https://github.com/twbs/bootstrap">Bootstrap</a> to name a few.</p>
<p>This repo hosts:</p>
<ul>
<li>The <a href="https://shields.io/">Shields.io</a> frontend and server code</li>
<li>An <a href="https://www.npmjs.com/package/badge-maker">NPM library for generating badges</a>
<ul>
<li><a href="https://github.com/badges/shields/tree/master/badge-maker/README.md">documentation</a></li>
<li><a href="https://github.com/badges/shields/tree/master/badge-maker/CHANGELOG.md">changelog</a></li>
</ul>
</li>
<li>The <a href="https://github.com/badges/shields/tree/master/spec">badge design specification</a></li>
</ul>
<h2>Examples</h2>
<ul>
<li>code coverage percentage: <img src="https://img.shields.io/badge/coverage-80%25-yellowgreen" alt="coverage"></li>
<li>stable release version: <img src="https://img.shields.io/badge/version-1.2.3-blue" alt="version"></li>
<li>package manager release: <img src="https://img.shields.io/badge/gem-2.2.0-blue" alt="gem"></li>
<li>status of third-party dependencies: <img src="https://img.shields.io/badge/dependencies-out%20of%20date-orange" alt="dependencies"></li>
<li>static code analysis grade: <img src="https://img.shields.io/badge/codacy-B-green" alt="codacy"></li>
<li><a href="https://semver.org/">SemVer</a> version observance: <img src="https://img.shields.io/badge/semver-2.0.0-blue" alt="semver"></li>
<li>amount of <a href="https://liberapay.com/">Liberapay</a> donations per week: <img src="https://img.shields.io/badge/receives-2.00%20USD%2Fweek-yellow" alt="receives"></li>
<li>Python package downloads: <img src="https://img.shields.io/badge/downloads-13k%2Fmonth-brightgreen" alt="downloads"></li>
<li>Chrome Web Store extension rating: <img src="https://img.shields.io/badge/rating-%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%86-brightgreen" alt="rating"></li>
<li>Uptime Robot uptime percentage: <img src="https://img.shields.io/badge/uptime-100%25-brightgreen" alt="uptime"></li>
</ul>
<p><a href="https://img.shields.io/badges/static-badge">Make your own badges!</a>
(Quick example: <code>https://img.shields.io/badge/left-right-f39f37</code>)</p>
<h3>Quickstart</h3>
<p>Browse a <a href="https://shields.io/">complete list of badges</a> and locate a particular badge by using the search bar or by browsing the categories. Click on the badge to fill in required data elements for that badge type (like your username or repo) and optionally customize (label, colors etc.). And it's ready for use!</p>
<p>Use the button at the bottom to copy your badge url or snippet, which can then be added to places like your GitHub readme files or other web pages.</p>
<h2>Contributing</h2>
<p>Shields is a community project. We invite your participation through issues
and pull requests! You can peruse the <a href="https://github.com/badges/shields/blob/master/CONTRIBUTING.md">contributing guidelines</a>.</p>
<p>When adding or changing a service <a href="https://github.com/badges/shields/blob/master/doc/service-tests.md">please add tests</a>.</p>
<p>This project has quite a backlog of suggestions! If you're new to the project,
maybe you'd like to open a pull request to address one of them.</p>
<p>You can read a <a href="https://github.com/badges/shields/blob/master/doc/TUTORIAL.md">tutorial on how to add a badge</a>.</p>
<p><a href="https://github.com/badges/shields/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22"><img src="https://img.shields.io/github/issues/badges/shields/good%20first%20issue" alt="GitHub issues by-label"></a></p>
<p>If you intend on reporting or contributing a fix related to security vulnerabilities, please first refer to our <a href="https://github.com/badges/shields/blob/master/SECURITY.md">security policy</a>.</p>
<h2>Development</h2>
<p><a href="https://codespaces.new/badges/shields?quickstart=1"><img src="https://github.com/codespaces/badge.svg" alt="Open in GitHub Codespaces"></a></p>
<ol>
<li>Install Node 20 or later. You can use the <a href="https://nodejs.org/en/download/package-manager/">package manager</a> of your choice.
Tests need to pass in Node 20 and 22.</li>
<li>Clone this repository.</li>
<li>Run <code>npm ci</code> to install the dependencies.</li>
<li>Run <code>npm start</code> to start the badge server and the frontend dev server.</li>
<li>Open <code>http://localhost:3000/</code> to view the frontend.</li>
</ol>
<p>When server source files change, the badge server should automatically restart
itself (using <a href="https://nodemon.io/">nodemon</a>). When the frontend files change, the frontend dev
server (<code>docusaurus start</code>) should also automatically reload. However the badge
definitions are built only before the server first starts. To regenerate those,
either run <code>npm run prestart</code> or manually restart the server.</p>
<p>To debug a badge from the command line, run <code>npm run badge -- /npm/v/nock</code>.
It also works with full URLs like
<code>npm run badge -- https://img.shields.io/npm/v/nock</code>.</p>
<p>Use <code>npm run debug:server</code> to start server in debug mode.
<a href="https://github.com/Microsoft/vscode-recipes/tree/master/nodemon">This recipe</a> shows how to debug Node.js application in <a href="https://code.visualstudio.com/">VS Code</a>.</p>
<p>Shields has experimental support for <a href="https://www.gitpod.io/">Gitpod</a>, a pre-configured development
environment that runs in your browser. To use Gitpod, click the button below and
sign in with GitHub. Gitpod also offers a browser add-on, though it is not required.
Please report any Gitpod bugs, questions, or suggestions in issue
<a href="https://github.com/badges/shields/issues/2772">#2772</a>.</p>
<p><a href="https://gitpod.io/#https://github.com/badges/shields"><img src="https://gitpod.io/button/open-in-gitpod.svg" alt="Edit with Gitpod"></a></p>
<p><a href="https://glebbahmutov.com/blog/snapshot-testing/">Snapshot tests</a> ensure we don't inadvertently make changes that affect the
SVG or JSON output. When deliberately changing the output, run
<code>SNAPSHOT_DRY=1 npm run test:package</code> to preview changes to the saved
snapshots, and <code>SNAPSHOT_UPDATE=1 npm run test:package</code> to update them.</p>
<p>The server can be configured to use <a href="https://sentry.io/">Sentry</a> (<a href="https://github.com/badges/shields/blob/master/doc/self-hosting.md#sentry">configuration</a>) and <a href="https://prometheus.io/">Prometheus</a> (<a href="https://github.com/badges/shields/blob/master/doc/self-hosting.md#prometheus">configuration</a>).</p>
<p>Our <a href="https://github.com/badges/shields/actions/workflows/daily-tests.yml">full test suite</a> as well as <a href="https://coveralls.io/github/badges/shields">code coverage</a> are run on a daily basis.</p>
<h2>Hosting your own server</h2>
<p>There is documentation about <a href="https://github.com/badges/shields/blob/master/doc/self-hosting.md">hosting your own server</a>.</p>
<h2>Related projects</h2>
<p><a href="https://awesome.re"><img src="https://awesome.re/badge.svg" alt="Awesome"></a></p>
<p>Status badges are used widely across open-source and private software projects.
Academics have studied the &quot;signal&quot; badges provide about software project
quality. There are many existing libraries for rendering these badges, and
alternatives to the hosted Shields badge service. <a href="https://github.com/badges/awesome-badges">awesome-badges</a> is a
curated collection of such resources.
<a href="https://github.com/badges/awesome-badges/blob/main/CONTRIBUTING.md">Contributions</a> may be considered there.
(The presence of a project in that collection should not be interpreted as an endorsement nor promotion from the Shields project)</p>
<h2>History</h2>
<p>b.adge.me was the original website for this service. Heroku back then had a
thing which made it hard to use a toplevel domain with it, hence the odd
domain. It used code developed in 2013 from a library called
<a href="https://github.com/badges/gh-badges">gh-badges</a>, both developed by <a href="https://github.com/espadrine">Thaddée Tyl</a>.
The project merged with shields.io by making it use the b.adge.me code
and closed b.adge.me.</p>
<p>The original badge specification was developed in 2013 by
<a href="https://github.com/olivierlacan">Olivier Lacan</a>. It was inspired by the Travis CI and similar
badges (there were a lot fewer, back then). In 2014 Thaddée Tyl redesigned
it with help from a Travis CI employee and convinced everyone to switch to
it. The old design is what today is called the plastic style; the new one
is the flat style.</p>
<p>You can read more about <a href="https://github.com/h5bp/lazyweb-requests/issues/150">the project's inception</a>,
<a href="https://github.com/badges/shields/blob/master/spec/motivation.md">the motivation of the SVG badge specification</a>, and
<a href="https://github.com/badges/shields/blob/master/spec/SPECIFICATION.md">the specification itself</a>.</p>
<h2>Project leaders</h2>
<p>Maintainers:</p>
<ul>
<li><a href="https://github.com/calebcartwright">calebcartwright</a></li>
<li><a href="https://github.com/chris48s">chris48s</a></li>
<li><a href="https://github.com/jnullj">jNullj</a></li>
<li><a href="https://github.com/paulmelnikow">paulmelnikow</a></li>
<li><a href="https://github.com/PyvesB">PyvesB</a></li>
</ul>
<p>Alumni:</p>
<ul>
<li><a href="https://github.com/Daniel15">Daniel15</a></li>
<li><a href="https://github.com/espadrine">espadrine</a></li>
<li><a href="https://github.com/olivierlacan">olivierlacan</a></li>
<li><a href="https://github.com/platan">platan</a></li>
<li><a href="https://github.com/RedSparr0w">RedSparr0w</a></li>
</ul>
<h2>License</h2>
<p>All assets and code are under the <a href="LICENSE">CC0 LICENSE</a> and in the public
domain unless specified otherwise.</p>
<h2>Community</h2>
<p>Thanks to the people and companies who donate money, services or time to keep the project running. <a href="https://shields.io/community">https://shields.io/community</a></p></article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-badge-maker.html">badge-maker</a></li><li><a href="module-badge-maker_lib_xml.html">badge-maker/lib/xml</a></li><li><a href="module-core_base-service_base.html">core/base-service/base</a></li><li><a href="module-core_base-service_base-graphql.html">core/base-service/base-graphql</a></li><li><a href="module-core_base-service_base-json.html">core/base-service/base-json</a></li><li><a href="module-core_base-service_base-svg-scraping.html">core/base-service/base-svg-scraping</a></li><li><a href="module-core_base-service_base-toml.html">core/base-service/base-toml</a></li><li><a href="module-core_base-service_base-xml.html">core/base-service/base-xml</a></li><li><a href="module-core_base-service_base-yaml.html">core/base-service/base-yaml</a></li><li><a href="module-core_base-service_errors.html">core/base-service/errors</a></li><li><a href="module-core_base-service_graphql.html">core/base-service/graphql</a></li><li><a href="module-core_base-service_openapi.html">core/base-service/openapi</a></li><li><a href="module-core_base-service_resource-cache.html">core/base-service/resource-cache</a></li><li><a href="module-core_base-service_service-definitions.html">core/base-service/service-definitions</a></li><li><a href="module-core_server_server.html">core/server/server</a></li><li><a href="module-core_service-test-runner_create-service-tester.html">core/service-test-runner/create-service-tester</a></li><li><a href="module-core_service-test-runner_icedfrisby-shields.html">core/service-test-runner/icedfrisby-shields</a></li><li><a href="module-core_service-test-runner_runner.html">core/service-test-runner/runner</a></li><li><a href="module-core_service-test-runner_service-tester.html">core/service-test-runner/service-tester</a></li><li><a href="module-core_service-test-runner_services-for-title.html">core/service-test-runner/services-for-title</a></li><li><a href="module-core_token-pooling_token-pool.html">core/token-pooling/token-pool</a></li><li><a href="module-services_build-status.html">services/build-status</a></li><li><a href="module-services_color-formatters.html">services/color-formatters</a></li><li><a href="module-services_contributor-count.html">services/contributor-count</a></li><li><a href="module-services_date.html">services/date</a></li><li><a href="module-services_downloads.html">services/downloads</a></li><li><a href="module-services_dynamic-common.html">services/dynamic-common</a></li><li><a href="module-services_dynamic_json-path.html">services/dynamic/json-path</a></li><li><a href="module-services_endpoint-common.html">services/endpoint-common</a></li><li><a href="module-services_licenses.html">services/licenses</a></li><li><a href="module-services_package-json-helpers.html">services/package-json-helpers</a></li><li><a href="module-services_php-version.html">services/php-version</a></li><li><a href="module-services_pipenv-helpers.html">services/pipenv-helpers</a></li><li><a href="module-services_route-builder.html">services/route-builder</a></li><li><a href="module-services_size.html">services/size</a></li><li><a href="module-services_steam_steam-base.html">services/steam/steam-base</a></li><li><a href="module-services_text-formatters.html">services/text-formatters</a></li><li><a href="module-services_validators.html">services/validators</a></li><li><a href="module-services_version.html">services/version</a></li><li><a href="module-services_website-status.html">services/website-status</a></li><li><a href="module-services_winget_version.html">services/winget/version</a></li></ul><h3>Classes</h3><ul><li><a href="BaseThunderstoreService.html">BaseThunderstoreService</a></li><li><a href="module-badge-maker_lib_xml-ElementList.html">ElementList</a></li><li><a href="module-badge-maker_lib_xml-XmlElement.html">XmlElement</a></li><li><a href="module-core_base-service_base-graphql-BaseGraphqlService.html">BaseGraphqlService</a></li><li><a href="module-core_base-service_base-json-BaseJsonService.html">BaseJsonService</a></li><li><a href="module-core_base-service_base-svg-scraping-BaseSvgScrapingService.html">BaseSvgScrapingService</a></li><li><a href="module-core_base-service_base-toml-BaseTomlService.html">BaseTomlService</a></li><li><a href="module-core_base-service_base-xml-BaseXmlService.html">BaseXmlService</a></li><li><a href="module-core_base-service_base-yaml-BaseYamlService.html">BaseYamlService</a></li><li><a href="module-core_base-service_base-BaseService.html">BaseService</a></li><li><a href="module-core_base-service_errors-Deprecated.html">Deprecated</a></li><li><a href="module-core_base-service_errors-ImproperlyConfigured.html">ImproperlyConfigured</a></li><li><a href="module-core_base-service_errors-Inaccessible.html">Inaccessible</a></li><li><a href="module-core_base-service_errors-InvalidParameter.html">InvalidParameter</a></li><li><a href="module-core_base-service_errors-InvalidResponse.html">InvalidResponse</a></li><li><a href="module-core_base-service_errors-NotFound.html">NotFound</a></li><li><a href="module-core_base-service_errors-ShieldsRuntimeError.html">ShieldsRuntimeError</a></li><li><a href="module-core_server_server-Server.html">Server</a></li><li><a href="module-core_service-test-runner_runner-Runner.html">Runner</a></li><li><a href="module-core_service-test-runner_service-tester-ServiceTester.html">ServiceTester</a></li><li><a href="module-core_token-pooling_token-pool-Token.html">Token</a></li><li><a href="module-core_token-pooling_token-pool-TokenPool.html">TokenPool</a></li><li><a href="module-services_route-builder.html">services/route-builder</a></li><li><a href="module-services_steam_steam-base-BaseSteamAPI.html">BaseSteamAPI</a></li></ul><h3>Tutorials</h3><ul><li><a href="tutorial-TUTORIAL.html">TUTORIAL</a></li><li><a href="tutorial-adding-new-config-values.html">adding-new-config-values</a></li><li><a href="tutorial-authentication.html">authentication</a></li><li><a href="tutorial-badge-urls.html">badge-urls</a></li><li><a href="tutorial-code-walkthrough.html">code-walkthrough</a></li><li><a href="tutorial-deprecating-badges.html">deprecating-badges</a></li><li><a href="tutorial-input-validation.html">input-validation</a></li><li><a href="tutorial-json-format.html">json-format</a></li><li><a href="tutorial-performance-testing.html">performance-testing</a></li><li><a href="tutorial-production-hosting.html">production-hosting</a></li><li><a href="tutorial-releases.html">releases</a></li><li><a href="tutorial-self-hosting.html">self-hosting</a></li><li><a href="tutorial-server-secrets.html">server-secrets</a></li><li><a href="tutorial-service-tests.html">service-tests</a></li><li><a href="tutorial-static-badges.html">static-badges</a></li></ul><h3>Global</h3><ul><li><a href="global.html#createNumRequestCounter">createNumRequestCounter</a></li><li><a href="global.html#fakeJwtToken">fakeJwtToken</a></li><li><a href="global.html#generateFakeConfig">generateFakeConfig</a></li><li><a href="global.html#getBadgeExampleCall">getBadgeExampleCall</a></li><li><a href="global.html#getServiceClassAuthOrigin">getServiceClassAuthOrigin</a></li><li><a href="global.html#isMetricWithPattern">isMetricWithPattern</a></li><li><a href="global.html#testAuth">testAuth</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a> on Sun Mar 16 2025 20:33:29 GMT+0000 (Coordinated Universal Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>