npm package: @roadiehq/backstage-plugin-bulk-catalog-import
Description: ![repos list in the Bulk Catalog Import plugin for Backstage](https://raw.githubusercontent.com/RoadieHQ/backstage-plugin-bulk-catalog-import/master/docs/repo-list.png)
Latest version: 0.1.0

# Bulk Catalog Import Plugin for Backstage

![repos list in the Bulk Catalog Import plugin for Backstage](https://raw.githubusercontent.com/RoadieHQ/backstage-plugin-bulk-catalog-import/master/docs/repo-list.png)

[https://roadie.io/backstage/plugins/bulk-catalog-import](https://roadie.io/backstage/plugins/bulk-catalog-import)

## Features

- Display a list of github repositories for yourself or your organization
- Create initial backstage configuration file for multiple repositories at once
- Automatically Submit a Pull Request to each selected repo with generated config file

## How to add bulk-catalog-import project dependency to Backstage app

If you have your own backstage application without this plugin, here it's how to add it:

1. In the `backstage/packages/app` project add the plugin as a `package.json` dependency:

```bash
yarn add @roadiehq/backstage-plugin-bulk-catalog-import
```

2. Add plugin to the list of plugins:

```ts
// packages/app/src/plugins.ts
export { plugin as BulkCatalogImportPlugin } from '@roadiehq/backstage-plugin-bulk-catalog-import';
```

3. Add plugin to the Router in `App.tsx` source file:

```tsx
// packages/app/src/App.tsx
import { Router as BulkCatalogImportRouter } from '@roadiehq/backstage-plugin-bulk-catalog-import';

...

<Route
  path="/bulk-catalog-import/*"
  element={<BulkCatalogImportRouter />}
/>
```

1. Add a link to the plugin in the app, for example:

```tsx
// packages/app/src/components/Root/Root.tsx
<SidebarItem
  icon={AddIcon}
  to="bulk-catalog-import"
  text="Bulk catalog import"
/>
```

## How to use bulk-catalog-import plugin in Backstage

If you are not yet authenticated via GitHub OAuth, on the first visit plugin will prompt you to login via GitHub.

Your organization may have Third-party application access restriction, which means that upon authenticating with Github you will be able to request organization owner to grant backstage app access to organization private data via GitHub API. Until the access is granted, you won't be able to access organization's data via this plugin. Note that you have to be an organization's member, not an outside collaborator to be able to fetch organization's data via GitHub API.

![Login via GitHub prompt](https://raw.githubusercontent.com/RoadieHQ/backstage-plugin-bulk-catalog-import/master/docs/request.png)

## Develop plugin locally

You can clone the plugin repo into the `packages/` directory:

```sh
git clone https://github.com/RoadieHQ/backstage-plugin-bulk-catalog-import.git bulk-catalog-import
```

and run `yarn` in the root backstage directory - it will create a symbolic link so the dependency will be provided from the source code instead of node_modules package.

## Links

- [Backstage](https://backstage.io)
- [Further instructons](https://roadie.io/backstage/plugins/bulk-catalog-import/)
- Get hosted, managed Backstage for your company: https://roadie.io