Include GitHub scaffolder actions

Signed-off-by: Andre Wanlin <awanlin@spotify.com>
This commit is contained in:
Andre Wanlin
2024-03-23 22:25:39 +01:00
parent dbfa793e25
commit 7e182e644c
5 changed files with 55 additions and 3 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Include `@backstage/plugin-scaffolder-backend-module-github` out of the box
@@ -8,8 +8,46 @@ The scaffolder comes with several built-in actions for fetching content,
registering in the catalog and of course actions for creating and publishing a
git repository.
There are several repository providers supported out of the box such as GitHub,
Azure, GitLab and Bitbucket.
## Action Modules
The GitHub module is included out of the box, but several other modules are available:
- Azure DevOps: `@backstage/plugin-scaffolder-backend-module-azure`
- Bitbucket Cloud: `@backstage/plugin-scaffolder-backend-module-bitbucket-cloud`
- Bitbucket Server: `@backstage/plugin-scaffolder-backend-module-bitbucket-server`
- Gerrit: `@backstage/plugin-scaffolder-backend-module-gerrit`
- Gittea: `@backstage/plugin-scaffolder-backend-module-gittea`
- GitLab: `@backstage/plugin-scaffolder-backend-module-gitlab`
Here's how to add an action module, this is a simplified backend for example purposes:
```ts title="/packages/backend/src/index.ts
import { createBackend } from '@backstage/backend-defaults';
const backend = createBackend();
backend.add(import('@backstage/plugin-app-backend/alpha'));
// catalog plugin
backend.add(import('@backstage/plugin-catalog-backend/alpha'));
backend.add(
import('@backstage/plugin-catalog-backend-module-scaffolder-entity-model'),
);
// scaffolder plugin
backend.add(import('@backstage/plugin-scaffolder-backend/alpha'));
{
/* highlight-add-start */
}
backend.add(import('@backstage/plugin-scaffolder-backend-module-azure'));
{
/* highlight-add-end */
}
backend.start();
```
## Listing Actions
A list of all registered actions can be found under `/create/actions`. For local
development you should be able to reach them at
+3
View File
@@ -74,6 +74,7 @@ import { version as pluginProxyBackend } from '../../../../plugins/proxy-backend
import { version as pluginRollbarBackend } from '../../../../plugins/rollbar-backend/package.json';
import { version as pluginScaffolder } from '../../../../plugins/scaffolder/package.json';
import { version as pluginScaffolderBackend } from '../../../../plugins/scaffolder-backend/package.json';
import { version as pluginScaffolderBackendModuleGithub } from '../../../../plugins/scaffolder-backend-module-github/package.json';
import { version as pluginSearch } from '../../../../plugins/search/package.json';
import { version as pluginSearchReact } from '../../../../plugins/search-react/package.json';
import { version as pluginSearchBackend } from '../../../../plugins/search-backend/package.json';
@@ -134,6 +135,8 @@ export const packageVersions = {
'@backstage/plugin-rollbar-backend': pluginRollbarBackend,
'@backstage/plugin-scaffolder': pluginScaffolder,
'@backstage/plugin-scaffolder-backend': pluginScaffolderBackend,
'@backstage/plugin-scaffolder-backend-module-github':
pluginScaffolderBackendModuleGithub,
'@backstage/plugin-search': pluginSearch,
'@backstage/plugin-search-react': pluginSearchReact,
'@backstage/plugin-search-backend': pluginSearchBackend,
@@ -33,6 +33,7 @@
"@backstage/plugin-permission-node": "^{{version '@backstage/plugin-permission-node'}}",
"@backstage/plugin-proxy-backend": "^{{version '@backstage/plugin-proxy-backend'}}",
"@backstage/plugin-scaffolder-backend": "^{{version '@backstage/plugin-scaffolder-backend'}}",
"@backstage/plugin-scaffolder-backend-module-github": "^{{version '@backstage/plugin-scaffolder-backend-module-github'}}",
"@backstage/plugin-search-backend": "^{{version '@backstage/plugin-search-backend'}}",
"@backstage/plugin-search-backend-module-catalog": "^{{version '@backstage/plugin-search-backend-module-catalog'}}",
"@backstage/plugin-search-backend-module-techdocs": "^{{version '@backstage/plugin-search-backend-module-techdocs'}}",
@@ -12,7 +12,6 @@ const backend = createBackend();
backend.add(import('@backstage/plugin-app-backend/alpha'));
backend.add(import('@backstage/plugin-proxy-backend/alpha'));
backend.add(import('@backstage/plugin-scaffolder-backend/alpha'));
backend.add(import('@backstage/plugin-techdocs-backend/alpha'));
// auth plugin
@@ -33,6 +32,12 @@ backend.add(
import('@backstage/plugin-permission-backend-module-allow-all-policy'),
);
// scaffolder plugin
backend.add(import('@backstage/plugin-scaffolder-backend/alpha'));
// See: https://backstage.io/docs/features/software-templates/builtin-actions#action-modules
// If you don't use GitHub, feel free to remove this
backend.add(import('@backstage/plugin-scaffolder-backend-module-github'));
// search plugin
backend.add(import('@backstage/plugin-search-backend/alpha'));
backend.add(import('@backstage/plugin-search-backend-module-catalog/alpha'));