diff --git a/.changeset/itchy-goats-melt.md b/.changeset/itchy-goats-melt.md
new file mode 100644
index 0000000000..dc61285d11
--- /dev/null
+++ b/.changeset/itchy-goats-melt.md
@@ -0,0 +1,8 @@
+---
+'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
+'@backstage/plugin-scaffolder-backend-module-sentry': patch
+'@backstage/plugin-scaffolder-backend-module-yeoman': patch
+'@backstage/plugin-scaffolder-backend-module-rails': patch
+---
+
+Internal refactor to use the new scaffolder-node package for some functionality
diff --git a/.changeset/lazy-badgers-try.md b/.changeset/lazy-badgers-try.md
new file mode 100644
index 0000000000..99491f4bee
--- /dev/null
+++ b/.changeset/lazy-badgers-try.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-node': minor
+---
+
+New package that takes over some of the types and functionality from scaffolder-backend that are shared with other modules
diff --git a/plugins/scaffolder-backend-module-cookiecutter/api-report.md b/plugins/scaffolder-backend-module-cookiecutter/api-report.md
index e55c6368c4..76f2ced66f 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/api-report.md
+++ b/plugins/scaffolder-backend-module-cookiecutter/api-report.md
@@ -8,7 +8,7 @@
import { ContainerRunner } from '@backstage/backend-common';
import { JsonObject } from '@backstage/types';
import { ScmIntegrations } from '@backstage/integration';
-import { TemplateAction } from '@backstage/plugin-scaffolder-backend';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
import { UrlReader } from '@backstage/backend-common';
// @public
diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json
index 6a1ee7fd3b..57457dc051 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/package.json
+++ b/plugins/scaffolder-backend-module-cookiecutter/package.json
@@ -28,6 +28,7 @@
"@backstage/errors": "workspace:^",
"@backstage/integration": "workspace:^",
"@backstage/plugin-scaffolder-backend": "workspace:^",
+ "@backstage/plugin-scaffolder-node": "workspace:^",
"@backstage/types": "workspace:^",
"command-exists": "^1.2.9",
"fs-extra": "10.1.0",
diff --git a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts
index 15e5d25183..f8b049f95f 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts
+++ b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts
@@ -27,7 +27,7 @@ import os from 'os';
import { PassThrough } from 'stream';
import { createFetchCookiecutterAction } from './cookiecutter';
import { join } from 'path';
-import type { ActionContext } from '@backstage/plugin-scaffolder-backend';
+import type { ActionContext } from '@backstage/plugin-scaffolder-node';
const executeShellCommand = jest.fn();
const commandExists = jest.fn();
diff --git a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts
index 7575627506..5c69b9dce2 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts
+++ b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.ts
@@ -27,10 +27,10 @@ import fs from 'fs-extra';
import path, { resolve as resolvePath } from 'path';
import { Writable } from 'stream';
import {
- createTemplateAction,
fetchContents,
executeShellCommand,
} from '@backstage/plugin-scaffolder-backend';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
export class CookiecutterRunner {
private readonly containerRunner: ContainerRunner;
diff --git a/plugins/scaffolder-backend-module-rails/api-report.md b/plugins/scaffolder-backend-module-rails/api-report.md
index 551da91314..c91daa1344 100644
--- a/plugins/scaffolder-backend-module-rails/api-report.md
+++ b/plugins/scaffolder-backend-module-rails/api-report.md
@@ -6,7 +6,7 @@
import { ContainerRunner } from '@backstage/backend-common';
import { JsonObject } from '@backstage/types';
import { ScmIntegrations } from '@backstage/integration';
-import { TemplateAction } from '@backstage/plugin-scaffolder-backend';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
import { UrlReader } from '@backstage/backend-common';
// @public
diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json
index 408db6d559..98a5db9de8 100644
--- a/plugins/scaffolder-backend-module-rails/package.json
+++ b/plugins/scaffolder-backend-module-rails/package.json
@@ -28,6 +28,7 @@
"@backstage/errors": "workspace:^",
"@backstage/integration": "workspace:^",
"@backstage/plugin-scaffolder-backend": "workspace:^",
+ "@backstage/plugin-scaffolder-node": "workspace:^",
"@backstage/types": "workspace:^",
"command-exists": "^1.2.9",
"fs-extra": "^10.0.1"
diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts
index 4a5bd7dfd1..2a8a2554a2 100644
--- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts
+++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.ts
@@ -19,10 +19,8 @@ import { JsonObject } from '@backstage/types';
import { InputError } from '@backstage/errors';
import { ScmIntegrations } from '@backstage/integration';
import fs from 'fs-extra';
-import {
- createTemplateAction,
- fetchContents,
-} from '@backstage/plugin-scaffolder-backend';
+import { fetchContents } from '@backstage/plugin-scaffolder-backend';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { resolve as resolvePath } from 'path';
import { RailsNewRunner } from './railsNewRunner';
diff --git a/plugins/scaffolder-backend-module-sentry/api-report.md b/plugins/scaffolder-backend-module-sentry/api-report.md
index 8b0c229e03..ef09bdebc0 100644
--- a/plugins/scaffolder-backend-module-sentry/api-report.md
+++ b/plugins/scaffolder-backend-module-sentry/api-report.md
@@ -4,7 +4,7 @@
```ts
import { Config } from '@backstage/config';
-import { TemplateAction } from '@backstage/plugin-scaffolder-backend';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
// @public
export function createSentryCreateProjectAction(options: {
diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json
index 8eaf5c398d..c99308c5e0 100644
--- a/plugins/scaffolder-backend-module-sentry/package.json
+++ b/plugins/scaffolder-backend-module-sentry/package.json
@@ -25,7 +25,7 @@
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
"@backstage/integration": "workspace:^",
- "@backstage/plugin-scaffolder-backend": "workspace:^"
+ "@backstage/plugin-scaffolder-node": "workspace:^"
},
"peerDependencies": {
"react": "^16.13.1 || ^17.0.0"
diff --git a/plugins/scaffolder-backend-module-sentry/src/actions/createProject.ts b/plugins/scaffolder-backend-module-sentry/src/actions/createProject.ts
index bfcc8f016b..85a74eda07 100644
--- a/plugins/scaffolder-backend-module-sentry/src/actions/createProject.ts
+++ b/plugins/scaffolder-backend-module-sentry/src/actions/createProject.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { createTemplateAction } from '@backstage/plugin-scaffolder-backend';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { InputError } from '@backstage/errors';
import { Config } from '@backstage/config';
diff --git a/plugins/scaffolder-backend-module-yeoman/api-report.md b/plugins/scaffolder-backend-module-yeoman/api-report.md
index 0f8747e592..562fe52ac2 100644
--- a/plugins/scaffolder-backend-module-yeoman/api-report.md
+++ b/plugins/scaffolder-backend-module-yeoman/api-report.md
@@ -4,7 +4,7 @@
```ts
import { JsonObject } from '@backstage/types';
-import { TemplateAction } from '@backstage/plugin-scaffolder-backend';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
// @public
export function createRunYeomanAction(): TemplateAction<{
diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json
index 2d4d7e8702..071f7268ed 100644
--- a/plugins/scaffolder-backend-module-yeoman/package.json
+++ b/plugins/scaffolder-backend-module-yeoman/package.json
@@ -23,7 +23,7 @@
},
"dependencies": {
"@backstage/config": "workspace:^",
- "@backstage/plugin-scaffolder-backend": "workspace:^",
+ "@backstage/plugin-scaffolder-node": "workspace:^",
"@backstage/types": "workspace:^",
"winston": "^3.2.1",
"yeoman-environment": "^3.9.1"
diff --git a/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.test.ts b/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.test.ts
index ee5e8449f7..146c29f4ac 100644
--- a/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.test.ts
+++ b/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.test.ts
@@ -22,7 +22,7 @@ import { getVoidLogger } from '@backstage/backend-common';
import os from 'os';
import { PassThrough } from 'stream';
import { createRunYeomanAction } from './yeoman';
-import type { ActionContext } from '@backstage/plugin-scaffolder-backend';
+import type { ActionContext } from '@backstage/plugin-scaffolder-node';
import { JsonObject } from '@backstage/types';
describe('run:yeoman', () => {
diff --git a/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.ts b/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.ts
index f7b0c54b41..89ea10b6a6 100644
--- a/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.ts
+++ b/plugins/scaffolder-backend-module-yeoman/src/actions/run/yeoman.ts
@@ -15,7 +15,7 @@
*/
import { JsonObject } from '@backstage/types';
-import { createTemplateAction } from '@backstage/plugin-scaffolder-backend';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { yeomanRun } from './yeomanRun';
/**
diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md
index 7f8ab0ad79..8fcc8be47e 100644
--- a/plugins/scaffolder-backend/api-report.md
+++ b/plugins/scaffolder-backend/api-report.md
@@ -24,34 +24,16 @@ import { Observable } from '@backstage/types';
import { Octokit } from 'octokit';
import { PluginDatabaseManager } from '@backstage/backend-common';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
-import { Schema } from 'jsonschema';
import { ScmIntegrationRegistry } from '@backstage/integration';
import { ScmIntegrations } from '@backstage/integration';
import { SpawnOptionsWithoutStdio } from 'child_process';
+import { TaskSecrets } from '@backstage/plugin-scaffolder-node';
import { TaskSpec } from '@backstage/plugin-scaffolder-common';
import { TaskSpecV1beta3 } from '@backstage/plugin-scaffolder-common';
-import { TemplateInfo } from '@backstage/plugin-scaffolder-common';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
import { UrlReader } from '@backstage/backend-common';
-import { UserEntity } from '@backstage/catalog-model';
import { Writable } from 'stream';
-// @public
-export type ActionContext = {
- logger: Logger;
- logStream: Writable;
- secrets?: TaskSecrets;
- workspacePath: string;
- input: Input;
- output(name: string, value: JsonValue): void;
- createTemporaryDirectory(): Promise;
- templateInfo?: TemplateInfo;
- isDryRun?: boolean;
- user?: {
- entity?: UserEntity;
- ref?: string;
- };
-};
-
// @public
export const createBuiltinActions: (
options: CreateBuiltInActionsOptions,
@@ -528,11 +510,6 @@ export const createPublishGitlabMergeRequestAction: (options: {
// @public
export function createRouter(options: RouterOptions): Promise;
-// @public
-export const createTemplateAction: (
- templateAction: TemplateAction,
-) => TemplateAction;
-
// @public
export type CreateWorkerOptions = {
taskBroker: TaskBroker;
@@ -798,11 +775,6 @@ export class TaskManager implements TaskContext {
get spec(): TaskSpecV1beta3;
}
-// @public
-export type TaskSecrets = Record & {
- backstageToken?: string;
-};
-
// @public
export type TaskStatus =
| 'open'
@@ -890,22 +862,6 @@ export class TaskWorker {
start(): void;
}
-// @public (undocumented)
-export type TemplateAction = {
- id: string;
- description?: string;
- examples?: {
- description: string;
- example: string;
- }[];
- supportsDryRun?: boolean;
- schema?: {
- input?: Schema;
- output?: Schema;
- };
- handler: (ctx: ActionContext) => Promise;
-};
-
// @public
export class TemplateActionRegistry {
// (undocumented)
diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json
index 8a98ea4a3d..93938e23e1 100644
--- a/plugins/scaffolder-backend/package.json
+++ b/plugins/scaffolder-backend/package.json
@@ -46,6 +46,7 @@
"@backstage/plugin-catalog-backend": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
"@backstage/plugin-scaffolder-common": "workspace:^",
+ "@backstage/plugin-scaffolder-node": "workspace:^",
"@backstage/types": "workspace:^",
"@gitbeaker/core": "^35.6.0",
"@gitbeaker/node": "^35.1.0",
diff --git a/plugins/scaffolder-backend/src/ScaffolderPlugin.ts b/plugins/scaffolder-backend/src/ScaffolderPlugin.ts
index 71472abda6..43b8d30f99 100644
--- a/plugins/scaffolder-backend/src/ScaffolderPlugin.ts
+++ b/plugins/scaffolder-backend/src/ScaffolderPlugin.ts
@@ -13,20 +13,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
import {
createBackendPlugin,
coreServices,
- createExtensionPoint,
} from '@backstage/backend-plugin-api';
import { loggerToWinstonLogger } from '@backstage/backend-common';
import { ScmIntegrations } from '@backstage/integration';
import { catalogServiceRef } from '@backstage/plugin-catalog-node';
+import {
+ scaffolderActionsExtensionPoint,
+ ScaffolderActionsExtensionPoint,
+ TemplateAction,
+} from '@backstage/plugin-scaffolder-node';
import { TemplateFilter, TemplateGlobal } from './lib';
-import { createBuiltinActions, TaskBroker, TemplateAction } from './scaffolder';
+import { createBuiltinActions, TaskBroker } from './scaffolder';
import { createRouter } from './service/router';
/**
* Catalog plugin options
+ *
* @alpha
*/
export type ScaffolderPluginOptions = {
@@ -37,37 +43,23 @@ export type ScaffolderPluginOptions = {
additionalTemplateGlobals?: Record;
};
-/**
- * @alpha
- * TODO: MOVE to scaffolder-node.
- */
-interface ScaffolderActionsExtensionPoint {
- addActions(...actions: TemplateAction[]): void;
-}
-
class ScaffolderActionsExtensionPointImpl
implements ScaffolderActionsExtensionPoint
{
#actions = new Array>();
+
addActions(...actions: TemplateAction[]): void {
this.#actions.push(...actions);
}
+
get actions() {
return this.#actions;
}
}
-/**
- * @alpha
- * TODO: MOVE to scaffolder-node.
- */
-export const scaffolderActionsExtensionPoint =
- createExtensionPoint({
- id: 'scaffolder.actions',
- });
-
/**
* Catalog plugin
+ *
* @alpha
*/
export const scaffolderPlugin = createBackendPlugin(
@@ -75,6 +67,7 @@ export const scaffolderPlugin = createBackendPlugin(
id: 'scaffolder',
register(env) {
const actionsExtensions = new ScaffolderActionsExtensionPointImpl();
+
env.registerExtensionPoint(
scaffolderActionsExtensionPoint,
actionsExtensions,
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/TemplateActionRegistry.ts b/plugins/scaffolder-backend/src/scaffolder/actions/TemplateActionRegistry.ts
index 8a2a00d121..d044d095cd 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/TemplateActionRegistry.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/TemplateActionRegistry.ts
@@ -16,7 +16,7 @@
import { JsonObject } from '@backstage/types';
import { ConflictError, NotFoundError } from '@backstage/errors';
-import { TemplateAction } from './types';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
/**
* Registry of all registered template actions.
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.ts
index c45eb62fce..913bf32cce 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.ts
@@ -15,7 +15,7 @@
*/
import { CatalogApi } from '@backstage/catalog-client';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import yaml from 'yaml';
const id = 'catalog:fetch';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/register.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/register.ts
index 48fec3db03..e866eb12ba 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/register.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/register.ts
@@ -18,7 +18,7 @@ import { InputError } from '@backstage/errors';
import { ScmIntegrations } from '@backstage/integration';
import { CatalogApi } from '@backstage/catalog-client';
import { stringifyEntityRef } from '@backstage/catalog-model';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import yaml from 'yaml';
const id = 'catalog:register';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts
index 5257839f2d..5c5a62956f 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/write.ts
@@ -15,7 +15,7 @@
*/
import fs from 'fs-extra';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import * as yaml from 'yaml';
import { Entity } from '@backstage/catalog-model';
import { resolveSafeChildPath } from '@backstage/backend-common';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts
index 7e954295a1..d83d9c5b07 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts
@@ -23,6 +23,7 @@ import {
ScmIntegrations,
} from '@backstage/integration';
import { JsonObject } from '@backstage/types';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
import {
createCatalogRegisterAction,
createCatalogWriteAction,
@@ -30,7 +31,6 @@ import {
} from './catalog';
import { TemplateFilter, TemplateGlobal } from '../../../lib';
-import { TemplateAction } from '../types';
import { createDebugLogAction } from './debug';
import { createFetchPlainAction, createFetchTemplateAction } from './fetch';
import {
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/log.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/log.ts
index 3863623563..481eb9dfdd 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/log.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/log.ts
@@ -16,7 +16,7 @@
import { readdir, stat } from 'fs-extra';
import { relative, join } from 'path';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import yaml from 'yaml';
const id = 'debug:log';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.test.ts
index 0469ffec06..ed37a39a98 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.test.ts
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
jest.mock('./helpers');
import os from 'os';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.ts
index b3b984f544..c10f696bb9 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.ts
@@ -17,7 +17,7 @@
import { UrlReader, resolveSafeChildPath } from '@backstage/backend-common';
import { ScmIntegrations } from '@backstage/integration';
import { fetchContents } from './helpers';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
/**
* Downloads content and places it in the workspace, or optionally
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.test.ts
index 6658e1915d..15548ffea7 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.test.ts
@@ -26,8 +26,11 @@ import {
import { ScmIntegrations } from '@backstage/integration';
import { PassThrough } from 'stream';
import { fetchContents } from './helpers';
-import { ActionContext, TemplateAction } from '../../types';
import { createFetchTemplateAction } from './template';
+import {
+ ActionContext,
+ TemplateAction,
+} from '@backstage/plugin-scaffolder-node';
jest.mock('./helpers', () => ({
fetchContents: jest.fn(),
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts
index 81b3f4577c..68c205ce59 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts
@@ -19,7 +19,7 @@ import { resolveSafeChildPath, UrlReader } from '@backstage/backend-common';
import { InputError } from '@backstage/errors';
import { ScmIntegrations } from '@backstage/integration';
import { fetchContents } from './helpers';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import globby from 'globby';
import fs from 'fs-extra';
import { isBinaryFile } from 'isbinaryfile';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/delete.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/delete.ts
index 757e9c682e..2f955c16ff 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/delete.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/delete.ts
@@ -13,7 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import { createTemplateAction } from '../../createTemplateAction';
+
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { InputError } from '@backstage/errors';
import { resolveSafeChildPath } from '@backstage/backend-common';
import fs from 'fs-extra';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.ts
index 654ee7b150..c29ba221c4 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.ts
@@ -13,9 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import { createTemplateAction } from '../../createTemplateAction';
-import { resolveSafeChildPath } from '@backstage/backend-common';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
+import { resolveSafeChildPath } from '@backstage/backend-common';
import { InputError } from '@backstage/errors';
import fs from 'fs-extra';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubActionsDispatch.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubActionsDispatch.test.ts
index 0782ea40cd..3d59e43695 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubActionsDispatch.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubActionsDispatch.test.ts
@@ -14,9 +14,6 @@
* limitations under the License.
*/
-import { TemplateAction } from '../../types';
-import { createGithubActionsDispatchAction } from './githubActionsDispatch';
-
import {
ScmIntegrations,
DefaultGithubCredentialsProvider,
@@ -24,7 +21,9 @@ import {
} from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
import { getVoidLogger } from '@backstage/backend-common';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
import { PassThrough } from 'stream';
+import { createGithubActionsDispatchAction } from './githubActionsDispatch';
const mockOctokit = {
rest: {
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubActionsDispatch.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubActionsDispatch.ts
index b9d77559e0..cd1593ee9f 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubActionsDispatch.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubActionsDispatch.ts
@@ -13,13 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
import { InputError } from '@backstage/errors';
import {
GithubCredentialsProvider,
ScmIntegrations,
} from '@backstage/integration';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { Octokit } from 'octokit';
-import { createTemplateAction } from '../../createTemplateAction';
import { parseRepoUrl } from '../publish/util';
import { getOctokitOptions } from './helpers';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubIssuesLabel.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubIssuesLabel.test.ts
index bc9b797000..a1a0274304 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubIssuesLabel.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubIssuesLabel.test.ts
@@ -22,8 +22,8 @@ import {
} from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
import { getVoidLogger } from '@backstage/backend-common';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
import { PassThrough } from 'stream';
-import { TemplateAction } from '../../types';
const mockOctokit = {
rest: {
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubIssuesLabel.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubIssuesLabel.ts
index 9c849edb6f..2dad0aa33a 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubIssuesLabel.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubIssuesLabel.ts
@@ -13,11 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
import {
GithubCredentialsProvider,
ScmIntegrationRegistry,
} from '@backstage/integration';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { assertError, InputError } from '@backstage/errors';
import { Octokit } from 'octokit';
import { getOctokitOptions } from './helpers';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts
index 824db27e84..f15747fd6b 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { TemplateAction } from '../../types';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
jest.mock('../helpers');
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts
index 835fc79238..b5f779b8a7 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts
@@ -13,13 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
import { InputError } from '@backstage/errors';
import {
GithubCredentialsProvider,
ScmIntegrationRegistry,
} from '@backstage/integration';
import { Octokit } from 'octokit';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { parseRepoUrl } from '../publish/util';
import {
createGithubRepoWithCollaboratorsAndTopics,
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.test.ts
index 24777163d4..517347c733 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.test.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { TemplateAction } from '../../types';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
jest.mock('../helpers');
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts
index 5a5ffc015c..6e3892cee5 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
import { Config } from '@backstage/config';
import { InputError } from '@backstage/errors';
import {
@@ -20,7 +21,7 @@ import {
ScmIntegrationRegistry,
} from '@backstage/integration';
import { Octokit } from 'octokit';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { parseRepoUrl } from '../publish/util';
import { getOctokitOptions, initRepoPushAndProtect } from './helpers';
import * as inputProps from './inputProperties';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubWebhook.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubWebhook.test.ts
index 97fdb3d634..7901210a6e 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubWebhook.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubWebhook.test.ts
@@ -22,8 +22,8 @@ import {
} from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
import { getVoidLogger } from '@backstage/backend-common';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
import { PassThrough } from 'stream';
-import { TemplateAction } from '../../types';
const mockOctokit = {
rest: {
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubWebhook.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubWebhook.ts
index 4547ce4492..4d487befc7 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubWebhook.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubWebhook.ts
@@ -13,11 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
import {
GithubCredentialsProvider,
ScmIntegrationRegistry,
} from '@backstage/integration';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { emitterEventNames } from '@octokit/webhooks';
import { assertError, InputError } from '@backstage/errors';
import { Octokit } from 'octokit';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/azure.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/azure.test.ts
index ca5e40bdb0..2d2775572f 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/azure.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/azure.test.ts
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
jest.mock('azure-devops-node-api', () => ({
WebApi: jest.fn(),
getPersonalAccessTokenHandler: jest.fn().mockReturnValue(() => {}),
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/azure.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/azure.ts
index 60b13b717d..083c18c94f 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/azure.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/azure.ts
@@ -20,7 +20,7 @@ import { initRepoAndPush } from '../helpers';
import { GitRepositoryCreateOptions } from 'azure-devops-node-api/interfaces/GitInterfaces';
import { getPersonalAccessTokenHandler, WebApi } from 'azure-devops-node-api';
import { getRepoSourceDirectory, parseRepoUrl } from './util';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { Config } from '@backstage/config';
/**
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/bitbucket.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/bitbucket.ts
index 8f72157fc2..74e5e8c1ab 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/bitbucket.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/bitbucket.ts
@@ -19,9 +19,9 @@ import {
BitbucketIntegrationConfig,
ScmIntegrationRegistry,
} from '@backstage/integration';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import fetch, { Response, RequestInit } from 'node-fetch';
import { initRepoAndPush } from '../helpers';
-import { createTemplateAction } from '../../createTemplateAction';
import { getRepoSourceDirectory, parseRepoUrl } from './util';
import { Config } from '@backstage/config';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/bitbucketCloud.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/bitbucketCloud.ts
index 02e29c33de..2c17bf2dbb 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/bitbucketCloud.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/bitbucketCloud.ts
@@ -16,9 +16,9 @@
import { InputError } from '@backstage/errors';
import { ScmIntegrationRegistry } from '@backstage/integration';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import fetch, { Response, RequestInit } from 'node-fetch';
import { initRepoAndPush } from '../helpers';
-import { createTemplateAction } from '../../createTemplateAction';
import { getRepoSourceDirectory, parseRepoUrl } from './util';
import { Config } from '@backstage/config';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/bitbucketServer.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/bitbucketServer.ts
index 8c96c14463..f2f581eadb 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/bitbucketServer.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/bitbucketServer.ts
@@ -19,9 +19,9 @@ import {
getBitbucketServerRequestOptions,
ScmIntegrationRegistry,
} from '@backstage/integration';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import fetch, { Response, RequestInit } from 'node-fetch';
import { initRepoAndPush } from '../helpers';
-import { createTemplateAction } from '../../createTemplateAction';
import { getRepoSourceDirectory, parseRepoUrl } from './util';
import { Config } from '@backstage/config';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.ts
index 83653b3052..b5bcc31c62 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.ts
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
import crypto from 'crypto';
import { InputError } from '@backstage/errors';
import { Config } from '@backstage/config';
@@ -21,7 +22,7 @@ import {
getGerritRequestOptions,
ScmIntegrationRegistry,
} from '@backstage/integration';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { getRepoSourceDirectory, parseRepoUrl } from './util';
import fetch, { Response, RequestInit } from 'node-fetch';
import { initRepoAndPush } from '../helpers';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerritReview.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerritReview.ts
index 17068654c0..73e74f5cbc 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerritReview.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerritReview.ts
@@ -13,11 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
import crypto from 'crypto';
import { InputError } from '@backstage/errors';
import { Config } from '@backstage/config';
import { ScmIntegrationRegistry } from '@backstage/integration';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { getRepoSourceDirectory, parseRepoUrl } from './util';
import { commitAndPushRepo } from '../helpers';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts
index c2681ed527..8ead489ea4 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { TemplateAction } from '../../types';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
jest.mock('../helpers');
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts
index add6fcc79c..185239c73f 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
import { Config } from '@backstage/config';
import { InputError } from '@backstage/errors';
import {
@@ -20,7 +21,7 @@ import {
ScmIntegrationRegistry,
} from '@backstage/integration';
import { Octokit } from 'octokit';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import {
createGithubRepoWithCollaboratorsAndTopics,
getOctokitOptions,
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.test.ts
index e6649d1ffe..70fff20446 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.test.ts
@@ -20,11 +20,14 @@ import {
GithubCredentialsProvider,
ScmIntegrations,
} from '@backstage/integration';
+import {
+ ActionContext,
+ TemplateAction,
+} from '@backstage/plugin-scaffolder-node';
import mockFs from 'mock-fs';
import os from 'os';
import { resolve as resolvePath } from 'path';
import { Writable } from 'stream';
-import { ActionContext, TemplateAction } from '../../types';
import {
createPublishGithubPullRequestAction,
OctokitWithPullRequestPluginClient,
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts
index d0ee979be3..764354e8ec 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/githubPullRequest.ts
@@ -20,11 +20,11 @@ import {
GithubCredentialsProvider,
ScmIntegrationRegistry,
} from '@backstage/integration';
-import { createTemplateAction } from '../../createTemplateAction';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { Octokit } from 'octokit';
import { InputError, CustomErrorBase } from '@backstage/errors';
-import { createPullRequest } from 'octokit-plugin-create-pull-request';
import { resolveSafeChildPath } from '@backstage/backend-common';
+import { createPullRequest } from 'octokit-plugin-create-pull-request';
import { getOctokitOptions } from '../github/helpers';
import {
SerializedFile,
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts
index dc1d26d416..a9c4522dd3 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.test.ts
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
jest.mock('../helpers');
import { createPublishGitlabAction } from './gitlab';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts
index 53669efd0b..2e7520b77f 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts
@@ -16,10 +16,10 @@
import { InputError } from '@backstage/errors';
import { ScmIntegrationRegistry } from '@backstage/integration';
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { Gitlab } from '@gitbeaker/node';
import { initRepoAndPush } from '../helpers';
import { getRepoSourceDirectory, parseRepoUrl } from './util';
-import { createTemplateAction } from '../../createTemplateAction';
import { Config } from '@backstage/config';
/**
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlabMergeRequest.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlabMergeRequest.test.ts
index d1888fd9d2..c3d0fe58f1 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlabMergeRequest.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlabMergeRequest.test.ts
@@ -16,11 +16,11 @@
import { getRootLogger } from '@backstage/backend-common';
import { ConfigReader } from '@backstage/config';
import { ScmIntegrations } from '@backstage/integration';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
import mockFs from 'mock-fs';
import os from 'os';
import { resolve as resolvePath } from 'path';
import { Writable } from 'stream';
-import { TemplateAction } from '../../types';
import { createPublishGitlabMergeRequestAction } from './gitlabMergeRequest';
const root = os.platform() === 'win32' ? 'C:\\root' : '/root';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlabMergeRequest.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlabMergeRequest.ts
index 2a71c9f748..bb27410402 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlabMergeRequest.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlabMergeRequest.ts
@@ -13,7 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import { createTemplateAction } from '../../createTemplateAction';
+
+import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
import { Gitlab } from '@gitbeaker/node';
import { Types } from '@gitbeaker/core';
import path from 'path';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/index.ts b/plugins/scaffolder-backend/src/scaffolder/actions/index.ts
index d5f77b7b6f..9ea0607f06 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/index.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/index.ts
@@ -16,5 +16,3 @@
export * from './builtin';
export { TemplateActionRegistry } from './TemplateActionRegistry';
-export { createTemplateAction } from './createTemplateAction';
-export type { ActionContext, TemplateAction } from './types';
diff --git a/plugins/scaffolder-backend/src/scaffolder/dryrun/DecoratedActionsRegistry.ts b/plugins/scaffolder-backend/src/scaffolder/dryrun/DecoratedActionsRegistry.ts
index 6f11d3b6e8..c02375554c 100644
--- a/plugins/scaffolder-backend/src/scaffolder/dryrun/DecoratedActionsRegistry.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/dryrun/DecoratedActionsRegistry.ts
@@ -14,8 +14,9 @@
* limitations under the License.
*/
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
import { JsonObject } from '@backstage/types';
-import { TemplateAction, TemplateActionRegistry } from '../actions';
+import { TemplateActionRegistry } from '../actions';
/** @internal */
export class DecoratedActionsRegistry extends TemplateActionRegistry {
diff --git a/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts b/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts
index 17f9092bff..1929e3b8ac 100644
--- a/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts
@@ -26,12 +26,15 @@ import {
serializeDirectoryContents,
} from '../../lib/files';
import { TemplateFilter, TemplateGlobal } from '../../lib/templating';
-import { createTemplateAction, TemplateActionRegistry } from '../actions';
+import { TemplateActionRegistry } from '../actions';
import { NunjucksWorkflowRunner } from '../tasks/NunjucksWorkflowRunner';
-import { TaskSecrets } from '../tasks/types';
import { DecoratedActionsRegistry } from './DecoratedActionsRegistry';
import fs from 'fs-extra';
import { resolveSafeChildPath } from '@backstage/backend-common';
+import {
+ createTemplateAction,
+ TaskSecrets,
+} from '@backstage/plugin-scaffolder-node';
interface DryRunInput {
spec: TaskSpec;
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
index 24a35078e2..453cfae83b 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
@@ -22,8 +22,9 @@ import { NunjucksWorkflowRunner } from './NunjucksWorkflowRunner';
import { TemplateActionRegistry } from '../actions';
import { ScmIntegrations } from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
-import { TaskContext, TaskSecrets } from './types';
+import { TaskContext } from './types';
import { TaskSpec } from '@backstage/plugin-scaffolder-common';
+import { TaskSecrets } from '@backstage/plugin-scaffolder-node';
import { UserEntity } from '@backstage/catalog-model';
// The Stream module is lazy loaded, so make sure it's in the module cache before mocking fs
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
index 5893a88485..516abe79e4 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
@@ -26,7 +26,7 @@ import { PassThrough } from 'stream';
import { generateExampleOutput, isTruthy } from './helper';
import { validate as validateJsonSchema } from 'jsonschema';
import { parseRepoUrl } from '../actions/builtin/publish/util';
-import { TemplateAction, TemplateActionRegistry } from '../actions';
+import { TemplateActionRegistry } from '../actions';
import {
TemplateFilter,
SecureTemplater,
@@ -38,6 +38,7 @@ import {
TaskSpecV1beta3,
TaskStep,
} from '@backstage/plugin-scaffolder-common';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
import { UserEntity } from '@backstage/catalog-model';
import { createCounterMetric, createHistogramMetric } from '../../util/metrics';
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts
index 5eeb73711e..2255798d5c 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts
@@ -17,9 +17,10 @@
import { getVoidLogger, DatabaseManager } from '@backstage/backend-common';
import { ConfigReader } from '@backstage/config';
import { TaskSpec } from '@backstage/plugin-scaffolder-common';
+import { TaskSecrets } from '@backstage/plugin-scaffolder-node';
import { DatabaseTaskStore } from './DatabaseTaskStore';
import { StorageTaskBroker, TaskManager } from './StorageTaskBroker';
-import { TaskSecrets, SerializedTaskEvent } from './types';
+import { SerializedTaskEvent } from './types';
async function createStore(): Promise {
const manager = DatabaseManager.fromConfig(
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts
index 7a015c111f..d01351d8ae 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts
@@ -15,6 +15,7 @@
*/
import { TaskSpec } from '@backstage/plugin-scaffolder-common';
+import { TaskSecrets } from '@backstage/plugin-scaffolder-node';
import { JsonObject, Observable } from '@backstage/types';
import { Logger } from 'winston';
import ObservableImpl from 'zen-observable';
@@ -25,7 +26,6 @@ import {
TaskBrokerDispatchOptions,
TaskCompletionState,
TaskContext,
- TaskSecrets,
TaskStore,
} from './types';
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/index.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/index.ts
index 2af7d6a340..f1c1a7bdac 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/index.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/index.ts
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
export { DatabaseTaskStore } from './DatabaseTaskStore';
export type { DatabaseTaskStoreOptions } from './DatabaseTaskStore';
export { TaskManager } from './StorageTaskBroker';
@@ -20,7 +21,6 @@ export type { CurrentClaimedTask } from './StorageTaskBroker';
export { TaskWorker } from './TaskWorker';
export type { CreateWorkerOptions } from './TaskWorker';
export type {
- TaskSecrets,
TaskCompletionState,
TaskStoreEmitOptions,
TaskStoreListEventsOptions,
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts
index 5d3f8113ee..89f6c3e213 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts
@@ -16,6 +16,7 @@
import { JsonValue, JsonObject, Observable } from '@backstage/types';
import { TaskSpec } from '@backstage/plugin-scaffolder-common';
+import { TaskSecrets } from '@backstage/plugin-scaffolder-node';
/**
* The status of each step of the Task
@@ -71,15 +72,6 @@ export type SerializedTaskEvent = {
createdAt: string;
};
-/**
- * TaskSecrets
- *
- * @public
- */
-export type TaskSecrets = Record & {
- backstageToken?: string;
-};
-
/**
* The result of {@link TaskBroker.dispatch}
*
diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts
index 9ff8d43625..c339de8d10 100644
--- a/plugins/scaffolder-backend/src/service/router.ts
+++ b/plugins/scaffolder-backend/src/service/router.ts
@@ -43,7 +43,6 @@ import {
DatabaseTaskStore,
TaskBroker,
TaskWorker,
- TemplateAction,
TemplateActionRegistry,
} from '../scaffolder';
import { createDryRunner } from '../scaffolder/dryrun';
@@ -53,6 +52,7 @@ import {
IdentityApi,
IdentityApiGetIdentityRequest,
} from '@backstage/plugin-auth-node';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
/**
* RouterOptions
diff --git a/plugins/scaffolder-node/.eslintrc.js b/plugins/scaffolder-node/.eslintrc.js
new file mode 100644
index 0000000000..e2a53a6ad2
--- /dev/null
+++ b/plugins/scaffolder-node/.eslintrc.js
@@ -0,0 +1 @@
+module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
diff --git a/plugins/scaffolder-node/README.md b/plugins/scaffolder-node/README.md
new file mode 100644
index 0000000000..8b52daa785
--- /dev/null
+++ b/plugins/scaffolder-node/README.md
@@ -0,0 +1,3 @@
+# plugin-scaffolder-node
+
+Houses types and utilities for building scaffolder-related modules.
diff --git a/plugins/scaffolder-node/api-report.md b/plugins/scaffolder-node/api-report.md
new file mode 100644
index 0000000000..95a2c81381
--- /dev/null
+++ b/plugins/scaffolder-node/api-report.md
@@ -0,0 +1,68 @@
+## API Report File for "@backstage/plugin-scaffolder-node"
+
+> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
+
+```ts
+///
+
+import { ExtensionPoint } from '@backstage/backend-plugin-api';
+import { JsonObject } from '@backstage/types';
+import { JsonValue } from '@backstage/types';
+import { Logger } from 'winston';
+import { Schema } from 'jsonschema';
+import { TemplateInfo } from '@backstage/plugin-scaffolder-common';
+import { UserEntity } from '@backstage/catalog-model';
+import { Writable } from 'stream';
+
+// @public
+export type ActionContext = {
+ logger: Logger;
+ logStream: Writable;
+ secrets?: TaskSecrets;
+ workspacePath: string;
+ input: Input;
+ output(name: string, value: JsonValue): void;
+ createTemporaryDirectory(): Promise;
+ templateInfo?: TemplateInfo;
+ isDryRun?: boolean;
+ user?: {
+ entity?: UserEntity;
+ ref?: string;
+ };
+};
+
+// @public
+export const createTemplateAction: (
+ templateAction: TemplateAction,
+) => TemplateAction;
+
+// @alpha
+export interface ScaffolderActionsExtensionPoint {
+ // (undocumented)
+ addActions(...actions: TemplateAction[]): void;
+}
+
+// @alpha
+export const scaffolderActionsExtensionPoint: ExtensionPoint;
+
+// @public
+export type TaskSecrets = Record & {
+ backstageToken?: string;
+};
+
+// @public (undocumented)
+export type TemplateAction = {
+ id: string;
+ description?: string;
+ examples?: {
+ description: string;
+ example: string;
+ }[];
+ supportsDryRun?: boolean;
+ schema?: {
+ input?: Schema;
+ output?: Schema;
+ };
+ handler: (ctx: ActionContext) => Promise;
+};
+```
diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json
new file mode 100644
index 0000000000..d426a33bad
--- /dev/null
+++ b/plugins/scaffolder-node/package.json
@@ -0,0 +1,41 @@
+{
+ "name": "@backstage/plugin-scaffolder-node",
+ "description": "The plugin-scaffolder-node module for @backstage/plugin-scaffolder-backend",
+ "version": "0.0.0",
+ "main": "src/index.ts",
+ "types": "src/index.ts",
+ "license": "Apache-2.0",
+ "publishConfig": {
+ "access": "public",
+ "alphaTypes": "dist/index.alpha.d.ts",
+ "main": "dist/index.cjs.js",
+ "types": "dist/index.d.ts"
+ },
+ "backstage": {
+ "role": "node-library"
+ },
+ "scripts": {
+ "start": "backstage-cli package start",
+ "build": "backstage-cli package build --experimental-type-build",
+ "lint": "backstage-cli package lint",
+ "test": "backstage-cli package test",
+ "clean": "backstage-cli package clean",
+ "prepack": "backstage-cli package prepack",
+ "postpack": "backstage-cli package postpack"
+ },
+ "dependencies": {
+ "@backstage/backend-plugin-api": "workspace:^",
+ "@backstage/catalog-model": "workspace:^",
+ "@backstage/plugin-scaffolder-common": "workspace:^",
+ "@backstage/types": "workspace:^",
+ "jsonschema": "^1.2.6",
+ "winston": "^3.2.1"
+ },
+ "devDependencies": {
+ "@backstage/cli": "workspace:^"
+ },
+ "files": [
+ "alpha",
+ "dist"
+ ]
+}
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/createTemplateAction.ts b/plugins/scaffolder-node/src/actions/createTemplateAction.ts
similarity index 99%
rename from plugins/scaffolder-backend/src/scaffolder/actions/createTemplateAction.ts
rename to plugins/scaffolder-node/src/actions/createTemplateAction.ts
index 8893fa0f20..24d88a1681 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/createTemplateAction.ts
+++ b/plugins/scaffolder-node/src/actions/createTemplateAction.ts
@@ -19,6 +19,7 @@ import { TemplateAction } from './types';
/**
* This function is used to create new template actions to get type safety.
+ *
* @public
*/
export const createTemplateAction = (
diff --git a/plugins/scaffolder-node/src/actions/index.ts b/plugins/scaffolder-node/src/actions/index.ts
new file mode 100644
index 0000000000..7fdee6d692
--- /dev/null
+++ b/plugins/scaffolder-node/src/actions/index.ts
@@ -0,0 +1,18 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export { createTemplateAction } from './createTemplateAction';
+export { type ActionContext, type TemplateAction } from './types';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/types.ts b/plugins/scaffolder-node/src/actions/types.ts
similarity index 95%
rename from plugins/scaffolder-backend/src/scaffolder/actions/types.ts
rename to plugins/scaffolder-node/src/actions/types.ts
index 0912cc038b..385096ef4d 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/types.ts
+++ b/plugins/scaffolder-node/src/actions/types.ts
@@ -1,5 +1,5 @@
/*
- * Copyright 2021 The Backstage Authors
+ * Copyright 2023 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@ import { Logger } from 'winston';
import { Writable } from 'stream';
import { JsonValue, JsonObject } from '@backstage/types';
import { Schema } from 'jsonschema';
-import { TaskSecrets } from '../tasks';
+import { TaskSecrets } from '../tasks/types';
import { TemplateInfo } from '@backstage/plugin-scaffolder-common';
import { UserEntity } from '@backstage/catalog-model';
diff --git a/plugins/scaffolder-node/src/extensions.ts b/plugins/scaffolder-node/src/extensions.ts
new file mode 100644
index 0000000000..a706101043
--- /dev/null
+++ b/plugins/scaffolder-node/src/extensions.ts
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2022 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { createExtensionPoint } from '@backstage/backend-plugin-api';
+import { TemplateAction } from './actions';
+
+/**
+ * Extension point for managing scaffolder actions.
+ *
+ * @alpha
+ */
+export interface ScaffolderActionsExtensionPoint {
+ addActions(...actions: TemplateAction[]): void;
+}
+
+/**
+ * Extension point for managing scaffolder actions.
+ *
+ * @alpha
+ */
+export const scaffolderActionsExtensionPoint =
+ createExtensionPoint({
+ id: 'scaffolder.actions',
+ });
diff --git a/plugins/scaffolder-node/src/index.ts b/plugins/scaffolder-node/src/index.ts
new file mode 100644
index 0000000000..2a7c06234e
--- /dev/null
+++ b/plugins/scaffolder-node/src/index.ts
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2022 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * The scaffolder-node module for `@backstage/plugin-scaffolder-backend`.
+ *
+ * @packageDocumentation
+ */
+
+export * from './actions';
+export * from './tasks';
+export {
+ scaffolderActionsExtensionPoint,
+ type ScaffolderActionsExtensionPoint,
+} from './extensions';
diff --git a/plugins/scaffolder-node/src/setupTests.ts b/plugins/scaffolder-node/src/setupTests.ts
new file mode 100644
index 0000000000..d3232290a7
--- /dev/null
+++ b/plugins/scaffolder-node/src/setupTests.ts
@@ -0,0 +1,17 @@
+/*
+ * Copyright 2020 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export {};
diff --git a/plugins/scaffolder-node/src/tasks/index.ts b/plugins/scaffolder-node/src/tasks/index.ts
new file mode 100644
index 0000000000..0c1d0d813e
--- /dev/null
+++ b/plugins/scaffolder-node/src/tasks/index.ts
@@ -0,0 +1,17 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export { type TaskSecrets } from './types';
diff --git a/plugins/scaffolder-node/src/tasks/types.ts b/plugins/scaffolder-node/src/tasks/types.ts
new file mode 100644
index 0000000000..c17b3cbde3
--- /dev/null
+++ b/plugins/scaffolder-node/src/tasks/types.ts
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * TaskSecrets
+ *
+ * @public
+ */
+export type TaskSecrets = Record & {
+ backstageToken?: string;
+};
diff --git a/yarn.lock b/yarn.lock
index c73cbf3a20..1b4e8cfbfb 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7075,6 +7075,7 @@ __metadata:
"@backstage/errors": "workspace:^"
"@backstage/integration": "workspace:^"
"@backstage/plugin-scaffolder-backend": "workspace:^"
+ "@backstage/plugin-scaffolder-node": "workspace:^"
"@backstage/types": "workspace:^"
"@types/command-exists": ^1.2.0
"@types/fs-extra": ^9.0.1
@@ -7098,6 +7099,7 @@ __metadata:
"@backstage/errors": "workspace:^"
"@backstage/integration": "workspace:^"
"@backstage/plugin-scaffolder-backend": "workspace:^"
+ "@backstage/plugin-scaffolder-node": "workspace:^"
"@backstage/types": "workspace:^"
"@types/command-exists": ^1.2.0
"@types/fs-extra": ^9.0.1
@@ -7120,7 +7122,7 @@ __metadata:
"@backstage/dev-utils": "workspace:^"
"@backstage/errors": "workspace:^"
"@backstage/integration": "workspace:^"
- "@backstage/plugin-scaffolder-backend": "workspace:^"
+ "@backstage/plugin-scaffolder-node": "workspace:^"
"@backstage/test-utils": "workspace:^"
"@testing-library/jest-dom": ^5.10.1
"@testing-library/react": ^12.1.3
@@ -7140,7 +7142,7 @@ __metadata:
"@backstage/backend-common": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/config": "workspace:^"
- "@backstage/plugin-scaffolder-backend": "workspace:^"
+ "@backstage/plugin-scaffolder-node": "workspace:^"
"@backstage/types": "workspace:^"
winston: ^3.2.1
yeoman-environment: ^3.9.1
@@ -7165,6 +7167,7 @@ __metadata:
"@backstage/plugin-catalog-backend": "workspace:^"
"@backstage/plugin-catalog-node": "workspace:^"
"@backstage/plugin-scaffolder-common": "workspace:^"
+ "@backstage/plugin-scaffolder-node": "workspace:^"
"@backstage/types": "workspace:^"
"@gitbeaker/core": ^35.6.0
"@gitbeaker/node": ^35.1.0
@@ -7224,6 +7227,20 @@ __metadata:
languageName: unknown
linkType: soft
+"@backstage/plugin-scaffolder-node@workspace:^, @backstage/plugin-scaffolder-node@workspace:plugins/scaffolder-node":
+ version: 0.0.0-use.local
+ resolution: "@backstage/plugin-scaffolder-node@workspace:plugins/scaffolder-node"
+ dependencies:
+ "@backstage/backend-plugin-api": "workspace:^"
+ "@backstage/catalog-model": "workspace:^"
+ "@backstage/cli": "workspace:^"
+ "@backstage/plugin-scaffolder-common": "workspace:^"
+ "@backstage/types": "workspace:^"
+ jsonschema: ^1.2.6
+ winston: ^3.2.1
+ languageName: unknown
+ linkType: soft
+
"@backstage/plugin-scaffolder-react@workspace:^, @backstage/plugin-scaffolder-react@workspace:plugins/scaffolder-react":
version: 0.0.0-use.local
resolution: "@backstage/plugin-scaffolder-react@workspace:plugins/scaffolder-react"