diff --git a/.changeset/shaggy-chicken-behave.md b/.changeset/shaggy-chicken-behave.md new file mode 100644 index 0000000000..6d1700c84a --- /dev/null +++ b/.changeset/shaggy-chicken-behave.md @@ -0,0 +1,8 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +'@backstage/plugin-scaffolder-backend-module-cookiecutter': minor +'@backstage/plugin-scaffolder-backend-module-rails': minor +'@backstage/plugin-scaffolder-common': minor +--- + +add entityMetadata to the scaffolder templateInfo field 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 8c501cf8f1..eb28e9bc13 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 @@ -92,6 +92,9 @@ describe('fetch:cookiecutter', () => { templateInfo: { entityRef: 'template:default/cookiecutter', baseUrl: 'somebase', + entityMetadata: { + name: 'cookiecutter', + }, }, workspacePath: mockTmpDir, logger: getVoidLogger(), diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.test.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.test.ts index 597847130a..50f0a9cc00 100644 --- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.test.ts +++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.test.ts @@ -65,6 +65,9 @@ describe('fetch:rails', () => { templateInfo: { baseUrl: 'somebase', entityRef: 'template:default/myTemplate', + entityMetadata: { + name: 'myTemplate', + }, }, workspacePath: mockTmpDir, logger: getVoidLogger(), 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 af353bef70..6941db0a30 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 @@ -78,6 +78,9 @@ describe('fetch:template', () => { templateInfo: { baseUrl: 'base-url', entityRef: 'template:default/test-template', + entityMetadata: { + name: 'test-template', + }, }, input: { url: './skeleton', diff --git a/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts b/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts index f2c3c13509..1179ddb877 100644 --- a/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts +++ b/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts @@ -106,6 +106,9 @@ export function createDryRunner(options: TemplateTesterCreateOptions) { baseUrl: pathToFileURL( resolveSafeChildPath(contentsPath, 'template.yaml'), ).toString(), + entityMetadata: { + name: 'dry-run', + }, }, }, secrets: input.secrets, diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts index 6b1701380b..4445231270 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts @@ -181,13 +181,21 @@ describe('DefaultWorkflowRunner', () => { input: { foo: 1 }, }, ], - templateInfo: { entityRef }, + templateInfo: { + entityRef, + entityMetadata: { + name: 'templateName', + }, + }, }); await runner.execute(task); expect(fakeActionHandler.mock.calls[0][0].templateInfo).toEqual({ entityRef, + entityMetadata: { + name: 'templateName', + }, }); }); diff --git a/plugins/scaffolder-backend/src/service/router.test.ts b/plugins/scaffolder-backend/src/service/router.test.ts index e59f222e2d..2ea0ce1651 100644 --- a/plugins/scaffolder-backend/src/service/router.test.ts +++ b/plugins/scaffolder-backend/src/service/router.test.ts @@ -261,6 +261,7 @@ describe('createRouter', () => { name: mockTemplate.metadata?.name, }), baseUrl: 'https://dev.azure.com', + entityMetadata: mockTemplate.metadata, }, }, }), @@ -312,6 +313,7 @@ describe('createRouter', () => { name: mockTemplate.metadata?.name, }), baseUrl: 'https://dev.azure.com', + entityMetadata: mockTemplate.metadata, }, }, }), diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 1c6ea39443..7406c7633f 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -249,6 +249,7 @@ export async function createRouter( name: template.metadata?.name, }), baseUrl, + entityMetadata: template.metadata, }, }; diff --git a/plugins/scaffolder-common/src/TaskSpec.ts b/plugins/scaffolder-common/src/TaskSpec.ts index 4ba43092ae..775bd5e370 100644 --- a/plugins/scaffolder-common/src/TaskSpec.ts +++ b/plugins/scaffolder-common/src/TaskSpec.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import { UserEntity } from '@backstage/catalog-model'; -import { JsonValue, JsonObject } from '@backstage/types'; +import type { EntityMeta, UserEntity } from '@backstage/catalog-model'; +import type { JsonValue, JsonObject } from '@backstage/types'; /** * Information about a template that is stored on a task specification. @@ -32,6 +32,8 @@ export type TemplateInfo = { * Where the template is stored, so we can resolve relative paths for things like `fetch:template` paths. */ baseUrl?: string; + + entityMetadata: EntityMeta; }; /**