The Catalog Import Plugin provides a wizard to onboard projects with existing catalog-info.yaml files.
It also assists by creating pull requests in repositories where no catalog-info.yaml exists.

Current features:
catalog-info.yaml files from a URL in a repository of one of the supported Git integrations (example https://github.com/backstage/backstage/catalog-info.yaml).catalog-info.yaml files in a Git repository (example: https://github.com/backstage/backstage).Some features are not yet available for all supported Git providers.
Install the Catalog Import Plugin:
# From your Backstage root directory
yarn --cwd packages/app add @backstage/plugin-catalog-import
Once installed, the plugin is automatically available in your app through the default feature discovery. For more details and alternative installation methods, see installing plugins.
A custom layout can be passed to the import page, as it's already supported by the search page. If no custom layout is passed, the default layout is used.
<Route path="/catalog-import" element={<CatalogImportPage />}>
<Page themeId="home">
<Header title="Register an existing component" />
<Content>
<ContentHeader title="Start tracking your components">
<SupportButton>
Start tracking your component in Backstage by adding it to the
software catalog.
</SupportButton>
</ContentHeader>
<Grid container spacing={2} direction="row-reverse">
<Grid item xs={12} md={4} lg={6} xl={8}>
Hello World
</Grid>
<Grid item xs={12} md={8} lg={6} xl={4}>
<ImportStepper />
</Grid>
</Grid>
</Content>
</Page>
</Route>
Previously it was possible to disable and customize the automatic pull request
feature by passing options to <CatalogImportPage> (pullRequest.disable and
pullRequest.preparePullRequest). This functionality is moved to the
CatalogImportApi which now provides an optional preparePullRequest()
function. The function can either be overridden to generate a different content
for the pull request, or removed to disable this feature.
Entity filename (default: catalog-info.yaml) and branch name (default: backstage-integration) used in pull requests can be configured in app-config.yaml as follows:
// app-config.yaml
catalog:
import:
entityFilename: anvil.yaml
pullRequestBranchName: anvil-integration
Following React components accept optional props for providing custom example entity and repository paths:
<StepInitAnalyzeUrl
...
exampleLocationUrl="https://github.com/acme-corp/our-awesome-api/blob/main/anvil.yaml"
/>
<ImportInfoCard
exampleLocationUrl="https://github.com/acme-corp/our-awesome-api/blob/main/anvil.yaml"
exampleRepositoryUrl="https://github.com/acme-corp/our-awesome-api"
/>
If your Backstage app uses the old frontend system, you need to manually wire the plugin into your app as outlined in this section. If you are on the new frontend system, you can skip this.
Add the CatalogImportPage extension to the app:
// packages/app/src/App.tsx
import { CatalogImportPage } from '@backstage/plugin-catalog-import';
<Route path="/catalog-import" element={<CatalogImportPage />} />;
Use yarn start to run a development version of the plugin that can be used to validate each flow with mocked data.