npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

github-badge-action

v2.0.0

Published

Create a badge using GitHub Actions inputs & outputs, and save it into a file

Downloads

66

Readme

Test Coverage Test generated badge

GitHub Badge action

This module generates a SVG badge using GitHub Actions inputs and outputs. The badge is generated using the NPM package gradient-badge and echoed as a GitHub Action output, and saved into a file if a path is given. This is the core of the GitHub Action Badge action.

Install

With npm:

npm install github-badge-action

With yarn:

yarn add github-badge-action

Usage

const { createBadgeFromInputs } = require('github-badge-action');
createBadgeFromInputs();

Inputs

Inputs are read from action's inputs using core.input, fixed and passed directly to gradient-badge.

Change input names

The input names are taken from createBadgeFromInputs's inputMap argument, which has this deafults:

const defaultInputMap = {
  label: 'label',
  labelColor: 'label-color',
  status: 'status',
  gradient: 'color',
  style: 'style',
  icon: 'icon',
  iconWidth: 'icon-width',
  scale: 'scale',
  path: 'path',
};

You can import it and modify just some of the options names:

const {
  createBadgeFromInputs,
  defaultInputMap
} = require('github-badge-action');

createBadgeFromInputs({
  inputMap: {
    ...defaultInputMap,
    gradient: 'gradient',
  },
});

Change input fixes

Once the inputs are read, some fixes are applied. The default ones are:

const defaultInputFixes = {
  // Ensure string
  status: (status) => `${status}`,

  // Ensure null if empty
  icon: (icon) => icon?.length ? icon : null,

  // Color gradient as Array
  gradient: (gradient) => gradient
      .split(',')
      // Clean spaces
      .map((color) => color.trim(' ')),
};

You can also change the fixes applied to the inputs, or add more using inputFixes option:

const {
  createBadgeFromInputs,
  defaultInputFixes
} = require('github-badge-action');

createBadgeFromInputs({
  inputFixes: {
    ...defaultInputFixes,
    // Color gradient as Array, split with a pipe '|' instead of a comma ','
    gradient: ({ gradient }) => gradient
        .split('|')
        // Clean spaces
        .map((color) => color.trim(' ')),
  },
});

Available options

label

Required The left label of the badge, usually static.

label-color

Required Hex or named color for the label. Default: 555

status

Required The right status as the badge, usually based on results.

color

Required An array (comma separated) with hex or named colors of the badge value background. More than one creates gradient background. Default: blue.

style

Required Badge style: flat or classic. Default: classic

icon

Use icon.

icon-width

Set this if icon is not square. Default: 13

scale

Set badge scale. Default: 1

path

The file path to store the badge image file. Only output to badge action output if not defined.

Outputs

badge

Once the badge is generated, the SVG contents are written to an action output (by default). The name of the output can be modified using outputName option:

createBadgeFromInputs({
  outputName: 'badge-svg-custom'
});

If the option is null or empty, output will not be written. The default option name is badge.