This action allows you to create badges for your README.md with [shields.io](https://shields.io) which may change with every commit. To do this, this action does not need to push anything to your repository!
This JSON object is then uploaded to a _gist_ ([click here for an example](https://gist.github.com/Schneegans/2ab8f1d386f13aaebccbd87dac94068d)) and automatically transformed to [](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/schneegans/2ab8f1d386f13aaebccbd87dac94068d/raw/hello-world.json) with the **shields.io/endpoint**.
The action also supports an _SVG mode_ in which the badge is created directly by the action and uploaded as image to the gist.
This mode does not support all features of shields.io but is useful if you cannot use shields.io for some reason.
[](https://gist.githubusercontent.com/Schneegans/2ab8f1d386f13aaebccbd87dac94068d/raw/badge.svg) which is directly stored in a gist.
<details><summary>Show Markdown of this Badge!</summary>
Both, JSON and SVG mode support emoji in the label and message.
However, this is especially great in SVG mode which does not support icons. Here's an SVG emoji badge which does not use shields.io at all: .
1. Head over to [gist.github.com](https://gist.github.com/) and create a new gist. You can name the file `test.json`, but this can be changed later as well. You will need the ID of the gist (this is the long alphanumerical part of its URL) later.
2. Navigate to [github.com/settings/tokens](https://github.com/settings/tokens) and create a new token with the _gist_ scope.
3. Go to the _Secrets_ page of the settings of your repository (Settings > Secrets > Actions) and add this token as a new secret. You can give it any name, for example `GIST_SECRET`. **If you use Dependabot to automatically update dependencies of your repository, you also have to add this secret to Dependabot's secrets (Settings > Secrets > Dependabot).**
| `auth` | A secret token with the _gist_ scope. |
| `gistID` | The ID of the target gist. Something like `8f6459c2417de7534f64d98360dde866`. |
| `filename` | The target filename - each gist may contain several files. This should have a `.json` extension if you want to use **shields.io/endpoint** or an `.svg` extension if you want to use the **SVG mode** described above. |
| `host` | Default is `https://api.github.com/gists/`. You can change this if you're using GitHub enterprise. The URL will be something like `github-enterprise-hostname/api/v3/gists`. | ✅ |
| `forceUpdate` | Default is `false`. If set to `true`, the gist will be updated even if the content did not change. | ✅ |
They are directly passed to [shields.io](https://shields.io). See the [official documentation](https://shields.io/endpoint) for more detailed explanations.
| `label` | Required. The left text of the badge. | ✅ |
| `message` | Required. The right text of the badge. | ✅ |
| `labelColor` | The left color of the badge. | ✅ |
| `color` | The right color of the badge. For custom colors wrap color string in quotes `"#bf155b"`. This parameter is ignored if the `valColorRange`, `maxColorRange`, and `minColorRange` are set. | ✅ |
| `isError` | The color will be red and cannot be overridden. | |
| `namedLogo` | A logo name from [simpleicons.org](http://simpleicons.org/). | |
| `logoSvg` | An svg-string to be used as logo. | |
| `logoColor` | The color for the logo. | |
| `logoWidth` | The space allocated for the logo. | |
| `logoPosition` | The position of the logo. | |
| `style` | The style like "flat" or "social". | ✅ |
| `cacheSeconds` | The cache lifetime in seconds (must be greater than 300). | |
Starting with version 1.3.0 of this action, the color of the right side of the badge can be computed automatically on a green-to-red color-scale. For example, these badges have been colored with `minColorRange: 50` and `maxColorRange: 90`:
| `valColorRange` | A numerical value used to define the message color. Usually this should be between `maxColorRange` and `minColorRange`. This is required if you want to use the color range feature. | ✅ |
| `maxColorRange` | If `valColorRange` assumes this value, the badge will be green. This is required if you want to use the color range feature. | ✅ |
| `minColorRange` | If `valColorRange` assumes this value, the badge will be red. This is required if you want to use the color range feature. | ✅ |
| `invertColorRange` | If the range should be inverted, causing a smaller value to have green color. Defaults to `false`. | ✅ |
| `colorRangeSaturation` | Saturation used by the color range feature. Defaults to 100. | ✅ |
| `colorRangeLightness` | Lightness used by the color range feature. Defaults to 40. | ✅ |
### Using Environment Variables as Parameters [](https://gist.githubusercontent.com/schneegans/2ab8f1d386f13aaebccbd87dac94068d)
Commits should start with a Capital letter and should be written in present tense (e.g. **:tada: Add cool new feature** instead of **:tada: Added cool new feature**).
You should also start your commit message with **one** applicable emoji. This does not only look great but also makes you rethink what to add to a commit. Make many but small commits!