chore: move to templateInfo in other modules

Signed-off-by: blam <ben@blam.sh>
This commit is contained in:
blam
2022-02-16 14:51:04 +01:00
parent b344cd674a
commit 93215cb382
6 changed files with 39 additions and 28 deletions
@@ -89,7 +89,10 @@ describe('fetch:cookiecutter', () => {
help: 'me',
},
},
baseUrl: 'somebase',
templateInfo: {
name: 'lols',
baseUrl: 'somebase',
},
workspacePath: mockTmpDir,
logger: getVoidLogger(),
logStream: new PassThrough(),
@@ -149,7 +152,7 @@ describe('fetch:cookiecutter', () => {
expect.objectContaining({
reader: mockReader,
integrations,
baseUrl: mockContext.baseUrl,
baseUrl: mockContext.templateInfo?.baseUrl,
fetchUrl: mockContext.input.url,
outputPath: join(
mockTmpDir,
@@ -222,7 +222,7 @@ export function createFetchCookiecutterAction(options: {
await fetchContents({
reader,
integrations,
baseUrl: ctx.baseUrl,
baseUrl: ctx.templateInfo?.baseUrl,
fetchUrl: ctx.input.url,
outputPath: templateContentsDir,
});
@@ -170,7 +170,7 @@ export function createFetchRailsAction(options: {
await fetchContents({
reader,
integrations,
baseUrl: ctx.baseUrl,
baseUrl: ctx.templateInfo?.baseUrl,
fetchUrl: ctx.input.url,
outputPath: workDir,
});
@@ -28,6 +28,8 @@ import { ScmIntegrations } from '@backstage/integration';
import {
TemplateEntityV1beta2,
TemplateEntityV1beta3,
TaskSpecV1beta3,
TaskSpecV1beta2,
} from '@backstage/plugin-scaffolder-common';
import express from 'express';
import Router from 'express-promise-router';
@@ -219,32 +221,36 @@ export async function createRouter(
const baseUrl = getEntityBaseUrl(template);
const baseTaskSpec = {
baseUrl,
steps: template.spec.steps.map((step, index) => ({
...step,
id: step.id ?? `step-${index + 1}`,
name: step.name ?? step.action,
})),
output: template.spec.output ?? {},
// deprecated in favour of templateInfo
metadata: { name: template.metadata?.name },
templateInfo: {
name: template.metadata?.name,
baseUrl,
},
};
taskSpec =
template.apiVersion === 'backstage.io/v1beta2'
? {
? ({
...baseTaskSpec,
apiVersion: template.apiVersion,
baseUrl,
values,
steps: template.spec.steps.map((step, index) => ({
...step,
id: step.id ?? `step-${index + 1}`,
name: step.name ?? step.action,
})),
output: template.spec.output ?? {},
metadata: { name: template.metadata?.name },
}
: {
} as TaskSpecV1beta2)
: ({
...baseTaskSpec,
apiVersion: template.apiVersion,
baseUrl,
parameters: values,
steps: template.spec.steps.map((step, index) => ({
...step,
id: step.id ?? `step-${index + 1}`,
name: step.name ?? step.action,
})),
output: template.spec.output ?? {},
metadata: { name: template.metadata?.name },
};
} as TaskSpecV1beta3);
} else {
throw new InputError(
`Unsupported apiVersion field in schema entity, ${
@@ -256,8 +262,6 @@ export async function createRouter(
const result = await taskBroker.dispatch(taskSpec, {
...req.body.secrets,
backstageToken: token,
// This is deprecated, but we need to support it for now if people are running their own task broker.
token: token,
});
res.status(201).json({ id: result.taskId });
@@ -60,11 +60,15 @@ export interface TaskStep {
*/
export interface TaskSpecV1beta2 {
apiVersion: 'backstage.io/v1beta2';
/** @deprecated use templateInfo.baseUrl instead */
baseUrl?: string;
values: JsonObject;
steps: TaskStep[];
output: { [name: string]: string };
/** @deprecated use templateInfo instead */
metadata?: TemplateMetadata;
templateInfo?: TemplateInfo;
}
/**
@@ -291,7 +291,7 @@ export const TaskPage = ({ loadingText }: TaskPageProps) => {
const { output } = taskStream;
const handleStartOver = () => {
if (!taskStream.task || !taskStream.task?.spec.metadata?.name) {
if (!taskStream.task || !taskStream.task?.spec.templateInfo?.name) {
navigate(generatePath(rootLink()));
}
@@ -306,7 +306,7 @@ export const TaskPage = ({ loadingText }: TaskPageProps) => {
formData: JSON.stringify(formData),
})}`,
{
templateName: taskStream.task!.spec.metadata!.name,
templateName: taskStream.task!.spec.templateInfo!.name,
},
),
);