This is the official catalog importer for the incident.io catalog. It can be used to sync catalog data from sources like local files or GitHub and push them into the incident.io catalog.
macOS users can install the catalog using brew:
brew tap incident-io/homebrew-taps
brew install catalog-importer
Otherwise, ensure that the go runtime is installed and then:
go install -v github.com/incident-io/catalog-importer/v2/cmd/catalog-importer@latest
Once installed, see documentation for example catalogs and CI config.
A Docker image is available for containerised environments; see Docker Hub for more details of the image and available tags.
You may wish to deploy this on a scheduled basis to sync your catalog data. To do that, you'll need to ensure that the necessary configuration is mounted into the container and that the API key is supplied as an environment variable.
docker run \
-v $(pwd)/docs/simple:/config --workdir /config \
-e 'INCIDENT_API_KEY=<key>' \
--rm -it \
incidentio/catalog-importer:latest \
sync --config /config/importer.jsonnet
If you manage some of your catalog types through the catalog importer, you can
now pass a --source-repo-url
parameter when running the catalog importer to
associate the URL of the repository where you're storing your catalog types
with those types.
This will prevent the catalog types you're syncing from being edited in the catalog UI, and add a link in the UI from those types to your repository.
We're happy to accept open-source contributions or feedback. Just open a PR/issue and we'll get back to you. This repo contains details on how to get started with local development, and how to publish a new release.