@backstage/plugin-scaffolder-backend 1.30.1-next.1 → 1.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +79 -0
- package/config.d.ts +5 -0
- package/dist/ScaffolderPlugin.cjs.js +24 -19
- package/dist/ScaffolderPlugin.cjs.js.map +1 -1
- package/dist/index.d.ts +68 -74
- package/dist/lib/templating/filters.cjs.js +4 -2
- package/dist/lib/templating/filters.cjs.js.map +1 -1
- package/dist/scaffolder/actions/TemplateActionRegistry.cjs.js.map +1 -1
- package/dist/scaffolder/actions/builtin/catalog/fetch.cjs.js +12 -13
- package/dist/scaffolder/actions/builtin/catalog/fetch.cjs.js.map +1 -1
- package/dist/scaffolder/actions/builtin/fetch/template.cjs.js +5 -2
- package/dist/scaffolder/actions/builtin/fetch/template.cjs.js.map +1 -1
- package/dist/scaffolder/actions/builtin/fetch/templateFile.cjs.js +4 -1
- package/dist/scaffolder/actions/builtin/fetch/templateFile.cjs.js.map +1 -1
- package/dist/scaffolder/actions/builtin/filesystem/delete.cjs.js +4 -1
- package/dist/scaffolder/actions/builtin/filesystem/delete.cjs.js.map +1 -1
- package/dist/scaffolder/dryrun/DecoratedActionsRegistry.cjs.js +1 -0
- package/dist/scaffolder/dryrun/DecoratedActionsRegistry.cjs.js.map +1 -1
- package/dist/scaffolder/tasks/NunjucksWorkflowRunner.cjs.js +6 -3
- package/dist/scaffolder/tasks/NunjucksWorkflowRunner.cjs.js.map +1 -1
- package/dist/scaffolder/tasks/helper.cjs.js.map +1 -1
- package/dist/service/router.cjs.js +7 -12
- package/dist/service/router.cjs.js.map +1 -1
- package/dist/util/templating.cjs.js +38 -0
- package/dist/util/templating.cjs.js.map +1 -0
- package/package.json +36 -35
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,84 @@
|
|
|
1
1
|
# @backstage/plugin-scaffolder-backend
|
|
2
2
|
|
|
3
|
+
## 1.31.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 36677bb: Support new `createTemplateAction` type, and convert `catalog:fetch` action to new way of defining actions.
|
|
8
|
+
- 2b1e50d: use CreatedTemplate[Filter|Global*] as canonical template extensions in scaffolder plugin
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- e0b226b: build(deps): bump `esbuild` from 0.24.2 to 0.25.0
|
|
13
|
+
- 09cf038: Got rid of most `@backstage/backend-common` usages
|
|
14
|
+
- 4f8b5b6: Allow signing git commits using configured private PGP key in scaffolder
|
|
15
|
+
- 59dcf37: Fixed bug in fs:delete causing no files to be deleted on windows machines
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
- @backstage/plugin-scaffolder-backend-module-gitlab@0.8.1
|
|
18
|
+
- @backstage/integration@1.16.2
|
|
19
|
+
- @backstage/backend-defaults@0.8.2
|
|
20
|
+
- @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.2.7
|
|
21
|
+
- @backstage/plugin-scaffolder-backend-module-github@0.6.1
|
|
22
|
+
- @backstage/plugin-scaffolder-node@0.8.0
|
|
23
|
+
- @backstage/plugin-permission-node@0.9.0
|
|
24
|
+
- @backstage/plugin-auth-node@0.6.1
|
|
25
|
+
- @backstage/plugin-scaffolder-common@1.5.10
|
|
26
|
+
- @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.2.7
|
|
27
|
+
- @backstage/plugin-scaffolder-backend-module-bitbucket@0.3.8
|
|
28
|
+
- @backstage/plugin-scaffolder-backend-module-gerrit@0.2.7
|
|
29
|
+
- @backstage/plugin-scaffolder-backend-module-azure@0.2.7
|
|
30
|
+
- @backstage/plugin-scaffolder-backend-module-gitea@0.2.7
|
|
31
|
+
- @backstage/plugin-events-node@0.4.9
|
|
32
|
+
- @backstage/backend-plugin-api@1.2.1
|
|
33
|
+
- @backstage/catalog-client@1.9.1
|
|
34
|
+
- @backstage/catalog-model@1.7.3
|
|
35
|
+
- @backstage/config@1.3.2
|
|
36
|
+
- @backstage/errors@1.2.7
|
|
37
|
+
- @backstage/types@1.2.1
|
|
38
|
+
- @backstage/plugin-bitbucket-cloud-common@0.2.28
|
|
39
|
+
- @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.6
|
|
40
|
+
- @backstage/plugin-catalog-node@1.16.1
|
|
41
|
+
- @backstage/plugin-permission-common@0.8.4
|
|
42
|
+
|
|
43
|
+
## 1.31.0-next.2
|
|
44
|
+
|
|
45
|
+
### Minor Changes
|
|
46
|
+
|
|
47
|
+
- 36677bb: Support new `createTemplateAction` type, and convert `catalog:fetch` action to new way of defining actions.
|
|
48
|
+
- 2b1e50d: use CreatedTemplate[Filter|Global*] as canonical template extensions in scaffolder plugin
|
|
49
|
+
|
|
50
|
+
### Patch Changes
|
|
51
|
+
|
|
52
|
+
- e0b226b: build(deps): bump `esbuild` from 0.24.2 to 0.25.0
|
|
53
|
+
- 4f8b5b6: Allow signing git commits using configured private PGP key in scaffolder
|
|
54
|
+
- 59dcf37: Fixed bug in fs:delete causing no files to be deleted on windows machines
|
|
55
|
+
- Updated dependencies
|
|
56
|
+
- @backstage/plugin-scaffolder-backend-module-gitlab@0.8.1-next.2
|
|
57
|
+
- @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.2.7-next.2
|
|
58
|
+
- @backstage/plugin-scaffolder-node@0.8.0-next.2
|
|
59
|
+
- @backstage/plugin-scaffolder-backend-module-github@0.6.1-next.2
|
|
60
|
+
- @backstage/backend-defaults@0.8.2-next.2
|
|
61
|
+
- @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.2.7-next.2
|
|
62
|
+
- @backstage/plugin-scaffolder-backend-module-bitbucket@0.3.8-next.2
|
|
63
|
+
- @backstage/plugin-scaffolder-backend-module-gerrit@0.2.7-next.2
|
|
64
|
+
- @backstage/plugin-scaffolder-backend-module-azure@0.2.7-next.2
|
|
65
|
+
- @backstage/plugin-scaffolder-backend-module-gitea@0.2.7-next.2
|
|
66
|
+
- @backstage/integration@1.16.2-next.0
|
|
67
|
+
- @backstage/plugin-events-node@0.4.9-next.2
|
|
68
|
+
- @backstage/backend-plugin-api@1.2.1-next.1
|
|
69
|
+
- @backstage/catalog-client@1.9.1
|
|
70
|
+
- @backstage/catalog-model@1.7.3
|
|
71
|
+
- @backstage/config@1.3.2
|
|
72
|
+
- @backstage/errors@1.2.7
|
|
73
|
+
- @backstage/types@1.2.1
|
|
74
|
+
- @backstage/plugin-auth-node@0.6.1-next.1
|
|
75
|
+
- @backstage/plugin-bitbucket-cloud-common@0.2.28-next.0
|
|
76
|
+
- @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.6-next.1
|
|
77
|
+
- @backstage/plugin-catalog-node@1.16.1-next.1
|
|
78
|
+
- @backstage/plugin-permission-common@0.8.4
|
|
79
|
+
- @backstage/plugin-permission-node@0.8.9-next.1
|
|
80
|
+
- @backstage/plugin-scaffolder-common@1.5.10-next.0
|
|
81
|
+
|
|
3
82
|
## 1.30.1-next.1
|
|
4
83
|
|
|
5
84
|
### Patch Changes
|
package/config.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ require('./scaffolder/tasks/NunjucksWorkflowRunner.cjs.js');
|
|
|
37
37
|
require('timers/promises');
|
|
38
38
|
var router = require('./service/router.cjs.js');
|
|
39
39
|
var loggerToWinstonLogger = require('./util/loggerToWinstonLogger.cjs.js');
|
|
40
|
+
var templating = require('./util/templating.cjs.js');
|
|
40
41
|
|
|
41
42
|
const scaffolderPlugin = backendPluginApi.createBackendPlugin({
|
|
42
43
|
pluginId: "scaffolder",
|
|
@@ -56,26 +57,24 @@ const scaffolderPlugin = backendPluginApi.createBackendPlugin({
|
|
|
56
57
|
taskBroker = newTaskBroker;
|
|
57
58
|
}
|
|
58
59
|
});
|
|
59
|
-
const additionalTemplateFilters =
|
|
60
|
-
const additionalTemplateGlobals =
|
|
60
|
+
const additionalTemplateFilters = [];
|
|
61
|
+
const additionalTemplateGlobals = [];
|
|
61
62
|
env.registerExtensionPoint(alpha.scaffolderTemplatingExtensionPoint, {
|
|
62
63
|
addTemplateFilters(newFilters) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
additionalTemplateFilters.push(
|
|
65
|
+
...Array.isArray(newFilters) ? newFilters : Object.entries(newFilters).map(
|
|
66
|
+
([id, filter]) => alpha.createTemplateFilter({
|
|
67
|
+
id,
|
|
68
|
+
filter
|
|
69
|
+
})
|
|
70
|
+
)
|
|
68
71
|
);
|
|
69
72
|
},
|
|
70
73
|
addTemplateGlobals(newGlobals) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
g.id,
|
|
76
|
-
"value" in g ? g.value : g.fn
|
|
77
|
-
])
|
|
78
|
-
) : newGlobals
|
|
74
|
+
additionalTemplateGlobals.push(
|
|
75
|
+
...Array.isArray(newGlobals) ? newGlobals : Object.entries(newGlobals).map(
|
|
76
|
+
([id, global]) => typeof global === "function" ? alpha.createTemplateGlobalFunction({ id, fn: global }) : alpha.createTemplateGlobalValue({ id, value: global })
|
|
77
|
+
)
|
|
79
78
|
);
|
|
80
79
|
}
|
|
81
80
|
});
|
|
@@ -124,6 +123,14 @@ const scaffolderPlugin = backendPluginApi.createBackendPlugin({
|
|
|
124
123
|
}) {
|
|
125
124
|
const log$1 = loggerToWinstonLogger.loggerToWinstonLogger(logger);
|
|
126
125
|
const integrations = integration.ScmIntegrations.fromConfig(config);
|
|
126
|
+
const templateExtensions = {
|
|
127
|
+
additionalTemplateFilters: templating.convertFiltersToRecord(
|
|
128
|
+
additionalTemplateFilters
|
|
129
|
+
),
|
|
130
|
+
additionalTemplateGlobals: templating.convertGlobalsToRecord(
|
|
131
|
+
additionalTemplateGlobals
|
|
132
|
+
)
|
|
133
|
+
};
|
|
127
134
|
const actions = [
|
|
128
135
|
// actions provided from other modules
|
|
129
136
|
...addedActions,
|
|
@@ -139,14 +146,12 @@ const scaffolderPlugin = backendPluginApi.createBackendPlugin({
|
|
|
139
146
|
template.createFetchTemplateAction({
|
|
140
147
|
integrations,
|
|
141
148
|
reader,
|
|
142
|
-
|
|
143
|
-
additionalTemplateGlobals
|
|
149
|
+
...templateExtensions
|
|
144
150
|
}),
|
|
145
151
|
templateFile.createFetchTemplateFileAction({
|
|
146
152
|
integrations,
|
|
147
153
|
reader,
|
|
148
|
-
|
|
149
|
-
additionalTemplateGlobals
|
|
154
|
+
...templateExtensions
|
|
150
155
|
}),
|
|
151
156
|
log.createDebugLogAction(),
|
|
152
157
|
wait.createWaitAction(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScaffolderPlugin.cjs.js","sources":["../src/ScaffolderPlugin.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n coreServices,\n createBackendPlugin,\n} from '@backstage/backend-plugin-api';\nimport { ScmIntegrations } from '@backstage/integration';\nimport { catalogServiceRef } from '@backstage/plugin-catalog-node/alpha';\nimport { eventsServiceRef } from '@backstage/plugin-events-node';\nimport {\n TaskBroker,\n TemplateAction,\n TemplateFilter,\n TemplateGlobal,\n} from '@backstage/plugin-scaffolder-node';\nimport {\n AutocompleteHandler,\n scaffolderActionsExtensionPoint,\n scaffolderAutocompleteExtensionPoint,\n scaffolderTaskBrokerExtensionPoint,\n scaffolderTemplatingExtensionPoint,\n scaffolderWorkspaceProviderExtensionPoint,\n WorkspaceProvider,\n} from '@backstage/plugin-scaffolder-node/alpha';\nimport {\n createCatalogRegisterAction,\n createCatalogWriteAction,\n createDebugLogAction,\n createFetchCatalogEntityAction,\n createFetchPlainAction,\n createFetchPlainFileAction,\n createFetchTemplateAction,\n createFetchTemplateFileAction,\n createFilesystemDeleteAction,\n createFilesystemReadDirAction,\n createFilesystemRenameAction,\n createWaitAction,\n} from './scaffolder';\nimport { createRouter } from './service/router';\nimport { loggerToWinstonLogger } from './util/loggerToWinstonLogger';\n\n/**\n * Scaffolder plugin\n *\n * @public\n */\nexport const scaffolderPlugin = createBackendPlugin({\n pluginId: 'scaffolder',\n register(env) {\n const addedActions = new Array<TemplateAction<any, any>>();\n env.registerExtensionPoint(scaffolderActionsExtensionPoint, {\n addActions(...newActions: TemplateAction<any>[]) {\n addedActions.push(...newActions);\n },\n });\n\n let taskBroker: TaskBroker | undefined;\n env.registerExtensionPoint(scaffolderTaskBrokerExtensionPoint, {\n setTaskBroker(newTaskBroker) {\n if (taskBroker) {\n throw new Error('Task broker may only be set once');\n }\n taskBroker = newTaskBroker;\n },\n });\n\n const additionalTemplateFilters: Record<string, TemplateFilter> = {};\n const additionalTemplateGlobals: Record<string, TemplateGlobal> = {};\n env.registerExtensionPoint(scaffolderTemplatingExtensionPoint, {\n addTemplateFilters(newFilters) {\n Object.assign(\n additionalTemplateFilters,\n Array.isArray(newFilters)\n ? Object.fromEntries(\n newFilters.map(tf => [tf.id, tf.filter as TemplateFilter]),\n )\n : newFilters,\n );\n },\n addTemplateGlobals(newGlobals) {\n Object.assign(\n additionalTemplateGlobals,\n Array.isArray(newGlobals)\n ? Object.fromEntries(\n newGlobals.map(g => [\n g.id,\n ('value' in g ? g.value : g.fn) as TemplateGlobal,\n ]),\n )\n : newGlobals,\n );\n },\n });\n\n const autocompleteHandlers: Record<string, AutocompleteHandler> = {};\n env.registerExtensionPoint(scaffolderAutocompleteExtensionPoint, {\n addAutocompleteProvider(provider) {\n autocompleteHandlers[provider.id] = provider.handler;\n },\n });\n\n const additionalWorkspaceProviders: Record<string, WorkspaceProvider> = {};\n env.registerExtensionPoint(scaffolderWorkspaceProviderExtensionPoint, {\n addProviders(provider) {\n Object.assign(additionalWorkspaceProviders, provider);\n },\n });\n\n env.registerInit({\n deps: {\n logger: coreServices.logger,\n config: coreServices.rootConfig,\n lifecycle: coreServices.rootLifecycle,\n reader: coreServices.urlReader,\n permissions: coreServices.permissions,\n database: coreServices.database,\n auth: coreServices.auth,\n discovery: coreServices.discovery,\n httpRouter: coreServices.httpRouter,\n httpAuth: coreServices.httpAuth,\n auditor: coreServices.auditor,\n catalogClient: catalogServiceRef,\n events: eventsServiceRef,\n },\n async init({\n logger,\n config,\n lifecycle,\n reader,\n database,\n auth,\n discovery,\n httpRouter,\n httpAuth,\n catalogClient,\n permissions,\n events,\n auditor,\n }) {\n const log = loggerToWinstonLogger(logger);\n const integrations = ScmIntegrations.fromConfig(config);\n\n const actions = [\n // actions provided from other modules\n ...addedActions,\n\n // built-in actions for the scaffolder\n createFetchPlainAction({\n reader,\n integrations,\n }),\n createFetchPlainFileAction({\n reader,\n integrations,\n }),\n createFetchTemplateAction({\n integrations,\n reader,\n additionalTemplateFilters,\n additionalTemplateGlobals,\n }),\n createFetchTemplateFileAction({\n integrations,\n reader,\n additionalTemplateFilters,\n additionalTemplateGlobals,\n }),\n createDebugLogAction(),\n createWaitAction(),\n // todo(blam): maybe these should be a -catalog module?\n createCatalogRegisterAction({ catalogClient, integrations, auth }),\n createFetchCatalogEntityAction({ catalogClient, auth }),\n createCatalogWriteAction(),\n createFilesystemDeleteAction(),\n createFilesystemRenameAction(),\n createFilesystemReadDirAction(),\n ];\n\n const actionIds = actions.map(action => action.id).join(', ');\n\n log.info(\n `Starting scaffolder with the following actions enabled ${actionIds}`,\n );\n\n const router = await createRouter({\n logger: log,\n config,\n database,\n catalogClient,\n reader,\n lifecycle,\n actions,\n taskBroker,\n additionalTemplateFilters,\n additionalTemplateGlobals,\n auth,\n httpAuth,\n discovery,\n permissions,\n autocompleteHandlers,\n additionalWorkspaceProviders,\n events,\n auditor,\n });\n httpRouter.use(router);\n },\n });\n },\n});\n"],"names":["createBackendPlugin","scaffolderActionsExtensionPoint","scaffolderTaskBrokerExtensionPoint","scaffolderTemplatingExtensionPoint","scaffolderAutocompleteExtensionPoint","scaffolderWorkspaceProviderExtensionPoint","coreServices","catalogServiceRef","eventsServiceRef","log","loggerToWinstonLogger","ScmIntegrations","createFetchPlainAction","createFetchPlainFileAction","createFetchTemplateAction","createFetchTemplateFileAction","createDebugLogAction","createWaitAction","createCatalogRegisterAction","createFetchCatalogEntityAction","createCatalogWriteAction","createFilesystemDeleteAction","createFilesystemRenameAction","createFilesystemReadDirAction","router","createRouter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScaffolderPlugin.cjs.js","sources":["../src/ScaffolderPlugin.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n coreServices,\n createBackendPlugin,\n} from '@backstage/backend-plugin-api';\nimport { ScmIntegrations } from '@backstage/integration';\nimport { catalogServiceRef } from '@backstage/plugin-catalog-node/alpha';\nimport { eventsServiceRef } from '@backstage/plugin-events-node';\nimport { TaskBroker, TemplateAction } from '@backstage/plugin-scaffolder-node';\nimport {\n AutocompleteHandler,\n CreatedTemplateFilter,\n CreatedTemplateGlobal,\n createTemplateFilter,\n createTemplateGlobalFunction,\n createTemplateGlobalValue,\n scaffolderActionsExtensionPoint,\n scaffolderAutocompleteExtensionPoint,\n scaffolderTaskBrokerExtensionPoint,\n scaffolderTemplatingExtensionPoint,\n scaffolderWorkspaceProviderExtensionPoint,\n WorkspaceProvider,\n} from '@backstage/plugin-scaffolder-node/alpha';\nimport {\n createCatalogRegisterAction,\n createCatalogWriteAction,\n createDebugLogAction,\n createFetchCatalogEntityAction,\n createFetchPlainAction,\n createFetchPlainFileAction,\n createFetchTemplateAction,\n createFetchTemplateFileAction,\n createFilesystemDeleteAction,\n createFilesystemReadDirAction,\n createFilesystemRenameAction,\n createWaitAction,\n} from './scaffolder';\nimport { createRouter } from './service/router';\nimport { loggerToWinstonLogger } from './util/loggerToWinstonLogger';\nimport {\n convertFiltersToRecord,\n convertGlobalsToRecord,\n} from './util/templating';\n\n/**\n * Scaffolder plugin\n *\n * @public\n */\nexport const scaffolderPlugin = createBackendPlugin({\n pluginId: 'scaffolder',\n register(env) {\n const addedActions = new Array<TemplateAction<any, any>>();\n env.registerExtensionPoint(scaffolderActionsExtensionPoint, {\n addActions(...newActions: TemplateAction<any>[]) {\n addedActions.push(...newActions);\n },\n });\n\n let taskBroker: TaskBroker | undefined;\n env.registerExtensionPoint(scaffolderTaskBrokerExtensionPoint, {\n setTaskBroker(newTaskBroker) {\n if (taskBroker) {\n throw new Error('Task broker may only be set once');\n }\n taskBroker = newTaskBroker;\n },\n });\n\n const additionalTemplateFilters: CreatedTemplateFilter[] = [];\n const additionalTemplateGlobals: CreatedTemplateGlobal[] = [];\n\n env.registerExtensionPoint(scaffolderTemplatingExtensionPoint, {\n addTemplateFilters(newFilters) {\n additionalTemplateFilters.push(\n ...(Array.isArray(newFilters)\n ? newFilters\n : Object.entries(newFilters).map(([id, filter]) =>\n createTemplateFilter({\n id,\n filter,\n }),\n )),\n );\n },\n addTemplateGlobals(newGlobals) {\n additionalTemplateGlobals.push(\n ...(Array.isArray(newGlobals)\n ? newGlobals\n : Object.entries(newGlobals).map(([id, global]) =>\n typeof global === 'function'\n ? createTemplateGlobalFunction({ id, fn: global })\n : createTemplateGlobalValue({ id, value: global }),\n )),\n );\n },\n });\n\n const autocompleteHandlers: Record<string, AutocompleteHandler> = {};\n env.registerExtensionPoint(scaffolderAutocompleteExtensionPoint, {\n addAutocompleteProvider(provider) {\n autocompleteHandlers[provider.id] = provider.handler;\n },\n });\n\n const additionalWorkspaceProviders: Record<string, WorkspaceProvider> = {};\n env.registerExtensionPoint(scaffolderWorkspaceProviderExtensionPoint, {\n addProviders(provider) {\n Object.assign(additionalWorkspaceProviders, provider);\n },\n });\n\n env.registerInit({\n deps: {\n logger: coreServices.logger,\n config: coreServices.rootConfig,\n lifecycle: coreServices.rootLifecycle,\n reader: coreServices.urlReader,\n permissions: coreServices.permissions,\n database: coreServices.database,\n auth: coreServices.auth,\n discovery: coreServices.discovery,\n httpRouter: coreServices.httpRouter,\n httpAuth: coreServices.httpAuth,\n auditor: coreServices.auditor,\n catalogClient: catalogServiceRef,\n events: eventsServiceRef,\n },\n async init({\n logger,\n config,\n lifecycle,\n reader,\n database,\n auth,\n discovery,\n httpRouter,\n httpAuth,\n catalogClient,\n permissions,\n events,\n auditor,\n }) {\n const log = loggerToWinstonLogger(logger);\n const integrations = ScmIntegrations.fromConfig(config);\n\n const templateExtensions = {\n additionalTemplateFilters: convertFiltersToRecord(\n additionalTemplateFilters,\n ),\n additionalTemplateGlobals: convertGlobalsToRecord(\n additionalTemplateGlobals,\n ),\n };\n const actions = [\n // actions provided from other modules\n ...addedActions,\n\n // built-in actions for the scaffolder\n createFetchPlainAction({\n reader,\n integrations,\n }),\n createFetchPlainFileAction({\n reader,\n integrations,\n }),\n createFetchTemplateAction({\n integrations,\n reader,\n ...templateExtensions,\n }),\n createFetchTemplateFileAction({\n integrations,\n reader,\n ...templateExtensions,\n }),\n createDebugLogAction(),\n createWaitAction(),\n // todo(blam): maybe these should be a -catalog module?\n createCatalogRegisterAction({ catalogClient, integrations, auth }),\n createFetchCatalogEntityAction({ catalogClient, auth }),\n createCatalogWriteAction(),\n createFilesystemDeleteAction(),\n createFilesystemRenameAction(),\n createFilesystemReadDirAction(),\n ];\n\n const actionIds = actions.map(action => action.id).join(', ');\n\n log.info(\n `Starting scaffolder with the following actions enabled ${actionIds}`,\n );\n\n const router = await createRouter({\n logger: log,\n config,\n database,\n catalogClient,\n reader,\n lifecycle,\n actions,\n taskBroker,\n additionalTemplateFilters,\n additionalTemplateGlobals,\n auth,\n httpAuth,\n discovery,\n permissions,\n autocompleteHandlers,\n additionalWorkspaceProviders,\n events,\n auditor,\n });\n httpRouter.use(router);\n },\n });\n },\n});\n"],"names":["createBackendPlugin","scaffolderActionsExtensionPoint","scaffolderTaskBrokerExtensionPoint","scaffolderTemplatingExtensionPoint","createTemplateFilter","createTemplateGlobalFunction","createTemplateGlobalValue","scaffolderAutocompleteExtensionPoint","scaffolderWorkspaceProviderExtensionPoint","coreServices","catalogServiceRef","eventsServiceRef","log","loggerToWinstonLogger","ScmIntegrations","convertFiltersToRecord","convertGlobalsToRecord","createFetchPlainAction","createFetchPlainFileAction","createFetchTemplateAction","createFetchTemplateFileAction","createDebugLogAction","createWaitAction","createCatalogRegisterAction","createFetchCatalogEntityAction","createCatalogWriteAction","createFilesystemDeleteAction","createFilesystemRenameAction","createFilesystemReadDirAction","router","createRouter"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
|
|
3
2
|
import { AuthService, UrlReaderService, DatabaseService, BackstageCredentials, AuditorService, LifecycleService, SchedulerService, PermissionsService, HttpAuthService, DiscoveryService } from '@backstage/backend-plugin-api';
|
|
4
3
|
import * as _backstage_plugin_scaffolder_node from '@backstage/plugin-scaffolder-node';
|
|
5
|
-
import { TemplateFilter as TemplateFilter$1, TemplateGlobal as TemplateGlobal$1, TemplateAction as TemplateAction$1, TaskStatus as TaskStatus$1, TaskCompletionState as TaskCompletionState$1, SerializedTask as SerializedTask$1, TaskEventType as TaskEventType$1, SerializedTaskEvent as SerializedTaskEvent$1, TaskBrokerDispatchResult as TaskBrokerDispatchResult$1, TaskBrokerDispatchOptions as TaskBrokerDispatchOptions$1, TaskContext as TaskContext$1, TaskBroker as TaskBroker$1, TaskSecrets as TaskSecrets$1, ActionContext as ActionContext$1, ExecuteShellCommandOptions, executeShellCommand as executeShellCommand$1, fetchContents as fetchContents$1 } from '@backstage/plugin-scaffolder-node';
|
|
4
|
+
import { TemplateFilter as TemplateFilter$1, TemplateGlobal as TemplateGlobal$1, TemplateAction as TemplateAction$1, TaskStatus as TaskStatus$1, TaskCompletionState as TaskCompletionState$1, SerializedTask as SerializedTask$1, TaskEventType as TaskEventType$1, SerializedTaskEvent as SerializedTaskEvent$1, TaskBrokerDispatchResult as TaskBrokerDispatchResult$1, TaskBrokerDispatchOptions as TaskBrokerDispatchOptions$1, TaskContext as TaskContext$1, TaskBroker as TaskBroker$1, TaskSecrets as TaskSecrets$1, ActionContext as ActionContext$1, createTemplateAction as createTemplateAction$1, ExecuteShellCommandOptions, executeShellCommand as executeShellCommand$1, fetchContents as fetchContents$1 } from '@backstage/plugin-scaffolder-node';
|
|
6
5
|
import * as _backstage_types from '@backstage/types';
|
|
7
6
|
import { HumanDuration, JsonObject, JsonValue } from '@backstage/types';
|
|
8
7
|
import * as _backstage_integration from '@backstage/integration';
|
|
@@ -28,8 +27,6 @@ import { IdentityApi } from '@backstage/plugin-auth-node';
|
|
|
28
27
|
import { PermissionRule } from '@backstage/plugin-permission-node';
|
|
29
28
|
import { RESOURCE_TYPE_SCAFFOLDER_TEMPLATE, RESOURCE_TYPE_SCAFFOLDER_ACTION } from '@backstage/plugin-scaffolder-common/alpha';
|
|
30
29
|
import express from 'express';
|
|
31
|
-
import * as jsonschema from 'jsonschema';
|
|
32
|
-
import * as zod from 'zod';
|
|
33
30
|
import { ScaffolderEntitiesProcessor as ScaffolderEntitiesProcessor$1 } from '@backstage/plugin-catalog-backend-module-scaffolder-entity-model';
|
|
34
31
|
|
|
35
32
|
/**
|
|
@@ -49,12 +46,12 @@ declare function createCatalogRegisterAction(options: {
|
|
|
49
46
|
auth?: AuthService;
|
|
50
47
|
}): _backstage_plugin_scaffolder_node.TemplateAction<{
|
|
51
48
|
catalogInfoUrl: string;
|
|
52
|
-
optional?: boolean
|
|
49
|
+
optional?: boolean;
|
|
53
50
|
} | {
|
|
54
51
|
repoContentsUrl: string;
|
|
55
|
-
catalogInfoPath?: string
|
|
56
|
-
optional?: boolean
|
|
57
|
-
}, _backstage_types.JsonObject>;
|
|
52
|
+
catalogInfoPath?: string;
|
|
53
|
+
optional?: boolean;
|
|
54
|
+
}, _backstage_types.JsonObject, "v1">;
|
|
58
55
|
|
|
59
56
|
/**
|
|
60
57
|
* Writes a catalog descriptor file containing the provided entity to a path in the workspace.
|
|
@@ -63,7 +60,7 @@ declare function createCatalogRegisterAction(options: {
|
|
|
63
60
|
declare function createCatalogWriteAction(): _backstage_plugin_scaffolder_node.TemplateAction<{
|
|
64
61
|
entity: Record<string, any>;
|
|
65
62
|
filePath?: string | undefined;
|
|
66
|
-
},
|
|
63
|
+
}, any, "v1">;
|
|
67
64
|
|
|
68
65
|
/**
|
|
69
66
|
* Returns entity or entities from the catalog by entity reference(s).
|
|
@@ -74,15 +71,15 @@ declare function createFetchCatalogEntityAction(options: {
|
|
|
74
71
|
catalogClient: CatalogApi;
|
|
75
72
|
auth?: AuthService;
|
|
76
73
|
}): _backstage_plugin_scaffolder_node.TemplateAction<{
|
|
74
|
+
entityRef?: string | undefined;
|
|
75
|
+
entityRefs?: string[] | undefined;
|
|
77
76
|
optional?: boolean | undefined;
|
|
78
77
|
defaultKind?: string | undefined;
|
|
79
78
|
defaultNamespace?: string | undefined;
|
|
80
|
-
entityRef?: string | undefined;
|
|
81
|
-
entityRefs?: string[] | undefined;
|
|
82
79
|
}, {
|
|
83
|
-
entities?: any[] | undefined;
|
|
84
80
|
entity?: any;
|
|
85
|
-
|
|
81
|
+
entities?: any[] | undefined;
|
|
82
|
+
}, "v2">;
|
|
86
83
|
|
|
87
84
|
/**
|
|
88
85
|
* The options passed to {@link createBuiltinActions}
|
|
@@ -138,10 +135,7 @@ declare const createBuiltinActions: (options: CreateBuiltInActionsOptions) => Te
|
|
|
138
135
|
*
|
|
139
136
|
* @public
|
|
140
137
|
*/
|
|
141
|
-
declare function createDebugLogAction(): _backstage_plugin_scaffolder_node.TemplateAction<
|
|
142
|
-
message?: string | undefined;
|
|
143
|
-
listWorkspace?: boolean | "with-contents" | "with-filenames" | undefined;
|
|
144
|
-
}, _backstage_types.JsonObject>;
|
|
138
|
+
declare function createDebugLogAction(): _backstage_plugin_scaffolder_node.TemplateAction<any, any, "v1">;
|
|
145
139
|
|
|
146
140
|
/**
|
|
147
141
|
* Waits for a certain period of time.
|
|
@@ -155,7 +149,7 @@ declare function createDebugLogAction(): _backstage_plugin_scaffolder_node.Templ
|
|
|
155
149
|
*/
|
|
156
150
|
declare function createWaitAction(options?: {
|
|
157
151
|
maxWaitTime?: Duration | HumanDuration;
|
|
158
|
-
}): _backstage_plugin_scaffolder_node.TemplateAction<HumanDuration, _backstage_types.JsonObject>;
|
|
152
|
+
}): _backstage_plugin_scaffolder_node.TemplateAction<HumanDuration, _backstage_types.JsonObject, "v1">;
|
|
159
153
|
|
|
160
154
|
/**
|
|
161
155
|
* Downloads content and places it in the workspace, or optionally
|
|
@@ -167,9 +161,9 @@ declare function createFetchPlainAction(options: {
|
|
|
167
161
|
integrations: ScmIntegrations;
|
|
168
162
|
}): _backstage_plugin_scaffolder_node.TemplateAction<{
|
|
169
163
|
url: string;
|
|
170
|
-
targetPath?: string
|
|
171
|
-
token?: string
|
|
172
|
-
}, _backstage_types.JsonObject>;
|
|
164
|
+
targetPath?: string;
|
|
165
|
+
token?: string;
|
|
166
|
+
}, _backstage_types.JsonObject, "v1">;
|
|
173
167
|
|
|
174
168
|
/**
|
|
175
169
|
* Downloads content and places it in the workspace, or optionally
|
|
@@ -182,8 +176,8 @@ declare function createFetchPlainFileAction(options: {
|
|
|
182
176
|
}): _backstage_plugin_scaffolder_node.TemplateAction<{
|
|
183
177
|
url: string;
|
|
184
178
|
targetPath: string;
|
|
185
|
-
token?: string
|
|
186
|
-
}, _backstage_types.JsonObject>;
|
|
179
|
+
token?: string;
|
|
180
|
+
}, _backstage_types.JsonObject, "v1">;
|
|
187
181
|
|
|
188
182
|
/**
|
|
189
183
|
* Downloads a skeleton, templates variables into file and directory names and content.
|
|
@@ -199,20 +193,20 @@ declare function createFetchTemplateAction(options: {
|
|
|
199
193
|
additionalTemplateGlobals?: Record<string, TemplateGlobal$1>;
|
|
200
194
|
}): _backstage_plugin_scaffolder_node.TemplateAction<{
|
|
201
195
|
url: string;
|
|
202
|
-
targetPath?: string
|
|
196
|
+
targetPath?: string;
|
|
203
197
|
values: any;
|
|
204
|
-
templateFileExtension?: string | boolean
|
|
198
|
+
templateFileExtension?: string | boolean;
|
|
205
199
|
/**
|
|
206
200
|
* @deprecated This field is deprecated in favor of copyWithoutTemplating.
|
|
207
201
|
*/
|
|
208
|
-
copyWithoutRender?: string[]
|
|
209
|
-
copyWithoutTemplating?: string[]
|
|
210
|
-
cookiecutterCompat?: boolean
|
|
211
|
-
replace?: boolean
|
|
212
|
-
trimBlocks?: boolean
|
|
213
|
-
lstripBlocks?: boolean
|
|
214
|
-
token?: string
|
|
215
|
-
}, _backstage_types.JsonObject>;
|
|
202
|
+
copyWithoutRender?: string[];
|
|
203
|
+
copyWithoutTemplating?: string[];
|
|
204
|
+
cookiecutterCompat?: boolean;
|
|
205
|
+
replace?: boolean;
|
|
206
|
+
trimBlocks?: boolean;
|
|
207
|
+
lstripBlocks?: boolean;
|
|
208
|
+
token?: string;
|
|
209
|
+
}, _backstage_types.JsonObject, "v1">;
|
|
216
210
|
|
|
217
211
|
/**
|
|
218
212
|
* Downloads a single file and templates variables into file.
|
|
@@ -229,12 +223,12 @@ declare function createFetchTemplateFileAction(options: {
|
|
|
229
223
|
url: string;
|
|
230
224
|
targetPath: string;
|
|
231
225
|
values: any;
|
|
232
|
-
cookiecutterCompat?: boolean
|
|
233
|
-
replace?: boolean
|
|
234
|
-
trimBlocks?: boolean
|
|
235
|
-
lstripBlocks?: boolean
|
|
236
|
-
token?: string
|
|
237
|
-
}, _backstage_types.JsonObject>;
|
|
226
|
+
cookiecutterCompat?: boolean;
|
|
227
|
+
replace?: boolean;
|
|
228
|
+
trimBlocks?: boolean;
|
|
229
|
+
lstripBlocks?: boolean;
|
|
230
|
+
token?: string;
|
|
231
|
+
}, _backstage_types.JsonObject, "v1">;
|
|
238
232
|
|
|
239
233
|
/**
|
|
240
234
|
* Creates new action that enables deletion of files and directories in the workspace.
|
|
@@ -242,7 +236,7 @@ declare function createFetchTemplateFileAction(options: {
|
|
|
242
236
|
*/
|
|
243
237
|
declare const createFilesystemDeleteAction: () => _backstage_plugin_scaffolder_node.TemplateAction<{
|
|
244
238
|
files: string[];
|
|
245
|
-
}, _backstage_types.JsonObject>;
|
|
239
|
+
}, _backstage_types.JsonObject, "v1">;
|
|
246
240
|
|
|
247
241
|
/**
|
|
248
242
|
* Creates a new action that allows renames of files and directories in the workspace.
|
|
@@ -254,15 +248,15 @@ declare const createFilesystemRenameAction: () => _backstage_plugin_scaffolder_n
|
|
|
254
248
|
to: string;
|
|
255
249
|
overwrite?: boolean;
|
|
256
250
|
}>;
|
|
257
|
-
}, _backstage_types.JsonObject>;
|
|
251
|
+
}, _backstage_types.JsonObject, "v1">;
|
|
258
252
|
|
|
259
253
|
/**
|
|
260
254
|
* Creates new action that enables reading directories in the workspace.
|
|
261
255
|
* @public
|
|
262
256
|
*/
|
|
263
257
|
declare const createFilesystemReadDirAction: () => _backstage_plugin_scaffolder_node.TemplateAction<{
|
|
258
|
+
recursive: boolean;
|
|
264
259
|
paths: string[];
|
|
265
|
-
recursive?: boolean | undefined;
|
|
266
260
|
}, {
|
|
267
261
|
files: {
|
|
268
262
|
name: string;
|
|
@@ -274,7 +268,7 @@ declare const createFilesystemReadDirAction: () => _backstage_plugin_scaffolder_
|
|
|
274
268
|
path: string;
|
|
275
269
|
fullPath: string;
|
|
276
270
|
}[];
|
|
277
|
-
}>;
|
|
271
|
+
}, "v1">;
|
|
278
272
|
|
|
279
273
|
/**
|
|
280
274
|
* @public
|
|
@@ -328,23 +322,23 @@ declare const createPublishGithubAction: typeof createPublishGithubAction$1;
|
|
|
328
322
|
declare const createPublishGithubPullRequestAction: (options: CreateGithubPullRequestActionOptions$1) => _backstage_plugin_scaffolder_node.TemplateAction<{
|
|
329
323
|
title: string;
|
|
330
324
|
branchName: string;
|
|
331
|
-
targetBranchName?: string
|
|
325
|
+
targetBranchName?: string;
|
|
332
326
|
description: string;
|
|
333
327
|
repoUrl: string;
|
|
334
|
-
draft?: boolean
|
|
335
|
-
targetPath?: string
|
|
336
|
-
sourcePath?: string
|
|
337
|
-
token?: string
|
|
338
|
-
reviewers?: string[]
|
|
339
|
-
teamReviewers?: string[]
|
|
340
|
-
commitMessage?: string
|
|
341
|
-
update?: boolean
|
|
342
|
-
forceFork?: boolean
|
|
343
|
-
gitAuthorName?: string
|
|
344
|
-
gitAuthorEmail?: string
|
|
345
|
-
forceEmptyGitAuthor?: boolean
|
|
346
|
-
createWhenEmpty?: boolean
|
|
347
|
-
}, _backstage_types.JsonObject>;
|
|
328
|
+
draft?: boolean;
|
|
329
|
+
targetPath?: string;
|
|
330
|
+
sourcePath?: string;
|
|
331
|
+
token?: string;
|
|
332
|
+
reviewers?: string[];
|
|
333
|
+
teamReviewers?: string[];
|
|
334
|
+
commitMessage?: string;
|
|
335
|
+
update?: boolean;
|
|
336
|
+
forceFork?: boolean;
|
|
337
|
+
gitAuthorName?: string;
|
|
338
|
+
gitAuthorEmail?: string;
|
|
339
|
+
forceEmptyGitAuthor?: boolean;
|
|
340
|
+
createWhenEmpty?: boolean;
|
|
341
|
+
}, _backstage_types.JsonObject, "v1">;
|
|
348
342
|
/**
|
|
349
343
|
* @public @deprecated use "createPublishBitbucketCloudAction" from \@backstage/plugin-scaffolder-backend-module-bitbucket-cloud or "createPublishBitbucketServerAction" from \@backstage/plugin-scaffolder-backend-module-bitbucket-server instead
|
|
350
344
|
*/
|
|
@@ -395,17 +389,17 @@ declare const createPublishGitlabMergeRequestAction: (options: {
|
|
|
395
389
|
title: string;
|
|
396
390
|
description: string;
|
|
397
391
|
branchName: string;
|
|
398
|
-
targetBranchName?: string
|
|
399
|
-
sourcePath?: string
|
|
400
|
-
targetPath?: string
|
|
401
|
-
token?: string
|
|
402
|
-
commitAction?: "
|
|
403
|
-
projectid?: string
|
|
404
|
-
removeSourceBranch?: boolean
|
|
405
|
-
assignee?: string
|
|
406
|
-
reviewers?: string[]
|
|
407
|
-
assignReviewersFromApprovalRules?: boolean
|
|
408
|
-
}, _backstage_types.JsonObject>;
|
|
392
|
+
targetBranchName?: string;
|
|
393
|
+
sourcePath?: string;
|
|
394
|
+
targetPath?: string;
|
|
395
|
+
token?: string;
|
|
396
|
+
commitAction?: "create" | "delete" | "update" | "skip" | "auto";
|
|
397
|
+
projectid?: string;
|
|
398
|
+
removeSourceBranch?: boolean;
|
|
399
|
+
assignee?: string;
|
|
400
|
+
reviewers?: string[];
|
|
401
|
+
assignReviewersFromApprovalRules?: boolean;
|
|
402
|
+
}, _backstage_types.JsonObject, "v1">;
|
|
409
403
|
|
|
410
404
|
/**
|
|
411
405
|
* Registry of all registered template actions.
|
|
@@ -413,9 +407,9 @@ declare const createPublishGitlabMergeRequestAction: (options: {
|
|
|
413
407
|
*/
|
|
414
408
|
declare class TemplateActionRegistry {
|
|
415
409
|
private readonly actions;
|
|
416
|
-
register(action: TemplateAction$1): void;
|
|
417
|
-
get(actionId: string): TemplateAction$1
|
|
418
|
-
list(): TemplateAction$1[];
|
|
410
|
+
register(action: TemplateAction$1<any, any, any>): void;
|
|
411
|
+
get(actionId: string): TemplateAction$1<any, any, any>;
|
|
412
|
+
list(): TemplateAction$1<any, any, any>[];
|
|
419
413
|
}
|
|
420
414
|
|
|
421
415
|
/**
|
|
@@ -879,7 +873,7 @@ interface RouterOptions {
|
|
|
879
873
|
database: DatabaseService;
|
|
880
874
|
catalogClient: CatalogApi;
|
|
881
875
|
scheduler?: SchedulerService;
|
|
882
|
-
actions?: TemplateAction$1<any, any>[];
|
|
876
|
+
actions?: TemplateAction$1<any, any, any>[];
|
|
883
877
|
/**
|
|
884
878
|
* @deprecated taskWorkers is deprecated in favor of concurrentTasksLimit option with a single TaskWorker
|
|
885
879
|
* @defaultValue 1
|
|
@@ -931,7 +925,7 @@ type ActionContext<TInput extends JsonObject> = ActionContext$1<TInput>;
|
|
|
931
925
|
* @public
|
|
932
926
|
* @deprecated Use `createTemplateAction` from `@backstage/plugin-scaffolder-node` instead
|
|
933
927
|
*/
|
|
934
|
-
declare const createTemplateAction:
|
|
928
|
+
declare const createTemplateAction: typeof createTemplateAction$1;
|
|
935
929
|
/**
|
|
936
930
|
* @public
|
|
937
931
|
* @deprecated Use `TaskSecrets` from `@backstage/plugin-scaffolder-node` instead
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
3
5
|
var catalogModel = require('@backstage/catalog-model');
|
|
4
6
|
var pluginScaffolderNode = require('@backstage/plugin-scaffolder-node');
|
|
5
7
|
var get = require('lodash/get');
|
|
@@ -8,7 +10,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
8
10
|
|
|
9
11
|
var get__default = /*#__PURE__*/_interopDefaultCompat(get);
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
var createDefaultFilters = ({
|
|
12
14
|
integrations
|
|
13
15
|
}) => {
|
|
14
16
|
return {
|
|
@@ -22,5 +24,5 @@ const createDefaultFilters = ({
|
|
|
22
24
|
};
|
|
23
25
|
};
|
|
24
26
|
|
|
25
|
-
exports.
|
|
27
|
+
exports.default = createDefaultFilters;
|
|
26
28
|
//# sourceMappingURL=filters.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.cjs.js","sources":["../../../src/lib/templating/filters.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { parseEntityRef } from '@backstage/catalog-model';\nimport { ScmIntegrations } from '@backstage/integration';\nimport type { JsonObject, JsonValue } from '@backstage/types';\nimport {\n parseRepoUrl,\n TemplateFilter,\n} from '@backstage/plugin-scaffolder-node';\nimport get from 'lodash/get';\n\nexport
|
|
1
|
+
{"version":3,"file":"filters.cjs.js","sources":["../../../src/lib/templating/filters.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { parseEntityRef } from '@backstage/catalog-model';\nimport { ScmIntegrations } from '@backstage/integration';\nimport type { JsonObject, JsonValue } from '@backstage/types';\nimport {\n parseRepoUrl,\n TemplateFilter,\n} from '@backstage/plugin-scaffolder-node';\nimport get from 'lodash/get';\n\nexport default ({\n integrations,\n}: {\n integrations: ScmIntegrations;\n}): Record<string, TemplateFilter> => {\n return {\n parseRepoUrl: url => parseRepoUrl(url as string, integrations),\n parseEntityRef: (ref: JsonValue, context?: JsonValue) =>\n parseEntityRef(ref as string, context as JsonObject),\n pick: (obj: JsonValue, key: JsonValue) => get(obj, key as string),\n projectSlug: repoUrl => {\n const { owner, repo } = parseRepoUrl(repoUrl as string, integrations);\n return `${owner}/${repo}`;\n },\n };\n};\n"],"names":["parseRepoUrl","parseEntityRef","get"],"mappings":";;;;;;;;;;;;AAwBA,2BAAe,CAAC;AAAA,EACd;AACF,CAEsC,KAAA;AACpC,EAAO,OAAA;AAAA,IACL,YAAc,EAAA,CAAA,GAAA,KAAOA,iCAAa,CAAA,GAAA,EAAe,YAAY,CAAA;AAAA,IAC7D,gBAAgB,CAAC,GAAA,EAAgB,OAC/B,KAAAC,2BAAA,CAAe,KAAe,OAAqB,CAAA;AAAA,IACrD,MAAM,CAAC,GAAA,EAAgB,GAAmB,KAAAC,oBAAA,CAAI,KAAK,GAAa,CAAA;AAAA,IAChE,aAAa,CAAW,OAAA,KAAA;AACtB,MAAA,MAAM,EAAE,KAAO,EAAA,IAAA,EAAS,GAAAF,iCAAA,CAAa,SAAmB,YAAY,CAAA;AACpE,MAAO,OAAA,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA;AACzB,GACF;AACF,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateActionRegistry.cjs.js","sources":["../../../src/scaffolder/actions/TemplateActionRegistry.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConflictError, NotFoundError } from '@backstage/errors';\nimport { TemplateAction } from '@backstage/plugin-scaffolder-node';\n/**\n * Registry of all registered template actions.\n * @public\n */\nexport class TemplateActionRegistry {\n private readonly actions = new Map<string, TemplateAction>();\n\n register(action: TemplateAction) {\n if (this.actions.has(action.id)) {\n throw new ConflictError(\n `Template action with ID '${action.id}' has already been registered`,\n );\n }\n\n this.actions.set(action.id, action);\n }\n\n get(actionId: string): TemplateAction {\n const action = this.actions.get(actionId);\n if (!action) {\n throw new NotFoundError(\n `Template action with ID '${actionId}' is not registered. See https://backstage.io/docs/features/software-templates/builtin-actions/ on how to add a new action module.`,\n );\n }\n return action;\n }\n\n list(): TemplateAction[] {\n return [...this.actions.values()];\n }\n}\n"],"names":["ConflictError","NotFoundError"],"mappings":";;;;AAsBO,MAAM,sBAAuB,CAAA;AAAA,EACjB,OAAA,uBAAc,GAA4B,EAAA;AAAA,EAE3D,SAAS,
|
|
1
|
+
{"version":3,"file":"TemplateActionRegistry.cjs.js","sources":["../../../src/scaffolder/actions/TemplateActionRegistry.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConflictError, NotFoundError } from '@backstage/errors';\nimport { TemplateAction } from '@backstage/plugin-scaffolder-node';\n/**\n * Registry of all registered template actions.\n * @public\n */\nexport class TemplateActionRegistry {\n private readonly actions = new Map<string, TemplateAction>();\n\n register(action: TemplateAction<any, any, any>) {\n if (this.actions.has(action.id)) {\n throw new ConflictError(\n `Template action with ID '${action.id}' has already been registered`,\n );\n }\n\n this.actions.set(action.id, action);\n }\n\n get(actionId: string): TemplateAction<any, any, any> {\n const action = this.actions.get(actionId);\n if (!action) {\n throw new NotFoundError(\n `Template action with ID '${actionId}' is not registered. See https://backstage.io/docs/features/software-templates/builtin-actions/ on how to add a new action module.`,\n );\n }\n return action;\n }\n\n list(): TemplateAction<any, any, any>[] {\n return [...this.actions.values()];\n }\n}\n"],"names":["ConflictError","NotFoundError"],"mappings":";;;;AAsBO,MAAM,sBAAuB,CAAA;AAAA,EACjB,OAAA,uBAAc,GAA4B,EAAA;AAAA,EAE3D,SAAS,MAAuC,EAAA;AAC9C,IAAA,IAAI,IAAK,CAAA,OAAA,CAAQ,GAAI,CAAA,MAAA,CAAO,EAAE,CAAG,EAAA;AAC/B,MAAA,MAAM,IAAIA,oBAAA;AAAA,QACR,CAAA,yBAAA,EAA4B,OAAO,EAAE,CAAA,6BAAA;AAAA,OACvC;AAAA;AAGF,IAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,CAAI,MAAO,CAAA,EAAA,EAAI,MAAM,CAAA;AAAA;AACpC,EAEA,IAAI,QAAiD,EAAA;AACnD,IAAA,MAAM,MAAS,GAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,CAAI,QAAQ,CAAA;AACxC,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAA,MAAM,IAAIC,oBAAA;AAAA,QACR,4BAA4B,QAAQ,CAAA,kIAAA;AAAA,OACtC;AAAA;AAEF,IAAO,OAAA,MAAA;AAAA;AACT,EAEA,IAAwC,GAAA;AACtC,IAAA,OAAO,CAAC,GAAG,IAAK,CAAA,OAAA,CAAQ,QAAQ,CAAA;AAAA;AAEpC;;;;"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var pluginScaffolderNode = require('@backstage/plugin-scaffolder-node');
|
|
4
|
-
var z = require('zod');
|
|
5
4
|
var catalogModel = require('@backstage/catalog-model');
|
|
6
5
|
var fetch_examples = require('./fetch.examples.cjs.js');
|
|
7
6
|
|
|
@@ -14,29 +13,29 @@ function createFetchCatalogEntityAction(options) {
|
|
|
14
13
|
examples: fetch_examples.examples,
|
|
15
14
|
supportsDryRun: true,
|
|
16
15
|
schema: {
|
|
17
|
-
input:
|
|
18
|
-
entityRef: z
|
|
16
|
+
input: {
|
|
17
|
+
entityRef: (z) => z.string({
|
|
19
18
|
description: "Entity reference of the entity to get"
|
|
20
19
|
}).optional(),
|
|
21
|
-
entityRefs: z
|
|
20
|
+
entityRefs: (z) => z.array(z.string(), {
|
|
22
21
|
description: "Entity references of the entities to get"
|
|
23
22
|
}).optional(),
|
|
24
|
-
optional: z
|
|
23
|
+
optional: (z) => z.boolean({
|
|
25
24
|
description: "Allow the entity or entities to optionally exist. Default: false"
|
|
26
25
|
}).optional(),
|
|
27
|
-
defaultKind: z
|
|
28
|
-
defaultNamespace: z
|
|
29
|
-
}
|
|
30
|
-
output:
|
|
31
|
-
entity: z
|
|
26
|
+
defaultKind: (z) => z.string({ description: "The default kind" }).optional(),
|
|
27
|
+
defaultNamespace: (z) => z.string({ description: "The default namespace" }).optional()
|
|
28
|
+
},
|
|
29
|
+
output: {
|
|
30
|
+
entity: (z) => z.any({
|
|
32
31
|
description: "Object containing same values used in the Entity schema. Only when used with `entityRef` parameter."
|
|
33
32
|
}).optional(),
|
|
34
|
-
entities: z
|
|
35
|
-
z.
|
|
33
|
+
entities: (z) => z.array(
|
|
34
|
+
z.any({
|
|
36
35
|
description: "Array containing objects with same values used in the Entity schema. Only when used with `entityRefs` parameter."
|
|
37
36
|
})
|
|
38
37
|
).optional()
|
|
39
|
-
}
|
|
38
|
+
}
|
|
40
39
|
},
|
|
41
40
|
async handler(ctx) {
|
|
42
41
|
const { entityRef, entityRefs, optional, defaultKind, defaultNamespace } = ctx.input;
|