> ## Documentation Index
> Fetch the complete documentation index at: https://docs.incident.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Managing Catalog Types in GitHub

This feature is useful when you want to version control catalog types you've created in the incident.io dashboard.

<img src="https://mintcdn.com/incidentio-18bb4170/iopR3BNEfSUPs05k/images/help-centre/managing-catalog-types-in-github/screenshot-1.png?fit=max&auto=format&n=iopR3BNEfSUPs05k&q=85&s=de4d2d525fe4e8df32d3ff4bbd6da2cb" alt="The Manage in GitHub wizard at the Select custom types step, with Service ticked" width="3048" height="1574" data-path="images/help-centre/managing-catalog-types-in-github/screenshot-1.png" />

This feature will generate all the files you need, and configure GitHub to automatically sync changes you make from the repository to the catalog in incident.io.

Once you've configured a catalog type to be managed in GitHub, you'll no longer be able to edit it through the dashboard.

## Can I use it?

If you have access to custom types in the catalog, you can also use the manage in GitHub feature.

## How do I use it?

On the catalog homepage, above your custom types, there's a "Manage in GitHub" button. Clicking it will take you through the process of configuring one or more catalog types to be managed in GitHub.

<img src="https://mintcdn.com/incidentio-18bb4170/iopR3BNEfSUPs05k/images/help-centre/managing-catalog-types-in-github/screenshot-2.png?fit=max&auto=format&n=iopR3BNEfSUPs05k&q=85&s=07d285d1dff779ef5fcb939c5458ff15" alt="The Manage in Github button above the custom types on the catalog homepage" width="1014" height="584" data-path="images/help-centre/managing-catalog-types-in-github/screenshot-2.png" />

## How do I change catalog types once they're managed in GitHub?

To change catalog types, edit the [jsonnet](https://jsonnet.org/) files in your repository and open a pull request.

<img src="https://mintcdn.com/incidentio-18bb4170/iopR3BNEfSUPs05k/images/help-centre/managing-catalog-types-in-github/screenshot-3.png?fit=max&auto=format&n=iopR3BNEfSUPs05k&q=85&s=5b6304be92884349af966234f82d0121" alt="A pull request diff on a jsonnet catalog file, adding a new entry called Three" width="1536" height="684" data-path="images/help-centre/managing-catalog-types-in-github/screenshot-3.png" />

A GitHub action will run and show you the changes that will be made to the catalog.

<img src="https://mintcdn.com/incidentio-18bb4170/iopR3BNEfSUPs05k/images/help-centre/managing-catalog-types-in-github/screenshot-4.png?fit=max&auto=format&n=iopR3BNEfSUPs05k&q=85&s=b4322077d5438ec7a7ec022ada668171" alt="GitHub action output listing the catalog entries it will create, update and delete" width="1032" height="578" data-path="images/help-centre/managing-catalog-types-in-github/screenshot-4.png" />

If you're happy with the changes, merge the pull request and another action will run and sync the change to your incident.io catalog.

## How does it work?

Under the hood, this feature uses our [catalog importer](https://github.com/incident-io/catalog-importer). This is a flexible tool for syncing external data in to the catalog. If you're looking to do more complex things with external data in the catalog, the examples included with the catalog importer are a great place to start.
