https://github.com/nervetattoo/tracker-json
Easily generate a tracker.json file for your Home Assistant custom cards on new releases
https://github.com/nervetattoo/tracker-json
custom-cards home-assistant lovelace lovelace-ui
Last synced: 24 days ago
JSON representation
Easily generate a tracker.json file for your Home Assistant custom cards on new releases
- Host: GitHub
- URL: https://github.com/nervetattoo/tracker-json
- Owner: nervetattoo
- Created: 2019-01-19T21:12:52.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-02-11T07:03:46.000Z (over 6 years ago)
- Last Synced: 2025-04-22T22:23:01.113Z (about 1 month ago)
- Topics: custom-cards, home-assistant, lovelace, lovelace-ui
- Language: JavaScript
- Homepage:
- Size: 58.6 KB
- Stars: 7
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# tracker-json
> Easily generate a tracker.json file for your Home Assistant custom cards on new releases
[](https://badge.fury.io/js/tracker-json)
## Installation
Either install tracker-json globally `npm i -g tracker-json` or locally in your cards project (`npm i --save-dev tracker-json`).
The command `tracker-json` then either gets installed in your system or in your project## Configuration
You configure `tracker-json` in your custom cards source repo, in its `package.json` file.
If my custom card project is called *awesome-card* I could configure it like so:```json
{
"tracker-json": {
"awesome-card": {
"repo": "nervetattoo/awesome-card",
"resolve": "gh:release"
}
}
}
```Now, when you run `tracker-json` it will generate github repo specific URLs, get the version off of the one in `package.json` and set the cards update date to today.
You can specify multiple keys in the configuration to create different variations of your custom card.### Supported configuration parameters
| Option | Default | Description |
| --- | --- | --- |
| repo | package.json repo field | A repo slug like github-user/repo-name |
| file | package.json file field | The filename to link to inside the repo |
| resolve | gh:repo | Strategy for file locations are resolution |### Resolvers
- *gh:repo*
- Uses the commit log up until the release tag as changelog
- Uses the raw.githubusercontent.com domain to locate the file
- *gh:release*
- Uses the Github release with the version name for changelog. Remember to publish a changelog in the release
- Uses the release assets to link to the file. Remember to publish the asset to the release## Basic usage
In the folder you want to store your `tracker.json` you can run the command `tracker-json `. For example:
```bash
$ tracker-json.js 1.0.0
✓ tracker.json generated
my-card 1.0.0
```## Using with release-it
I highly recommend using `tracker-json` with [release-it](https://github.com/webpro/release-it) for release handling.
release-it is a one-stop-shop to release a package following semantic versioning and also generate changelogs and publish the release to GitHub and optionally publishing to npm.
Using release-it you would handle cutting a new release with commands like `release-it major|minor|patch` and it handles everything else for you.
`tracker-json` currently only supports linking to releases with changelogs on GitHub, so you need to configure `release-it` with one of its hooks to trigger `tracker-json` as well as making sure it generates releases on GitHub:```json
{
"release-it": {
"github": {
"release": true
},
"scripts": {
"afterBump": "npx tracker-json"
}
}
}
```