diff --git a/.changeset/legal-eagles-jog.md b/.changeset/legal-eagles-jog.md new file mode 100644 index 0000000000..5b520af91f --- /dev/null +++ b/.changeset/legal-eagles-jog.md @@ -0,0 +1,18 @@ +--- +'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch +'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch +'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch +'@backstage/plugin-scaffolder-backend-module-notifications': patch +'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch +'@backstage/plugin-scaffolder-backend-module-bitbucket': patch +'@backstage/plugin-scaffolder-backend-module-gerrit': patch +'@backstage/plugin-scaffolder-backend-module-github': patch +'@backstage/plugin-scaffolder-backend-module-gitlab': patch +'@backstage/plugin-scaffolder-backend-module-sentry': patch +'@backstage/plugin-scaffolder-backend-module-yeoman': patch +'@backstage/plugin-scaffolder-backend-module-azure': patch +'@backstage/plugin-scaffolder-backend-module-gitea': patch +'@backstage/plugin-scaffolder-backend-module-rails': patch +--- + +Updating import for the `scaffolderActionsExtensionPoint` to be the main export diff --git a/.changeset/red-times-bet.md b/.changeset/red-times-bet.md new file mode 100644 index 0000000000..29e89fb07f --- /dev/null +++ b/.changeset/red-times-bet.md @@ -0,0 +1,13 @@ +--- +'@backstage/plugin-scaffolder-node': patch +--- + +**BREAKING ALPHA**: We've moved the `scaffolderActionsExtensionPoint` from `/alpha` to the main export. + +```tsx +// before +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; + +// after +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; +``` diff --git a/plugins/scaffolder-backend-module-azure/src/module.ts b/plugins/scaffolder-backend-module-azure/src/module.ts index 40ca3f0978..937d806932 100644 --- a/plugins/scaffolder-backend-module-azure/src/module.ts +++ b/plugins/scaffolder-backend-module-azure/src/module.ts @@ -18,7 +18,7 @@ import { coreServices, } from '@backstage/backend-plugin-api'; import { ScmIntegrations } from '@backstage/integration'; -import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; import { createPublishAzureAction } from './actions'; /** diff --git a/plugins/scaffolder-backend-module-bitbucket-cloud/src/module.ts b/plugins/scaffolder-backend-module-bitbucket-cloud/src/module.ts index 4001c064da..04ac3b7a56 100644 --- a/plugins/scaffolder-backend-module-bitbucket-cloud/src/module.ts +++ b/plugins/scaffolder-backend-module-bitbucket-cloud/src/module.ts @@ -17,10 +17,7 @@ import { coreServices, createBackendModule, } from '@backstage/backend-plugin-api'; -import { - scaffolderActionsExtensionPoint, - scaffolderAutocompleteExtensionPoint, -} from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderAutocompleteExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; import { createBitbucketCloudBranchRestrictionAction } from './actions/bitbucketCloudBranchRestriction'; import { createBitbucketPipelinesRunAction, @@ -29,6 +26,7 @@ import { } from './actions'; import { ScmIntegrations } from '@backstage/integration'; import { handleAutocompleteRequest } from './autocomplete/autocomplete'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; /** * @public diff --git a/plugins/scaffolder-backend-module-bitbucket-server/src/module.ts b/plugins/scaffolder-backend-module-bitbucket-server/src/module.ts index d3d457cb1f..21159759d4 100644 --- a/plugins/scaffolder-backend-module-bitbucket-server/src/module.ts +++ b/plugins/scaffolder-backend-module-bitbucket-server/src/module.ts @@ -17,7 +17,7 @@ import { coreServices, createBackendModule, } from '@backstage/backend-plugin-api'; -import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; import { createPublishBitbucketServerAction, createPublishBitbucketServerPullRequestAction, diff --git a/plugins/scaffolder-backend-module-bitbucket/src/module.ts b/plugins/scaffolder-backend-module-bitbucket/src/module.ts index db27d0b7b9..884c8be004 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/module.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/module.ts @@ -17,7 +17,7 @@ import { coreServices, createBackendModule, } from '@backstage/backend-plugin-api'; -import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; import { createBitbucketPipelinesRunAction, createPublishBitbucketCloudAction, diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/src/module.ts b/plugins/scaffolder-backend-module-confluence-to-markdown/src/module.ts index 402f56c951..3b18ef8294 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/src/module.ts +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/src/module.ts @@ -17,7 +17,7 @@ import { createBackendModule, coreServices, } from '@backstage/backend-plugin-api'; -import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; import { createConfluenceToMarkdownAction } from './actions'; import { ScmIntegrations } from '@backstage/integration'; diff --git a/plugins/scaffolder-backend-module-cookiecutter/src/module.ts b/plugins/scaffolder-backend-module-cookiecutter/src/module.ts index df1b201518..3caa9259f2 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/src/module.ts +++ b/plugins/scaffolder-backend-module-cookiecutter/src/module.ts @@ -17,7 +17,7 @@ import { coreServices, createBackendModule, } from '@backstage/backend-plugin-api'; -import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; import { createFetchCookiecutterAction } from './actions'; import { ScmIntegrations } from '@backstage/integration'; diff --git a/plugins/scaffolder-backend-module-gerrit/src/module.ts b/plugins/scaffolder-backend-module-gerrit/src/module.ts index 32607431f3..f0bbed9649 100644 --- a/plugins/scaffolder-backend-module-gerrit/src/module.ts +++ b/plugins/scaffolder-backend-module-gerrit/src/module.ts @@ -17,7 +17,7 @@ import { coreServices, createBackendModule, } from '@backstage/backend-plugin-api'; -import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; import { createPublishGerritAction, createPublishGerritReviewAction, diff --git a/plugins/scaffolder-backend-module-gitea/src/module.ts b/plugins/scaffolder-backend-module-gitea/src/module.ts index 658f240471..b087e1637e 100644 --- a/plugins/scaffolder-backend-module-gitea/src/module.ts +++ b/plugins/scaffolder-backend-module-gitea/src/module.ts @@ -17,7 +17,7 @@ import { createBackendModule, coreServices, } from '@backstage/backend-plugin-api'; -import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; import { createPublishGiteaAction } from './actions'; import { ScmIntegrations } from '@backstage/integration'; diff --git a/plugins/scaffolder-backend-module-github/src/module.ts b/plugins/scaffolder-backend-module-github/src/module.ts index 67bda58fc4..964bc018ae 100644 --- a/plugins/scaffolder-backend-module-github/src/module.ts +++ b/plugins/scaffolder-backend-module-github/src/module.ts @@ -17,10 +17,7 @@ import { coreServices, createBackendModule, } from '@backstage/backend-plugin-api'; -import { - scaffolderActionsExtensionPoint, - scaffolderAutocompleteExtensionPoint, -} from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderAutocompleteExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; import { createGithubActionsDispatchAction, createGithubAutolinksAction, @@ -42,6 +39,7 @@ import { } from '@backstage/integration'; import { createHandleAutocompleteRequest } from './autocomplete/autocomplete'; import { catalogServiceRef } from '@backstage/plugin-catalog-node'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; /** * @public diff --git a/plugins/scaffolder-backend-module-gitlab/src/module.ts b/plugins/scaffolder-backend-module-gitlab/src/module.ts index 7dbfddfc1b..3c04f57077 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/module.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/module.ts @@ -18,10 +18,7 @@ import { createBackendModule, } from '@backstage/backend-plugin-api'; import { ScmIntegrations } from '@backstage/integration'; -import { - scaffolderActionsExtensionPoint, - scaffolderAutocompleteExtensionPoint, -} from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderAutocompleteExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; import { createGitlabGroupEnsureExistsAction, createGitlabIssueAction, @@ -36,6 +33,7 @@ import { } from './actions'; import { createGitlabProjectMigrateAction } from './actions/gitlabProjectMigrate'; import { createHandleAutocompleteRequest } from './autocomplete/autocomplete'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; /** * @public diff --git a/plugins/scaffolder-backend-module-notifications/src/module.ts b/plugins/scaffolder-backend-module-notifications/src/module.ts index e8b6823e99..4639175229 100644 --- a/plugins/scaffolder-backend-module-notifications/src/module.ts +++ b/plugins/scaffolder-backend-module-notifications/src/module.ts @@ -15,7 +15,7 @@ */ import { createBackendModule } from '@backstage/backend-plugin-api'; import { notificationService } from '@backstage/plugin-notifications-node'; -import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; import { createSendNotificationAction } from './actions'; /** diff --git a/plugins/scaffolder-backend-module-rails/src/module.ts b/plugins/scaffolder-backend-module-rails/src/module.ts index ec70610cd3..eb14c47977 100644 --- a/plugins/scaffolder-backend-module-rails/src/module.ts +++ b/plugins/scaffolder-backend-module-rails/src/module.ts @@ -17,7 +17,7 @@ import { coreServices, createBackendModule, } from '@backstage/backend-plugin-api'; -import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; import { createFetchRailsAction } from './actions'; import { ScmIntegrations } from '@backstage/integration'; diff --git a/plugins/scaffolder-backend-module-sentry/src/module.ts b/plugins/scaffolder-backend-module-sentry/src/module.ts index dcde344262..2b343edbc7 100644 --- a/plugins/scaffolder-backend-module-sentry/src/module.ts +++ b/plugins/scaffolder-backend-module-sentry/src/module.ts @@ -17,7 +17,7 @@ import { coreServices, createBackendModule, } from '@backstage/backend-plugin-api'; -import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; import { createSentryCreateProjectAction } from './actions/createProject'; /** diff --git a/plugins/scaffolder-backend-module-yeoman/src/module.ts b/plugins/scaffolder-backend-module-yeoman/src/module.ts index 1fdbda28a3..0564d69369 100644 --- a/plugins/scaffolder-backend-module-yeoman/src/module.ts +++ b/plugins/scaffolder-backend-module-yeoman/src/module.ts @@ -14,7 +14,7 @@ * limitations under the License. */ import { createBackendModule } from '@backstage/backend-plugin-api'; -import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha'; +import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node'; import { createRunYeomanAction } from './actions'; /** diff --git a/plugins/scaffolder-backend/src/ScaffolderPlugin.ts b/plugins/scaffolder-backend/src/ScaffolderPlugin.ts index a00da9e524..39bab85c7e 100644 --- a/plugins/scaffolder-backend/src/ScaffolderPlugin.ts +++ b/plugins/scaffolder-backend/src/ScaffolderPlugin.ts @@ -21,7 +21,11 @@ import { import { ScmIntegrations } from '@backstage/integration'; import { catalogServiceRef } from '@backstage/plugin-catalog-node'; import { eventsServiceRef } from '@backstage/plugin-events-node'; -import { TaskBroker, TemplateAction } from '@backstage/plugin-scaffolder-node'; +import { + scaffolderActionsExtensionPoint, + TaskBroker, + TemplateAction, +} from '@backstage/plugin-scaffolder-node'; import { AutocompleteHandler, CreatedTemplateFilter, @@ -29,7 +33,6 @@ import { createTemplateFilter, createTemplateGlobalFunction, createTemplateGlobalValue, - scaffolderActionsExtensionPoint, scaffolderAutocompleteExtensionPoint, scaffolderTaskBrokerExtensionPoint, scaffolderTemplatingExtensionPoint, diff --git a/plugins/scaffolder-node/report-alpha.api.md b/plugins/scaffolder-node/report-alpha.api.md index c5ac6ce79d..e1d49f571a 100644 --- a/plugins/scaffolder-node/report-alpha.api.md +++ b/plugins/scaffolder-node/report-alpha.api.md @@ -6,7 +6,6 @@ import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { JsonValue } from '@backstage/types'; import { TaskBroker } from '@backstage/plugin-scaffolder-node'; -import { TemplateAction } from '@backstage/plugin-scaffolder-node'; import { TemplateFilter as TemplateFilter_2 } from '@backstage/plugin-scaffolder-node'; import { TemplateGlobal as TemplateGlobal_2 } from '@backstage/plugin-scaffolder-node'; import { z } from 'zod'; @@ -123,15 +122,6 @@ export const restoreWorkspace: (opts: { buffer?: Buffer; }) => Promise; -// @alpha -export interface ScaffolderActionsExtensionPoint { - // (undocumented) - addActions(...actions: TemplateAction[]): void; -} - -// @alpha -export const scaffolderActionsExtensionPoint: ExtensionPoint; - // @alpha export interface ScaffolderAutocompleteExtensionPoint { // (undocumented) @@ -153,7 +143,7 @@ export interface ScaffolderTaskBrokerExtensionPoint { setTaskBroker(taskBroker: TaskBroker): void; } -// @alpha +// @alpha @deprecated export const scaffolderTaskBrokerExtensionPoint: ExtensionPoint; // @alpha diff --git a/plugins/scaffolder-node/report.api.md b/plugins/scaffolder-node/report.api.md index 027d57ede4..7f70c9d786 100644 --- a/plugins/scaffolder-node/report.api.md +++ b/plugins/scaffolder-node/report.api.md @@ -6,6 +6,7 @@ import { BackstageCredentials } from '@backstage/backend-plugin-api'; import { CheckpointContext } from '@backstage/plugin-scaffolder-node/alpha'; import { Expand } from '@backstage/types'; +import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { JsonObject } from '@backstage/types'; import { JsonValue } from '@backstage/types'; import { LoggerService } from '@backstage/backend-plugin-api'; @@ -306,6 +307,15 @@ export const parseRepoUrl: ( project?: string; }; +// @public +export interface ScaffolderActionsExtensionPoint { + // (undocumented) + addActions(...actions: TemplateAction[]): void; +} + +// @public +export const scaffolderActionsExtensionPoint: ExtensionPoint; + // @public (undocumented) export interface SerializedFile { // (undocumented) diff --git a/plugins/scaffolder-node/src/alpha/index.ts b/plugins/scaffolder-node/src/alpha/index.ts index 2147085983..9d0b9efafd 100644 --- a/plugins/scaffolder-node/src/alpha/index.ts +++ b/plugins/scaffolder-node/src/alpha/index.ts @@ -17,7 +17,6 @@ import { createExtensionPoint } from '@backstage/backend-plugin-api'; import { TaskBroker, - TemplateAction, TemplateFilter, TemplateGlobal, } from '@backstage/plugin-scaffolder-node'; @@ -30,25 +29,6 @@ export * from './globals'; export * from './types'; export * from './checkpoints'; -/** - * 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', - }); - /** * Extension point for replacing the scaffolder task broker. * @@ -63,6 +43,7 @@ export interface ScaffolderTaskBrokerExtensionPoint { * Extension point for replacing the scaffolder task broker. * * @alpha + * @deprecated this extension point is planned to be removed, please reach out to us in an issue if you're using this extension point and your use cases. */ export const scaffolderTaskBrokerExtensionPoint = createExtensionPoint({ diff --git a/plugins/scaffolder-node/src/extensions.ts b/plugins/scaffolder-node/src/extensions.ts new file mode 100644 index 0000000000..94b366fceb --- /dev/null +++ b/plugins/scaffolder-node/src/extensions.ts @@ -0,0 +1,36 @@ +/* + * Copyright 2025 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. + * + * @public + */ +export interface ScaffolderActionsExtensionPoint { + addActions(...actions: TemplateAction[]): void; +} + +/** + * Extension point for managing scaffolder actions. + * + * @public + */ +export const scaffolderActionsExtensionPoint = + createExtensionPoint({ + id: 'scaffolder.actions', + }); diff --git a/plugins/scaffolder-node/src/index.ts b/plugins/scaffolder-node/src/index.ts index 5d49ee874c..a9aa77ba4e 100644 --- a/plugins/scaffolder-node/src/index.ts +++ b/plugins/scaffolder-node/src/index.ts @@ -24,3 +24,4 @@ export * from './actions'; export * from './tasks'; export * from './files'; export * from './types'; +export * from './extensions';