register existing command for each template, Entity Providers will scan your GitHub repositories and automatically import all template descriptors.
Manual Template Registration in Backstage
Traditionally, you’d register a new template by copying its Git URL and running:app-config.yaml needs scaffolder settings and authentication:
Why Automate Template Imports?
- Reduce manual steps and human error
- Keep templates in sync automatically
- Scale effortlessly as your template library grows
Setting Up GitHub Entity Providers
Backstage can continuously poll GitHub (or other SCMs) forcatalog-info.yaml or any YAML entity descriptors. Here’s an example of existing GitHub providers in app-config.yaml:
Entity Providers treat templates the same way they treat components, APIs, and docs—every valid YAML descriptor is an entity.
Organizing Your Repository for Template Imports
In our GitHub repo, all templates live under a dedicatedtemplates folder:

-template.yaml and resides under templates/, they won’t match the default /catalog-info.yaml. The solution is to add a new GitHub provider that points to templates/**/*.yaml.
Adding a GitHub Provider for Templates
Update thecatalog.providers.github section in app-config.yaml by appending a github-templates provider:
| Field | Description | Example |
|---|---|---|
| organization | GitHub org or user | Sanjeev-Thiyagarajan |
| catalogPath | Glob pattern for descriptor files | templates/**/*.yaml |
| filters.branch | Branch to scan | main |
| filters.repo | Repository name regex | backstage-templates |
| schedule | Frequency and timeout for periodic scanning | { minutes: 20 }, { minutes: 2 } |
catalogPath: 'templates/**/*.yaml'instructs Backstage to crawl all subdirectories undertemplates.repository: 'backstage-templates'limits the scan to that single repo.schedulecontrols how often the import runs.
After saving
app-config.yaml, you must restart your Backstage backend for changes to take effect.Verifying Imported Templates
Once the backend is back online, open the Backstage UI and navigate to Create ▶︎. You should see your Express API and other templates automatically appear: