diff --git a/.changeset/seven-kangaroos-sit.md b/.changeset/seven-kangaroos-sit.md new file mode 100644 index 0000000000..c4d2fb5b22 --- /dev/null +++ b/.changeset/seven-kangaroos-sit.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Include `@backstage/plugin-scaffolder-backend-module-github` out of the box diff --git a/docs/features/software-templates/builtin-actions.md b/docs/features/software-templates/builtin-actions.md index 1b3a53b5d9..a40caf4c42 100644 --- a/docs/features/software-templates/builtin-actions.md +++ b/docs/features/software-templates/builtin-actions.md @@ -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 diff --git a/packages/create-app/src/lib/versions.ts b/packages/create-app/src/lib/versions.ts index 76f3c37f78..288135c5db 100644 --- a/packages/create-app/src/lib/versions.ts +++ b/packages/create-app/src/lib/versions.ts @@ -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, diff --git a/packages/create-app/templates/default-app/packages/backend/package.json.hbs b/packages/create-app/templates/default-app/packages/backend/package.json.hbs index 93228e5c8f..cbf2a0389e 100644 --- a/packages/create-app/templates/default-app/packages/backend/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/backend/package.json.hbs @@ -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'}}", diff --git a/packages/create-app/templates/default-app/packages/backend/src/index.ts b/packages/create-app/templates/default-app/packages/backend/src/index.ts index 44fde697ec..c93dba382a 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/index.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/index.ts @@ -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'));