From 454d17c9902cc2e21dc46be8594cc4830e1e66fd Mon Sep 17 00:00:00 2001 From: secustor Date: Tue, 12 Dec 2023 11:45:57 +0100 Subject: [PATCH 001/155] refactor(backend-common/GithubUrlReader): only call fetch inside fetchResponse Signed-off-by: secustor --- .changeset/eight-rice-cross.md | 5 ++ .../src/reading/GithubUrlReader.ts | 55 ++++++++----------- 2 files changed, 28 insertions(+), 32 deletions(-) create mode 100644 .changeset/eight-rice-cross.md diff --git a/.changeset/eight-rice-cross.md b/.changeset/eight-rice-cross.md new file mode 100644 index 0000000000..e40f731a4e --- /dev/null +++ b/.changeset/eight-rice-cross.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +Do not call fetch directly but rather use fetchResponse facility diff --git a/packages/backend-common/src/reading/GithubUrlReader.ts b/packages/backend-common/src/reading/GithubUrlReader.ts index 764431386d..175815cabf 100644 --- a/packages/backend-common/src/reading/GithubUrlReader.ts +++ b/packages/backend-common/src/reading/GithubUrlReader.ts @@ -107,7 +107,7 @@ export class GithubUrlReader implements UrlReader { let response: Response; try { - response = await fetch(ghUrl, { + response = await this.fetchResponse(ghUrl, { headers: { ...credentials?.headers, ...(options?.etag && { 'If-None-Match': options.etag }), @@ -125,38 +125,13 @@ export class GithubUrlReader implements UrlReader { signal: options?.signal as any, }); } catch (e) { - throw new Error(`Unable to read ${url}, ${e}`); + throw e; } - if (response.status === 304) { - throw new NotModifiedError(); - } - - if (response.ok) { - return ReadUrlResponseFactory.fromNodeJSReadable(response.body, { - etag: response.headers.get('ETag') ?? undefined, - lastModifiedAt: parseLastModified( - response.headers.get('Last-Modified'), - ), - }); - } - - let message = `${url} could not be read as ${ghUrl}, ${response.status} ${response.statusText}`; - if (response.status === 404) { - throw new NotFoundError(message); - } - - // GitHub returns a 403 response with a couple of headers indicating rate - // limit status. See more in the GitHub docs: - // https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting - if ( - response.status === 403 && - response.headers.get('X-RateLimit-Remaining') === '0' - ) { - message += ' (rate limit exceeded)'; - } - - throw new Error(message); + return ReadUrlResponseFactory.fromNodeJSReadable(response.body, { + etag: response.headers.get('ETag') ?? undefined, + lastModifiedAt: parseLastModified(response.headers.get('Last-Modified')), + }); } async readTree( @@ -350,10 +325,26 @@ export class GithubUrlReader implements UrlReader { const response = await fetch(urlAsString, init); if (!response.ok) { - const message = `Request failed for ${urlAsString}, ${response.status} ${response.statusText}`; + let message = `Request failed for ${urlAsString}, ${response.status} ${response.statusText}`; + + if (response.status === 304) { + throw new NotModifiedError(); + } + if (response.status === 404) { throw new NotFoundError(message); } + + // GitHub returns a 403 response with a couple of headers indicating rate + // limit status. See more in the GitHub docs: + // https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting + if ( + response.status === 403 && + response.headers.get('X-RateLimit-Remaining') === '0' + ) { + message += ' (rate limit exceeded)'; + } + throw new Error(message); } From 88fcc3b5e56d839b32492ddee45c40fc010514bf Mon Sep 17 00:00:00 2001 From: secustor Date: Tue, 12 Dec 2023 11:53:04 +0100 Subject: [PATCH 002/155] docs(backend-common/GithubUrlReader): put fetchResponse in code block Signed-off-by: secustor --- .changeset/eight-rice-cross.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/eight-rice-cross.md b/.changeset/eight-rice-cross.md index e40f731a4e..1628276817 100644 --- a/.changeset/eight-rice-cross.md +++ b/.changeset/eight-rice-cross.md @@ -2,4 +2,4 @@ '@backstage/backend-common': patch --- -Do not call fetch directly but rather use fetchResponse facility +Do not call fetch directly but rather use `fetchResponse` facility From 42b4db71ded631e9a286c6b19c6fe16fc211f184 Mon Sep 17 00:00:00 2001 From: secustor Date: Tue, 12 Dec 2023 14:37:11 +0100 Subject: [PATCH 003/155] make fetchResponse protected to allow overwriting Signed-off-by: secustor --- packages/backend-common/src/reading/GithubUrlReader.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-common/src/reading/GithubUrlReader.ts b/packages/backend-common/src/reading/GithubUrlReader.ts index 175815cabf..fed6fd9430 100644 --- a/packages/backend-common/src/reading/GithubUrlReader.ts +++ b/packages/backend-common/src/reading/GithubUrlReader.ts @@ -317,7 +317,7 @@ export class GithubUrlReader implements UrlReader { return repo.default_branch; } - private async fetchResponse( + protected async fetchResponse( url: string | URL, init: RequestInit, ): Promise { From f4d77420496ff7bb9092a56509bcd643208beac4 Mon Sep 17 00:00:00 2001 From: secustor Date: Thu, 14 Dec 2023 15:50:16 +0100 Subject: [PATCH 004/155] remove unnecessary try catch block Signed-off-by: secustor --- .../src/reading/GithubUrlReader.ts | 39 ++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/packages/backend-common/src/reading/GithubUrlReader.ts b/packages/backend-common/src/reading/GithubUrlReader.ts index fed6fd9430..6fd24afc08 100644 --- a/packages/backend-common/src/reading/GithubUrlReader.ts +++ b/packages/backend-common/src/reading/GithubUrlReader.ts @@ -105,28 +105,23 @@ export class GithubUrlReader implements UrlReader { credentials, ); - let response: Response; - try { - response = await this.fetchResponse(ghUrl, { - headers: { - ...credentials?.headers, - ...(options?.etag && { 'If-None-Match': options.etag }), - ...(options?.lastModifiedAfter && { - 'If-Modified-Since': options.lastModifiedAfter.toUTCString(), - }), - Accept: 'application/vnd.github.v3.raw', - }, - // TODO(freben): The signal cast is there because pre-3.x versions of - // node-fetch have a very slightly deviating AbortSignal type signature. - // The difference does not affect us in practice however. The cast can - // be removed after we support ESM for CLI dependencies and migrate to - // version 3 of node-fetch. - // https://github.com/backstage/backstage/issues/8242 - signal: options?.signal as any, - }); - } catch (e) { - throw e; - } + const response = await this.fetchResponse(ghUrl, { + headers: { + ...credentials?.headers, + ...(options?.etag && { 'If-None-Match': options.etag }), + ...(options?.lastModifiedAfter && { + 'If-Modified-Since': options.lastModifiedAfter.toUTCString(), + }), + Accept: 'application/vnd.github.v3.raw', + }, + // TODO(freben): The signal cast is there because pre-3.x versions of + // node-fetch have a very slightly deviating AbortSignal type signature. + // The difference does not affect us in practice however. The cast can + // be removed after we support ESM for CLI dependencies and migrate to + // version 3 of node-fetch. + // https://github.com/backstage/backstage/issues/8242 + signal: options?.signal as any, + }); return ReadUrlResponseFactory.fromNodeJSReadable(response.body, { etag: response.headers.get('ETag') ?? undefined, From d5ede226d62b316e56fee1bea476e6ead4db6e39 Mon Sep 17 00:00:00 2001 From: Elaine De-Mattos-Silva-Bezerra Date: Sun, 3 Dec 2023 11:43:30 +0100 Subject: [PATCH 005/155] feat: add gitlab create issues custom action Signed-off-by: Elaine Mattos --- packages/backend/src/plugins/scaffolder.ts | 12 + .../README.md | 4 + .../package.json | 1 + .../src/actions/createGitlabIssueAction.ts | 218 ++++++++++++++++++ .../src/commonGitlabConfig.ts | 5 + .../src/index.ts | 1 + .../src/util.ts | 138 +++++++++++ yarn.lock | 46 +++- 8 files changed, 423 insertions(+), 2 deletions(-) create mode 100644 plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts index 505a514344..fdddc26fd2 100644 --- a/packages/backend/src/plugins/scaffolder.ts +++ b/packages/backend/src/plugins/scaffolder.ts @@ -23,6 +23,13 @@ import { Router } from 'express'; import type { PluginEnvironment } from '../types'; import { ScmIntegrations } from '@backstage/integration'; import { createConfluenceToMarkdownAction } from '@backstage/plugin-scaffolder-backend-module-confluence-to-markdown'; +import { + createGitlabProjectAccessTokenAction, + createGitlabProjectDeployTokenAction, + createGitlabProjectVariableAction, + createGitlabGroupEnsureExistsAction, + createGitlabIssueAction, +} from '@backstage/plugin-scaffolder-backend-module-gitlab'; export default async function createPlugin( env: PluginEnvironment, @@ -47,6 +54,11 @@ export default async function createPlugin( config: env.config, reader: env.reader, }), + createGitlabProjectAccessTokenAction({ integrations: integrations }), + createGitlabProjectDeployTokenAction({ integrations: integrations }), + createGitlabProjectVariableAction({ integrations: integrations }), + createGitlabGroupEnsureExistsAction({ integrations: integrations }), + createGitlabIssueAction({ integrations: integrations }), ]; return await createRouter({ diff --git a/plugins/scaffolder-backend-module-gitlab/README.md b/plugins/scaffolder-backend-module-gitlab/README.md index 340b57bbf8..128b91092d 100644 --- a/plugins/scaffolder-backend-module-gitlab/README.md +++ b/plugins/scaffolder-backend-module-gitlab/README.md @@ -24,6 +24,7 @@ import { createGitlabProjectDeployTokenAction, createGitlabProjectVariableAction, createGitlabGroupEnsureExistsAction, + createGitlabIssueAction, } from '@backstage/plugin-scaffolder-backend-module-gitlab'; // Create BuiltIn Actions @@ -41,6 +42,7 @@ const actions = [ createGitlabProjectDeployTokenAction({ integrations: integrations }), createGitlabProjectVariableAction({ integrations: integrations }), createGitlabGroupEnsureExistsAction({ integrations: integrations }), + createGitlabIssueAction({ integrations: integrations }), ]; // Create Scaffolder Router @@ -53,6 +55,8 @@ return await createRouter({ database: env.database, reader: env.reader, }); + +// TODO: incorporate Issues creation in example ``` After that you can use the action in your template: diff --git a/plugins/scaffolder-backend-module-gitlab/package.json b/plugins/scaffolder-backend-module-gitlab/package.json index 94641be81c..09efaf5af0 100644 --- a/plugins/scaffolder-backend-module-gitlab/package.json +++ b/plugins/scaffolder-backend-module-gitlab/package.json @@ -36,6 +36,7 @@ "@backstage/integration": "workspace:^", "@backstage/plugin-scaffolder-node": "workspace:^", "@gitbeaker/node": "^35.8.0", + "@gitbeaker/rest": "^39.25.0", "yaml": "^2.0.0", "zod": "^3.21.4" }, diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts new file mode 100644 index 0000000000..50f03e2575 --- /dev/null +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts @@ -0,0 +1,218 @@ +/* + * 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. + */ + +import { InputError } from '@backstage/errors'; +import { ScmIntegrationRegistry } from '@backstage/integration'; +import { + TemplateExample, + createTemplateAction, +} from '@backstage/plugin-scaffolder-node'; +import * as yaml from 'yaml'; +import { + commonGitlabConfig, + commonGitlabConfigExample, +} from '../commonGitlabConfig'; +import { z } from 'zod'; +import { checkEpicScope, convertDate, getClient, parseRepoUrl } from '../util'; +import { Gitlab, CreateIssueOptions, IssueSchema } from '@gitbeaker/rest'; + +/** + * Creates a `gitlab:issues:create` Scaffolder action. + * + * @param {} - Templating configuration. + * @public + */ + +export const createGitlabIssueAction = (options: { + integrations: ScmIntegrationRegistry; +}) => { + const { integrations } = options; + return createTemplateAction({ + id: 'gitlab:issues:create', + description: 'Creates a Gitlab issue.', + examples: getExamples(), + schema: { + input: commonGitlabConfig.merge( + z.object({ + projectId: z.number({ description: 'Project Id' }), + title: z.string({ description: 'Title of the issue' }), + assignees: z + .array(z.number(), { + description: 'IDs of the users to assign the issue to.', + }) + .optional(), + confidential: z + .boolean({ description: 'Issue Confidentiality' }) + .optional(), + description: z + .string({ description: 'Issue description' }) + .optional(), + createdAt: z.string({ description: 'Creation date/time' }).optional(), + dueDate: z.string({ description: 'Due date/time' }).optional(), + discussionToResolve: z + .string({ + description: 'Id of a discussion to resolve', + }) + .optional(), + epicId: z.number({ description: 'Id of the linked Epic' }).optional(), + labels: z.string({ description: 'Labels to apply' }).optional(), + }), + ), + output: z.object({ + issueUrl: z.string({ description: 'Issue Url' }), + issueId: z.number({ description: 'Issue Id' }), + }), + }, + async handler(ctx) { + try { + const { + repoUrl, + projectId, + title, + description = '', + confidential = false, + assignees = [], + createdAt = '', + dueDate, + discussionToResolve = '', + epicId, + labels = '', + token, + } = ctx.input; + + const { host } = parseRepoUrl(repoUrl, integrations); + + const api = getClient({ host, integrations, token }); + + let isEpicScoped = false; + + if (epicId) { + isEpicScoped = await checkEpicScope( + api as any as InstanceType, + projectId, + epicId, + ); + + if (isEpicScoped) { + ctx.logger.info('Epic is within Project Scope'); + } else { + ctx.logger.warn( + 'Chosen epic is not within the Project Scope. The issue will be created without an associated epic.', + ); + } + } + const mappedCreatedAt = convertDate( + String(createdAt), + new Date().toISOString(), + ); + const mappedDueDate = dueDate + ? convertDate(String(dueDate), new Date().toISOString()) + : undefined; + + const issueOptions: CreateIssueOptions = { + description, + assigneeIds: assignees, + confidential, + epicId: isEpicScoped ? epicId : undefined, + labels, + createdAt: mappedCreatedAt, + dueDate: mappedDueDate, + discussionToResolve, + }; + + const response = (await api.Issues.create( + projectId, + title, + issueOptions, + )) as IssueSchema; + + ctx.output('issueId', response.id); + ctx.output('issueUrl', response.web_url); + } catch (error: any) { + throw new InputError(`Failed to create GitLab issue: ${error.message}`); + } + }, + }); +}; + +function getExamples(): TemplateExample[] { + return [ + { + description: 'Create a GitLab issue with minimal options', + example: yaml.stringify({ + steps: [ + { + id: 'gitlabIssue', + name: 'Issues', + action: 'gitlab:issues:create', + input: { + ...commonGitlabConfigExample, + projectId: '12', + title: 'Test Issue', + description: 'This is the description of the issue', + }, + }, + ], + }), + }, + { + description: 'Create a GitLab issue with assignees and date options', + example: yaml.stringify({ + steps: [ + { + id: 'gitlabIssue', + name: 'Issues', + action: 'gitlab:issues:create', + input: { + ...commonGitlabConfigExample, + projectId: '12', + title: 'Test Issue', + assignees: '18', + description: 'This is the description of the issue', + createdAt: '2022-09-27 18:00:00.000', + dueDate: '2022-09-28 12:00:00.000', + }, + }, + ], + }), + }, + { + description: 'Create a GitLab Issue with several options', + example: yaml.stringify({ + steps: [ + { + id: 'gitlabIssue', + name: 'Issues', + action: 'dxc:gitlab:issues:create', + input: { + ...commonGitlabConfigExample, + projectId: '12', + title: 'Test Issue', + assignees: '18', + description: 'This is the description of the issue', + confidential: false, + createdAt: '2022-09-27 18:00:00.000', + dueDate: '2022-09-28 12:00:00.000', + discussionToResolve: '1', + epicId: '1', + labels: 'test-label1,test-label2', + }, + }, + ], + }), + }, + ]; +} diff --git a/plugins/scaffolder-backend-module-gitlab/src/commonGitlabConfig.ts b/plugins/scaffolder-backend-module-gitlab/src/commonGitlabConfig.ts index 02724a3674..3c83eacf19 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/commonGitlabConfig.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/commonGitlabConfig.ts @@ -24,3 +24,8 @@ const commonGitlabConfig = z.object({ }); export default commonGitlabConfig; + +export const commonGitlabConfigExample = { + repoUrl: 'gitlab.com?owner=namespace-or-owner&repo=project-name', + token: '${{ secrets.USER_OAUTH_TOKEN }}', +}; diff --git a/plugins/scaffolder-backend-module-gitlab/src/index.ts b/plugins/scaffolder-backend-module-gitlab/src/index.ts index 4fd4dee35b..eadb1ba78d 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/index.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/index.ts @@ -23,3 +23,4 @@ export * from './actions/createGitlabGroupEnsureExistsAction'; export * from './actions/createGitlabProjectDeployTokenAction'; export * from './actions/createGitlabProjectAccessTokenAction'; export * from './actions/createGitlabProjectVariableAction'; +export * from './actions/createGitlabIssueAction'; diff --git a/plugins/scaffolder-backend-module-gitlab/src/util.ts b/plugins/scaffolder-backend-module-gitlab/src/util.ts index 13c95e48e8..c967e1cee9 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/util.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/util.ts @@ -21,6 +21,7 @@ import { } from '@backstage/integration'; import { z } from 'zod'; import commonGitlabConfig from './commonGitlabConfig'; +import { Gitlab, GroupSchema } from '@gitbeaker/rest'; export const parseRepoHost = (repoUrl: string): string => { let parsed; @@ -56,3 +57,140 @@ export const getToken = ( return { token: token, integrationConfig: integrationConfig }; }; + +export type RepoSpec = { + repo: string; + host: string; + owner?: string; +}; + +export const parseRepoUrl = ( + repoUrl: string, + integrations: ScmIntegrationRegistry, +): RepoSpec => { + let parsed; + try { + parsed = new URL(`https://${repoUrl}`); + } catch (error) { + throw new InputError( + `Invalid repo URL passed to publisher, got ${repoUrl}, ${error}`, + ); + } + const host = parsed.host; + const owner = parsed.searchParams.get('owner') ?? undefined; + const repo: string = parsed.searchParams.get('repo')!; + + const type = integrations.byHost(host)?.type; + + if (!type) { + throw new InputError( + `No matching integration configuration for host ${host}, please check your integrations config`, + ); + } + + return { host, owner, repo }; +}; + +export function getClient(props: { + host: string; + token?: string; + integrations: ScmIntegrationRegistry; +}): InstanceType { + const { host, token, integrations } = props; + const integrationConfig = integrations.gitlab.byHost(host); + + if (!integrationConfig) { + throw new InputError( + `No matching integration configuration for host ${host}, please check your integrations config`, + ); + } + + const { config } = integrationConfig; + + if (!config.token && !token) { + throw new InputError(`No token available for host ${host}`); + } + + const requestToken = token || config.token!; + const tokenType = token ? 'oauthToken' : 'token'; + + const gitlabOptions: any = { + host: config.baseUrl, + }; + + gitlabOptions[tokenType] = requestToken; + + return new Gitlab(gitlabOptions); +} + +export function convertDate( + inputDate: string | undefined, + defaultDate: string, +) { + try { + return inputDate + ? new Date(inputDate).toISOString() + : new Date(defaultDate).toISOString(); + } catch (error) { + throw new InputError(`Error converting input date - ${error}`); + } +} + +export async function getTopLevelParentGroup( + client: InstanceType, + groupId: number, +): Promise { + try { + const topParentGroup = await client.Groups.show(groupId); + if (topParentGroup.parent_id) { + return getTopLevelParentGroup(client, topParentGroup.parent_id as number); + } + + return topParentGroup as GroupSchema; + } catch (error: any) { + throw new InputError( + `Error finding top-level parent group ID: ${error.message}`, + ); + } +} + +export async function checkEpicScope( + client: InstanceType, + projectId: number, + epicId: number, +) { + try { + // If project exists, get the top level group id + const project = await client.Projects.show(projectId); + if (!project) { + throw new InputError( + `Project with id ${projectId} not found. Check your GitLab instance.`, + ); + } + const topParentGroup = await getTopLevelParentGroup( + client, + project.namespace.id, + ); + if (!topParentGroup) { + throw new InputError(`Couldn't find a suitable top-level parent group.`); + } + + // Get the epic + const epic = (await client.Epics.all(topParentGroup.id)).find( + (x: any) => x.id === epicId, + ); + + if (!epic) { + throw new InputError( + `Epic with id ${epicId} not found in the top-level parent group ${topParentGroup.name}.`, + ); + } + + const epicGroup = await client.Groups.show(epic.group_id as number); + const projectNamespace: string = project.path_with_namespace as string; + + return projectNamespace.startsWith(epicGroup.full_path as string); + } catch (error: any) { + throw new InputError(`Could not find epic scope: ${error.message}`); + } +} diff --git a/yarn.lock b/yarn.lock index 2fd28cd48c..a17bae88f1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8655,7 +8655,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-scaffolder-backend-module-gitlab@workspace:plugins/scaffolder-backend-module-gitlab": +"@backstage/plugin-scaffolder-backend-module-gitlab@workspace:^, @backstage/plugin-scaffolder-backend-module-gitlab@workspace:plugins/scaffolder-backend-module-gitlab": version: 0.0.0-use.local resolution: "@backstage/plugin-scaffolder-backend-module-gitlab@workspace:plugins/scaffolder-backend-module-gitlab" dependencies: @@ -8667,6 +8667,7 @@ __metadata: "@backstage/integration": "workspace:^" "@backstage/plugin-scaffolder-node": "workspace:^" "@gitbeaker/node": ^35.8.0 + "@gitbeaker/rest": ^39.25.0 yaml: ^2.0.0 zod: ^3.21.4 languageName: unknown @@ -11569,6 +11570,17 @@ __metadata: languageName: node linkType: hard +"@gitbeaker/core@npm:^39.25.0": + version: 39.25.0 + resolution: "@gitbeaker/core@npm:39.25.0" + dependencies: + "@gitbeaker/requester-utils": ^39.25.0 + qs: ^6.11.2 + xcase: ^2.0.1 + checksum: 56ebe3c6ba1078c47a6cae0abcd5ae4fd928dc73c9eb7dc462894d497d6fa5373c0d09a7a7a0583097cffa641eeb0b28b1764d33a085a7b95f0115399240bc7e + languageName: node + linkType: hard + "@gitbeaker/node@npm:^35.1.0, @gitbeaker/node@npm:^35.8.0": version: 35.8.1 resolution: "@gitbeaker/node@npm:35.8.1" @@ -11593,6 +11605,28 @@ __metadata: languageName: node linkType: hard +"@gitbeaker/requester-utils@npm:^39.25.0": + version: 39.25.0 + resolution: "@gitbeaker/requester-utils@npm:39.25.0" + dependencies: + async-sema: ^3.1.1 + micromatch: ^4.0.5 + qs: ^6.11.2 + xcase: ^2.0.1 + checksum: 1ca90f5ac705d5ef9df682b3051106326bc660427b9b2a88762992690981ce0b6bed4b22bc08af0ba97043766f9898605ba58ed6c1a08b6711af34032f013ed2 + languageName: node + linkType: hard + +"@gitbeaker/rest@npm:^39.25.0": + version: 39.25.0 + resolution: "@gitbeaker/rest@npm:39.25.0" + dependencies: + "@gitbeaker/core": ^39.25.0 + "@gitbeaker/requester-utils": ^39.25.0 + checksum: 5732a34fe3f2fe0a048963baf90b237fde7a1be61fa327e2c7aa69266649394b5b48cd99a6c6abaf1cf8b32b84a293800af33eef49c011b252d6e061f7fe1af9 + languageName: node + linkType: hard + "@google-cloud/container@npm:^5.0.0": version: 5.4.0 resolution: "@google-cloud/container@npm:5.4.0" @@ -21062,6 +21096,13 @@ __metadata: languageName: node linkType: hard +"async-sema@npm:^3.1.1": + version: 3.1.1 + resolution: "async-sema@npm:3.1.1" + checksum: 07b8c51f6cab107417ecdd8126b7a9fe5a75151b7f69fdd420dcc8ee08f9e37c473a217247e894b56e999b088b32e902dbe41637e4e9b594d3f8dfcdddfadc5e + languageName: node + linkType: hard + "async@npm:^2.6.2, async@npm:^2.6.4": version: 2.6.4 resolution: "async@npm:2.6.4" @@ -26880,6 +26921,7 @@ __metadata: "@backstage/plugin-rollbar-backend": "workspace:^" "@backstage/plugin-scaffolder-backend": "workspace:^" "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "workspace:^" + "@backstage/plugin-scaffolder-backend-module-gitlab": "workspace:^" "@backstage/plugin-scaffolder-backend-module-rails": "workspace:^" "@backstage/plugin-search-backend": "workspace:^" "@backstage/plugin-search-backend-module-catalog": "workspace:^" @@ -38184,7 +38226,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:^6.10.1, qs@npm:^6.10.2, qs@npm:^6.11.0, qs@npm:^6.9.1, qs@npm:^6.9.4, qs@npm:^6.9.6": +"qs@npm:^6.10.1, qs@npm:^6.10.2, qs@npm:^6.11.0, qs@npm:^6.11.2, qs@npm:^6.9.1, qs@npm:^6.9.4, qs@npm:^6.9.6": version: 6.11.2 resolution: "qs@npm:6.11.2" dependencies: From 96b8bf417c60f1773a3b2c9642abdf92cbd3025b Mon Sep 17 00:00:00 2001 From: Elaine De-Mattos-Silva-Bezerra Date: Sun, 3 Dec 2023 21:07:31 +0100 Subject: [PATCH 006/155] fix: fixed some issues Signed-off-by: Elaine Mattos --- .../README.md | 18 ++++++ .../sample-templates/template.yaml | 56 +++++++++++++++++++ .../src/actions/createGitlabIssueAction.ts | 23 ++++---- 3 files changed, 86 insertions(+), 11 deletions(-) create mode 100644 plugins/scaffolder-backend-module-gitlab/sample-templates/template.yaml diff --git a/plugins/scaffolder-backend-module-gitlab/README.md b/plugins/scaffolder-backend-module-gitlab/README.md index 128b91092d..9ca74079b2 100644 --- a/plugins/scaffolder-backend-module-gitlab/README.md +++ b/plugins/scaffolder-backend-module-gitlab/README.md @@ -164,8 +164,26 @@ spec: repoContentsUrl: ${{ steps['publish'].output.repoContentsUrl }} catalogInfoPath: '/catalog-info.yaml' + - id: gitlabIssue + name: Issues + action: gitlab:issues:create + input: + repoUrl: ${{ parameters.repoUrl }} + token: ${{ secrets.USER_OAUTH_TOKEN }} + projectId: 1111111 + title: Test Issue + assignees: + - 2222222 + description: This is the description of the issue + confidential: true + createdAt: 2022-09-27 18:00:00.000 + dueDate: 2024-09-28 12:00:00.000 + epicId: 3333333 + labels: phase1:label1,phase2:label2 output: links: - title: Repository url: ${{ steps['publish'].output.remoteUrl }} + - title: Link to new issue + url: ${{ steps['gitlabIssue'].output.issueUrl }} ``` diff --git a/plugins/scaffolder-backend-module-gitlab/sample-templates/template.yaml b/plugins/scaffolder-backend-module-gitlab/sample-templates/template.yaml new file mode 100644 index 0000000000..9078c33483 --- /dev/null +++ b/plugins/scaffolder-backend-module-gitlab/sample-templates/template.yaml @@ -0,0 +1,56 @@ +apiVersion: scaffolder.backstage.io/v1beta3 +kind: Template +metadata: + name: gitlab-demo + title: Gitlab DEMO + description: Scaffolder Gitlab Demo +spec: + owner: backstage/techdocs-core + type: service + + parameters: + - title: Fill in some steps + required: + - name + properties: + name: + title: Name + type: string + description: Unique name of the component + ui:autofocus: true + ui:options: + rows: 5 + - title: Choose a location + required: + - repoUrl + properties: + repoUrl: + title: Repository Location + type: string + ui:field: RepoUrlPicker + ui:options: + allowedHosts: + - gitlab.com + + steps: + - id: gitlabIssue + name: Issues + action: gitlab:issues:create + input: + repoUrl: ${{ parameters.repoUrl }} # git.tech.rz.db.de?owner=devex-core&repo=test-repo + token: ${{ secrets.USER_OAUTH_TOKEN }} + projectId: 52723821 + title: Test Issue + assignees: + - 11013327 + description: This is the description of the issue + confidential: true + createdAt: 2022-09-27 18:00:00.000 + dueDate: 2024-09-28 12:00:00.000 + epicId: 1456 + labels: test-label1,test-label2 + output: + links: + - title: Link to new issue + url: ${{ steps['gitlabIssue'].output.issueUrl }} + diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts index 50f03e2575..5f463182b3 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts @@ -21,8 +21,7 @@ import { createTemplateAction, } from '@backstage/plugin-scaffolder-node'; import * as yaml from 'yaml'; -import { - commonGitlabConfig, +import commonGitlabConfig, { commonGitlabConfigExample, } from '../commonGitlabConfig'; import { z } from 'zod'; @@ -160,7 +159,7 @@ function getExamples(): TemplateExample[] { action: 'gitlab:issues:create', input: { ...commonGitlabConfigExample, - projectId: '12', + projectId: 12, title: 'Test Issue', description: 'This is the description of the issue', }, @@ -178,9 +177,9 @@ function getExamples(): TemplateExample[] { action: 'gitlab:issues:create', input: { ...commonGitlabConfigExample, - projectId: '12', + projectId: 12, title: 'Test Issue', - assignees: '18', + assignees: -18, description: 'This is the description of the issue', createdAt: '2022-09-27 18:00:00.000', dueDate: '2022-09-28 12:00:00.000', @@ -196,19 +195,21 @@ function getExamples(): TemplateExample[] { { id: 'gitlabIssue', name: 'Issues', - action: 'dxc:gitlab:issues:create', + action: 'gitlab:issues:create', input: { ...commonGitlabConfigExample, - projectId: '12', + projectId: 12, title: 'Test Issue', - assignees: '18', + assignees: ` + - 18 + - 15 `, description: 'This is the description of the issue', confidential: false, createdAt: '2022-09-27 18:00:00.000', dueDate: '2022-09-28 12:00:00.000', - discussionToResolve: '1', - epicId: '1', - labels: 'test-label1,test-label2', + discussionToResolve: 1, + epicId: 1, + labels: 'phase1:label1,phase2:label2', }, }, ], From 8d5867e781c1bb517bde2f6592141a4ac2791436 Mon Sep 17 00:00:00 2001 From: Elaine De-Mattos-Silva-Bezerra Date: Tue, 5 Dec 2023 08:20:46 +0100 Subject: [PATCH 007/155] wip: add features Signed-off-by: Elaine Mattos --- .../createGitlabGroupEnsureExistsAction.ts | 3 +- .../createGitlabIssueAction.examples.ts | 87 +++++++ .../src/actions/createGitlabIssueAction.ts | 227 +++++++++--------- .../src/util.test.ts | 92 +++++++ 4 files changed, 297 insertions(+), 112 deletions(-) create mode 100644 plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts create mode 100644 plugins/scaffolder-backend-module-gitlab/src/util.test.ts diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabGroupEnsureExistsAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabGroupEnsureExistsAction.ts index 74d3805254..cdc25b85d8 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabGroupEnsureExistsAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabGroupEnsureExistsAction.ts @@ -60,7 +60,8 @@ export const createGitlabGroupEnsureExistsAction = (options: { const { path } = ctx.input; const { token, integrationConfig } = getToken(ctx.input, integrations); - + console.log(`THIS IS THE TOKEN ${token}`); + console.log(`THIS IS THE PATH ${path}`); const api = new Gitlab({ host: integrationConfig.config.baseUrl, token: token, diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts new file mode 100644 index 0000000000..1be944a7c8 --- /dev/null +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts @@ -0,0 +1,87 @@ +/* + * 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. + */ +import { TemplateExample } from '@backstage/plugin-scaffolder-node'; +import yaml from 'yaml'; +import { commonGitlabConfigExample } from '../commonGitlabConfig'; + +export const examples: TemplateExample[] = [ + { + description: 'Create a GitLab issue with minimal options', + example: yaml.stringify({ + steps: [ + { + id: 'gitlabIssue', + name: 'Issues', + action: 'gitlab:issues:create', + input: { + ...commonGitlabConfigExample, + projectId: 12, + title: 'Test Issue', + description: 'This is the description of the issue', + }, + }, + ], + }), + }, + { + description: 'Create a GitLab issue with assignees and date options', + example: yaml.stringify({ + steps: [ + { + id: 'gitlabIssue', + name: 'Issues', + action: 'gitlab:issues:create', + input: { + ...commonGitlabConfigExample, + projectId: 12, + title: 'Test Issue', + assignees: -18, + description: 'This is the description of the issue', + createdAt: '2022-09-27 18:00:00.000', + dueDate: '2022-09-28 12:00:00.000', + }, + }, + ], + }), + }, + { + description: 'Create a GitLab Issue with several options', + example: yaml.stringify({ + steps: [ + { + id: 'gitlabIssue', + name: 'Issues', + action: 'gitlab:issues:create', + input: { + ...commonGitlabConfigExample, + projectId: 12, + title: 'Test Issue', + assignees: ` + - 18 + - 15 `, + description: 'This is the description of the issue', + confidential: false, + createdAt: '2022-09-27 18:00:00.000', + dueDate: '2022-09-28 12:00:00.000', + discussionToResolve: 1, + epicId: 1, + labels: 'phase1:label1,phase2:label2', + }, + }, + ], + }), + }, +]; diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts index 5f463182b3..57f7d753e4 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts @@ -16,14 +16,9 @@ import { InputError } from '@backstage/errors'; import { ScmIntegrationRegistry } from '@backstage/integration'; -import { - TemplateExample, - createTemplateAction, -} from '@backstage/plugin-scaffolder-node'; -import * as yaml from 'yaml'; -import commonGitlabConfig, { - commonGitlabConfigExample, -} from '../commonGitlabConfig'; +import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; +import commonGitlabConfig from '../commonGitlabConfig'; +import { examples } from './createGitlabIssueAction.examples'; import { z } from 'zod'; import { checkEpicScope, convertDate, getClient, parseRepoUrl } from '../util'; import { Gitlab, CreateIssueOptions, IssueSchema } from '@gitbeaker/rest'; @@ -35,6 +30,100 @@ import { Gitlab, CreateIssueOptions, IssueSchema } from '@gitbeaker/rest'; * @public */ +const enumIssueType = { + ISSUE: 'issue', + INCIDENT: 'incident', + TEST: 'test_case', +}; + +const issueInputProperties = z.object({ + projectId: z.number().describe('Project Id'), + title: z.string({ description: 'Title of the issue' }), + assignees: z + .array(z.number(), { + description: 'IDs of the users to assign the issue to.', + }) + .optional(), + confidential: z.boolean({ description: 'Issue Confidentiality' }).optional(), + description: z.string().describe('Issue description').max(1048576).optional(), + createdAt: z + .string() + .describe('Creation date/time') + .regex( + /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/, + 'Invalid date format. Use YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.SSSZ', + ) + .optional(), + dueDate: z + .string() + .describe('Due date/time') + .regex( + /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/, + 'Invalid date format. Use YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss.SSSZ', + ) + .optional(), + discussionToResolve: z + .string({ + description: + 'Id of a discussion to resolve. Use in combination with "merge_request_to_resolve_discussions_of"', + }) + .optional(), + epicId: z + .number({ description: 'Id of the linked Epic' }) + .min(0, 'Valid values should be equal or greater than zero') + .optional(), + labels: z.string({ description: 'Labels to apply' }).optional(), + issueType: z + .string({ + description: 'Type of the issue', + }) + .refine(issueType => { + const isValid = Object.values(enumIssueType).includes(issueType); + if (!isValid) { + throw new z.ZodError([ + { + code: 'invalid_enum_value', + options: Object.values(enumIssueType), + path: ['issueType'], + message: `Invalid value for 'issueType'. Must be one of: ${Object.values( + enumIssueType, + ).join(', ')}`, + received: issueType, + }, + ]); + } + return isValid; + }) + .default(enumIssueType.ISSUE) + .optional(), + mergeRequestToResolveDiscussionsOf: z + .number({ + description: 'IID of a merge request in which to resolve all issues', + }) + .optional(), + milestoneId: z + .number({ description: 'Global ID of a milestone to assign the issue' }) + .optional(), + weight: z + .number({ description: 'The issue weight' }) + .min(0) + .refine(value => { + const isValid = value >= 0; + if (!isValid) { + return { + message: 'Valid values should be equal or greater than zero', + }; + } + return isValid; + }) + .optional(), +}); + +const issueOutputProperties = z.object({ + issueUrl: z.string({ description: 'Issue Url' }), + issueId: z.number({ description: 'Issue Id' }), +}); + export const createGitlabIssueAction = (options: { integrations: ScmIntegrationRegistry; }) => { @@ -42,38 +131,10 @@ export const createGitlabIssueAction = (options: { return createTemplateAction({ id: 'gitlab:issues:create', description: 'Creates a Gitlab issue.', - examples: getExamples(), + examples, schema: { - input: commonGitlabConfig.merge( - z.object({ - projectId: z.number({ description: 'Project Id' }), - title: z.string({ description: 'Title of the issue' }), - assignees: z - .array(z.number(), { - description: 'IDs of the users to assign the issue to.', - }) - .optional(), - confidential: z - .boolean({ description: 'Issue Confidentiality' }) - .optional(), - description: z - .string({ description: 'Issue description' }) - .optional(), - createdAt: z.string({ description: 'Creation date/time' }).optional(), - dueDate: z.string({ description: 'Due date/time' }).optional(), - discussionToResolve: z - .string({ - description: 'Id of a discussion to resolve', - }) - .optional(), - epicId: z.number({ description: 'Id of the linked Epic' }).optional(), - labels: z.string({ description: 'Labels to apply' }).optional(), - }), - ), - output: z.object({ - issueUrl: z.string({ description: 'Issue Url' }), - issueId: z.number({ description: 'Issue Id' }), - }), + input: commonGitlabConfig.merge(issueInputProperties), + output: issueOutputProperties, }, async handler(ctx) { try { @@ -89,8 +150,12 @@ export const createGitlabIssueAction = (options: { discussionToResolve = '', epicId, labels = '', + issueType, + mergeRequestToResolveDiscussionsOf, + milestoneId, + weight, token, - } = ctx.input; + } = commonGitlabConfig.merge(issueInputProperties).parse(ctx.input); const { host } = parseRepoUrl(repoUrl, integrations); @@ -113,6 +178,8 @@ export const createGitlabIssueAction = (options: { ); } } + + // TODO: do I really need the convertDate? const mappedCreatedAt = convertDate( String(createdAt), new Date().toISOString(), @@ -130,6 +197,10 @@ export const createGitlabIssueAction = (options: { createdAt: mappedCreatedAt, dueDate: mappedDueDate, discussionToResolve, + issueType, + mergeRequestToResolveDiscussionsOf, + milestoneId, + weight, }; const response = (await api.Issues.create( @@ -141,79 +212,13 @@ export const createGitlabIssueAction = (options: { ctx.output('issueId', response.id); ctx.output('issueUrl', response.web_url); } catch (error: any) { + if (error instanceof z.ZodError) { + // Handling Zod validation errors + throw new InputError(`Validation error: ${error.message}`); + } + // Handling other errors throw new InputError(`Failed to create GitLab issue: ${error.message}`); } }, }); }; - -function getExamples(): TemplateExample[] { - return [ - { - description: 'Create a GitLab issue with minimal options', - example: yaml.stringify({ - steps: [ - { - id: 'gitlabIssue', - name: 'Issues', - action: 'gitlab:issues:create', - input: { - ...commonGitlabConfigExample, - projectId: 12, - title: 'Test Issue', - description: 'This is the description of the issue', - }, - }, - ], - }), - }, - { - description: 'Create a GitLab issue with assignees and date options', - example: yaml.stringify({ - steps: [ - { - id: 'gitlabIssue', - name: 'Issues', - action: 'gitlab:issues:create', - input: { - ...commonGitlabConfigExample, - projectId: 12, - title: 'Test Issue', - assignees: -18, - description: 'This is the description of the issue', - createdAt: '2022-09-27 18:00:00.000', - dueDate: '2022-09-28 12:00:00.000', - }, - }, - ], - }), - }, - { - description: 'Create a GitLab Issue with several options', - example: yaml.stringify({ - steps: [ - { - id: 'gitlabIssue', - name: 'Issues', - action: 'gitlab:issues:create', - input: { - ...commonGitlabConfigExample, - projectId: 12, - title: 'Test Issue', - assignees: ` - - 18 - - 15 `, - description: 'This is the description of the issue', - confidential: false, - createdAt: '2022-09-27 18:00:00.000', - dueDate: '2022-09-28 12:00:00.000', - discussionToResolve: 1, - epicId: 1, - labels: 'phase1:label1,phase2:label2', - }, - }, - ], - }), - }, - ]; -} diff --git a/plugins/scaffolder-backend-module-gitlab/src/util.test.ts b/plugins/scaffolder-backend-module-gitlab/src/util.test.ts new file mode 100644 index 0000000000..0da094fb32 --- /dev/null +++ b/plugins/scaffolder-backend-module-gitlab/src/util.test.ts @@ -0,0 +1,92 @@ +/* + * 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 { InputError } from '@backstage/errors'; +import { + // parseRepoHost, + // getToken, + // convertDate, + getTopLevelParentGroup, +} from './util'; +import { Gitlab, GroupSchema } from '@gitbeaker/rest'; +// import { ScmIntegrations } from '@backstage/integration'; +// import { ConfigReader } from '@backstage/config'; + +// Mock the Gitlab client and its methods +jest.mock('@gitbeaker/rest', () => { + const mockShow = jest.fn(); + return { + Gitlab: jest.fn().mockImplementation(() => ({ + Groups: { + show: mockShow, + }, + })), + }; +}); + +describe('getTopLevelParentGroup', () => { + const config = { + gitlab: [ + { + host: 'gitlab.com', + token: 'withToken', + apiBaseUrl: 'gitlab.com/api/v4', + }, + { + host: 'gitlab.com', + apiBaseUrl: 'gitlab.com/api/v4', + }, + ], + }; + + it('should return top-level parent group when parent_id is present', async () => { + const mockGroupId = 123; + const mockParentGroupId = 456; + + const mockTopParentGroup: GroupSchema = { + id: mockGroupId, + parent_id: mockParentGroupId, + path: '', + description: '', + visibility: '', + share_with_group_lock: false, + require_two_factor_authentication: false, + two_factor_grace_period: 0, + project_creation_level: '', + subgroup_creation_level: '', + lfs_enabled: false, + default_branch_protection: 0, + request_access_enabled: false, + created_at: '', + avatar_url: '', + full_name: '', + full_path: '', + web_url: '', + name: '', + }; + + // Instance with token + const mockGitlabClient = new Gitlab({ + host: config.gitlab[0].host, + token: config.gitlab[0].token!, + }); + + const action = getTopLevelParentGroup(mockGitlabClient, mockGroupId); + + const result = await action; // Await the result + + expect(result).toEqual(mockTopParentGroup); + }); +}); From b24b0a2d30408bf7e280d13d94b95cd3c369e98d Mon Sep 17 00:00:00 2001 From: Elaine De-Mattos-Silva-Bezerra Date: Tue, 5 Dec 2023 22:24:11 +0100 Subject: [PATCH 008/155] feat: added initial tests Signed-off-by: Elaine Mattos --- .../sample-templates/template.yaml | 38 +++++- .../src/util.test.ts | 115 ++++++++++++++---- .../src/util.ts | 7 +- 3 files changed, 129 insertions(+), 31 deletions(-) diff --git a/plugins/scaffolder-backend-module-gitlab/sample-templates/template.yaml b/plugins/scaffolder-backend-module-gitlab/sample-templates/template.yaml index 9078c33483..8ae328a8d2 100644 --- a/plugins/scaffolder-backend-module-gitlab/sample-templates/template.yaml +++ b/plugins/scaffolder-backend-module-gitlab/sample-templates/template.yaml @@ -20,6 +20,31 @@ spec: ui:autofocus: true ui:options: rows: 5 + projectId: + title: Project id + type: number + weight: + title: Issue weight + type: number + title: + title: Issue title + type: string + description: + title: Issue description + type: string + issueType: + title: Type + type: string + ui:help: 'issue, incident, test_case' + createdAt: + title: Creation date + type: string + format: date-time + dueDate: + title: Due date + type: string + format: date-time + - title: Choose a location required: - repoUrl @@ -39,16 +64,17 @@ spec: input: repoUrl: ${{ parameters.repoUrl }} # git.tech.rz.db.de?owner=devex-core&repo=test-repo token: ${{ secrets.USER_OAUTH_TOKEN }} - projectId: 52723821 - title: Test Issue + projectId: ${{ parameters.projectId }} # 52723821 + title: ${{ parameters.title }} + weight: ${{ parameters.weight }} assignees: - 11013327 - description: This is the description of the issue + description: ${{ parameters.description }} confidential: true - createdAt: 2022-09-27 18:00:00.000 - dueDate: 2024-09-28 12:00:00.000 - epicId: 1456 + createdAt: ${{ parameters.createdAt }} # "2023-03-11T03:45:40Z" + dueDate: ${{ parameters.dueDate }} # "2024-03-11T03:45:40Z" labels: test-label1,test-label2 + issueType: ${{ parameters.issueType }} output: links: - title: Link to new issue diff --git a/plugins/scaffolder-backend-module-gitlab/src/util.test.ts b/plugins/scaffolder-backend-module-gitlab/src/util.test.ts index 0da094fb32..c8307a6bd5 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/util.test.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/util.test.ts @@ -13,24 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// import { InputError } from '@backstage/errors'; -import { - // parseRepoHost, - // getToken, - // convertDate, - getTopLevelParentGroup, -} from './util'; + +import * as util from './util'; import { Gitlab, GroupSchema } from '@gitbeaker/rest'; -// import { ScmIntegrations } from '@backstage/integration'; -// import { ConfigReader } from '@backstage/config'; // Mock the Gitlab client and its methods jest.mock('@gitbeaker/rest', () => { - const mockShow = jest.fn(); return { Gitlab: jest.fn().mockImplementation(() => ({ Groups: { - show: mockShow, + show: jest.fn(), + search: jest.fn(), }, })), }; @@ -51,13 +44,84 @@ describe('getTopLevelParentGroup', () => { ], }; - it('should return top-level parent group when parent_id is present', async () => { - const mockGroupId = 123; - const mockParentGroupId = 456; + it('should return the top-level parent group', async () => { + // Instance with token + const mockGitlabClient = new Gitlab({ + host: config.gitlab[0].host, + token: config.gitlab[0].token!, + }); + // Mocked nested groups + const mockGroups: GroupSchema[] = [ + { + id: 789, + parent_id: 0, + path: '', + description: '', + visibility: '', + share_with_group_lock: false, + require_two_factor_authentication: false, + two_factor_grace_period: 0, + project_creation_level: '', + subgroup_creation_level: '', + lfs_enabled: false, + default_branch_protection: 0, + request_access_enabled: false, + created_at: '', + avatar_url: '', + full_name: '', + full_path: '', + web_url: '', + name: '', + }, + { + id: 456, + parent_id: 789, + path: '', + description: '', + visibility: '', + share_with_group_lock: false, + require_two_factor_authentication: false, + two_factor_grace_period: 0, + project_creation_level: '', + subgroup_creation_level: '', + lfs_enabled: false, + default_branch_protection: 0, + request_access_enabled: false, + created_at: '', + avatar_url: '', + full_name: '', + full_path: '', + web_url: '', + name: '', + }, + { + id: 123, + parent_id: 456, + path: '', + description: '', + visibility: '', + share_with_group_lock: false, + require_two_factor_authentication: false, + two_factor_grace_period: 0, + project_creation_level: '', + subgroup_creation_level: '', + lfs_enabled: false, + default_branch_protection: 0, + request_access_enabled: false, + created_at: '', + avatar_url: '', + full_name: '', + full_path: '', + web_url: '', + name: '', + }, + ]; + + // Top level group const mockTopParentGroup: GroupSchema = { - id: mockGroupId, - parent_id: mockParentGroupId, + id: 789, + parent_id: 0, path: '', description: '', visibility: '', @@ -77,16 +141,21 @@ describe('getTopLevelParentGroup', () => { name: '', }; - // Instance with token - const mockGitlabClient = new Gitlab({ - host: config.gitlab[0].host, - token: config.gitlab[0].token!, - }); + const showSpy = jest.spyOn(mockGitlabClient.Groups, 'show'); - const action = getTopLevelParentGroup(mockGitlabClient, mockGroupId); + // Mock implementation of Groups.show + showSpy.mockImplementation( + async (groupId: string | number): Promise => { + const id = + typeof groupId === 'number' ? groupId : parseInt(groupId, 10); + const mockGroup = mockGroups.find(group => group.id === id) || null; + return mockGroup as GroupSchema; + }, + ); - const result = await action; // Await the result + const action = util.getTopLevelParentGroup(mockGitlabClient, 123); + const result = await action; expect(result).toEqual(mockTopParentGroup); }); }); diff --git a/plugins/scaffolder-backend-module-gitlab/src/util.ts b/plugins/scaffolder-backend-module-gitlab/src/util.ts index c967e1cee9..d100dfd8ef 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/util.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/util.ts @@ -22,6 +22,7 @@ import { import { z } from 'zod'; import commonGitlabConfig from './commonGitlabConfig'; import { Gitlab, GroupSchema } from '@gitbeaker/rest'; +import * as util from './util'; export const parseRepoHost = (repoUrl: string): string => { let parsed; @@ -143,9 +144,11 @@ export async function getTopLevelParentGroup( try { const topParentGroup = await client.Groups.show(groupId); if (topParentGroup.parent_id) { - return getTopLevelParentGroup(client, topParentGroup.parent_id as number); + return util.getTopLevelParentGroup( + client, + topParentGroup.parent_id as number, + ); } - return topParentGroup as GroupSchema; } catch (error: any) { throw new InputError( From ab534408668f8464b45a001c35a1f73e2e802267 Mon Sep 17 00:00:00 2001 From: Elaine De-Mattos-Silva-Bezerra Date: Sun, 10 Dec 2023 20:10:52 +0100 Subject: [PATCH 009/155] wip: add some more tests Signed-off-by: Elaine Mattos --- .../package.json | 3 +- .../actions/createGitlabIssueAction.test.ts | 212 ++++++++++++++++++ .../src/actions/createGitlabIssueAction.ts | 11 +- .../src/util.test.ts | 33 +-- .../src/util.ts | 2 +- yarn.lock | 11 +- 6 files changed, 252 insertions(+), 20 deletions(-) create mode 100644 plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts diff --git a/plugins/scaffolder-backend-module-gitlab/package.json b/plugins/scaffolder-backend-module-gitlab/package.json index 09efaf5af0..1316ed4539 100644 --- a/plugins/scaffolder-backend-module-gitlab/package.json +++ b/plugins/scaffolder-backend-module-gitlab/package.json @@ -43,7 +43,8 @@ "devDependencies": { "@backstage/backend-common": "workspace:^", "@backstage/cli": "workspace:^", - "@backstage/core-app-api": "workspace:^" + "@backstage/core-app-api": "workspace:^", + "jest-date-mock": "^1.0.8" }, "files": [ "dist" diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts new file mode 100644 index 0000000000..cd85454665 --- /dev/null +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts @@ -0,0 +1,212 @@ +/* + * Copyright 2021 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 { PassThrough } from 'stream'; +import { getVoidLogger } from '@backstage/backend-common'; +import { createGitlabIssueAction } from './createGitlabIssueAction'; +import { ConfigReader } from '@backstage/core-app-api'; +import { ScmIntegrations } from '@backstage/integration'; +import { advanceTo, clear } from 'jest-date-mock'; + +const mockGitlabClient = { + Issues: { + create: jest.fn(), + }, +}; +jest.mock('@gitbeaker/rest', () => ({ + Gitlab: class { + constructor() { + return mockGitlabClient; + } + }, +})); + +describe('gitlab:issues:create', () => { + beforeEach(() => { + jest.clearAllMocks(); + advanceTo(new Date(1990, 9, 24, 12, 0, 0)); // Set the desired date and time + }); + + afterEach(() => { + clear(); // Reset the date mock after each test + }); + + const config = new ConfigReader({ + integrations: { + gitlab: [ + { + host: 'gitlab.com', + token: 'myIntegrationsToken', + apiBaseUrl: 'https://gitlab.com/api/v4', + }, + ], + }, + }); + const integrations = ScmIntegrations.fromConfig(config); + + const action = createGitlabIssueAction({ integrations }); + + it('should return a Gitlab issue when called with minimal input params', async () => { + const mockContext = { + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + projectId: 123, + title: 'Computer banks to rule the world', + // token: 'myAwesomeToken', + }, + workspacePath: 'lol', + logger: getVoidLogger(), + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; + + mockGitlabClient.Issues.create.mockResolvedValue({ + id: 42, + web_url: 'https://gitlab.com/hangar18-/issues/42', + }); + + await action.handler({ + ...mockContext, + }); + + expect(mockGitlabClient.Issues.create).toHaveBeenCalledWith( + 123, + 'Computer banks to rule the world', + { + issueType: undefined, + description: '', + assigneeIds: [], + confidential: false, + epicId: undefined, + labels: '', + createdAt: new Date().toISOString(), + dueDate: undefined, + discussionToResolve: '', + mergeRequestToResolveDiscussionsOf: undefined, + milestoneId: undefined, + weight: undefined, + }, + ); + + expect(mockContext.output).toHaveBeenCalledWith('issueId', 42); + expect(mockContext.output).toHaveBeenCalledWith( + 'issueUrl', + 'https://gitlab.com/hangar18-/issues/42', + ); + }); + + it('should return a Gitlab issue when called with oAuth Token', async () => { + const mockContext = { + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + projectId: 123, + title: 'Computer banks to rule the world', + token: 'myAwesomeToken', + }, + workspacePath: 'lol', + logger: getVoidLogger(), + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; + + mockGitlabClient.Issues.create.mockResolvedValue({ + id: 42, + web_url: 'https://gitlab.com/hangar18-/issues/42', + }); + + await action.handler({ + ...mockContext, + }); + + expect(mockGitlabClient.Issues.create).toHaveBeenCalledWith( + 123, + 'Computer banks to rule the world', + { + issueType: undefined, + description: '', + assigneeIds: [], + confidential: false, + epicId: undefined, + labels: '', + createdAt: new Date().toISOString(), + dueDate: undefined, + discussionToResolve: '', + mergeRequestToResolveDiscussionsOf: undefined, + milestoneId: undefined, + weight: undefined, + }, + ); + + expect(mockContext.output).toHaveBeenCalledWith('issueId', 42); + expect(mockContext.output).toHaveBeenCalledWith( + 'issueUrl', + 'https://gitlab.com/hangar18-/issues/42', + ); + }); + + it('should return a Gitlab issue when called with an epic id', async () => { + const mockContext = { + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + projectId: 123, + title: 'Instruments to sight the stars', + token: 'myAwesomeToken', + epicId: 1234, + }, + workspacePath: 'lol', + logger: getVoidLogger(), + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; + + mockGitlabClient.Issues.create.mockResolvedValue({ + id: 42, + web_url: 'https://gitlab.com/hangar18-/issues/42', + }); + + await action.handler({ + ...mockContext, + }); + + expect(mockGitlabClient.Issues.create).toHaveBeenCalledWith( + 123, + 'Computer banks to rule the world', + { + issueType: undefined, + description: '', + assigneeIds: [], + confidential: false, + epicId: 1234, + labels: '', + createdAt: new Date().toISOString(), + dueDate: undefined, + discussionToResolve: '', + mergeRequestToResolveDiscussionsOf: undefined, + milestoneId: undefined, + weight: undefined, + }, + ); + + expect(mockContext.output).toHaveBeenCalledWith('issueId', 42); + expect(mockContext.output).toHaveBeenCalledWith( + 'issueUrl', + 'https://gitlab.com/hangar18-/issues/42', + ); + }); +}); diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts index 57f7d753e4..408d307612 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts @@ -158,7 +158,6 @@ export const createGitlabIssueAction = (options: { } = commonGitlabConfig.merge(issueInputProperties).parse(ctx.input); const { host } = parseRepoUrl(repoUrl, integrations); - const api = getClient({ host, integrations, token }); let isEpicScoped = false; @@ -178,8 +177,7 @@ export const createGitlabIssueAction = (options: { ); } } - - // TODO: do I really need the convertDate? + console.log('After epic test'); const mappedCreatedAt = convertDate( String(createdAt), new Date().toISOString(), @@ -202,6 +200,11 @@ export const createGitlabIssueAction = (options: { milestoneId, weight, }; + console.log('After setting issues options'); + console.log({ issueOptions }); + console.log(`Other options: ${projectId}, ${title}`); + + console.log({ token }); const response = (await api.Issues.create( projectId, @@ -209,6 +212,8 @@ export const createGitlabIssueAction = (options: { issueOptions, )) as IssueSchema; + console.log('After calling the issues endpoint'); + ctx.output('issueId', response.id); ctx.output('issueUrl', response.web_url); } catch (error: any) { diff --git a/plugins/scaffolder-backend-module-gitlab/src/util.test.ts b/plugins/scaffolder-backend-module-gitlab/src/util.test.ts index c8307a6bd5..0829d1321f 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/util.test.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/util.test.ts @@ -18,19 +18,26 @@ import * as util from './util'; import { Gitlab, GroupSchema } from '@gitbeaker/rest'; // Mock the Gitlab client and its methods -jest.mock('@gitbeaker/rest', () => { - return { - Gitlab: jest.fn().mockImplementation(() => ({ - Groups: { - show: jest.fn(), - search: jest.fn(), - }, - })), - }; -}); +const setupGitlabMock = () => { + jest.mock('@gitbeaker/rest', () => { + return { + Gitlab: jest.fn().mockImplementation(() => ({ + Groups: { + show: jest.fn(), + }, + })), + }; + }); +}; describe('getTopLevelParentGroup', () => { - const config = { + beforeEach(() => { + setupGitlabMock(); + }); + + afterEach(() => jest.resetAllMocks()); + + const mockConfig = { gitlab: [ { host: 'gitlab.com', @@ -47,8 +54,8 @@ describe('getTopLevelParentGroup', () => { it('should return the top-level parent group', async () => { // Instance with token const mockGitlabClient = new Gitlab({ - host: config.gitlab[0].host, - token: config.gitlab[0].token!, + host: mockConfig.gitlab[0].host, + token: mockConfig.gitlab[0].token!, }); // Mocked nested groups diff --git a/plugins/scaffolder-backend-module-gitlab/src/util.ts b/plugins/scaffolder-backend-module-gitlab/src/util.ts index d100dfd8ef..098aa05667 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/util.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/util.ts @@ -120,7 +120,7 @@ export function getClient(props: { }; gitlabOptions[tokenType] = requestToken; - + console.log({ gitlabOptions }); return new Gitlab(gitlabOptions); } diff --git a/yarn.lock b/yarn.lock index a17bae88f1..1df2e9a722 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8655,7 +8655,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-scaffolder-backend-module-gitlab@workspace:^, @backstage/plugin-scaffolder-backend-module-gitlab@workspace:plugins/scaffolder-backend-module-gitlab": +"@backstage/plugin-scaffolder-backend-module-gitlab@workspace:plugins/scaffolder-backend-module-gitlab": version: 0.0.0-use.local resolution: "@backstage/plugin-scaffolder-backend-module-gitlab@workspace:plugins/scaffolder-backend-module-gitlab" dependencies: @@ -8668,6 +8668,7 @@ __metadata: "@backstage/plugin-scaffolder-node": "workspace:^" "@gitbeaker/node": ^35.8.0 "@gitbeaker/rest": ^39.25.0 + jest-date-mock: ^1.0.8 yaml: ^2.0.0 zod: ^3.21.4 languageName: unknown @@ -26921,7 +26922,6 @@ __metadata: "@backstage/plugin-rollbar-backend": "workspace:^" "@backstage/plugin-scaffolder-backend": "workspace:^" "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "workspace:^" - "@backstage/plugin-scaffolder-backend-module-gitlab": "workspace:^" "@backstage/plugin-scaffolder-backend-module-rails": "workspace:^" "@backstage/plugin-search-backend": "workspace:^" "@backstage/plugin-search-backend-module-catalog": "workspace:^" @@ -31108,6 +31108,13 @@ __metadata: languageName: node linkType: hard +"jest-date-mock@npm:^1.0.8": + version: 1.0.8 + resolution: "jest-date-mock@npm:1.0.8" + checksum: 7b012870440b0df742d0b651435b91625dbbf02d916633a0c70c7deb5d5087f9aadc59847602312368826325909e70e95cd412896a0c9ee1d5ac382000bf5ef9 + languageName: node + linkType: hard + "jest-diff@npm:^28.1.3": version: 28.1.3 resolution: "jest-diff@npm:28.1.3" From 31904c79e4abfcea08a14fcbfdf907d53c86b059 Mon Sep 17 00:00:00 2001 From: Elaine De-Mattos-Silva-Bezerra Date: Mon, 18 Dec 2023 19:00:38 +0100 Subject: [PATCH 010/155] feat: add new tests Signed-off-by: Elaine Mattos --- .../actions/createGitlabIssueAction.test.ts | 56 +--- .../src/util.test.ts | 306 ++++++++++++------ 2 files changed, 217 insertions(+), 145 deletions(-) diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts index cd85454665..ce57fac9e5 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts @@ -65,9 +65,8 @@ describe('gitlab:issues:create', () => { repoUrl: 'gitlab.com?repo=repo&owner=owner', projectId: 123, title: 'Computer banks to rule the world', - // token: 'myAwesomeToken', }, - workspacePath: 'lol', + workspacePath: 'seen2much', logger: getVoidLogger(), logStream: new PassThrough(), output: jest.fn(), @@ -117,7 +116,7 @@ describe('gitlab:issues:create', () => { title: 'Computer banks to rule the world', token: 'myAwesomeToken', }, - workspacePath: 'lol', + workspacePath: 'seen2much', logger: getVoidLogger(), logStream: new PassThrough(), output: jest.fn(), @@ -158,55 +157,4 @@ describe('gitlab:issues:create', () => { 'https://gitlab.com/hangar18-/issues/42', ); }); - - it('should return a Gitlab issue when called with an epic id', async () => { - const mockContext = { - input: { - repoUrl: 'gitlab.com?repo=repo&owner=owner', - projectId: 123, - title: 'Instruments to sight the stars', - token: 'myAwesomeToken', - epicId: 1234, - }, - workspacePath: 'lol', - logger: getVoidLogger(), - logStream: new PassThrough(), - output: jest.fn(), - createTemporaryDirectory: jest.fn(), - }; - - mockGitlabClient.Issues.create.mockResolvedValue({ - id: 42, - web_url: 'https://gitlab.com/hangar18-/issues/42', - }); - - await action.handler({ - ...mockContext, - }); - - expect(mockGitlabClient.Issues.create).toHaveBeenCalledWith( - 123, - 'Computer banks to rule the world', - { - issueType: undefined, - description: '', - assigneeIds: [], - confidential: false, - epicId: 1234, - labels: '', - createdAt: new Date().toISOString(), - dueDate: undefined, - discussionToResolve: '', - mergeRequestToResolveDiscussionsOf: undefined, - milestoneId: undefined, - weight: undefined, - }, - ); - - expect(mockContext.output).toHaveBeenCalledWith('issueId', 42); - expect(mockContext.output).toHaveBeenCalledWith( - 'issueUrl', - 'https://gitlab.com/hangar18-/issues/42', - ); - }); }); diff --git a/plugins/scaffolder-backend-module-gitlab/src/util.test.ts b/plugins/scaffolder-backend-module-gitlab/src/util.test.ts index 0829d1321f..4de4eca786 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/util.test.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/util.test.ts @@ -16,6 +16,7 @@ import * as util from './util'; import { Gitlab, GroupSchema } from '@gitbeaker/rest'; +import { InputError } from '@backstage/errors'; // Mock the Gitlab client and its methods const setupGitlabMock = () => { @@ -25,11 +26,30 @@ const setupGitlabMock = () => { Groups: { show: jest.fn(), }, + Projects: { + show: jest.fn(), + }, + Epics: { + all: jest.fn(), + }, })), }; }); }; +const mockConfig = { + gitlab: [ + { + host: 'gitlab.com', + token: 'withToken', + apiBaseUrl: 'gitlab.com/api/v4', + }, + { + host: 'gitlab.com', + apiBaseUrl: 'gitlab.com/api/v4', + }, + ], +}; describe('getTopLevelParentGroup', () => { beforeEach(() => { setupGitlabMock(); @@ -37,96 +57,9 @@ describe('getTopLevelParentGroup', () => { afterEach(() => jest.resetAllMocks()); - const mockConfig = { - gitlab: [ - { - host: 'gitlab.com', - token: 'withToken', - apiBaseUrl: 'gitlab.com/api/v4', - }, - { - host: 'gitlab.com', - apiBaseUrl: 'gitlab.com/api/v4', - }, - ], - }; - - it('should return the top-level parent group', async () => { - // Instance with token - const mockGitlabClient = new Gitlab({ - host: mockConfig.gitlab[0].host, - token: mockConfig.gitlab[0].token!, - }); - - // Mocked nested groups - const mockGroups: GroupSchema[] = [ - { - id: 789, - parent_id: 0, - path: '', - description: '', - visibility: '', - share_with_group_lock: false, - require_two_factor_authentication: false, - two_factor_grace_period: 0, - project_creation_level: '', - subgroup_creation_level: '', - lfs_enabled: false, - default_branch_protection: 0, - request_access_enabled: false, - created_at: '', - avatar_url: '', - full_name: '', - full_path: '', - web_url: '', - name: '', - }, - { - id: 456, - parent_id: 789, - path: '', - description: '', - visibility: '', - share_with_group_lock: false, - require_two_factor_authentication: false, - two_factor_grace_period: 0, - project_creation_level: '', - subgroup_creation_level: '', - lfs_enabled: false, - default_branch_protection: 0, - request_access_enabled: false, - created_at: '', - avatar_url: '', - full_name: '', - full_path: '', - web_url: '', - name: '', - }, - { - id: 123, - parent_id: 456, - path: '', - description: '', - visibility: '', - share_with_group_lock: false, - require_two_factor_authentication: false, - two_factor_grace_period: 0, - project_creation_level: '', - subgroup_creation_level: '', - lfs_enabled: false, - default_branch_protection: 0, - request_access_enabled: false, - created_at: '', - avatar_url: '', - full_name: '', - full_path: '', - web_url: '', - name: '', - }, - ]; - - // Top level group - const mockTopParentGroup: GroupSchema = { + // Mocked nested groups + const mockGroups: GroupSchema[] = [ + { id: 789, parent_id: 0, path: '', @@ -146,7 +79,80 @@ describe('getTopLevelParentGroup', () => { full_path: '', web_url: '', name: '', - }; + }, + { + id: 456, + parent_id: 789, + path: '', + description: '', + visibility: '', + share_with_group_lock: false, + require_two_factor_authentication: false, + two_factor_grace_period: 0, + project_creation_level: '', + subgroup_creation_level: '', + lfs_enabled: false, + default_branch_protection: 0, + request_access_enabled: false, + created_at: '', + avatar_url: '', + full_name: '', + full_path: '', + web_url: '', + name: '', + }, + { + id: 123, + parent_id: 456, + path: '', + description: '', + visibility: '', + share_with_group_lock: false, + require_two_factor_authentication: false, + two_factor_grace_period: 0, + project_creation_level: '', + subgroup_creation_level: '', + lfs_enabled: false, + default_branch_protection: 0, + request_access_enabled: false, + created_at: '', + avatar_url: '', + full_name: '', + full_path: '', + web_url: '', + name: '', + }, + ]; + + // Top level group + const mockTopParentGroup: GroupSchema = { + id: 789, + parent_id: 0, + path: '', + description: '', + visibility: '', + share_with_group_lock: false, + require_two_factor_authentication: false, + two_factor_grace_period: 0, + project_creation_level: '', + subgroup_creation_level: '', + lfs_enabled: false, + default_branch_protection: 0, + request_access_enabled: false, + created_at: '', + avatar_url: '', + full_name: '', + full_path: '', + web_url: '', + name: '', + }; + + it('should return the top-level parent group if the input group has a parent in the hierarchy', async () => { + // Instance with token + const mockGitlabClient = new Gitlab({ + host: mockConfig.gitlab[0].host, + token: mockConfig.gitlab[0].token!, + }); const showSpy = jest.spyOn(mockGitlabClient.Groups, 'show'); @@ -165,4 +171,122 @@ describe('getTopLevelParentGroup', () => { const result = await action; expect(result).toEqual(mockTopParentGroup); }); + + it('should return the input group if it has no parents in the hierarchy', async () => { + // Instance with token + const mockGitlabClient = new Gitlab({ + host: mockConfig.gitlab[0].host, + token: mockConfig.gitlab[0].token!, + }); + + const showSpy = jest.spyOn(mockGitlabClient.Groups, 'show'); + + // Mock implementation of Groups.show + showSpy.mockImplementation( + async (groupId: string | number): Promise => { + const id = + typeof groupId === 'number' ? groupId : parseInt(groupId, 10); + const mockGroup = mockGroups.find(group => group.id === id) || null; + return mockGroup as GroupSchema; + }, + ); + + const action = util.getTopLevelParentGroup(mockGitlabClient, 789); + + const result = await action; + expect(result).toEqual(mockTopParentGroup); + }); +}); + +describe('checkEpicScope', () => { + afterEach(() => jest.resetAllMocks()); + + it('should return true if the project and epic are found', async () => { + const mockGitlabClient = new Gitlab({ + host: mockConfig.gitlab[0].host, + token: mockConfig.gitlab[0].token!, + }); + + const projectId = 123; + const epicId = 456; + + // Mock project and top-level parent group + const mockProject = { namespace: { id: 789 } }; + const mockTopParentGroup = { id: 789, name: 'MockGroup' }; + + mockGitlabClient.Projects.show.mockResolvedValue(mockProject); + mockGitlabClient.Groups.show.mockResolvedValue(mockTopParentGroup); + mockGitlabClient.Epics.all.mockResolvedValue([ + { id: epicId, group_id: 789 }, + ]); + + const result = await checkEpicScope(mockGitlabClient, projectId, epicId); + + expect(result).toBe(true); + expect(mockGitlabClient.Projects.show).toHaveBeenCalledWith(projectId); + expect(mockGitlabClient.Groups.show).toHaveBeenCalledWith( + mockProject.namespace.id, + ); + expect(mockGitlabClient.Epics.all).toHaveBeenCalledWith( + mockTopParentGroup.id, + ); + }); + + it('should throw InputError if the project is not found', async () => { + const mockClient = new Gitlab(); + const projectId = 123; + const epicId = 456; + + // Mocking the absence of the project + mockClient.Projects.show.mockResolvedValue(null); + + await expect(checkEpicScope(mockClient, projectId, epicId)).rejects.toThrow( + new InputError( + `Project with id ${projectId} not found. Check your GitLab instance.`, + ), + ); + + expect(mockClient.Projects.show).toHaveBeenCalledWith(projectId); + expect(mockClient.Groups.show).not.toHaveBeenCalled(); + expect(mockClient.Epics.all).not.toHaveBeenCalled(); + }); + + // Add more test cases as needed for different scenarios +}); + +describe('convertDate', () => { + it('should convert a valid input date with miliseconds to an ISO string', () => { + const inputDate = '1970-01-01T12:00:00.000Z'; + const defaultDate = '1978-10-09T12:00:00Z'; + + const result = util.convertDate(inputDate, defaultDate); + + expect(result).toEqual('1970-01-01T12:00:00.000Z'); + }); + + it('should convert a valid input date to an ISO string', () => { + const inputDate = '1970-01-01T12:00:00Z'; + const defaultDate = '1978-10-09T12:00:00Z'; + + const result = util.convertDate(inputDate, defaultDate); + + expect(result).toEqual('1970-01-01T12:00:00.000Z'); + }); + + it('should use default date if input date is undefined', () => { + const inputDate = undefined; + const defaultDate = '1970-01-01T12:00:00Z'; + + const result = util.convertDate(inputDate, defaultDate); + + expect(result).toEqual('1970-01-01T12:00:00.000Z'); + }); + + it('should throw an InputError if input date is invalid', () => { + const inputDate = 'invalidDate'; + const defaultDate = '2023-02-01T12:00:00Z'; + + // Expecting an InputError to be thrown + expect(() => util.convertDate(inputDate, defaultDate)).toThrow(InputError); + }); }); From 40dcabc994eac8287cbd511a0f47aa0a2a2e1789 Mon Sep 17 00:00:00 2001 From: Elaine De-Mattos-Silva-Bezerra Date: Mon, 18 Dec 2023 22:58:58 +0100 Subject: [PATCH 011/155] feat: add epic scope tests Signed-off-by: Elaine Mattos --- .../actions/createGitlabIssueAction.test.ts | 59 +++++- .../src/actions/createGitlabIssueAction.ts | 12 +- .../src/util.test.ts | 190 +++++++++++++----- .../src/util.ts | 4 - 4 files changed, 204 insertions(+), 61 deletions(-) diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts index ce57fac9e5..acb19af65f 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts @@ -37,7 +37,7 @@ jest.mock('@gitbeaker/rest', () => ({ describe('gitlab:issues:create', () => { beforeEach(() => { jest.clearAllMocks(); - advanceTo(new Date(1990, 9, 24, 12, 0, 0)); // Set the desired date and time + advanceTo(new Date(1988, 5, 3, 12, 0, 0)); // Set the desired date and time }); afterEach(() => { @@ -157,4 +157,61 @@ describe('gitlab:issues:create', () => { 'https://gitlab.com/hangar18-/issues/42', ); }); + + it('should return a Gitlab issue when called with several input params', async () => { + const mockContext = { + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + projectId: 123, + issueType: 'incident', + title: 'Computer banks to rule the world', + description: + 'this issue should kickstart research on instruments to sight the stars', + dueDate: '1990-08-20T23:59:59Z', + token: 'myAwesomeToken', + assignees: [3, 14, 15], + labels: 'operation:mindcrime', + }, + workspacePath: 'seen2much', + logger: getVoidLogger(), + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; + + mockGitlabClient.Issues.create.mockResolvedValue({ + id: 42, + web_url: 'https://gitlab.com/hangar18-/issues/42', + }); + + await action.handler({ + ...mockContext, + }); + + expect(mockGitlabClient.Issues.create).toHaveBeenCalledWith( + 123, + 'Computer banks to rule the world', + { + issueType: 'incident', + description: + 'this issue should kickstart research on instruments to sight the stars', + assigneeIds: [3, 14, 15], + confidential: false, + epicId: undefined, + labels: 'operation:mindcrime', + createdAt: new Date().toISOString(), + dueDate: '1990-08-20T23:59:59.000Z', + discussionToResolve: '', + mergeRequestToResolveDiscussionsOf: undefined, + milestoneId: undefined, + weight: undefined, + }, + ); + + expect(mockContext.output).toHaveBeenCalledWith('issueId', 42); + expect(mockContext.output).toHaveBeenCalledWith( + 'issueUrl', + 'https://gitlab.com/hangar18-/issues/42', + ); + }); }); diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts index 408d307612..62dc94d14a 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts @@ -177,7 +177,6 @@ export const createGitlabIssueAction = (options: { ); } } - console.log('After epic test'); const mappedCreatedAt = convertDate( String(createdAt), new Date().toISOString(), @@ -200,11 +199,6 @@ export const createGitlabIssueAction = (options: { milestoneId, weight, }; - console.log('After setting issues options'); - console.log({ issueOptions }); - console.log(`Other options: ${projectId}, ${title}`); - - console.log({ token }); const response = (await api.Issues.create( projectId, @@ -212,14 +206,14 @@ export const createGitlabIssueAction = (options: { issueOptions, )) as IssueSchema; - console.log('After calling the issues endpoint'); - ctx.output('issueId', response.id); ctx.output('issueUrl', response.web_url); } catch (error: any) { if (error instanceof z.ZodError) { // Handling Zod validation errors - throw new InputError(`Validation error: ${error.message}`); + throw new InputError(`Validation error: ${error.message}`, { + validationErrors: error.errors, + }); } // Handling other errors throw new InputError(`Failed to create GitLab issue: ${error.message}`); diff --git a/plugins/scaffolder-backend-module-gitlab/src/util.test.ts b/plugins/scaffolder-backend-module-gitlab/src/util.test.ts index 4de4eca786..61c61e87c3 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/util.test.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/util.test.ts @@ -19,24 +19,26 @@ import { Gitlab, GroupSchema } from '@gitbeaker/rest'; import { InputError } from '@backstage/errors'; // Mock the Gitlab client and its methods -const setupGitlabMock = () => { - jest.mock('@gitbeaker/rest', () => { - return { - Gitlab: jest.fn().mockImplementation(() => ({ - Groups: { - show: jest.fn(), - }, - Projects: { - show: jest.fn(), - }, - Epics: { - all: jest.fn(), - }, - })), - }; - }); +const mockGitlabClient = { + Groups: { + show: jest.fn(), + }, + Projects: { + show: jest.fn(), + }, + Epics: { + all: jest.fn(), + }, }; +jest.mock('@gitbeaker/rest', () => ({ + Gitlab: class { + constructor() { + return mockGitlabClient; + } + }, +})); + const mockConfig = { gitlab: [ { @@ -51,10 +53,6 @@ const mockConfig = { ], }; describe('getTopLevelParentGroup', () => { - beforeEach(() => { - setupGitlabMock(); - }); - afterEach(() => jest.resetAllMocks()); // Mocked nested groups @@ -149,7 +147,7 @@ describe('getTopLevelParentGroup', () => { it('should return the top-level parent group if the input group has a parent in the hierarchy', async () => { // Instance with token - const mockGitlabClient = new Gitlab({ + const apiClient = new Gitlab({ host: mockConfig.gitlab[0].host, token: mockConfig.gitlab[0].token!, }); @@ -166,7 +164,7 @@ describe('getTopLevelParentGroup', () => { }, ); - const action = util.getTopLevelParentGroup(mockGitlabClient, 123); + const action = util.getTopLevelParentGroup(apiClient, 123); const result = await action; expect(result).toEqual(mockTopParentGroup); @@ -174,7 +172,7 @@ describe('getTopLevelParentGroup', () => { it('should return the input group if it has no parents in the hierarchy', async () => { // Instance with token - const mockGitlabClient = new Gitlab({ + const apiClient = new Gitlab({ host: mockConfig.gitlab[0].host, token: mockConfig.gitlab[0].token!, }); @@ -191,7 +189,7 @@ describe('getTopLevelParentGroup', () => { }, ); - const action = util.getTopLevelParentGroup(mockGitlabClient, 789); + const action = util.getTopLevelParentGroup(apiClient, 789); const result = await action; expect(result).toEqual(mockTopParentGroup); @@ -201,8 +199,8 @@ describe('getTopLevelParentGroup', () => { describe('checkEpicScope', () => { afterEach(() => jest.resetAllMocks()); - it('should return true if the project and epic are found', async () => { - const mockGitlabClient = new Gitlab({ + it('should return true if the project is inside the epic scope', async () => { + const apiClient = new Gitlab({ host: mockConfig.gitlab[0].host, token: mockConfig.gitlab[0].token!, }); @@ -210,17 +208,25 @@ describe('checkEpicScope', () => { const projectId = 123; const epicId = 456; - // Mock project and top-level parent group - const mockProject = { namespace: { id: 789 } }; - const mockTopParentGroup = { id: 789, name: 'MockGroup' }; + // Mock project, top-level parent group, and epic + const mockProject = { + id: 123, + name: 'You learn', + namespace: { id: 789 }, + path_with_namespace: 'at-once/you-learn', + }; + const mockTopParentGroup = { + id: 789, + name: 'LivingTwice', + full_path: 'at-once/you-learn', + }; + const mockEpic = { id: epicId, group_id: 789 }; mockGitlabClient.Projects.show.mockResolvedValue(mockProject); mockGitlabClient.Groups.show.mockResolvedValue(mockTopParentGroup); - mockGitlabClient.Epics.all.mockResolvedValue([ - { id: epicId, group_id: 789 }, - ]); + mockGitlabClient.Epics.all.mockResolvedValue([mockEpic]); - const result = await checkEpicScope(mockGitlabClient, projectId, epicId); + const result = await util.checkEpicScope(apiClient, projectId, epicId); expect(result).toBe(true); expect(mockGitlabClient.Projects.show).toHaveBeenCalledWith(projectId); @@ -232,26 +238,116 @@ describe('checkEpicScope', () => { ); }); - it('should throw InputError if the project is not found', async () => { - const mockClient = new Gitlab(); + it('should return false if the project is not inside the epic scope', async () => { + const apiClient = new Gitlab({ + host: mockConfig.gitlab[0].host, + token: mockConfig.gitlab[0].token!, + }); + + const projectId = 123; + const epicId = 45; + + // Mock project, top-level parent group, and epic + const mockProject = { + id: 123, + name: 'You learn', + namespace: { id: 32 }, + path_with_namespace: 'at-once/you-learn', + }; + const mockTopParentGroup = { + id: 32, + name: 'TheWalls', + full_path: 'you-built/within', + }; + + const mockEpic = { id: epicId, group_id: 32 }; + + mockGitlabClient.Projects.show.mockResolvedValue(mockProject); + mockGitlabClient.Groups.show.mockResolvedValue(mockTopParentGroup); + mockGitlabClient.Epics.all.mockResolvedValue([mockEpic]); + + const result = await util.checkEpicScope(apiClient, projectId, epicId); + + expect(result).toBe(false); + expect(mockGitlabClient.Projects.show).toHaveBeenCalledWith(projectId); + expect(mockGitlabClient.Groups.show).toHaveBeenCalledWith( + mockProject.namespace.id, + ); + expect(mockGitlabClient.Epics.all).toHaveBeenCalledWith( + mockTopParentGroup.id, + ); + }); + + it('should throw an InputError if the project is not found', async () => { + const apiClient = new Gitlab({ + host: mockConfig.gitlab[0].host, + token: mockConfig.gitlab[0].token!, + }); + const projectId = 123; const epicId = 456; - // Mocking the absence of the project - mockClient.Projects.show.mockResolvedValue(null); + mockGitlabClient.Projects.show.mockResolvedValue(null); - await expect(checkEpicScope(mockClient, projectId, epicId)).rejects.toThrow( - new InputError( - `Project with id ${projectId} not found. Check your GitLab instance.`, - ), - ); - - expect(mockClient.Projects.show).toHaveBeenCalledWith(projectId); - expect(mockClient.Groups.show).not.toHaveBeenCalled(); - expect(mockClient.Epics.all).not.toHaveBeenCalled(); + await expect( + util.checkEpicScope(apiClient, projectId, epicId), + ).rejects.toThrow(InputError); + expect(mockGitlabClient.Projects.show).toHaveBeenCalledWith(projectId); }); - // Add more test cases as needed for different scenarios + it('should throw an InputError if the top-level parent group is not found', async () => { + const apiClient = new Gitlab({ + host: mockConfig.gitlab[0].host, + token: mockConfig.gitlab[0].token!, + }); + + const projectId = 123; + const epicId = 456; + + mockGitlabClient.Projects.show.mockResolvedValue({ + id: 123, + name: 'You learn', + namespace: { id: 789 }, + path_with_namespace: 'at-once/you-learn', + }); + mockGitlabClient.Groups.show.mockResolvedValue(null); + + await expect( + util.checkEpicScope(apiClient, projectId, epicId), + ).rejects.toThrow(InputError); + expect(mockGitlabClient.Projects.show).toHaveBeenCalledWith(projectId); + expect(mockGitlabClient.Groups.show).toHaveBeenCalledWith(789); + }); + + it('should throw an InputError if the epic is not found', async () => { + const apiClient = new Gitlab({ + host: mockConfig.gitlab[0].host, + token: mockConfig.gitlab[0].token!, + }); + + const projectId = 123; + const epicId = 456; + + mockGitlabClient.Projects.show.mockResolvedValue({ + id: 123, + name: 'You learn', + namespace: { id: 789 }, + path_with_namespace: 'at-once/you-learn', + }); + mockGitlabClient.Groups.show.mockResolvedValue({ + id: 789, + name: 'LivingTwice', + full_path: 'at-once/you-learn', + }); + mockGitlabClient.Epics.all.mockResolvedValue([]); + + await expect( + util.checkEpicScope(apiClient, projectId, epicId), + ).rejects.toThrow(InputError); + expect(mockGitlabClient.Projects.show).toHaveBeenCalledWith(projectId); + expect(mockGitlabClient.Groups.show).toHaveBeenCalledWith(789); + expect(mockGitlabClient.Epics.all).toHaveBeenCalledWith(789); + }); }); describe('convertDate', () => { diff --git a/plugins/scaffolder-backend-module-gitlab/src/util.ts b/plugins/scaffolder-backend-module-gitlab/src/util.ts index 098aa05667..a4d819d490 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/util.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/util.ts @@ -120,7 +120,6 @@ export function getClient(props: { }; gitlabOptions[tokenType] = requestToken; - console.log({ gitlabOptions }); return new Gitlab(gitlabOptions); } @@ -177,12 +176,10 @@ export async function checkEpicScope( if (!topParentGroup) { throw new InputError(`Couldn't find a suitable top-level parent group.`); } - // Get the epic const epic = (await client.Epics.all(topParentGroup.id)).find( (x: any) => x.id === epicId, ); - if (!epic) { throw new InputError( `Epic with id ${epicId} not found in the top-level parent group ${topParentGroup.name}.`, @@ -191,7 +188,6 @@ export async function checkEpicScope( const epicGroup = await client.Groups.show(epic.group_id as number); const projectNamespace: string = project.path_with_namespace as string; - return projectNamespace.startsWith(epicGroup.full_path as string); } catch (error: any) { throw new InputError(`Could not find epic scope: ${error.message}`); From 99b109849dabae8b506653aad8be0f1def1a6ec3 Mon Sep 17 00:00:00 2001 From: Elaine De-Mattos-Silva-Bezerra Date: Mon, 18 Dec 2023 23:13:07 +0100 Subject: [PATCH 012/155] feat: remove unused code Signed-off-by: Elaine Mattos --- packages/backend/src/plugins/scaffolder.ts | 12 --- .../README.md | 2 - .../sample-templates/template.yaml | 82 ------------------- .../createGitlabGroupEnsureExistsAction.ts | 2 - 4 files changed, 98 deletions(-) delete mode 100644 plugins/scaffolder-backend-module-gitlab/sample-templates/template.yaml diff --git a/packages/backend/src/plugins/scaffolder.ts b/packages/backend/src/plugins/scaffolder.ts index fdddc26fd2..505a514344 100644 --- a/packages/backend/src/plugins/scaffolder.ts +++ b/packages/backend/src/plugins/scaffolder.ts @@ -23,13 +23,6 @@ import { Router } from 'express'; import type { PluginEnvironment } from '../types'; import { ScmIntegrations } from '@backstage/integration'; import { createConfluenceToMarkdownAction } from '@backstage/plugin-scaffolder-backend-module-confluence-to-markdown'; -import { - createGitlabProjectAccessTokenAction, - createGitlabProjectDeployTokenAction, - createGitlabProjectVariableAction, - createGitlabGroupEnsureExistsAction, - createGitlabIssueAction, -} from '@backstage/plugin-scaffolder-backend-module-gitlab'; export default async function createPlugin( env: PluginEnvironment, @@ -54,11 +47,6 @@ export default async function createPlugin( config: env.config, reader: env.reader, }), - createGitlabProjectAccessTokenAction({ integrations: integrations }), - createGitlabProjectDeployTokenAction({ integrations: integrations }), - createGitlabProjectVariableAction({ integrations: integrations }), - createGitlabGroupEnsureExistsAction({ integrations: integrations }), - createGitlabIssueAction({ integrations: integrations }), ]; return await createRouter({ diff --git a/plugins/scaffolder-backend-module-gitlab/README.md b/plugins/scaffolder-backend-module-gitlab/README.md index 9ca74079b2..c946c8b476 100644 --- a/plugins/scaffolder-backend-module-gitlab/README.md +++ b/plugins/scaffolder-backend-module-gitlab/README.md @@ -55,8 +55,6 @@ return await createRouter({ database: env.database, reader: env.reader, }); - -// TODO: incorporate Issues creation in example ``` After that you can use the action in your template: diff --git a/plugins/scaffolder-backend-module-gitlab/sample-templates/template.yaml b/plugins/scaffolder-backend-module-gitlab/sample-templates/template.yaml deleted file mode 100644 index 8ae328a8d2..0000000000 --- a/plugins/scaffolder-backend-module-gitlab/sample-templates/template.yaml +++ /dev/null @@ -1,82 +0,0 @@ -apiVersion: scaffolder.backstage.io/v1beta3 -kind: Template -metadata: - name: gitlab-demo - title: Gitlab DEMO - description: Scaffolder Gitlab Demo -spec: - owner: backstage/techdocs-core - type: service - - parameters: - - title: Fill in some steps - required: - - name - properties: - name: - title: Name - type: string - description: Unique name of the component - ui:autofocus: true - ui:options: - rows: 5 - projectId: - title: Project id - type: number - weight: - title: Issue weight - type: number - title: - title: Issue title - type: string - description: - title: Issue description - type: string - issueType: - title: Type - type: string - ui:help: 'issue, incident, test_case' - createdAt: - title: Creation date - type: string - format: date-time - dueDate: - title: Due date - type: string - format: date-time - - - title: Choose a location - required: - - repoUrl - properties: - repoUrl: - title: Repository Location - type: string - ui:field: RepoUrlPicker - ui:options: - allowedHosts: - - gitlab.com - - steps: - - id: gitlabIssue - name: Issues - action: gitlab:issues:create - input: - repoUrl: ${{ parameters.repoUrl }} # git.tech.rz.db.de?owner=devex-core&repo=test-repo - token: ${{ secrets.USER_OAUTH_TOKEN }} - projectId: ${{ parameters.projectId }} # 52723821 - title: ${{ parameters.title }} - weight: ${{ parameters.weight }} - assignees: - - 11013327 - description: ${{ parameters.description }} - confidential: true - createdAt: ${{ parameters.createdAt }} # "2023-03-11T03:45:40Z" - dueDate: ${{ parameters.dueDate }} # "2024-03-11T03:45:40Z" - labels: test-label1,test-label2 - issueType: ${{ parameters.issueType }} - output: - links: - - title: Link to new issue - url: ${{ steps['gitlabIssue'].output.issueUrl }} - diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabGroupEnsureExistsAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabGroupEnsureExistsAction.ts index cdc25b85d8..510871e028 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabGroupEnsureExistsAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabGroupEnsureExistsAction.ts @@ -60,8 +60,6 @@ export const createGitlabGroupEnsureExistsAction = (options: { const { path } = ctx.input; const { token, integrationConfig } = getToken(ctx.input, integrations); - console.log(`THIS IS THE TOKEN ${token}`); - console.log(`THIS IS THE PATH ${path}`); const api = new Gitlab({ host: integrationConfig.config.baseUrl, token: token, From 0404e98e5ef510f963eb9d65bd19f1a1b1e7a60f Mon Sep 17 00:00:00 2001 From: Elaine De-Mattos-Silva-Bezerra Date: Mon, 18 Dec 2023 23:15:25 +0100 Subject: [PATCH 013/155] feat: restore space Signed-off-by: Elaine Mattos --- .../src/actions/createGitlabGroupEnsureExistsAction.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabGroupEnsureExistsAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabGroupEnsureExistsAction.ts index 510871e028..74d3805254 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabGroupEnsureExistsAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabGroupEnsureExistsAction.ts @@ -60,6 +60,7 @@ export const createGitlabGroupEnsureExistsAction = (options: { const { path } = ctx.input; const { token, integrationConfig } = getToken(ctx.input, integrations); + const api = new Gitlab({ host: integrationConfig.config.baseUrl, token: token, From 36d598bf98ff2389fac3b100d3880c8646b942ad Mon Sep 17 00:00:00 2001 From: Adam Vollrath Date: Tue, 19 Dec 2023 01:18:55 -0600 Subject: [PATCH 014/155] Sanitize input between PR deployment workflows. Signed-off-by: Adam Vollrath --- .github/workflows/uffizzi-preview.yaml | 28 +++++++++----------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/.github/workflows/uffizzi-preview.yaml b/.github/workflows/uffizzi-preview.yaml index a9cce41fce..79f735c352 100644 --- a/.github/workflows/uffizzi-preview.yaml +++ b/.github/workflows/uffizzi-preview.yaml @@ -48,47 +48,37 @@ jobs: let fs = require('fs'); fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/preview-spec.zip`, Buffer.from(download.data)); - - name: 'Unzip artifact' - run: unzip preview-spec.zip + - name: 'Accept event from first stage' + run: unzip preview-spec.zip event.json - name: Read Event into ENV run: | - echo 'EVENT_JSON<> $GITHUB_ENV - cat event.json >> $GITHUB_ENV - echo -e '\nEOF' >> $GITHUB_ENV + echo PR_NUMBER=$(jq '.number | tonumber' < event.json) >> $GITHUB_ENV + echo ACTION=$(jq --raw-output '.action | tostring | [scan("\\w+")][0]' < event.json) >> $GITHUB_ENV + echo GIT_REF=$(jq --raw-output '.pull_request.head.sha | tostring | [scan("\\w+")][0]' < event.json) >> $GITHUB_ENV - name: Hash Rendered Manifests File id: hash # If the previous workflow was triggered by a PR close event, we will not have a manifests file artifact. - if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }} + if: ${{ env.ACTION != 'closed' }} run: | + unzip preview-spec.zip manifests.rendered.yml ls echo "MANIFESTS_FILE_HASH=$(md5sum manifests.rendered.yml | awk '{ print $1 }')" >> $GITHUB_ENV - name: Cache Manifests File - if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }} + if: ${{ env.ACTION != 'closed' }} uses: actions/cache@v3.3.2 with: path: manifests.rendered.yml key: ${{ env.MANIFESTS_FILE_HASH }} - - name: Read PR Number From Event Object - id: pr - run: echo "PR_NUMBER=${{ fromJSON(env.EVENT_JSON).number }}" >> $GITHUB_ENV - - - name: Read Event Type from Event Object - id: action - run: echo "ACTION=${{ fromJSON(env.EVENT_JSON).action }}" >> $GITHUB_ENV - - - name: Read Git Ref From Event Object - id: ref - run: echo "GIT_REF=${{ fromJSON(env.EVENT_JSON).pull_request.head.sha }}" >> $GITHUB_ENV - - name: DEBUG - Print Job Outputs if: ${{ runner.debug }} run: | echo "PR number: ${{ env.PR_NUMBER }}" echo "Git Ref: ${{ env.GIT_REF }}" + echo "Action: ${{ env.ACTION }}" echo "Manifests file hash: ${{ env.MANIFESTS_FILE_HASH }}" cat event.json From 604c9ddeefd455f4bf4b170d06c5bfdec984819d Mon Sep 17 00:00:00 2001 From: Elaine Mattos Date: Tue, 19 Dec 2023 08:00:11 +0100 Subject: [PATCH 015/155] fix: add barrel file and fix typos Signed-off-by: Elaine Mattos --- .changeset/flat-terms-provide.md | 5 +++++ .../createGitlabIssueAction.examples.ts | 3 ++- .../src/actions/index.ts | 20 +++++++++++++++++++ .../src/index.ts | 6 +----- 4 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 .changeset/flat-terms-provide.md create mode 100644 plugins/scaffolder-backend-module-gitlab/src/actions/index.ts diff --git a/.changeset/flat-terms-provide.md b/.changeset/flat-terms-provide.md new file mode 100644 index 0000000000..32578c74e3 --- /dev/null +++ b/.changeset/flat-terms-provide.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-gitlab': minor +--- + +Add Scaffolder custom action that creates GitLab issues: gitlab:issues:create diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts index 1be944a7c8..0044d02df7 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts @@ -48,7 +48,8 @@ export const examples: TemplateExample[] = [ ...commonGitlabConfigExample, projectId: 12, title: 'Test Issue', - assignees: -18, + assignees: ` + - 18 `, description: 'This is the description of the issue', createdAt: '2022-09-27 18:00:00.000', dueDate: '2022-09-28 12:00:00.000', diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/index.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/index.ts new file mode 100644 index 0000000000..f634c7a03b --- /dev/null +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/index.ts @@ -0,0 +1,20 @@ +/* + * 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 * from './createGitlabGroupEnsureExistsAction'; +export * from './createGitlabProjectDeployTokenAction'; +export * from './createGitlabProjectAccessTokenAction'; +export * from './createGitlabProjectVariableAction'; +export * from './createGitlabIssueAction'; diff --git a/plugins/scaffolder-backend-module-gitlab/src/index.ts b/plugins/scaffolder-backend-module-gitlab/src/index.ts index eadb1ba78d..844f753344 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/index.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/index.ts @@ -19,8 +19,4 @@ * * @packageDocumentation */ -export * from './actions/createGitlabGroupEnsureExistsAction'; -export * from './actions/createGitlabProjectDeployTokenAction'; -export * from './actions/createGitlabProjectAccessTokenAction'; -export * from './actions/createGitlabProjectVariableAction'; -export * from './actions/createGitlabIssueAction'; +export * from './actions'; From afa03a89b0aeab08b2da363ed0f790ca743b4679 Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Tue, 19 Dec 2023 18:18:19 +0530 Subject: [PATCH 016/155] microsite a11y Signed-off-by: npiyush97 --- microsite/docusaurus.config.js | 5 ++++- microsite/src/pages/home/_home.tsx | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/microsite/docusaurus.config.js b/microsite/docusaurus.config.js index 99f58d29cb..e444605f48 100644 --- a/microsite/docusaurus.config.js +++ b/microsite/docusaurus.config.js @@ -204,7 +204,10 @@ module.exports = { { items: [ { - html: '', + html: ` + + + `, }, ], }, diff --git a/microsite/src/pages/home/_home.tsx b/microsite/src/pages/home/_home.tsx index ddcfed7d03..517cf89239 100644 --- a/microsite/src/pages/home/_home.tsx +++ b/microsite/src/pages/home/_home.tsx @@ -95,10 +95,12 @@ const HomePage = () => { Illustration of a laptop Animated Backstage Logo From 35cd016e0e188452992917c8be42f8820ef5f28d Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Tue, 19 Dec 2023 18:59:13 +0530 Subject: [PATCH 017/155] prettier fix Signed-off-by: npiyush97 --- microsite/src/pages/home/_home.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/src/pages/home/_home.tsx b/microsite/src/pages/home/_home.tsx index 517cf89239..5cf0f85072 100644 --- a/microsite/src/pages/home/_home.tsx +++ b/microsite/src/pages/home/_home.tsx @@ -100,7 +100,7 @@ const HomePage = () => { Animated Backstage Logo From 3aa043af06881c4b7e8a38069ccf2d2c2cba62bb Mon Sep 17 00:00:00 2001 From: Elaine Mattos Date: Tue, 19 Dec 2023 14:32:20 +0100 Subject: [PATCH 018/155] chore: run prettier Signed-off-by: Elaine Mattos --- plugins/scaffolder-backend-module-gitlab/src/actions/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/index.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/index.ts index 0b1db4648a..237ef7c271 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/index.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/index.ts @@ -20,4 +20,3 @@ export * from './createGitlabProjectVariableAction'; export * from './createGitlabIssueAction'; export * from './gitlab'; export * from './gitlabMergeRequest'; - From ae92a9d0fc48b2b2c8a55bae2cd348b723d378b9 Mon Sep 17 00:00:00 2001 From: Elaine Mattos Date: Tue, 19 Dec 2023 14:59:10 +0100 Subject: [PATCH 019/155] chore: add api-report.md Signed-off-by: Elaine Mattos --- .../api-report.md | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend-module-gitlab/api-report.md b/plugins/scaffolder-backend-module-gitlab/api-report.md index debc31412a..908ea43f7f 100644 --- a/plugins/scaffolder-backend-module-gitlab/api-report.md +++ b/plugins/scaffolder-backend-module-gitlab/api-report.md @@ -22,6 +22,36 @@ export const createGitlabGroupEnsureExistsAction: (options: { } >; +// Warning: (ae-missing-release-tag) "createGitlabIssueAction" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const createGitlabIssueAction: (options: { + integrations: ScmIntegrationRegistry; +}) => TemplateAction< + { + title: string; + repoUrl: string; + projectId: number; + token?: string | undefined; + assignees?: number[] | undefined; + confidential?: boolean | undefined; + description?: string | undefined; + createdAt?: string | undefined; + dueDate?: string | undefined; + discussionToResolve?: string | undefined; + epicId?: number | undefined; + labels?: string | undefined; + issueType?: string | undefined; + mergeRequestToResolveDiscussionsOf?: number | undefined; + milestoneId?: number | undefined; + weight?: number | undefined; + }, + { + issueUrl: string; + issueId: number; + } +>; + // @public export const createGitlabProjectAccessTokenAction: (options: { integrations: ScmIntegrationRegistry; @@ -139,7 +169,7 @@ export const createPublishGitlabMergeRequestAction: (options: { sourcePath?: string | undefined; targetPath?: string | undefined; token?: string | undefined; - commitAction?: 'update' | 'delete' | 'create' | undefined; + commitAction?: 'update' | 'create' | 'delete' | undefined; projectid?: string | undefined; removeSourceBranch?: boolean | undefined; assignee?: string | undefined; From e61ed0901c9fcd7e2473e314e35e73196025300a Mon Sep 17 00:00:00 2001 From: Elaine Mattos Date: Tue, 19 Dec 2023 19:03:14 +0100 Subject: [PATCH 020/155] fix: add public decorator Signed-off-by: Elaine Mattos --- .../scaffolder-backend-module-gitlab/api-report.md | 6 ++---- .../src/actions/createGitlabIssueAction.ts | 13 ++++++------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/plugins/scaffolder-backend-module-gitlab/api-report.md b/plugins/scaffolder-backend-module-gitlab/api-report.md index 908ea43f7f..7f94daf6c9 100644 --- a/plugins/scaffolder-backend-module-gitlab/api-report.md +++ b/plugins/scaffolder-backend-module-gitlab/api-report.md @@ -22,9 +22,7 @@ export const createGitlabGroupEnsureExistsAction: (options: { } >; -// Warning: (ae-missing-release-tag) "createGitlabIssueAction" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) +// @public export const createGitlabIssueAction: (options: { integrations: ScmIntegrationRegistry; }) => TemplateAction< @@ -169,7 +167,7 @@ export const createPublishGitlabMergeRequestAction: (options: { sourcePath?: string | undefined; targetPath?: string | undefined; token?: string | undefined; - commitAction?: 'update' | 'create' | 'delete' | undefined; + commitAction?: 'update' | 'delete' | 'create' | undefined; projectid?: string | undefined; removeSourceBranch?: boolean | undefined; assignee?: string | undefined; diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts index 62dc94d14a..e92344fb90 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts @@ -23,13 +23,6 @@ import { z } from 'zod'; import { checkEpicScope, convertDate, getClient, parseRepoUrl } from '../util'; import { Gitlab, CreateIssueOptions, IssueSchema } from '@gitbeaker/rest'; -/** - * Creates a `gitlab:issues:create` Scaffolder action. - * - * @param {} - Templating configuration. - * @public - */ - const enumIssueType = { ISSUE: 'issue', INCIDENT: 'incident', @@ -124,6 +117,12 @@ const issueOutputProperties = z.object({ issueId: z.number({ description: 'Issue Id' }), }); +/** + * Creates a `gitlab:issues:create` Scaffolder action. + * + * @param options - Templating configuration. + * @public + */ export const createGitlabIssueAction = (options: { integrations: ScmIntegrationRegistry; }) => { From 08faa6ed060da7ca940b9f0534bc2fc6d853b672 Mon Sep 17 00:00:00 2001 From: Adam Vollrath Date: Tue, 19 Dec 2023 12:27:49 -0600 Subject: [PATCH 021/155] Update to store user input in a safer place. Signed-off-by: Adam Vollrath --- .github/workflows/uffizzi-preview.yaml | 32 +++++++++++++------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/uffizzi-preview.yaml b/.github/workflows/uffizzi-preview.yaml index 79f735c352..cd1f6f939c 100644 --- a/.github/workflows/uffizzi-preview.yaml +++ b/.github/workflows/uffizzi-preview.yaml @@ -13,10 +13,10 @@ jobs: runs-on: ubuntu-latest if: ${{ github.event.workflow_run.conclusion == 'success' }} outputs: - manifests-cache-key: ${{ env.MANIFESTS_FILE_HASH }} - git-ref: ${{ env.GIT_REF }} - pr-number: ${{ env.PR_NUMBER }} - action: ${{ env.ACTION }} + manifests-cache-key: ${{ steps.hash.outputs.MANIFESTS_FILE_HASH }} + git-ref: ${{ steps.event.outputs.GIT_REF }} + pr-number: ${{ steps.event.outputs.PR_NUMBER }} + action: ${{ steps.event.outputs.ACTION }} steps: - name: Harden Runner uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1 @@ -52,34 +52,35 @@ jobs: run: unzip preview-spec.zip event.json - name: Read Event into ENV + id: event run: | - echo PR_NUMBER=$(jq '.number | tonumber' < event.json) >> $GITHUB_ENV - echo ACTION=$(jq --raw-output '.action | tostring | [scan("\\w+")][0]' < event.json) >> $GITHUB_ENV - echo GIT_REF=$(jq --raw-output '.pull_request.head.sha | tostring | [scan("\\w+")][0]' < event.json) >> $GITHUB_ENV + echo PR_NUMBER=$(jq '.number | tonumber' < event.json) >> $GITHUB_OUTPUT + echo ACTION=$(jq --raw-output '.action | tostring | [scan("\\w+")][0]' < event.json) >> $GITHUB_OUTPUT + echo GIT_REF=$(jq --raw-output '.pull_request.head.sha | tostring | [scan("\\w+")][0]' < event.json) >> $GITHUB_OUTPUT - name: Hash Rendered Manifests File id: hash # If the previous workflow was triggered by a PR close event, we will not have a manifests file artifact. - if: ${{ env.ACTION != 'closed' }} + if: ${{ steps.event.outputs.ACTION != 'closed' }} run: | unzip preview-spec.zip manifests.rendered.yml ls - echo "MANIFESTS_FILE_HASH=$(md5sum manifests.rendered.yml | awk '{ print $1 }')" >> $GITHUB_ENV + echo "MANIFESTS_FILE_HASH=$(md5sum manifests.rendered.yml | awk '{ print $1 }')" >> $GITHUB_OUTPUT - name: Cache Manifests File - if: ${{ env.ACTION != 'closed' }} + if: ${{ steps.event.outputs.ACTION != 'closed' }} uses: actions/cache@v3.3.2 with: path: manifests.rendered.yml - key: ${{ env.MANIFESTS_FILE_HASH }} + key: ${{ steps.hash.outputs.MANIFESTS_FILE_HASH }} - name: DEBUG - Print Job Outputs if: ${{ runner.debug }} run: | - echo "PR number: ${{ env.PR_NUMBER }}" - echo "Git Ref: ${{ env.GIT_REF }}" - echo "Action: ${{ env.ACTION }}" - echo "Manifests file hash: ${{ env.MANIFESTS_FILE_HASH }}" + echo "PR number: ${{ steps.event.outputs.PR_NUMBER }}" + echo "Git Ref: ${{ steps.event.outputs.GIT_REF }}" + echo "Action: ${{ steps.event.outputs.ACTION }}" + echo "Manifests file hash: ${{ steps.hash.outputs.MANIFESTS_FILE_HASH }}" cat event.json deploy-uffizzi-preview: @@ -132,7 +133,6 @@ jobs: - name: Fetch cached Manifests File id: cache - # if: ${{ contains(fromJSON('["create", "update"]'), env.UFFIZZI_ACTION) }} uses: actions/cache@v3 with: path: manifests.rendered.yml From f2c526d41aba3dca4bdcd52e99fceedcefe03390 Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Wed, 20 Dec 2023 13:22:30 +0530 Subject: [PATCH 022/155] a11y fix Signed-off-by: npiyush97 --- microsite/src/theme/customTheme.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/microsite/src/theme/customTheme.scss b/microsite/src/theme/customTheme.scss index f216762418..0f60eec224 100644 --- a/microsite/src/theme/customTheme.scss +++ b/microsite/src/theme/customTheme.scss @@ -6,6 +6,7 @@ --ifm-color-primary-dark: #31a792; --ifm-color-primary-darker: #2e9e8a; --ifm-color-primary-darkest: #268271; + --ifm-link-decoration: underline; } .footerLogo { From 2cc1f63c7bd5360051ffc4e1aa5847d5b83c9cad Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Wed, 20 Dec 2023 19:33:56 +0530 Subject: [PATCH 023/155] added prettier:fix command Signed-off-by: npiyush97 --- microsite/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/microsite/package.json b/microsite/package.json index eb4d6bccb2..53309fb358 100644 --- a/microsite/package.json +++ b/microsite/package.json @@ -6,6 +6,7 @@ "scripts": { "start": "node scripts/pre-build.js && docusaurus start", "build": "node scripts/pre-build.js && docusaurus build", + "prettier:fix": "prettier --write .", "prettier:check": "prettier --check .", "publish-gh-pages": "docusaurus-publish", "write-translations": "docusaurus-write-translations", From 620b944314d97c46ef37ff8d5ae2864641252c8b Mon Sep 17 00:00:00 2001 From: stanleyn Date: Fri, 15 Dec 2023 13:36:41 +0000 Subject: [PATCH 024/155] Update custom permission rule naming and files Signed-off-by: stanleyn --- docs/permissions/custom-rules.md | 61 +++++++++++++++----------------- 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/docs/permissions/custom-rules.md b/docs/permissions/custom-rules.md index 76b0f16cfd..d0d1ef93d5 100644 --- a/docs/permissions/custom-rules.md +++ b/docs/permissions/custom-rules.md @@ -8,9 +8,10 @@ For some use cases, you may want to define custom [rules](./concepts.md#resource ## Define a custom rule -Plugins should export a rule factory that provides type-safety that ensures compatibility with the plugin's backend. The catalog plugin exports `createCatalogPermissionRule` from `@backstage/plugin-catalog-backend/alpha` for this purpose. Note: the `/alpha` path segment is temporary until this API is marked as stable. For this example, we'll define the rule in `packages/backend/src/customPermissionRules/isInSystem.ts`, but you can put it anywhere that's accessible by your `backend` package. +Plugins should export a rule factory that provides type-safety that ensures compatibility with the plugin's backend. The catalog plugin exports `createCatalogPermissionRule` from `@backstage/plugin-catalog-backend/alpha` for this purpose. Note: the `/alpha` path segment is temporary until this API is marked as stable. For this example, we'll define the rule and create a condition in `permissions.ts`. -```typescript title="packages/backend/src/customPermissionRules/isInSystem.ts" +```typescript title="packages/backend/src/plugins/permission.ts" +... import type { Entity } from '@backstage/catalog-model'; import { createCatalogPermissionRule } from '@backstage/plugin-catalog-backend/alpha'; import { createConditionFactory } from '@backstage/plugin-permission-node'; @@ -40,43 +41,15 @@ export const isInSystemRule = createCatalogPermissionRule({ }), }); -export const isInSystemRuleFactory = createConditionFactory(isInSystemRule); +const isInSystem = createConditionFactory(isInSystemRule); ``` For a more detailed explanation on defining rules, refer to the [documentation for plugin authors](./plugin-authors/03-adding-a-resource-permission-check.md#adding-support-for-conditional-decisions). -## Provide the rule during plugin setup - -Now that we have a custom rule defined, we need provide it to the catalog plugin. This step is important because the catalog plugin will use the rule's `toQuery` and `apply` methods while evaluating conditional authorize results. There's no guarantee that the catalog and permission backends are running on the same server, so we must explicitly link the rule to ensure that it's available at runtime. - -The api for providing custom rules may differ between plugins, but there should typically be some integration point during the creation of the backend router. For the catalog, this integration point is exposed via `CatalogBuilder.addPermissionRules`. - -```typescript title="packages/backend/src/plugins/catalog.ts" -import { CatalogBuilder } from '@backstage/plugin-catalog-backend'; -import { isInSystemRule } from '../customPermissionRules/isInSystem'; - -... - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - const builder = await CatalogBuilder.create(env); - builder.addPermissionRules(isInSystemRule); - ... - return router; -} -``` - -The new rule is now ready for use in a permission policy! - -## Use the rule in a policy - -Let's bring this all together by extending the example policy from the previous section. +Still in the `permissions.ts` file, let's use the condition we just created in our `TestPermissionPolicy`. ```ts title="packages/backend/src/plugins/permission.ts" ... -/* highlight-add-next-line */ -import { isInSystemRuleFactory } from '../customPermissionRules/isInSystem'; class TestPermissionPolicy implements PermissionPolicy { async handle( @@ -97,7 +70,7 @@ class TestPermissionPolicy implements PermissionPolicy { catalogConditions.isEntityOwner({ claims: user?.identity.ownershipEntityRefs ?? [] }), - isInSystemRuleFactory({ systemRef: 'interviewing' }), + isInSystem({ systemRef: 'interviewing' }), ] } /* highlight-add-end */ @@ -107,8 +80,30 @@ class TestPermissionPolicy implements PermissionPolicy { return { result: AuthorizeResult.ALLOW }; } } +``` + +## Provide the rule during plugin setup + +Now that we have a custom rule defined and added to our policy, we need provide it to the catalog plugin. This step is important because the catalog plugin will use the rule's `toQuery` and `apply` methods while evaluating conditional authorize results. There's no guarantee that the catalog and permission backends are running on the same server, so we must explicitly link the rule to ensure that it's available at runtime. + +The api for providing custom rules may differ between plugins, but there should typically be some integration point during the creation of the backend router. For the catalog, this integration point is exposed via `CatalogBuilder.addPermissionRules`. + +```typescript title="packages/backend/src/plugins/catalog.ts" +import { CatalogBuilder } from '@backstage/plugin-catalog-backend'; +/* highlight-add-next-line */ +import { isInSystemRule } from '../customPermissionRules/isInSystem'; ... + +export default async function createPlugin( + env: PluginEnvironment, +): Promise { + const builder = await CatalogBuilder.create(env); + /* highlight-add-next-line */ + builder.addPermissionRules(isInSystemRule); + ... + return router; +} ``` The updated policy will allow catalog entity resource permissions if any of the following are true: From 0f97e22a2390d068b281578d2c3b785a28b255ad Mon Sep 17 00:00:00 2001 From: stanleyn Date: Thu, 21 Dec 2023 17:03:53 +0000 Subject: [PATCH 025/155] Update file examples, routing Signed-off-by: stanleyn --- docs/permissions/custom-rules.md | 50 +++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/docs/permissions/custom-rules.md b/docs/permissions/custom-rules.md index d0d1ef93d5..2ffad693bd 100644 --- a/docs/permissions/custom-rules.md +++ b/docs/permissions/custom-rules.md @@ -8,10 +8,11 @@ For some use cases, you may want to define custom [rules](./concepts.md#resource ## Define a custom rule -Plugins should export a rule factory that provides type-safety that ensures compatibility with the plugin's backend. The catalog plugin exports `createCatalogPermissionRule` from `@backstage/plugin-catalog-backend/alpha` for this purpose. Note: the `/alpha` path segment is temporary until this API is marked as stable. For this example, we'll define the rule and create a condition in `permissions.ts`. +Plugins should export a rule factory that provides type-safety that ensures compatibility with the plugin's backend. The catalog plugin exports `createCatalogPermissionRule` from `@backstage/plugin-catalog-backend/alpha` for this purpose. Note: the `/alpha` path segment is temporary until this API is marked as stable. For this example, we'll define the rule and create a condition in `packages/backend/src/plugins/permission.ts`. ```typescript title="packages/backend/src/plugins/permission.ts" ... + import type { Entity } from '@backstage/catalog-model'; import { createCatalogPermissionRule } from '@backstage/plugin-catalog-backend/alpha'; import { createConditionFactory } from '@backstage/plugin-permission-node'; @@ -42,15 +43,48 @@ export const isInSystemRule = createCatalogPermissionRule({ }); const isInSystem = createConditionFactory(isInSystemRule); + +... ``` For a more detailed explanation on defining rules, refer to the [documentation for plugin authors](./plugin-authors/03-adding-a-resource-permission-check.md#adding-support-for-conditional-decisions). -Still in the `permissions.ts` file, let's use the condition we just created in our `TestPermissionPolicy`. +Still in the `packages/backend/src/plugins/permission.ts` file, let's use the condition we just created in our `TestPermissionPolicy`. ```ts title="packages/backend/src/plugins/permission.ts" ... +import type { Entity } from '@backstage/catalog-model'; +import { createCatalogPermissionRule } from '@backstage/plugin-catalog-backend/alpha'; +import { createConditionFactory } from '@backstage/plugin-permission-node'; +import { z } from 'zod'; + +export const isInSystemRule = createCatalogPermissionRule({ + name: 'IS_IN_SYSTEM', + description: 'Checks if an entity is part of the system provided', + resourceType: 'catalog-entity', + paramsSchema: z.object({ + systemRef: z + .string() + .describe('SystemRef to check the resource is part of'), + }), + apply: (resource: Entity, { systemRef }) => { + if (!resource.relations) { + return false; + } + + return resource.relations + .filter(relation => relation.type === 'partOf') + .some(relation => relation.targetRef === systemRef); + }, + toQuery: ({ systemRef }) => ({ + key: 'relations.partOf', + values: [systemRef], + }), +}); + +const isInSystem = createConditionFactory(isInSystemRule); + class TestPermissionPolicy implements PermissionPolicy { async handle( request: PolicyQuery, @@ -68,11 +102,11 @@ class TestPermissionPolicy implements PermissionPolicy { { anyOf: [ catalogConditions.isEntityOwner({ - claims: user?.identity.ownershipEntityRefs ?? [] + claims: user?.identity.ownershipEntityRefs ?? [], }), isInSystem({ systemRef: 'interviewing' }), - ] - } + ], + }, /* highlight-add-end */ ); } @@ -80,6 +114,8 @@ class TestPermissionPolicy implements PermissionPolicy { return { result: AuthorizeResult.ALLOW }; } } + +... ``` ## Provide the rule during plugin setup @@ -91,7 +127,7 @@ The api for providing custom rules may differ between plugins, but there should ```typescript title="packages/backend/src/plugins/catalog.ts" import { CatalogBuilder } from '@backstage/plugin-catalog-backend'; /* highlight-add-next-line */ -import { isInSystemRule } from '../customPermissionRules/isInSystem'; +import { isInSystemRule } from './permissions'; ... @@ -109,4 +145,4 @@ export default async function createPlugin( The updated policy will allow catalog entity resource permissions if any of the following are true: - User owns the target entity -- Target entity is part of the `'interviewing'` system +- Target entity is part of the `interviewing` system From 7c522c5ef8cac9b5543e570cd94e28913736e03d Mon Sep 17 00:00:00 2001 From: Arthur Gavlyukovskiy Date: Thu, 21 Dec 2023 20:57:23 +0100 Subject: [PATCH 026/155] feat: Add 'gitlab:repo:push' scaffolder action Signed-off-by: Arthur Gavlyukovskiy --- .changeset/rich-poets-stare.md | 6 + .../api-report.md | 16 + .../src/actions/gitlabMergeRequest.ts | 31 +- .../src/actions/gitlabRepoPush.test.ts | 436 ++++++++++++++++++ .../src/actions/gitlabRepoPush.ts | 189 ++++++++ .../src/actions/helpers.ts | 50 ++ .../src/actions/index.ts | 1 + .../actions/builtin/createBuiltinActions.ts | 4 + 8 files changed, 709 insertions(+), 24 deletions(-) create mode 100644 .changeset/rich-poets-stare.md create mode 100644 plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.test.ts create mode 100644 plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.ts create mode 100644 plugins/scaffolder-backend-module-gitlab/src/actions/helpers.ts diff --git a/.changeset/rich-poets-stare.md b/.changeset/rich-poets-stare.md new file mode 100644 index 0000000000..5a2a923337 --- /dev/null +++ b/.changeset/rich-poets-stare.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-scaffolder-backend-module-gitlab': minor +'@backstage/plugin-scaffolder-backend': minor +--- + +Add 'gitlab:repo:push' scaffolder action to push files to arbitrary branch without creating a Merge Request diff --git a/plugins/scaffolder-backend-module-gitlab/api-report.md b/plugins/scaffolder-backend-module-gitlab/api-report.md index debc31412a..4893504880 100644 --- a/plugins/scaffolder-backend-module-gitlab/api-report.md +++ b/plugins/scaffolder-backend-module-gitlab/api-report.md @@ -76,6 +76,22 @@ export const createGitlabProjectVariableAction: (options: { JsonObject >; +// @public +export const createGitlabRepoPushAction: (options: { + integrations: ScmIntegrationRegistry; +}) => TemplateAction< + { + repoUrl: string; + branchName: string; + commitMessage: string; + sourcePath?: string | undefined; + targetPath?: string | undefined; + token?: string | undefined; + commitAction?: 'update' | 'delete' | 'create' | undefined; + }, + JsonObject +>; + // @public export function createPublishGitlabAction(options: { integrations: ScmIntegrationRegistry; diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabMergeRequest.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabMergeRequest.ts index f6c4734729..86f69ee357 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabMergeRequest.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabMergeRequest.ts @@ -19,12 +19,12 @@ import { parseRepoUrl, serializeDirectoryContents, } from '@backstage/plugin-scaffolder-node'; -import { Gitlab } from '@gitbeaker/node'; import { Types } from '@gitbeaker/core'; import path from 'path'; import { ScmIntegrationRegistry } from '@backstage/integration'; import { InputError } from '@backstage/errors'; import { resolveSafeChildPath } from '@backstage/backend-common'; +import { createGitlabApi } from './helpers'; /** * Create a new action that creates a gitlab merge request. @@ -158,33 +158,16 @@ export const createPublishGitlabMergeRequestAction = (options: { targetPath, sourcePath, title, - token: providedToken, + token, } = ctx.input; - const { host, owner, repo, project } = parseRepoUrl( - repoUrl, - integrations, - ); + const { owner, repo, project } = parseRepoUrl(repoUrl, integrations); const repoID = project ? project : `${owner}/${repo}`; - const integrationConfig = integrations.gitlab.byHost(host); - - if (!integrationConfig) { - throw new InputError( - `No matching integration configuration for host ${host}, please check your integrations config`, - ); - } - - if (!integrationConfig.config.token && !providedToken) { - throw new InputError(`No token available for host ${host}`); - } - - const token = providedToken ?? integrationConfig.config.token!; - const tokenType = providedToken ? 'oauthToken' : 'token'; - - const api = new Gitlab({ - host: integrationConfig.config.baseUrl, - [tokenType]: token, + const api = createGitlabApi({ + integrations, + token, + repoUrl, }); let assigneeId = undefined; diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.test.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.test.ts new file mode 100644 index 0000000000..840f506540 --- /dev/null +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.test.ts @@ -0,0 +1,436 @@ +/* + * 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. + */ +import { createRootLogger, getRootLogger } from '@backstage/backend-common'; +import { ConfigReader } from '@backstage/config'; +import { ScmIntegrations } from '@backstage/integration'; +import { TemplateAction } from '@backstage/plugin-scaffolder-node'; +import { Writable } from 'stream'; +import { createMockDirectory } from '@backstage/backend-test-utils'; +import { createGitlabRepoPushAction } from './gitlabRepoPush'; + +// Make sure root logger is initialized ahead of FS mock +createRootLogger(); + +const mockGitlabClient = { + Projects: { + create: jest.fn(), + show: jest.fn(async (_: any) => { + return { + default_branch: 'main', + }; + }), + }, + Branches: { + create: jest.fn(), + show: jest.fn(), + }, + Commits: { + create: jest.fn(async (_: any) => ({ + id: 'bb6bce457ed069a38ef8d16ef38602972c7735c5', + })), + }, +}; + +jest.mock('@gitbeaker/node', () => ({ + Gitlab: class { + constructor() { + return mockGitlabClient; + } + }, +})); + +describe('createGitLabCommit', () => { + let instance: TemplateAction; + + const mockDir = createMockDirectory(); + const workspacePath = mockDir.resolve('workspace'); + + beforeEach(() => { + mockDir.clear(); + + const config = new ConfigReader({ + integrations: { + gitlab: [ + { + host: 'gitlab.com', + token: 'token', + apiBaseUrl: 'https://api.gitlab.com', + }, + { + host: 'hosted.gitlab.com', + apiBaseUrl: 'https://api.hosted.gitlab.com', + }, + ], + }, + }); + + const integrations = ScmIntegrations.fromConfig(config); + instance = createGitlabRepoPushAction({ integrations }); + }); + + describe('createGitLabCommitWithoutCommitAction', () => { + it('default commitAction is create', async () => { + const input = { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + commitMessage: 'Create my new commit', + branchName: 'some-branch', + }; + mockDir.setContent({ + [workspacePath]: { + 'foo.txt': 'Hello there!', + }, + }); + const ctx = { + createTemporaryDirectory: jest.fn(), + output: jest.fn(), + logger: getRootLogger(), + logStream: new Writable(), + input, + workspacePath, + }; + await instance.handler(ctx); + + expect(mockGitlabClient.Branches.create).toHaveBeenCalledTimes(0); + expect(mockGitlabClient.Commits.create).toHaveBeenCalledWith( + 'owner/repo', + 'some-branch', + 'Create my new commit', + [ + { + action: 'create', + filePath: 'foo.txt', + content: 'SGVsbG8gdGhlcmUh', + encoding: 'base64', + execute_filemode: false, + }, + ], + ); + expect(ctx.output).toHaveBeenCalledWith( + 'commitHash', + 'bb6bce457ed069a38ef8d16ef38602972c7735c5', + ); + }); + }); + + describe('createGitLabCommitWithCommitAction', () => { + it('commitAction is create when create is passed in options', async () => { + const input = { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + commitMessage: 'Create my new commit', + branchName: 'some-branch', + commitAction: 'create', + }; + mockDir.setContent({ + [workspacePath]: { + 'foo.txt': 'Hello there!', + }, + }); + + const ctx = { + createTemporaryDirectory: jest.fn(), + output: jest.fn(), + logger: getRootLogger(), + logStream: new Writable(), + input, + workspacePath, + }; + await instance.handler(ctx); + + expect(mockGitlabClient.Branches.create).toHaveBeenCalledTimes(0); + expect(mockGitlabClient.Commits.create).toHaveBeenCalledWith( + 'owner/repo', + 'some-branch', + 'Create my new commit', + [ + { + action: 'create', + filePath: 'foo.txt', + content: 'SGVsbG8gdGhlcmUh', + encoding: 'base64', + execute_filemode: false, + }, + ], + ); + expect(ctx.output).toHaveBeenCalledWith( + 'commitHash', + 'bb6bce457ed069a38ef8d16ef38602972c7735c5', + ); + }); + + it('commitAction is update when update is passed in options', async () => { + const input = { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + commitMessage: 'Create my new commit', + branchName: 'some-branch', + commitAction: 'update', + }; + mockDir.setContent({ + [workspacePath]: { + 'foo.txt': 'Hello there!', + }, + }); + + const ctx = { + createTemporaryDirectory: jest.fn(), + output: jest.fn(), + logger: getRootLogger(), + logStream: new Writable(), + input, + workspacePath, + }; + await instance.handler(ctx); + + expect(mockGitlabClient.Branches.create).toHaveBeenCalledTimes(0); + expect(mockGitlabClient.Commits.create).toHaveBeenCalledWith( + 'owner/repo', + 'some-branch', + 'Create my new commit', + [ + { + action: 'update', + filePath: 'foo.txt', + content: 'SGVsbG8gdGhlcmUh', + encoding: 'base64', + execute_filemode: false, + }, + ], + ); + expect(ctx.output).toHaveBeenCalledWith( + 'commitHash', + 'bb6bce457ed069a38ef8d16ef38602972c7735c5', + ); + }); + + it('commitAction is delete when delete is passed in options', async () => { + const input = { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + commitMessage: 'Create my new commit', + branchName: 'some-branch', + commitAction: 'delete', + }; + mockDir.setContent({ + [workspacePath]: { + 'foo.txt': 'Hello there!', + }, + }); + + const ctx = { + createTemporaryDirectory: jest.fn(), + output: jest.fn(), + logger: getRootLogger(), + logStream: new Writable(), + input, + workspacePath, + }; + await instance.handler(ctx); + + expect(mockGitlabClient.Branches.create).toHaveBeenCalledTimes(0); + expect(mockGitlabClient.Commits.create).toHaveBeenCalledWith( + 'owner/repo', + 'some-branch', + 'Create my new commit', + [ + { + action: 'delete', + filePath: 'foo.txt', + content: 'SGVsbG8gdGhlcmUh', + encoding: 'base64', + execute_filemode: false, + }, + ], + ); + expect(ctx.output).toHaveBeenCalledWith( + 'commitHash', + 'bb6bce457ed069a38ef8d16ef38602972c7735c5', + ); + }); + }); + + describe('with sourcePath', () => { + it('creates a commit with only relevant files', async () => { + const input = { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + commitMessage: 'Create my new commit', + branchName: 'some-branch', + sourcePath: 'source', + commitAction: 'create', + }; + + mockDir.setContent({ + [workspacePath]: { + source: { 'foo.txt': 'Hello there!' }, + irrelevant: { 'bar.txt': 'Nothing to see here' }, + }, + }); + + const ctx = { + createTemporaryDirectory: jest.fn(), + output: jest.fn(), + logger: getRootLogger(), + logStream: new Writable(), + input, + workspacePath, + }; + + await instance.handler(ctx); + + expect(mockGitlabClient.Branches.create).toHaveBeenCalledTimes(0); + expect(mockGitlabClient.Commits.create).toHaveBeenCalledWith( + 'owner/repo', + 'some-branch', + 'Create my new commit', + [ + { + action: 'create', + filePath: 'foo.txt', + content: 'SGVsbG8gdGhlcmUh', + encoding: 'base64', + execute_filemode: false, + }, + ], + ); + expect(ctx.output).toHaveBeenCalledWith( + 'commitHash', + 'bb6bce457ed069a38ef8d16ef38602972c7735c5', + ); + }); + + it('creates a commit with only relevant files placed under different targetPath', async () => { + const input = { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + commitMessage: 'Create my new commit', + branchName: 'some-branch', + sourcePath: 'source', + targetPath: 'target', + commitAction: 'create', + }; + + mockDir.setContent({ + [workspacePath]: { + source: { 'foo.txt': 'Hello there!' }, + irrelevant: { 'bar.txt': 'Nothing to see here' }, + }, + }); + + const ctx = { + createTemporaryDirectory: jest.fn(), + output: jest.fn(), + logger: getRootLogger(), + logStream: new Writable(), + input, + workspacePath, + }; + + await instance.handler(ctx); + + expect(mockGitlabClient.Branches.create).toHaveBeenCalledTimes(0); + expect(mockGitlabClient.Commits.create).toHaveBeenCalledWith( + 'owner/repo', + 'some-branch', + 'Create my new commit', + [ + { + action: 'create', + filePath: 'target/foo.txt', + content: 'SGVsbG8gdGhlcmUh', + encoding: 'base64', + execute_filemode: false, + }, + ], + ); + expect(ctx.output).toHaveBeenCalledWith( + 'commitHash', + 'bb6bce457ed069a38ef8d16ef38602972c7735c5', + ); + }); + + it('should not allow to use files outside of the workspace', async () => { + const input = { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + commitMessage: 'Create my new commit', + branchName: 'some-branch', + sourcePath: '../../test', + commitAction: 'create', + }; + + const ctx = { + createTemporaryDirectory: jest.fn(), + output: jest.fn(), + logger: getRootLogger(), + logStream: new Writable(), + input, + workspacePath, + }; + + await expect(instance.handler(ctx)).rejects.toThrow( + 'Relative path is not allowed to refer to a directory outside its parent', + ); + }); + }); + + describe('createCommitToBranchThatDoesNotExist', () => { + it('should create a new branch', async () => { + mockGitlabClient.Branches.show.mockRejectedValue({ + response: { + statusCode: 404, + }, + }); + const input = { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + commitMessage: 'Create my new commit', + branchName: 'some-branch', + }; + mockDir.setContent({ + [workspacePath]: { + 'foo.txt': 'Hello there!', + }, + }); + const ctx = { + createTemporaryDirectory: jest.fn(), + output: jest.fn(), + logger: getRootLogger(), + logStream: new Writable(), + input, + workspacePath, + }; + await instance.handler(ctx); + + expect(mockGitlabClient.Branches.create).toHaveBeenCalledWith( + 'owner/repo', + 'some-branch', + 'main', + ); + expect(mockGitlabClient.Commits.create).toHaveBeenCalledWith( + 'owner/repo', + 'some-branch', + 'Create my new commit', + [ + { + action: 'create', + filePath: 'foo.txt', + content: 'SGVsbG8gdGhlcmUh', + encoding: 'base64', + execute_filemode: false, + }, + ], + ); + expect(ctx.output).toHaveBeenCalledWith( + 'commitHash', + 'bb6bce457ed069a38ef8d16ef38602972c7735c5', + ); + }); + }); +}); diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.ts new file mode 100644 index 0000000000..59f51b263c --- /dev/null +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.ts @@ -0,0 +1,189 @@ +/* + * 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. + */ + +import { + createTemplateAction, + parseRepoUrl, + serializeDirectoryContents, +} from '@backstage/plugin-scaffolder-node'; +import { Types } from '@gitbeaker/core'; +import path from 'path'; +import { ScmIntegrationRegistry } from '@backstage/integration'; +import { InputError } from '@backstage/errors'; +import { resolveSafeChildPath } from '@backstage/backend-common'; +import { createGitlabApi } from './helpers'; + +/** + * Create a new action that commits into a gitlab repository. + * + * @public + */ +export const createGitlabRepoPushAction = (options: { + integrations: ScmIntegrationRegistry; +}) => { + const { integrations } = options; + + return createTemplateAction<{ + repoUrl: string; + branchName: string; + commitMessage: string; + sourcePath?: string; + targetPath?: string; + token?: string; + commitAction?: 'create' | 'delete' | 'update'; + }>({ + id: 'gitlab:repo:push', + schema: { + input: { + required: ['repoUrl', 'branchName', 'commitMessage'], + type: 'object', + properties: { + repoUrl: { + type: 'string', + title: 'Repository Location', + description: `Accepts the format 'gitlab.com?repo=project_name&owner=group_name' where 'project_name' is the repository name and 'group_name' is a group or username`, + }, + branchName: { + type: 'string', + title: 'Source Branch Name', + description: 'The branch name for the commit', + }, + commitMessage: { + type: 'string', + title: 'Commit Message', + description: `The commit message`, + }, + sourcePath: { + type: 'string', + title: 'Working Subdirectory', + description: + 'Subdirectory of working directory to copy changes from', + }, + targetPath: { + type: 'string', + title: 'Repository Subdirectory', + description: 'Subdirectory of repository to apply changes to', + }, + token: { + title: 'Authentication Token', + type: 'string', + description: 'The token to use for authorization to GitLab', + }, + commitAction: { + title: 'Commit action', + type: 'string', + enum: ['create', 'update', 'delete'], + description: + 'The action to be used for git commit. Defaults to create.', + }, + }, + }, + output: { + type: 'object', + properties: { + projectid: { + title: 'Gitlab Project id/Name(slug)', + type: 'string', + }, + projectPath: { + title: 'Gitlab Project path', + type: 'string', + }, + commitHash: { + title: 'The git commit hash of the commit', + type: 'string', + }, + }, + }, + }, + async handler(ctx) { + const { + branchName, + repoUrl, + targetPath, + sourcePath, + token, + commitAction, + } = ctx.input; + + const { owner, repo, project } = parseRepoUrl(repoUrl, integrations); + const repoID = project ? project : `${owner}/${repo}`; + + const api = createGitlabApi({ + integrations, + token, + repoUrl, + }); + + let fileRoot: string; + if (sourcePath) { + fileRoot = resolveSafeChildPath(ctx.workspacePath, sourcePath); + } else { + fileRoot = ctx.workspacePath; + } + + const fileContents = await serializeDirectoryContents(fileRoot, { + gitignore: true, + }); + + const actions: Types.CommitAction[] = fileContents.map(file => ({ + action: commitAction ?? 'create', + filePath: targetPath + ? path.posix.join(targetPath, file.path) + : file.path, + encoding: 'base64', + content: file.content.toString('base64'), + execute_filemode: file.executable, + })); + + try { + await api.Branches.show(repoID, branchName); + } catch (e) { + if (e.response?.statusCode !== 404) { + throw new InputError( + `Failed to check status of branch '${branchName}'. Please make sure that branch already exists or Backstage has permissions to create one. ${e}`, + ); + } + // create a branch using the default branch as ref + try { + const projects = await api.Projects.show(repoID); + const { default_branch: defaultBranch } = projects; + await api.Branches.create(repoID, branchName, String(defaultBranch)); + } catch (e2) { + throw new InputError( + `The branch '${branchName}' was not found and creation failed with error. Please make sure that branch already exists or Backstage has permissions to create one. ${e2}`, + ); + } + } + + try { + const commit = await api.Commits.create( + repoID, + branchName, + ctx.input.commitMessage, + actions, + ); + ctx.output('projectid', repoID); + ctx.output('projectPath', repoID); + ctx.output('commitHash', commit.id); + } catch (e) { + throw new InputError( + `Committing the changes to ${branchName} failed. Please check that none of the files created by the template already exists. ${e}`, + ); + } + }, + }); +}; diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/helpers.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/helpers.ts new file mode 100644 index 0000000000..1d12a6d394 --- /dev/null +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/helpers.ts @@ -0,0 +1,50 @@ +/* + * 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. + */ +import { parseRepoUrl } from '@backstage/plugin-scaffolder-node'; +import { InputError } from '@backstage/errors'; +import { Gitlab } from '@gitbeaker/node'; +import { ScmIntegrationRegistry } from '@backstage/integration'; +import { Resources } from '@gitbeaker/core'; + +export function createGitlabApi(options: { + integrations: ScmIntegrationRegistry; + token?: string; + repoUrl: string; +}): Resources.Gitlab { + const { integrations, token: providedToken, repoUrl } = options; + + const { host } = parseRepoUrl(repoUrl, integrations); + + const integrationConfig = integrations.gitlab.byHost(host); + + if (!integrationConfig) { + throw new InputError( + `No matching integration configuration for host ${host}, please check your integrations config`, + ); + } + + if (!integrationConfig.config.token && !providedToken) { + throw new InputError(`No token available for host ${host}`); + } + + const token = providedToken ?? integrationConfig.config.token!; + const tokenType = providedToken ? 'oauthToken' : 'token'; + + return new Gitlab({ + host: integrationConfig.config.baseUrl, + [tokenType]: token, + }); +} diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/index.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/index.ts index e915293860..5364d079b7 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/index.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/index.ts @@ -19,3 +19,4 @@ export * from './createGitlabProjectAccessTokenAction'; export * from './createGitlabProjectVariableAction'; export * from './gitlab'; export * from './gitlabMergeRequest'; +export * from './gitlabRepoPush'; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts index dfef2d3c92..ed24a97013 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts @@ -69,6 +69,7 @@ import { import { createPublishGitlabAction, + createGitlabRepoPushAction, createPublishGitlabMergeRequestAction, } from '@backstage/plugin-scaffolder-backend-module-gitlab'; @@ -165,6 +166,9 @@ export const createBuiltinActions = ( createPublishGitlabMergeRequestAction({ integrations, }), + createGitlabRepoPushAction({ + integrations, + }), createPublishBitbucketAction({ integrations, config, From 83ddafc5a9ddb04fe87cb146abd1c231e1234c6d Mon Sep 17 00:00:00 2001 From: stanleyn Date: Fri, 22 Dec 2023 15:08:56 +0000 Subject: [PATCH 027/155] Add missing imports, add zod install, fix import Signed-off-by: stanleyn --- docs/permissions/custom-rules.md | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/docs/permissions/custom-rules.md b/docs/permissions/custom-rules.md index 2ffad693bd..1fc81b3100 100644 --- a/docs/permissions/custom-rules.md +++ b/docs/permissions/custom-rules.md @@ -10,6 +10,12 @@ For some use cases, you may want to define custom [rules](./concepts.md#resource Plugins should export a rule factory that provides type-safety that ensures compatibility with the plugin's backend. The catalog plugin exports `createCatalogPermissionRule` from `@backstage/plugin-catalog-backend/alpha` for this purpose. Note: the `/alpha` path segment is temporary until this API is marked as stable. For this example, we'll define the rule and create a condition in `packages/backend/src/plugins/permission.ts`. +We use Zod in our example to create our params schema. To install, run: + +```bash +yarn workspace backend add zod +``` + ```typescript title="packages/backend/src/plugins/permission.ts" ... @@ -53,11 +59,19 @@ Still in the `packages/backend/src/plugins/permission.ts` file, let's use the co ```ts title="packages/backend/src/plugins/permission.ts" ... - -import type { Entity } from '@backstage/catalog-model'; +/* highlight-remove-next-line */ import { createCatalogPermissionRule } from '@backstage/plugin-catalog-backend/alpha'; +/* highlight-add-next-line */ +import { catalogConditions, createCatalogConditionalDecision, createCatalogPermissionRule } from '@backstage/plugin-catalog-backend/alpha'; +/* highlight-remove-next-line */ import { createConditionFactory } from '@backstage/plugin-permission-node'; -import { z } from 'zod'; +/* highlight-add-next-line */ +import { PermissionPolicy, PolicyQuery, createConditionFactory } from '@backstage/plugin-permission-node'; +/* highlight-add-start */ +import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; +import { AuthorizeResult, PolicyDecision, isResourcePermission } from '@backstage/plugin-permission-common'; +/* highlight-add-end */ + export const isInSystemRule = createCatalogPermissionRule({ name: 'IS_IN_SYSTEM', @@ -127,7 +141,7 @@ The api for providing custom rules may differ between plugins, but there should ```typescript title="packages/backend/src/plugins/catalog.ts" import { CatalogBuilder } from '@backstage/plugin-catalog-backend'; /* highlight-add-next-line */ -import { isInSystemRule } from './permissions'; +import { isInSystemRule } from './permission'; ... @@ -145,4 +159,4 @@ export default async function createPlugin( The updated policy will allow catalog entity resource permissions if any of the following are true: - User owns the target entity -- Target entity is part of the `interviewing` system +- Target entity is part of the 'interviewing' system From f8119bdf53072b43f77493b5ea14826a57ab9742 Mon Sep 17 00:00:00 2001 From: stanleyn Date: Fri, 22 Dec 2023 15:16:53 +0000 Subject: [PATCH 028/155] fix spelling Signed-off-by: stanleyn --- docs/permissions/custom-rules.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/permissions/custom-rules.md b/docs/permissions/custom-rules.md index 1fc81b3100..457d1fc7c4 100644 --- a/docs/permissions/custom-rules.md +++ b/docs/permissions/custom-rules.md @@ -10,7 +10,7 @@ For some use cases, you may want to define custom [rules](./concepts.md#resource Plugins should export a rule factory that provides type-safety that ensures compatibility with the plugin's backend. The catalog plugin exports `createCatalogPermissionRule` from `@backstage/plugin-catalog-backend/alpha` for this purpose. Note: the `/alpha` path segment is temporary until this API is marked as stable. For this example, we'll define the rule and create a condition in `packages/backend/src/plugins/permission.ts`. -We use Zod in our example to create our params schema. To install, run: +We use Zod in our example below. To install, run: ```bash yarn workspace backend add zod From 93c39784b95144e901c08d34d354c022c8297a57 Mon Sep 17 00:00:00 2001 From: stanleyn Date: Fri, 22 Dec 2023 15:18:30 +0000 Subject: [PATCH 029/155] add ellipsis Signed-off-by: stanleyn --- docs/permissions/custom-rules.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/permissions/custom-rules.md b/docs/permissions/custom-rules.md index 457d1fc7c4..c0f4e3e156 100644 --- a/docs/permissions/custom-rules.md +++ b/docs/permissions/custom-rules.md @@ -71,7 +71,7 @@ import { PermissionPolicy, PolicyQuery, createConditionFactory } from '@backstag import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; import { AuthorizeResult, PolicyDecision, isResourcePermission } from '@backstage/plugin-permission-common'; /* highlight-add-end */ - +... export const isInSystemRule = createCatalogPermissionRule({ name: 'IS_IN_SYSTEM', From 3b24eaecbcbc48e635725ff3dfb6722546241ec4 Mon Sep 17 00:00:00 2001 From: "manuel.falcon" Date: Sat, 23 Dec 2023 11:28:51 +0100 Subject: [PATCH 030/155] Adding support for removing file from git index Signed-off-by: manuel.falcon --- .changeset/brave-shirts-hang.md | 5 +++++ packages/backend-common/src/scm/git.test.ts | 16 ++++++++++++++++ packages/backend-common/src/scm/git.ts | 9 +++++++++ 3 files changed, 30 insertions(+) create mode 100644 .changeset/brave-shirts-hang.md diff --git a/.changeset/brave-shirts-hang.md b/.changeset/brave-shirts-hang.md new file mode 100644 index 0000000000..07aeb514da --- /dev/null +++ b/.changeset/brave-shirts-hang.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': minor +--- + +Adding support for removing file from git index diff --git a/packages/backend-common/src/scm/git.test.ts b/packages/backend-common/src/scm/git.test.ts index 7533c6e2f3..1c07dfb917 100644 --- a/packages/backend-common/src/scm/git.test.ts +++ b/packages/backend-common/src/scm/git.test.ts @@ -63,6 +63,22 @@ describe('Git', () => { }); }); + describe('remove', () => { + it('should call isomorphic-git remove with the correct arguments', async () => { + const git = Git.fromAuth({}); + const dir = 'mockdirectory'; + const filepath = 'mockfile/path'; + + await git.remove({ dir, filepath }); + + expect(isomorphic.remove).toHaveBeenCalledWith({ + fs, + dir, + filepath, + }); + }); + }); + describe('deleteRemote', () => { it('should call isomorphic-git with the correct arguments', async () => { const git = Git.fromAuth({}); diff --git a/packages/backend-common/src/scm/git.ts b/packages/backend-common/src/scm/git.ts index 364e1bacd5..e7bad693fe 100644 --- a/packages/backend-common/src/scm/git.ts +++ b/packages/backend-common/src/scm/git.ts @@ -300,6 +300,15 @@ export class Git { return git.readCommit({ fs, dir, oid: sha }); } + /** https://isomorphic-git.org/docs/en/remove */ + async remove(options: { dir: string; filepath: string }): Promise { + const { dir, filepath } = options; + this.config.logger?.info( + `Removing file from git index {dir=${dir},filepath=${filepath}}`, + ); + return git.remove({ fs, dir, filepath }); + } + /** https://isomorphic-git.org/docs/en/resolveRef */ async resolveRef(options: { dir: string; ref: string }): Promise { const { dir, ref } = options; From 1c9567d7350617e22fdeba07a565fd1de2ea38f4 Mon Sep 17 00:00:00 2001 From: "manuel.falcon" Date: Sat, 23 Dec 2023 11:28:51 +0100 Subject: [PATCH 031/155] Adding support for removing file from git index Signed-off-by: manuel.falcon --- packages/backend-common/api-report.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index e7d89c2aa5..2d0eb84619 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -417,6 +417,7 @@ export class Git { force?: boolean; }): Promise; readCommit(options: { dir: string; sha: string }): Promise; + remove(options: { dir: string; filepath: string }): Promise; resolveRef(options: { dir: string; ref: string }): Promise; } From 2a3360a77f7cbe2b8e9f76346665bfb5b411892f Mon Sep 17 00:00:00 2001 From: Elaine Mattos Date: Mon, 25 Dec 2023 18:32:27 +0100 Subject: [PATCH 032/155] feat: change simple enum to zod native enums Signed-off-by: Elaine Mattos --- .../createGitlabIssueAction.examples.ts | 7 ++--- .../src/actions/createGitlabIssueAction.ts | 30 ++++--------------- 2 files changed, 8 insertions(+), 29 deletions(-) diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts index 0044d02df7..760caf0f9f 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts @@ -48,8 +48,7 @@ export const examples: TemplateExample[] = [ ...commonGitlabConfigExample, projectId: 12, title: 'Test Issue', - assignees: ` - - 18 `, + assignees: [18], description: 'This is the description of the issue', createdAt: '2022-09-27 18:00:00.000', dueDate: '2022-09-28 12:00:00.000', @@ -70,9 +69,7 @@ export const examples: TemplateExample[] = [ ...commonGitlabConfigExample, projectId: 12, title: 'Test Issue', - assignees: ` - - 18 - - 15 `, + assignees: [18, 15], description: 'This is the description of the issue', confidential: false, createdAt: '2022-09-27 18:00:00.000', diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts index e92344fb90..f4c77ceb35 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts @@ -23,11 +23,11 @@ import { z } from 'zod'; import { checkEpicScope, convertDate, getClient, parseRepoUrl } from '../util'; import { Gitlab, CreateIssueOptions, IssueSchema } from '@gitbeaker/rest'; -const enumIssueType = { - ISSUE: 'issue', - INCIDENT: 'incident', - TEST: 'test_case', -}; +enum IssueType { + ISSUE = 'issue', + INCIDENT = 'incident', + TEST = 'test_case', +} const issueInputProperties = z.object({ projectId: z.number().describe('Project Id'), @@ -67,27 +67,9 @@ const issueInputProperties = z.object({ .optional(), labels: z.string({ description: 'Labels to apply' }).optional(), issueType: z - .string({ + .nativeEnum(IssueType, { description: 'Type of the issue', }) - .refine(issueType => { - const isValid = Object.values(enumIssueType).includes(issueType); - if (!isValid) { - throw new z.ZodError([ - { - code: 'invalid_enum_value', - options: Object.values(enumIssueType), - path: ['issueType'], - message: `Invalid value for 'issueType'. Must be one of: ${Object.values( - enumIssueType, - ).join(', ')}`, - received: issueType, - }, - ]); - } - return isValid; - }) - .default(enumIssueType.ISSUE) .optional(), mergeRequestToResolveDiscussionsOf: z .number({ From 728e1a0b48877bbb6c9beeb27cf1bbed829cd600 Mon Sep 17 00:00:00 2001 From: Elaine Mattos Date: Mon, 25 Dec 2023 18:52:47 +0100 Subject: [PATCH 033/155] fix: change test input type Signed-off-by: Elaine Mattos --- .../src/actions/createGitlabIssueAction.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts index acb19af65f..fe9e556656 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.test.ts @@ -16,7 +16,7 @@ import { PassThrough } from 'stream'; import { getVoidLogger } from '@backstage/backend-common'; -import { createGitlabIssueAction } from './createGitlabIssueAction'; +import { createGitlabIssueAction, IssueType } from './createGitlabIssueAction'; import { ConfigReader } from '@backstage/core-app-api'; import { ScmIntegrations } from '@backstage/integration'; import { advanceTo, clear } from 'jest-date-mock'; @@ -163,7 +163,7 @@ describe('gitlab:issues:create', () => { input: { repoUrl: 'gitlab.com?repo=repo&owner=owner', projectId: 123, - issueType: 'incident', + issueType: IssueType.INCIDENT, title: 'Computer banks to rule the world', description: 'this issue should kickstart research on instruments to sight the stars', From 578a5298656a546c4603841ddea007e94dd8a17b Mon Sep 17 00:00:00 2001 From: Elaine Mattos Date: Mon, 25 Dec 2023 19:06:01 +0100 Subject: [PATCH 034/155] fix: export enum type Signed-off-by: Elaine Mattos --- .../src/actions/createGitlabIssueAction.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts index f4c77ceb35..c7d163bdd9 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts @@ -23,7 +23,7 @@ import { z } from 'zod'; import { checkEpicScope, convertDate, getClient, parseRepoUrl } from '../util'; import { Gitlab, CreateIssueOptions, IssueSchema } from '@gitbeaker/rest'; -enum IssueType { +export enum IssueType { ISSUE = 'issue', INCIDENT = 'incident', TEST = 'test_case', From fd3d01c94640c3e180e9cc69c487ce8a0f800c27 Mon Sep 17 00:00:00 2001 From: Elaine Mattos Date: Tue, 26 Dec 2023 10:07:57 +0100 Subject: [PATCH 035/155] fix: add api-report Signed-off-by: Elaine Mattos --- .../scaffolder-backend-module-gitlab/api-report.md | 12 +++++++++++- .../src/actions/createGitlabIssueAction.ts | 5 +++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend-module-gitlab/api-report.md b/plugins/scaffolder-backend-module-gitlab/api-report.md index 7f94daf6c9..9ff9fb3dfc 100644 --- a/plugins/scaffolder-backend-module-gitlab/api-report.md +++ b/plugins/scaffolder-backend-module-gitlab/api-report.md @@ -39,7 +39,7 @@ export const createGitlabIssueAction: (options: { discussionToResolve?: string | undefined; epicId?: number | undefined; labels?: string | undefined; - issueType?: string | undefined; + issueType?: IssueType | undefined; mergeRequestToResolveDiscussionsOf?: number | undefined; milestoneId?: number | undefined; weight?: number | undefined; @@ -174,4 +174,14 @@ export const createPublishGitlabMergeRequestAction: (options: { }, JsonObject >; + +// @public +export enum IssueType { + // (undocumented) + INCIDENT = 'incident', + // (undocumented) + ISSUE = 'issue', + // (undocumented) + TEST = 'test_case', +} ``` diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts index c7d163bdd9..bc9c796253 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts @@ -23,6 +23,11 @@ import { z } from 'zod'; import { checkEpicScope, convertDate, getClient, parseRepoUrl } from '../util'; import { Gitlab, CreateIssueOptions, IssueSchema } from '@gitbeaker/rest'; +/** + * Gitlab issue types + * + * @public + */ export enum IssueType { ISSUE = 'issue', INCIDENT = 'incident', From eea0849d6b4f1761e0cf1c16e6ff5e896510b603 Mon Sep 17 00:00:00 2001 From: Craig Tracey Date: Tue, 26 Dec 2023 23:08:38 -0500 Subject: [PATCH 036/155] Add a user-settings core nav item As user-settings should show up in the core nav, add a user-settings nav item to the declarative integration plugin. Signed-off-by: Craig Tracey --- .changeset/chilled-zebras-wash.md | 5 +++++ plugins/user-settings/api-report-alpha.md | 6 ++++++ plugins/user-settings/src/alpha.tsx | 11 ++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 .changeset/chilled-zebras-wash.md diff --git a/.changeset/chilled-zebras-wash.md b/.changeset/chilled-zebras-wash.md new file mode 100644 index 0000000000..9597915ce5 --- /dev/null +++ b/.changeset/chilled-zebras-wash.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-user-settings': patch +--- + +add user-settings declarative integration core nav item diff --git a/plugins/user-settings/api-report-alpha.md b/plugins/user-settings/api-report-alpha.md index adb609a2cb..b06fd1e583 100644 --- a/plugins/user-settings/api-report-alpha.md +++ b/plugins/user-settings/api-report-alpha.md @@ -4,6 +4,7 @@ ```ts import { BackstagePlugin } from '@backstage/frontend-plugin-api'; +import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; import { RouteRef } from '@backstage/frontend-plugin-api'; import { TranslationRef } from '@backstage/core-plugin-api/alpha'; @@ -16,6 +17,11 @@ const _default: BackstagePlugin< >; export default _default; +// @alpha (undocumented) +export const settingsNavItem: ExtensionDefinition<{ + title: string; +}>; + // @alpha (undocumented) export const userSettingsTranslationRef: TranslationRef< 'user-settings', diff --git a/plugins/user-settings/src/alpha.tsx b/plugins/user-settings/src/alpha.tsx index 06590d839a..5dabd70739 100644 --- a/plugins/user-settings/src/alpha.tsx +++ b/plugins/user-settings/src/alpha.tsx @@ -16,6 +16,7 @@ import { coreExtensionData, createExtensionInput, + createNavItemExtension, createPageExtension, createPlugin, } from '@backstage/frontend-plugin-api'; @@ -23,6 +24,7 @@ import { convertLegacyRouteRef, compatWrapper, } from '@backstage/core-compat-api'; +import SettingsIcon from '@material-ui/icons/Settings'; import { settingsRouteRef } from './plugin'; import React from 'react'; @@ -50,12 +52,19 @@ const userSettingsPage = createPageExtension({ ), }); +/** @alpha */ +export const settingsNavItem = createNavItemExtension({ + routeRef: convertLegacyRouteRef(settingsRouteRef), + title: 'Settings', + icon: SettingsIcon, +}); + /** * @alpha */ export default createPlugin({ id: 'user-settings', - extensions: [userSettingsPage], + extensions: [userSettingsPage, settingsNavItem], routes: { root: convertLegacyRouteRef(settingsRouteRef), }, From b7d51f78edcc191fe6cf53cdc9d98148d12b9eec Mon Sep 17 00:00:00 2001 From: Andre Wanlin Date: Thu, 28 Dec 2023 13:00:09 -0600 Subject: [PATCH 037/155] Added section on migrating auth plugin and related modules Signed-off-by: Andre Wanlin --- .../building-backends/08-migrating.md | 252 ++++++++++++++++++ 1 file changed, 252 insertions(+) diff --git a/docs/backend-system/building-backends/08-migrating.md b/docs/backend-system/building-backends/08-migrating.md index e38b0f8c3a..ac54d6d3ef 100644 --- a/docs/backend-system/building-backends/08-migrating.md +++ b/docs/backend-system/building-backends/08-migrating.md @@ -754,3 +754,255 @@ going easily, but feel free to move it out to where it fits best. As you migrate your entire plugin flora to the new backend system, you will probably make more and more of these modules as "first class" things, living right next to the implementations that they represent, and being exported from there. + +### The Auth Plugin + +A basic installation of the auth plugin will look as follows. + +```ts title="packages/backend/src/index.ts" +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add(import('@backstage/plugin-auth-backend-module-microsoft-provider')); +/* highlight-add-end */ +``` + +An additional step you'll need to take is to add the resolvers to your configuration, here's an example: + +```yaml title:"app-config.yaml +auth: + environment: development + providers: + microsoft: + development: + clientId: ${AZURE_CLIENT_ID} + clientSecret: ${AZURE_CLIENT_SECRET} + tenantId: ${AZURE_TENANT_ID} + signIn: + resolvers: + - resolver: emailMatchingUserEntityAnnotation + - resolver: emailMatchingUserEntityProfileEmail + - resolver: emailLocalPartMatchingUserEntityName +``` + +> Note: the resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`. + +#### Auth Plugin Modules and Their Resolvers + +As you may have noticed in the above example you'll need to import the `auth-backend` and an `auth-backend-module`. The following sections outline each of them and their resolvers. + +All of the following modules include the following common resolvers: + +- [emailMatchingUserEntityProfileEmail](https://github.com/backstage/backstage/blob/5447cffd23cf00772988fb799ced0ec5e54efb2e/plugins/auth-node/src/sign-in/commonSignInResolvers.ts#L29) +- [emailLocalPartMatchingUserEntityName](https://github.com/backstage/backstage/blob/5447cffd23cf00772988fb799ced0ec5e54efb2e/plugins/auth-node/src/sign-in/commonSignInResolvers.ts#L54) + +##### Atlassian + +Setup: + +```ts title="packages/backend/src/index.ts" +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add(import('@backstage/plugin-auth-backend-module-atlassian-provider')); +/* highlight-add-end */ +``` + +Additional resolvers: + +- [usernameMatchingUserEntityName](https://github.com/backstage/backstage/blob/5447cffd23cf00772988fb799ced0ec5e54efb2e/plugins/auth-backend-module-atlassian-provider/src/resolvers.ts#L33C16-L33C46) + +##### GCP IAM + +Setup: + +```ts title="packages/backend/src/index.ts" +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add(import('@backstage/plugin-auth-backend-module-gcp-iap-provider')); +/* highlight-add-end */ +``` + +Additional resolvers: + +- [emailMatchingUserEntityAnnotation](https://github.com/backstage/backstage/blob/5447cffd23cf00772988fb799ced0ec5e54efb2e/plugins/auth-backend-module-gcp-iap-provider/src/resolvers.ts#L32C16-L32C49) + +##### GitHub + +Setup: + +```ts title="packages/backend/src/index.ts" +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add(import('@backstage/plugin-auth-backend-module-github-provider')); +/* highlight-add-end */ +``` + +Additional resolvers: + +- [usernameMatchingUserEntityName](https://github.com/backstage/backstage/blob/5447cffd23cf00772988fb799ced0ec5e54efb2e/plugins/auth-backend-module-github-provider/src/resolvers.ts#L33C16-L33C46) + +##### GitLab + +Setup: + +```ts title="packages/backend/src/index.ts" +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add(import('@backstage/plugin-auth-backend-module-gitlab-provider')); +/* highlight-add-end */ +``` + +Additional resolvers: + +- [usernameMatchingUserEntityName](https://github.com/backstage/backstage/blob/5447cffd23cf00772988fb799ced0ec5e54efb2e/plugins/auth-backend-module-gitlab-provider/src/resolvers.ts#L33C16-L33C46) + +##### Google + +Setup: + +```ts title="packages/backend/src/index.ts" +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add(import('@backstage/plugin-auth-backend-module-google-provider')); +/* highlight-add-end */ +``` + +Additional resolvers: + +- [emailMatchingUserEntityAnnotation](https://github.com/backstage/backstage/blob/5447cffd23cf00772988fb799ced0ec5e54efb2e/plugins/auth-backend-module-google-provider/src/resolvers.ts#L33C16-L33C49) + +##### Microsoft + +Setup: + +```ts title="packages/backend/src/index.ts" +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add(import('@backstage/plugin-auth-backend-module-microsoft-provider')); +/* highlight-add-end */ +``` + +Additional resolvers: + +- [emailMatchingUserEntityAnnotation](https://github.com/backstage/backstage/blob/5447cffd23cf00772988fb799ced0ec5e54efb2e/plugins/auth-backend-module-microsoft-provider/src/resolvers.ts#L33C16-L33C49) + +##### oauth2 + +Setup: + +```ts title="packages/backend/src/index.ts" +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add(import('@backstage/plugin-auth-backend-module-oauth2-provider')); +/* highlight-add-end */ +``` + +Additional resolvers: + +- [usernameMatchingUserEntityName](https://github.com/backstage/backstage/blob/5447cffd23cf00772988fb799ced0ec5e54efb2e/plugins/auth-backend-module-oauth2-provider/src/resolvers.ts#L33C16-L33C46) + +##### oauth2 Proxy + +Setup: + +```ts title="packages/backend/src/index.ts" +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add( + import('@backstage/plugin-auth-backend-module-oauth2-proxy-provider'), +); +/* highlight-add-end */ +``` + +Additional resolvers: + +- [forwardedUserMatchingUserEntityName](https://github.com/backstage/backstage/blob/5447cffd23cf00772988fb799ced0ec5e54efb2e/plugins/auth-backend-module-oauth2-proxy-provider/src/resolvers.ts#L27C16-L27C51) + +##### Okta + +Setup: + +```ts title="packages/backend/src/index.ts" +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add(import('@backstage/plugin-auth-backend-module-okta-provider')); +/* highlight-add-end */ +``` + +Additional resolvers: + +- [emailMatchingUserEntityAnnotation](https://github.com/backstage/backstage/blob/5447cffd23cf00772988fb799ced0ec5e54efb2e/plugins/auth-backend-module-okta-provider/src/resolvers.ts#L34C16-L34C49) + +##### Pinniped + +Setup: + +```ts title="packages/backend/src/index.ts" +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add(import('@backstage/plugin-auth-backend-module-pinniped-provider')); +/* highlight-add-end */ +``` + +##### VMware Cloud + +Setup: + +```ts title="packages/backend/src/index.ts" +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add( + import('@backstage/plugin-auth-backend-module-vmware-cloud-provider'), +); +/* highlight-add-end */ +``` + +Additional resolvers: + +- [vmwareCloudSignInResolvers](https://github.com/backstage/backstage/blob/5447cffd23cf00772988fb799ced0ec5e54efb2e/plugins/auth-backend-module-vmware-cloud-provider/src/resolvers.ts#L29C18-L29C44) + +#### Custom Resolver + +You may have a case where the common resolvers or the ones that are included with the auth module you use won't work for your needs. In this case you will need to create a custom resolver. Instead of the 2nd import for your auth provider module you would provide your own: + +```ts title="packages/backend/src/index.ts" +/* highlight-add-start */ +export const authModuleGoogleProvider = createBackendModule({ + pluginId: 'auth', + moduleId: 'googleProvider', + register(reg) { + reg.registerInit({ + deps: { providers: authProvidersExtensionPoint }, + async init({ providers }) { + providers.registerProvider({ + providerId: 'google', + factory: createOAuthProviderFactory({ + authenticator: googleAuthenticator, + async signInResolver(info, ctx) { + // custom resolver ... + }, + }), + }); + }, + }); + }, +}); +/* highlight-add-end */ + +const backend = createBackend(); +/* highlight-add-start */ +backend.add(import('@backstage/plugin-auth-backend')); +backend.add(authModuleGoogleProvider); +/* highlight-add-end */ +``` From 9ee1d1f8173710286cdf3649cad8035aaa28fa9e Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Tue, 2 Jan 2024 15:06:32 +0530 Subject: [PATCH 038/155] added suggested changes Signed-off-by: npiyush97 --- microsite/docusaurus.config.js | 2 +- microsite/src/theme/customTheme.scss | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/microsite/docusaurus.config.js b/microsite/docusaurus.config.js index e444605f48..94bff04fdd 100644 --- a/microsite/docusaurus.config.js +++ b/microsite/docusaurus.config.js @@ -205,7 +205,7 @@ module.exports = { items: [ { html: ` - + `, }, diff --git a/microsite/src/theme/customTheme.scss b/microsite/src/theme/customTheme.scss index 0f60eec224..57e1f8828e 100644 --- a/microsite/src/theme/customTheme.scss +++ b/microsite/src/theme/customTheme.scss @@ -6,7 +6,14 @@ --ifm-color-primary-dark: #31a792; --ifm-color-primary-darker: #2e9e8a; --ifm-color-primary-darkest: #268271; - --ifm-link-decoration: underline; +} + +#__docusaurus { + .theme-doc-markdown { + a { + text-decoration: underline; + } + } } .footerLogo { From 3515ccc6bd5cfe5dd9ce324273cc50a0b10ffcfb Mon Sep 17 00:00:00 2001 From: River Phillips Date: Tue, 2 Jan 2024 14:16:04 +0000 Subject: [PATCH 039/155] fix(docs): replace AsyncAPI spec urls with valid ones Signed-off-by: River Phillips --- docs/features/software-catalog/descriptor-format.md | 4 ++-- plugins/api-docs/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md index 924c59a6fa..c094dbfd09 100644 --- a/docs/features/software-catalog/descriptor-format.md +++ b/docs/features/software-catalog/descriptor-format.md @@ -782,7 +782,7 @@ Describes the following entity kind: An API describes an interface that can be exposed by a component. The API can be defined in different formats, like [OpenAPI](https://swagger.io/specification/), -[AsyncAPI](https://www.asyncapi.com/docs/specifications/latest/), +[AsyncAPI](https://www.asyncapi.com/docs/reference/specification/v3.0.0), [GraphQL](https://graphql.org/learn/schema/), [gRPC](https://developers.google.com/protocol-buffers), or other formats. @@ -838,7 +838,7 @@ The current set of well-known and common values for this field is: - `openapi` - An API definition in YAML or JSON format based on the [OpenAPI](https://swagger.io/specification/) version 2 or version 3 spec. - `asyncapi` - An API definition based on the - [AsyncAPI](https://www.asyncapi.com/docs/specifications/latest/) spec. + [AsyncAPI](https://www.asyncapi.com/docs/reference/specification/v3.0.0) spec. - `graphql` - An API definition based on [GraphQL schemas](https://spec.graphql.org/) for consuming [GraphQL](https://graphql.org/) based APIs. diff --git a/plugins/api-docs/README.md b/plugins/api-docs/README.md index 79c4581e79..beee40d1fa 100644 --- a/plugins/api-docs/README.md +++ b/plugins/api-docs/README.md @@ -13,7 +13,7 @@ The plugin provides a standalone list of APIs, as well as an integration into th Right now, the following API formats are supported: - [OpenAPI](https://swagger.io/specification/) 2 & 3 -- [AsyncAPI](https://www.asyncapi.com/docs/specifications/latest/) +- [AsyncAPI](https://www.asyncapi.com/docs/reference/specification/v3.0.0) - [GraphQL](https://graphql.org/learn/schema/) Other formats are displayed as plain text, but this can easily be extended. From 21365bd5f6d2cfda971016ef4ea65196cd93fdaa Mon Sep 17 00:00:00 2001 From: River Phillips Date: Tue, 2 Jan 2024 14:28:00 +0000 Subject: [PATCH 040/155] chore: add changeset Signed-off-by: River Phillips --- .changeset/fluffy-bugs-guess.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/fluffy-bugs-guess.md diff --git a/.changeset/fluffy-bugs-guess.md b/.changeset/fluffy-bugs-guess.md new file mode 100644 index 0000000000..91e10b613d --- /dev/null +++ b/.changeset/fluffy-bugs-guess.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-api-docs': patch +--- + +Update docs to link to correct Async API spec From 76b2ea6a495b331528cba397131ac8389fccc242 Mon Sep 17 00:00:00 2001 From: River Phillips Date: Tue, 2 Jan 2024 15:18:20 +0000 Subject: [PATCH 041/155] fix: use latest AsyncAPI instead of specific version Signed-off-by: River Phillips --- docs/features/software-catalog/descriptor-format.md | 4 ++-- plugins/api-docs/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md index c094dbfd09..526ba15072 100644 --- a/docs/features/software-catalog/descriptor-format.md +++ b/docs/features/software-catalog/descriptor-format.md @@ -782,7 +782,7 @@ Describes the following entity kind: An API describes an interface that can be exposed by a component. The API can be defined in different formats, like [OpenAPI](https://swagger.io/specification/), -[AsyncAPI](https://www.asyncapi.com/docs/reference/specification/v3.0.0), +[AsyncAPI](https://www.asyncapi.com/docs/reference/specification/latest), [GraphQL](https://graphql.org/learn/schema/), [gRPC](https://developers.google.com/protocol-buffers), or other formats. @@ -838,7 +838,7 @@ The current set of well-known and common values for this field is: - `openapi` - An API definition in YAML or JSON format based on the [OpenAPI](https://swagger.io/specification/) version 2 or version 3 spec. - `asyncapi` - An API definition based on the - [AsyncAPI](https://www.asyncapi.com/docs/reference/specification/v3.0.0) spec. + [AsyncAPI](https://www.asyncapi.com/docs/reference/specification/latest) spec. - `graphql` - An API definition based on [GraphQL schemas](https://spec.graphql.org/) for consuming [GraphQL](https://graphql.org/) based APIs. diff --git a/plugins/api-docs/README.md b/plugins/api-docs/README.md index beee40d1fa..4d4342de61 100644 --- a/plugins/api-docs/README.md +++ b/plugins/api-docs/README.md @@ -13,7 +13,7 @@ The plugin provides a standalone list of APIs, as well as an integration into th Right now, the following API formats are supported: - [OpenAPI](https://swagger.io/specification/) 2 & 3 -- [AsyncAPI](https://www.asyncapi.com/docs/reference/specification/v3.0.0) +- [AsyncAPI](https://www.asyncapi.com/docs/reference/specification/latest) - [GraphQL](https://graphql.org/learn/schema/) Other formats are displayed as plain text, but this can easily be extended. From 2c0d46332ba5a44c708954bc857239f1089a136e Mon Sep 17 00:00:00 2001 From: River Phillips Date: Tue, 2 Jan 2024 15:55:17 +0000 Subject: [PATCH 042/155] chore: remove unnecessary changeset Signed-off-by: River Phillips --- .changeset/fluffy-bugs-guess.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .changeset/fluffy-bugs-guess.md diff --git a/.changeset/fluffy-bugs-guess.md b/.changeset/fluffy-bugs-guess.md deleted file mode 100644 index 91e10b613d..0000000000 --- a/.changeset/fluffy-bugs-guess.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-api-docs': patch ---- - -Update docs to link to correct Async API spec From 5087e585e1ee1a5cfc3269f4a90fb0d338af787b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 15:11:43 +0000 Subject: [PATCH 043/155] chore(deps): update dependency esbuild to v0.19.11 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 190 +++++++++++++++++++++++++++--------------------------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/yarn.lock b/yarn.lock index 954435a662..b812449084 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10466,9 +10466,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/aix-ppc64@npm:0.19.10" +"@esbuild/aix-ppc64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/aix-ppc64@npm:0.19.11" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard @@ -10487,9 +10487,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/android-arm64@npm:0.19.10" +"@esbuild/android-arm64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/android-arm64@npm:0.19.11" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -10508,9 +10508,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/android-arm@npm:0.19.10" +"@esbuild/android-arm@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/android-arm@npm:0.19.11" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -10529,9 +10529,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/android-x64@npm:0.19.10" +"@esbuild/android-x64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/android-x64@npm:0.19.11" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -10550,9 +10550,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/darwin-arm64@npm:0.19.10" +"@esbuild/darwin-arm64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/darwin-arm64@npm:0.19.11" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -10571,9 +10571,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/darwin-x64@npm:0.19.10" +"@esbuild/darwin-x64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/darwin-x64@npm:0.19.11" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -10592,9 +10592,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/freebsd-arm64@npm:0.19.10" +"@esbuild/freebsd-arm64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/freebsd-arm64@npm:0.19.11" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -10613,9 +10613,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/freebsd-x64@npm:0.19.10" +"@esbuild/freebsd-x64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/freebsd-x64@npm:0.19.11" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -10634,9 +10634,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/linux-arm64@npm:0.19.10" +"@esbuild/linux-arm64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/linux-arm64@npm:0.19.11" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -10655,9 +10655,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/linux-arm@npm:0.19.10" +"@esbuild/linux-arm@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/linux-arm@npm:0.19.11" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -10676,9 +10676,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/linux-ia32@npm:0.19.10" +"@esbuild/linux-ia32@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/linux-ia32@npm:0.19.11" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -10697,9 +10697,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/linux-loong64@npm:0.19.10" +"@esbuild/linux-loong64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/linux-loong64@npm:0.19.11" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -10718,9 +10718,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/linux-mips64el@npm:0.19.10" +"@esbuild/linux-mips64el@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/linux-mips64el@npm:0.19.11" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -10739,9 +10739,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/linux-ppc64@npm:0.19.10" +"@esbuild/linux-ppc64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/linux-ppc64@npm:0.19.11" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -10760,9 +10760,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/linux-riscv64@npm:0.19.10" +"@esbuild/linux-riscv64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/linux-riscv64@npm:0.19.11" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -10781,9 +10781,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/linux-s390x@npm:0.19.10" +"@esbuild/linux-s390x@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/linux-s390x@npm:0.19.11" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -10802,9 +10802,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/linux-x64@npm:0.19.10" +"@esbuild/linux-x64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/linux-x64@npm:0.19.11" conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -10823,9 +10823,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/netbsd-x64@npm:0.19.10" +"@esbuild/netbsd-x64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/netbsd-x64@npm:0.19.11" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -10844,9 +10844,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/openbsd-x64@npm:0.19.10" +"@esbuild/openbsd-x64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/openbsd-x64@npm:0.19.11" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -10865,9 +10865,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/sunos-x64@npm:0.19.10" +"@esbuild/sunos-x64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/sunos-x64@npm:0.19.11" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -10886,9 +10886,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/win32-arm64@npm:0.19.10" +"@esbuild/win32-arm64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/win32-arm64@npm:0.19.11" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -10907,9 +10907,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/win32-ia32@npm:0.19.10" +"@esbuild/win32-ia32@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/win32-ia32@npm:0.19.11" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -10928,9 +10928,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.19.10": - version: 0.19.10 - resolution: "@esbuild/win32-x64@npm:0.19.10" +"@esbuild/win32-x64@npm:0.19.11": + version: 0.19.11 + resolution: "@esbuild/win32-x64@npm:0.19.11" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -25673,32 +25673,32 @@ __metadata: linkType: hard "esbuild@npm:^0.19.0": - version: 0.19.10 - resolution: "esbuild@npm:0.19.10" + version: 0.19.11 + resolution: "esbuild@npm:0.19.11" dependencies: - "@esbuild/aix-ppc64": 0.19.10 - "@esbuild/android-arm": 0.19.10 - "@esbuild/android-arm64": 0.19.10 - "@esbuild/android-x64": 0.19.10 - "@esbuild/darwin-arm64": 0.19.10 - "@esbuild/darwin-x64": 0.19.10 - "@esbuild/freebsd-arm64": 0.19.10 - "@esbuild/freebsd-x64": 0.19.10 - "@esbuild/linux-arm": 0.19.10 - "@esbuild/linux-arm64": 0.19.10 - "@esbuild/linux-ia32": 0.19.10 - "@esbuild/linux-loong64": 0.19.10 - "@esbuild/linux-mips64el": 0.19.10 - "@esbuild/linux-ppc64": 0.19.10 - "@esbuild/linux-riscv64": 0.19.10 - "@esbuild/linux-s390x": 0.19.10 - "@esbuild/linux-x64": 0.19.10 - "@esbuild/netbsd-x64": 0.19.10 - "@esbuild/openbsd-x64": 0.19.10 - "@esbuild/sunos-x64": 0.19.10 - "@esbuild/win32-arm64": 0.19.10 - "@esbuild/win32-ia32": 0.19.10 - "@esbuild/win32-x64": 0.19.10 + "@esbuild/aix-ppc64": 0.19.11 + "@esbuild/android-arm": 0.19.11 + "@esbuild/android-arm64": 0.19.11 + "@esbuild/android-x64": 0.19.11 + "@esbuild/darwin-arm64": 0.19.11 + "@esbuild/darwin-x64": 0.19.11 + "@esbuild/freebsd-arm64": 0.19.11 + "@esbuild/freebsd-x64": 0.19.11 + "@esbuild/linux-arm": 0.19.11 + "@esbuild/linux-arm64": 0.19.11 + "@esbuild/linux-ia32": 0.19.11 + "@esbuild/linux-loong64": 0.19.11 + "@esbuild/linux-mips64el": 0.19.11 + "@esbuild/linux-ppc64": 0.19.11 + "@esbuild/linux-riscv64": 0.19.11 + "@esbuild/linux-s390x": 0.19.11 + "@esbuild/linux-x64": 0.19.11 + "@esbuild/netbsd-x64": 0.19.11 + "@esbuild/openbsd-x64": 0.19.11 + "@esbuild/sunos-x64": 0.19.11 + "@esbuild/win32-arm64": 0.19.11 + "@esbuild/win32-ia32": 0.19.11 + "@esbuild/win32-x64": 0.19.11 dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -25748,7 +25748,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: b97f2f837c931e065839fe9adebba44b80aaa81c6b32dca4e1e77c068a0afb045d08a94d86abdacb29daef783ec092f0db688a31f3d463e2e42ac17e5a478265 + checksum: ae949a796d1d06b55275ae7491ce137857468f69a93d8cc9c0943d2a701ac54e14dbb250a2ba56f2ad98283669578f1ec3bd85a4681910a5ff29a2470c3bd62c languageName: node linkType: hard From 5a61b0ecaa3b629cb10b2f2cfc622cecf5c1f153 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 16:34:22 +0000 Subject: [PATCH 044/155] fix(deps): update dependency eslint-plugin-jest to v27.6.1 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 924cdfe275..b36086a75d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25927,8 +25927,8 @@ __metadata: linkType: hard "eslint-plugin-jest@npm:^27.0.0": - version: 27.6.0 - resolution: "eslint-plugin-jest@npm:27.6.0" + version: 27.6.1 + resolution: "eslint-plugin-jest@npm:27.6.1" dependencies: "@typescript-eslint/utils": ^5.10.0 peerDependencies: @@ -25940,7 +25940,7 @@ __metadata: optional: true jest: optional: true - checksum: 4c42641f9bf2d597761637028083e20b9f81762308e98baae40eb805d3e81ff8d837f06f4f0c1a2fd249e2be2fb24d33b7aafeaa8942de805c2b8d7c3b6fc4e4 + checksum: 03dc4784119a06504718b3ec1a5944c8d41fe73669d23433fa794e4059be857ec463da6d5982dcd2920da091fe7c5c033fa69a91f4dfbe3f41aac6db99b8c3d0 languageName: node linkType: hard From a5bdacce31ca0d640cfc759c18b0528e3585353b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 20:20:34 +0000 Subject: [PATCH 045/155] chore(deps): update actions/setup-python action to v4.8.0 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/verify_e2e-techdocs.yml | 2 +- .github/workflows/verify_e2e-windows.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/verify_e2e-techdocs.yml b/.github/workflows/verify_e2e-techdocs.yml index 46070cf248..e2ca1db16e 100644 --- a/.github/workflows/verify_e2e-techdocs.yml +++ b/.github/workflows/verify_e2e-techdocs.yml @@ -35,7 +35,7 @@ jobs: egress-policy: audit - uses: actions/checkout@v4.1.1 - - uses: actions/setup-python@v4.7.1 + - uses: actions/setup-python@v4.8.0 with: python-version: '3.9' diff --git a/.github/workflows/verify_e2e-windows.yml b/.github/workflows/verify_e2e-windows.yml index 8a55e6af2e..d3c9d58ba6 100644 --- a/.github/workflows/verify_e2e-windows.yml +++ b/.github/workflows/verify_e2e-windows.yml @@ -56,7 +56,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: setup python - uses: actions/setup-python@v4.7.1 + uses: actions/setup-python@v4.8.0 with: python-version: '3.10' From 7e191b3493230a8029b05d38d01fe6b422081508 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 23:07:10 +0000 Subject: [PATCH 046/155] chore(deps): update dependency @types/luxon to v3.3.8 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- microsite/yarn.lock | 6 +++--- yarn.lock | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/microsite/yarn.lock b/microsite/yarn.lock index 45498bddf9..7fb45745ca 100644 --- a/microsite/yarn.lock +++ b/microsite/yarn.lock @@ -3055,9 +3055,9 @@ __metadata: linkType: hard "@types/luxon@npm:^3.0.0": - version: 3.3.7 - resolution: "@types/luxon@npm:3.3.7" - checksum: 97026557e92bcba308a5592f981591cd200d493fc8997874d79acecf6a2ec41debeded3ac5cd80c371ef7f6f56cc0d1be0a5aca846e03d3e6b4a2be37256fe2f + version: 3.3.8 + resolution: "@types/luxon@npm:3.3.8" + checksum: 026711b4aefc01c6e233e359c693b6d4c0873acc3f52a08661ea3751b2cf3e34d1ce1d5b0b99b0e40a059a2a3755acc20498d37db5f9a5a4f0f330cdf72db3db languageName: node linkType: hard diff --git a/yarn.lock b/yarn.lock index 924cdfe275..bcd5f1d4ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18294,9 +18294,9 @@ __metadata: linkType: hard "@types/luxon@npm:*, @types/luxon@npm:^3.0.0, @types/luxon@npm:~3.3.0": - version: 3.3.7 - resolution: "@types/luxon@npm:3.3.7" - checksum: 97026557e92bcba308a5592f981591cd200d493fc8997874d79acecf6a2ec41debeded3ac5cd80c371ef7f6f56cc0d1be0a5aca846e03d3e6b4a2be37256fe2f + version: 3.3.8 + resolution: "@types/luxon@npm:3.3.8" + checksum: 026711b4aefc01c6e233e359c693b6d4c0873acc3f52a08661ea3751b2cf3e34d1ce1d5b0b99b0e40a059a2a3755acc20498d37db5f9a5a4f0f330cdf72db3db languageName: node linkType: hard From 8052d2af77cd177bba9e8b2f9c44e96a0c5aea51 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 23:07:44 +0000 Subject: [PATCH 047/155] fix(deps): update dependency axios to v1.6.4 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index 924cdfe275..f156984b14 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20974,13 +20974,13 @@ __metadata: linkType: hard "axios@npm:^1.4.0, axios@npm:^1.6.0": - version: 1.6.3 - resolution: "axios@npm:1.6.3" + version: 1.6.4 + resolution: "axios@npm:1.6.4" dependencies: - follow-redirects: ^1.15.0 + follow-redirects: ^1.15.4 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: 07ef3bb83fc2dacc1ae2c97f2bbd04ef7701f5655f9037789d79ee78b698ffa50eaa8465c2017d4d3e9ce7d94cb779f730acaab32ce9036d0a4933c1e89df4da + checksum: 48d8af8488ac7402fae312437c0189b3b609a472fca2f7fc796129c804d98520589b6317096eba8509711d49f855a3f620b6a24ff23acd73ac26433d0383b8f9 languageName: node linkType: hard @@ -27467,7 +27467,7 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.0": +"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.4": version: 1.15.4 resolution: "follow-redirects@npm:1.15.4" peerDependenciesMeta: From 24e5c11a755625534c8beec71ebea7495d2a840d Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Wed, 6 Dec 2023 11:20:46 +0000 Subject: [PATCH 048/155] feat(bitbucketCloudPipelinesRun): adds new TemplateAction for running a bitbucket pipeline Signed-off-by: Matthew Prinold --- ...itbucketCloudPipelinesRun.examples.test.ts | 130 ++++++++++++++++++ .../bitbucketCloudPipelinesRun.examples.ts | 37 +++++ .../bitbucketCloudPipelinesRun.test.ts | 128 +++++++++++++++++ .../bitbucketCloudPipelinesRun.ts | 102 ++++++++++++++ 4 files changed, 397 insertions(+) create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.test.ts create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.ts create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.test.ts create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.ts diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.test.ts new file mode 100644 index 0000000000..6205f04400 --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.test.ts @@ -0,0 +1,130 @@ +/* + * Copyright 2021 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 { getVoidLogger } from '@backstage/backend-common'; +import { createMockDirectory } from '@backstage/backend-test-utils'; +import { Writable } from 'stream'; +import { TemplateAction } from '@backstage/plugin-scaffolder-node'; +import { createBitbucketPipelinesRunAction } from './bitbucketCloudPipelinesRun'; +import fetch from 'node-fetch'; +import yaml from 'yaml'; +import { examples } from './bitbucketCloudPipelinesRun.examples'; +import { json } from 'stream/consumers'; +import { object } from 'zod'; + +jest.mock('node-fetch'); +const { Response } = jest.requireActual('node-fetch'); + +const createdResponse = { + type: '', + uuid: '', + build_number: 33, + creator: { + type: '', + }, + repository: { + type: '', + }, + target: { + type: '', + }, + trigger: { + type: '', + }, + state: { + type: '', + }, + created_on: '', + completed_on: '', + build_seconds_used: 50, +}; + +describe('bitbucket:pipelines:run', () => { + const logStream = { + write: jest.fn(), + } as jest.Mocked> as jest.Mocked; + const mockDir = createMockDirectory(); + const workspacePath = mockDir.resolve('workspace'); + let action: TemplateAction; + + const mockContext = { + input: {}, + baseUrl: 'somebase', + workspacePath, + logger: getVoidLogger(), + logStream, + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; + + const body = { + type: '', + uuid: '', + build_number: 33, + creator: { + type: '', + }, + repository: { + type: '', + }, + target: { + type: '', + }, + trigger: { + type: '', + }, + state: { + type: '', + }, + created_on: '', + completed_on: '', + build_seconds_used: 50, + }; + + beforeEach(() => { + jest.resetAllMocks(); + action = createBitbucketPipelinesRunAction(); + }); + + it('should call the bitbucket api for running a pipeline', async () => { + const ctx = Object.assign({}, mockContext, { + input: yaml.parse(examples[0].example).steps[0].input, + }); + (fetch as jest.MockedFunction).mockResolvedValue( + new Response(JSON.stringify(createdResponse), { + url: 'url', + status: 201, + statusText: 'Created', + }), + ); + await action.handler(ctx); + expect(fetch).toHaveBeenCalledWith( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + { + body: JSON.stringify(body), + headers: { + Accept: 'application/json', + Authorization: 'Bearer testToken', + 'Content-Type': 'application/json', + }, + method: 'POST', + }, + ); + expect(logStream.write).toHaveBeenCalledTimes(2); + expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); + expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); + }); +}); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.ts new file mode 100644 index 0000000000..81b8603c35 --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.ts @@ -0,0 +1,37 @@ +/* + * Copyright 2021 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 { TemplateExample } from '@backstage/plugin-scaffolder-node'; +import yaml from 'yaml'; + +export const examples: TemplateExample[] = [ + { + description: '', + example: yaml.stringify({ + steps: [ + { + action: 'bitbucket:pipelines:run', + id: 'run-bitbucket-pipeline', + name: 'Run an example bitbucket pipeline', + input: { + workspace: 'test-workspace', + repo_slug: 'test-repo-slug', + }, + }, + ], + }), + }, +]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.test.ts new file mode 100644 index 0000000000..741ae02e92 --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.test.ts @@ -0,0 +1,128 @@ +/* + * Copyright 2021 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 { getVoidLogger } from '@backstage/backend-common'; +import { createMockDirectory } from '@backstage/backend-test-utils'; +import { Writable } from 'stream'; +import { TemplateAction } from '@backstage/plugin-scaffolder-node'; +import { createBitbucketPipelinesRunAction } from './bitbucketCloudPipelinesRun'; +import fetch from 'node-fetch'; + +jest.mock('node-fetch'); +const { Response } = jest.requireActual('node-fetch'); + +const createdResponse = { + type: '', + uuid: '', + build_number: 33, + creator: { + type: '', + }, + repository: { + type: '', + }, + target: { + type: '', + }, + trigger: { + type: '', + }, + state: { + type: '', + }, + created_on: '', + completed_on: '', + build_seconds_used: 50, +}; + +describe('bitbucket:pipelines:run', () => { + const logStream = { + write: jest.fn(), + } as jest.Mocked> as jest.Mocked; + const mockDir = createMockDirectory(); + const workspacePath = mockDir.resolve('workspace'); + let action: TemplateAction; + + const mockContext = { + input: {}, + baseUrl: 'somebase', + workspacePath, + logger: getVoidLogger(), + logStream, + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; + + const body = { + type: '', + uuid: '', + build_number: 33, + creator: { + type: '', + }, + repository: { + type: '', + }, + target: { + type: '', + }, + trigger: { + type: '', + }, + state: { + type: '', + }, + created_on: '', + completed_on: '', + build_seconds_used: 50, + }; + + beforeEach(() => { + jest.resetAllMocks(); + action = createBitbucketPipelinesRunAction(); + }); + + it('should call the bitbucket api for running a pipeline', async () => { + const workspace = 'test-workspace'; + const repo_slug = 'test-repo-slug'; + const ctx = Object.assign({}, mockContext, { + input: { workspace, repo_slug }, + }); + (fetch as jest.MockedFunction).mockResolvedValue( + new Response(JSON.stringify(createdResponse), { + url: 'url', + status: 201, + statusText: 'Created', + }), + ); + await action.handler(ctx); + expect(fetch).toHaveBeenCalledWith( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + { + body: JSON.stringify(body), + headers: { + Accept: 'application/json', + Authorization: 'Bearer testToken', + 'Content-Type': 'application/json', + }, + method: 'POST', + }, + ); + expect(logStream.write).toHaveBeenCalledTimes(2); + expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); + expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); + }); +}); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.ts new file mode 100644 index 0000000000..b732ce2689 --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.ts @@ -0,0 +1,102 @@ +/* + * Copyright 2021 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 { examples } from './bitbucketCloudPipelinesRun.examples'; +import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; +import fetch from 'node-fetch'; + +const id = 'bitbucket:pipelines:run'; +/** + * Creates a new action that triggers a run of a bitbucket pipeline + * + * @public + */ +export const createBitbucketPipelinesRunAction = () => { + return createTemplateAction<{ + workspace: string; + repo_slug: string; + }>({ + id, + description: '', + examples, + schema: { + input: { + type: 'object', + required: ['workspace', 'repo_url'], + properties: { + workspace: { + title: 'Workspace', + description: `This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example {workspace UUID}.`, + type: 'string', + }, + repo_slug: { + title: 'The repository', + description: 'The repository name', + type: 'string', + }, + }, + }, + }, + supportsDryRun: false, + async handler(ctx) { + const { workspace, repo_slug } = ctx.input; + const bodyData = { + type: '', + uuid: '', + build_number: 33, + creator: { + type: '', + }, + repository: { + type: '', + }, + target: { + type: '', + }, + trigger: { + type: '', + }, + state: { + type: '', + }, + created_on: '', + completed_on: '', + build_seconds_used: 50, + }; + try { + const response = await fetch( + `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/pipelines`, + { + method: 'POST', + headers: { + Authorization: 'Bearer testToken', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + body: JSON.stringify(bodyData), + }, + ); + ctx.logStream.write( + `Response: ${response.status} ${response.statusText}`, + ); + const data = await response.json(); + ctx.logStream.write(data); + } catch (err) { + ctx.logStream.write(err); + } + }, + }); +}; From e2c90457f3aa90e37e1ea3fa7eb7091e6c5d9341 Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Thu, 7 Dec 2023 13:21:52 +0000 Subject: [PATCH 049/155] feat(bitbucketCloudPipelinesRun): defines input schema for the request body Signed-off-by: Matthew Prinold --- ...itbucketCloudPipelinesRun.examples.test.ts | 253 ++++++++++++++++-- .../bitbucketCloudPipelinesRun.examples.ts | 167 +++++++++++- .../bitbucketCloudPipelinesRun.test.ts | 26 +- .../bitbucketCloudPipelinesRun.ts | 130 +++++++-- 4 files changed, 497 insertions(+), 79 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.test.ts index 6205f04400..e53099eb2b 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.test.ts @@ -22,8 +22,6 @@ import { createBitbucketPipelinesRunAction } from './bitbucketCloudPipelinesRun' import fetch from 'node-fetch'; import yaml from 'yaml'; import { examples } from './bitbucketCloudPipelinesRun.examples'; -import { json } from 'stream/consumers'; -import { object } from 'zod'; jest.mock('node-fetch'); const { Response } = jest.requireActual('node-fetch'); @@ -70,36 +68,12 @@ describe('bitbucket:pipelines:run', () => { createTemporaryDirectory: jest.fn(), }; - const body = { - type: '', - uuid: '', - build_number: 33, - creator: { - type: '', - }, - repository: { - type: '', - }, - target: { - type: '', - }, - trigger: { - type: '', - }, - state: { - type: '', - }, - created_on: '', - completed_on: '', - build_seconds_used: 50, - }; - beforeEach(() => { jest.resetAllMocks(); action = createBitbucketPipelinesRunAction(); }); - it('should call the bitbucket api for running a pipeline', async () => { + it('should trigger a pipeline for a branch', async () => { const ctx = Object.assign({}, mockContext, { input: yaml.parse(examples[0].example).steps[0].input, }); @@ -114,7 +88,230 @@ describe('bitbucket:pipelines:run', () => { expect(fetch).toHaveBeenCalledWith( 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', { - body: JSON.stringify(body), + body: JSON.stringify({ + target: { + ref_type: 'branch', + type: 'pipeline_ref_target', + ref_name: 'master', + }, + }), + headers: { + Accept: 'application/json', + Authorization: 'Bearer testToken', + 'Content-Type': 'application/json', + }, + method: 'POST', + }, + ); + expect(logStream.write).toHaveBeenCalledTimes(2); + expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); + expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); + }); + + it('should trigger a pipeline for a commit on a branch', async () => { + const ctx = Object.assign({}, mockContext, { + input: yaml.parse(examples[1].example).steps[0].input, + }); + (fetch as jest.MockedFunction).mockResolvedValue( + new Response(JSON.stringify(createdResponse), { + url: 'url', + status: 201, + statusText: 'Created', + }), + ); + await action.handler(ctx); + expect(fetch).toHaveBeenCalledWith( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + { + body: JSON.stringify({ + target: { + commit: { + type: 'commit', + hash: 'ce5b7431602f7cbba007062eeb55225c6e18e956', + }, + ref_type: 'branch', + type: 'pipeline_ref_target', + ref_name: 'master', + }, + }), + headers: { + Accept: 'application/json', + Authorization: 'Bearer testToken', + 'Content-Type': 'application/json', + }, + method: 'POST', + }, + ); + expect(logStream.write).toHaveBeenCalledTimes(2); + expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); + expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); + }); + + it('should trigger a specific pipeline definition for a commit', async () => { + const ctx = Object.assign({}, mockContext, { + input: yaml.parse(examples[2].example).steps[0].input, + }); + (fetch as jest.MockedFunction).mockResolvedValue( + new Response(JSON.stringify(createdResponse), { + url: 'url', + status: 201, + statusText: 'Created', + }), + ); + await action.handler(ctx); + expect(fetch).toHaveBeenCalledWith( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + { + body: JSON.stringify({ + target: { + commit: { + type: 'commit', + hash: 'a3c4e02c9a3755eccdc3764e6ea13facdf30f923', + }, + selector: { + type: 'custom', + pattern: 'Deploy to production', + }, + type: 'pipeline_commit_target', + }, + }), + headers: { + Accept: 'application/json', + Authorization: 'Bearer testToken', + 'Content-Type': 'application/json', + }, + method: 'POST', + }, + ); + expect(logStream.write).toHaveBeenCalledTimes(2); + expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); + expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); + }); + + it('should trigger a specific pipeline definition for a commit on a branch or tag', async () => { + const ctx = Object.assign({}, mockContext, { + input: yaml.parse(examples[3].example).steps[0].input, + }); + (fetch as jest.MockedFunction).mockResolvedValue( + new Response(JSON.stringify(createdResponse), { + url: 'url', + status: 201, + statusText: 'Created', + }), + ); + await action.handler(ctx); + expect(fetch).toHaveBeenCalledWith( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + { + body: JSON.stringify({ + target: { + commit: { + type: 'commit', + hash: 'a3c4e02c9a3755eccdc3764e6ea13facdf30f923', + }, + selector: { + type: 'custom', + pattern: 'Deploy to production', + }, + type: 'pipeline_ref_target', + ref_name: 'master', + ref_type: 'branch', + }, + }), + headers: { + Accept: 'application/json', + Authorization: 'Bearer testToken', + 'Content-Type': 'application/json', + }, + method: 'POST', + }, + ); + expect(logStream.write).toHaveBeenCalledTimes(2); + expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); + expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); + }); + + it('should trigger a custom pipeline with variables', async () => { + const ctx = Object.assign({}, mockContext, { + input: yaml.parse(examples[4].example).steps[0].input, + }); + (fetch as jest.MockedFunction).mockResolvedValue( + new Response(JSON.stringify(createdResponse), { + url: 'url', + status: 201, + statusText: 'Created', + }), + ); + await action.handler(ctx); + expect(fetch).toHaveBeenCalledWith( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + { + body: JSON.stringify({ + target: { + type: 'pipeline_ref_target', + ref_name: 'master', + ref_type: 'branch', + selector: { + type: 'custom', + pattern: 'Deploy to production', + }, + }, + variables: [ + { key: 'var1key', value: 'var1value', secured: true }, + { + key: 'var2key', + value: 'var2value', + }, + ], + }), + headers: { + Accept: 'application/json', + Authorization: 'Bearer testToken', + 'Content-Type': 'application/json', + }, + method: 'POST', + }, + ); + expect(logStream.write).toHaveBeenCalledTimes(2); + expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); + expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); + }); + + it('should trigger a pull request pipeline', async () => { + const ctx = Object.assign({}, mockContext, { + input: yaml.parse(examples[5].example).steps[0].input, + }); + (fetch as jest.MockedFunction).mockResolvedValue( + new Response(JSON.stringify(createdResponse), { + url: 'url', + status: 201, + statusText: 'Created', + }), + ); + await action.handler(ctx); + expect(fetch).toHaveBeenCalledWith( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + { + body: JSON.stringify({ + target: { + type: 'pipeline_pullrequest_target', + source: 'pull-request-branch', + destination: 'master', + destination_commit: { + hash: '9f848b7', + }, + commit: { + hash: '1a372fc', + }, + pull_request: { + id: '3', + }, + selector: { + type: 'pull-requests', + pattern: '**', + }, + }, + }), headers: { Accept: 'application/json', Authorization: 'Bearer testToken', diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.ts index 81b8603c35..d6255526af 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.ts @@ -19,7 +19,7 @@ import yaml from 'yaml'; export const examples: TemplateExample[] = [ { - description: '', + description: 'Trigger a pipeline for a branch', example: yaml.stringify({ steps: [ { @@ -29,6 +29,171 @@ export const examples: TemplateExample[] = [ input: { workspace: 'test-workspace', repo_slug: 'test-repo-slug', + body: { + target: { + ref_type: 'branch', + type: 'pipeline_ref_target', + ref_name: 'master', + }, + }, + }, + }, + ], + }), + }, + { + description: 'Trigger a pipeline for a commit on a branch', + example: yaml.stringify({ + steps: [ + { + action: 'bitbucket:pipelines:run', + id: 'run-bitbucket-pipeline', + name: 'Run an example bitbucket pipeline', + input: { + workspace: 'test-workspace', + repo_slug: 'test-repo-slug', + body: { + target: { + commit: { + type: 'commit', + hash: 'ce5b7431602f7cbba007062eeb55225c6e18e956', + }, + ref_type: 'branch', + type: 'pipeline_ref_target', + ref_name: 'master', + }, + }, + }, + }, + ], + }), + }, + { + description: 'Trigger a specific pipeline definition for a commit', + example: yaml.stringify({ + steps: [ + { + action: 'bitbucket:pipelines:run', + id: 'run-bitbucket-pipeline', + name: 'Run an example bitbucket pipeline', + input: { + workspace: 'test-workspace', + repo_slug: 'test-repo-slug', + body: { + target: { + commit: { + type: 'commit', + hash: 'a3c4e02c9a3755eccdc3764e6ea13facdf30f923', + }, + selector: { + type: 'custom', + pattern: 'Deploy to production', + }, + type: 'pipeline_commit_target', + }, + }, + }, + }, + ], + }), + }, + { + description: + 'Trigger a specific pipeline definition for a commit on a branch or tag', + example: yaml.stringify({ + steps: [ + { + action: 'bitbucket:pipelines:run', + id: 'run-bitbucket-pipeline', + name: 'Run an example bitbucket pipeline', + input: { + workspace: 'test-workspace', + repo_slug: 'test-repo-slug', + body: { + target: { + commit: { + type: 'commit', + hash: 'a3c4e02c9a3755eccdc3764e6ea13facdf30f923', + }, + selector: { + type: 'custom', + pattern: 'Deploy to production', + }, + type: 'pipeline_ref_target', + ref_name: 'master', + ref_type: 'branch', + }, + }, + }, + }, + ], + }), + }, + { + description: 'Trigger a custom pipeline with variables', + example: yaml.stringify({ + steps: [ + { + action: 'bitbucket:pipelines:run', + id: 'run-bitbucket-pipeline', + name: 'Run an example bitbucket pipeline', + input: { + workspace: 'test-workspace', + repo_slug: 'test-repo-slug', + body: { + target: { + type: 'pipeline_ref_target', + ref_name: 'master', + ref_type: 'branch', + selector: { + type: 'custom', + pattern: 'Deploy to production', + }, + }, + variables: [ + { key: 'var1key', value: 'var1value', secured: true }, + { + key: 'var2key', + value: 'var2value', + }, + ], + }, + }, + }, + ], + }), + }, + { + description: 'Trigger a pull request pipeline', + example: yaml.stringify({ + steps: [ + { + action: 'bitbucket:pipelines:run', + id: 'run-bitbucket-pipeline', + name: 'Run an example bitbucket pipeline', + input: { + workspace: 'test-workspace', + repo_slug: 'test-repo-slug', + body: { + target: { + type: 'pipeline_pullrequest_target', + source: 'pull-request-branch', + destination: 'master', + destination_commit: { + hash: '9f848b7', + }, + commit: { + hash: '1a372fc', + }, + pull_request: { + id: '3', + }, + selector: { + type: 'pull-requests', + pattern: '**', + }, + }, + }, }, }, ], diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.test.ts index 741ae02e92..d5f9da2f5d 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.test.ts @@ -66,30 +66,6 @@ describe('bitbucket:pipelines:run', () => { createTemporaryDirectory: jest.fn(), }; - const body = { - type: '', - uuid: '', - build_number: 33, - creator: { - type: '', - }, - repository: { - type: '', - }, - target: { - type: '', - }, - trigger: { - type: '', - }, - state: { - type: '', - }, - created_on: '', - completed_on: '', - build_seconds_used: 50, - }; - beforeEach(() => { jest.resetAllMocks(); action = createBitbucketPipelinesRunAction(); @@ -112,7 +88,7 @@ describe('bitbucket:pipelines:run', () => { expect(fetch).toHaveBeenCalledWith( 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', { - body: JSON.stringify(body), + body: {}, headers: { Accept: 'application/json', Authorization: 'Bearer testToken', diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.ts index b732ce2689..fa6043621d 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.ts @@ -28,6 +28,7 @@ export const createBitbucketPipelinesRunAction = () => { return createTemplateAction<{ workspace: string; repo_slug: string; + body?: object; }>({ id, description: '', @@ -47,35 +48,114 @@ export const createBitbucketPipelinesRunAction = () => { description: 'The repository name', type: 'string', }, + body: { + title: '', + description: '', + type: 'object', + properties: { + target: { + title: 'target', + type: 'object', + properties: { + ref_type: { + title: 'ref_type', + type: 'string', + }, + type: { + title: 'type', + type: 'string', + }, + ref_name: { + title: 'ref_name', + type: 'string', + }, + source: { + title: 'source', + type: 'string', + }, + destination: { + title: 'destination', + type: 'string', + }, + destination_commit: { + title: 'destination_commit', + type: 'object', + properties: { + hash: { + title: 'hash', + type: 'string', + }, + }, + }, + commit: { + title: 'commit', + type: 'object', + properties: { + type: { + title: 'type', + type: 'string', + }, + hash: { + title: 'hash', + type: 'string', + }, + }, + }, + selector: { + title: 'selector', + type: 'object', + properties: { + type: { + title: 'type', + type: 'string', + }, + pattern: { + title: 'pattern', + type: 'string', + }, + }, + }, + pull_request: { + title: 'pull_request', + type: 'object', + properties: { + id: { + title: 'id', + type: 'string', + }, + }, + }, + }, + }, + variables: { + title: 'variables', + type: 'array', + items: { + type: 'object', + properties: { + key: { + title: 'key', + type: 'string', + }, + value: { + title: 'value', + type: 'string', + }, + secured: { + title: 'secured', + type: 'boolean', + }, + }, + }, + }, + }, + }, }, }, }, supportsDryRun: false, async handler(ctx) { - const { workspace, repo_slug } = ctx.input; - const bodyData = { - type: '', - uuid: '', - build_number: 33, - creator: { - type: '', - }, - repository: { - type: '', - }, - target: { - type: '', - }, - trigger: { - type: '', - }, - state: { - type: '', - }, - created_on: '', - completed_on: '', - build_seconds_used: 50, - }; + const { workspace, repo_slug, body } = ctx.input; try { const response = await fetch( `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/pipelines`, @@ -86,7 +166,7 @@ export const createBitbucketPipelinesRunAction = () => { Accept: 'application/json', 'Content-Type': 'application/json', }, - body: JSON.stringify(bodyData), + body: JSON.stringify(body) ?? {}, }, ); ctx.logStream.write( From 76e7e5b26546520ecd9bef182b2041c502242322 Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Tue, 19 Dec 2023 09:10:12 +0000 Subject: [PATCH 050/155] refactor(BitbucketCloudPipelinesRun): moves action files to new module Signed-off-by: Matthew Prinold --- .../src/actions}/bitbucketCloudPipelinesRun.examples.test.ts | 0 .../src/actions}/bitbucketCloudPipelinesRun.examples.ts | 0 .../src/actions}/bitbucketCloudPipelinesRun.test.ts | 0 .../src/actions}/bitbucketCloudPipelinesRun.ts | 0 plugins/scaffolder-backend-module-bitbucket/src/actions/index.ts | 1 + 5 files changed, 1 insertion(+) rename plugins/{scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud => scaffolder-backend-module-bitbucket/src/actions}/bitbucketCloudPipelinesRun.examples.test.ts (100%) rename plugins/{scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud => scaffolder-backend-module-bitbucket/src/actions}/bitbucketCloudPipelinesRun.examples.ts (100%) rename plugins/{scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud => scaffolder-backend-module-bitbucket/src/actions}/bitbucketCloudPipelinesRun.test.ts (100%) rename plugins/{scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud => scaffolder-backend-module-bitbucket/src/actions}/bitbucketCloudPipelinesRun.ts (100%) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.test.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.examples.test.ts similarity index 100% rename from plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.test.ts rename to plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.examples.test.ts diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.examples.ts similarity index 100% rename from plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.examples.ts rename to plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.examples.ts diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.test.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.test.ts similarity index 100% rename from plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.test.ts rename to plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.test.ts diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts similarity index 100% rename from plugins/scaffolder-backend/src/scaffolder/actions/builtin/bitbucketCloud/bitbucketCloudPipelinesRun.ts rename to plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/index.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/index.ts index 1093b07785..9b009255fd 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/actions/index.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/index.ts @@ -17,3 +17,4 @@ export * from './bitbucket'; export * from './bitbucketCloud'; export * from './bitbucketServer'; export * from './bitbucketServerPullRequest'; +export { createBitbucketPipelinesRunAction } from './bitbucketCloudPipelinesRun'; From 8de491f77a56b7d747a5e2d83e5f7fc357406077 Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Tue, 19 Dec 2023 09:46:18 +0000 Subject: [PATCH 051/155] refactor(bitbucketCloudPipelinesRun): extracts out schema input properties Signed-off-by: Matthew Prinold --- .../src/actions/bitbucketCloudPipelinesRun.ts | 116 +------------- .../src/actions/inputProperties.ts | 148 ++++++++++++++++++ 2 files changed, 152 insertions(+), 112 deletions(-) create mode 100644 plugins/scaffolder-backend-module-bitbucket/src/actions/inputProperties.ts diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts index fa6043621d..d523cb6c6e 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts @@ -17,6 +17,7 @@ import { examples } from './bitbucketCloudPipelinesRun.examples'; import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; import fetch from 'node-fetch'; +import * as inputProps from './inputProperties'; const id = 'bitbucket:pipelines:run'; /** @@ -38,118 +39,9 @@ export const createBitbucketPipelinesRunAction = () => { type: 'object', required: ['workspace', 'repo_url'], properties: { - workspace: { - title: 'Workspace', - description: `This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example {workspace UUID}.`, - type: 'string', - }, - repo_slug: { - title: 'The repository', - description: 'The repository name', - type: 'string', - }, - body: { - title: '', - description: '', - type: 'object', - properties: { - target: { - title: 'target', - type: 'object', - properties: { - ref_type: { - title: 'ref_type', - type: 'string', - }, - type: { - title: 'type', - type: 'string', - }, - ref_name: { - title: 'ref_name', - type: 'string', - }, - source: { - title: 'source', - type: 'string', - }, - destination: { - title: 'destination', - type: 'string', - }, - destination_commit: { - title: 'destination_commit', - type: 'object', - properties: { - hash: { - title: 'hash', - type: 'string', - }, - }, - }, - commit: { - title: 'commit', - type: 'object', - properties: { - type: { - title: 'type', - type: 'string', - }, - hash: { - title: 'hash', - type: 'string', - }, - }, - }, - selector: { - title: 'selector', - type: 'object', - properties: { - type: { - title: 'type', - type: 'string', - }, - pattern: { - title: 'pattern', - type: 'string', - }, - }, - }, - pull_request: { - title: 'pull_request', - type: 'object', - properties: { - id: { - title: 'id', - type: 'string', - }, - }, - }, - }, - }, - variables: { - title: 'variables', - type: 'array', - items: { - type: 'object', - properties: { - key: { - title: 'key', - type: 'string', - }, - value: { - title: 'value', - type: 'string', - }, - secured: { - title: 'secured', - type: 'boolean', - }, - }, - }, - }, - }, - }, + workspace: inputProps.workspace, + repo_slug: inputProps.repo_slug, + body: inputProps.pipelinesRunBody, }, }, }, diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/inputProperties.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/inputProperties.ts new file mode 100644 index 0000000000..395c3f1c28 --- /dev/null +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/inputProperties.ts @@ -0,0 +1,148 @@ +/* + * Copyright 2021 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. + */ + +const workspace = { + title: 'Workspace', + description: `This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example {workspace UUID}.`, + type: 'string', +}; + +const repo_slug = { + title: 'The repository', + description: 'The repository name', + type: 'string', +}; + +const ref_type = { + title: 'ref_type', + type: 'string', +}; + +const type = { + title: 'type', + type: 'string', +}; + +const ref_name = { + title: 'ref_name', + type: 'string', +}; +const source = { + title: 'source', + type: 'string', +}; +const destination = { + title: 'destination', + type: 'string', +}; +const hash = { + title: 'hash', + type: 'string', +}; + +const pattern = { + title: 'pattern', + type: 'string', +}; + +const id = { + title: 'id', + type: 'string', +}; + +const key = { + title: 'key', + type: 'string', +}; +const value = { + title: 'value', + type: 'string', +}; +const secured = { + title: 'secured', + type: 'boolean', +}; + +const destination_commit = { + title: 'destination_commit', + type: 'object', + properties: { + hash, + }, +}; + +const commit = { + title: 'commit', + type: 'object', + properties: { + type, + hash, + }, +}; + +const selector = { + title: 'selector', + type: 'object', + properties: { + type, + pattern, + }, +}; + +const pull_request = { + title: 'pull_request', + type: 'object', + properties: { + id, + }, +}; + +const pipelinesRunBody = { + title: '', + description: '', + type: 'object', + properties: { + target: { + title: 'target', + type: 'object', + properties: { + ref_type, + type, + ref_name, + source, + destination, + destination_commit, + commit, + selector, + pull_request, + }, + }, + variables: { + title: 'variables', + type: 'array', + items: { + type: 'object', + properties: { + key, + value, + secured, + }, + }, + }, + }, +}; + +export { workspace, repo_slug, pipelinesRunBody }; From 315c1903c270ec6d3215897f63ce6ea42b527418 Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Tue, 19 Dec 2023 12:15:56 +0000 Subject: [PATCH 052/155] refactor(bitbucketCloud): extracts function getAuthorizationHeader into helper module Signed-off-by: Matthew Prinold --- .../src/actions/bitbucketCloud.ts | 24 +----------- .../src/actions/helpers.ts | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+), 23 deletions(-) create mode 100644 plugins/scaffolder-backend-module-bitbucket/src/actions/helpers.ts diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloud.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloud.ts index c69ae0b147..e9d815f5e8 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloud.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloud.ts @@ -25,6 +25,7 @@ import { import fetch, { Response, RequestInit } from 'node-fetch'; import { Config } from '@backstage/config'; +import { getAuthorizationHeader } from './helpers'; const createRepository = async (opts: { workspace: string; @@ -93,29 +94,6 @@ const createRepository = async (opts: { return { remoteUrl, repoContentsUrl }; }; -const getAuthorizationHeader = (config: { - username?: string; - appPassword?: string; - token?: string; -}) => { - if (config.username && config.appPassword) { - const buffer = Buffer.from( - `${config.username}:${config.appPassword}`, - 'utf8', - ); - - return `Basic ${buffer.toString('base64')}`; - } - - if (config.token) { - return `Bearer ${config.token}`; - } - - throw new Error( - `Authorization has not been provided for Bitbucket Cloud. Please add either username + appPassword to the Integrations config or a user login auth token`, - ); -}; - /** * Creates a new action that initializes a git repository of the content in the workspace * and publishes it to Bitbucket Cloud. diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/helpers.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/helpers.ts new file mode 100644 index 0000000000..efa6fd64f4 --- /dev/null +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/helpers.ts @@ -0,0 +1,38 @@ +/* + * Copyright 2021 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 const getAuthorizationHeader = (config: { + username?: string; + appPassword?: string; + token?: string; +}) => { + if (config.username && config.appPassword) { + const buffer = Buffer.from( + `${config.username}:${config.appPassword}`, + 'utf8', + ); + + return `Basic ${buffer.toString('base64')}`; + } + + if (config.token) { + return `Bearer ${config.token}`; + } + + throw new Error( + `Authorization has not been provided for Bitbucket Cloud. Please add either username + appPassword to the Integrations config or a user login auth token`, + ); +}; From 2db42a19df00674c21322022b8de51b148467443 Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Tue, 19 Dec 2023 12:18:11 +0000 Subject: [PATCH 053/155] feat(bitbucketCloudPipelinesRun): adds authorization headers and refactors tests to use msw Signed-off-by: Matthew Prinold --- ...itbucketCloudPipelinesRun.examples.test.ts | 441 ++++++++---------- .../bitbucketCloudPipelinesRun.test.ts | 106 ++--- .../src/actions/bitbucketCloudPipelinesRun.ts | 34 +- .../src/actions/inputProperties.ts | 8 +- 4 files changed, 262 insertions(+), 327 deletions(-) diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.examples.test.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.examples.test.ts index e53099eb2b..2296f5b5e8 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.examples.test.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.examples.test.ts @@ -15,313 +15,252 @@ */ import { getVoidLogger } from '@backstage/backend-common'; -import { createMockDirectory } from '@backstage/backend-test-utils'; -import { Writable } from 'stream'; -import { TemplateAction } from '@backstage/plugin-scaffolder-node'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { PassThrough } from 'stream'; import { createBitbucketPipelinesRunAction } from './bitbucketCloudPipelinesRun'; -import fetch from 'node-fetch'; import yaml from 'yaml'; import { examples } from './bitbucketCloudPipelinesRun.examples'; - -jest.mock('node-fetch'); -const { Response } = jest.requireActual('node-fetch'); - -const createdResponse = { - type: '', - uuid: '', - build_number: 33, - creator: { - type: '', - }, - repository: { - type: '', - }, - target: { - type: '', - }, - trigger: { - type: '', - }, - state: { - type: '', - }, - created_on: '', - completed_on: '', - build_seconds_used: 50, -}; +import { ConfigReader } from '@backstage/config'; +import { ScmIntegrations } from '@backstage/integration'; +import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; describe('bitbucket:pipelines:run', () => { - const logStream = { - write: jest.fn(), - } as jest.Mocked> as jest.Mocked; - const mockDir = createMockDirectory(); - const workspacePath = mockDir.resolve('workspace'); - let action: TemplateAction; + const config = new ConfigReader({ + integrations: { + bitbucketCloud: [ + { + username: 'u', + appPassword: 'p', + }, + ], + }, + }); + const integrations = ScmIntegrations.fromConfig(config); + const action = createBitbucketPipelinesRunAction({ integrations }); const mockContext = { input: {}, - baseUrl: 'somebase', - workspacePath, + workspacePath: 'wsp', logger: getVoidLogger(), - logStream, + logStream: new PassThrough(), output: jest.fn(), createTemporaryDirectory: jest.fn(), }; + const worker = setupServer(); + setupRequestMockHandlers(worker); beforeEach(() => { jest.resetAllMocks(); - action = createBitbucketPipelinesRunAction(); }); it('should trigger a pipeline for a branch', async () => { + expect.assertions(2); + worker.use( + rest.post( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + (req, res, ctx) => { + expect(req.headers.get('Authorization')).toBe('Basic dTpw'); + expect(req.body).toEqual({ + target: { + ref_type: 'branch', + type: 'pipeline_ref_target', + ref_name: 'master', + }, + }); + return res( + ctx.status(201), + ctx.set('Content-Type', 'application/json'), + ctx.json({}), + ); + }, + ), + ); const ctx = Object.assign({}, mockContext, { input: yaml.parse(examples[0].example).steps[0].input, }); - (fetch as jest.MockedFunction).mockResolvedValue( - new Response(JSON.stringify(createdResponse), { - url: 'url', - status: 201, - statusText: 'Created', - }), - ); await action.handler(ctx); - expect(fetch).toHaveBeenCalledWith( - 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', - { - body: JSON.stringify({ - target: { - ref_type: 'branch', - type: 'pipeline_ref_target', - ref_name: 'master', - }, - }), - headers: { - Accept: 'application/json', - Authorization: 'Bearer testToken', - 'Content-Type': 'application/json', - }, - method: 'POST', - }, - ); - expect(logStream.write).toHaveBeenCalledTimes(2); - expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); - expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); }); it('should trigger a pipeline for a commit on a branch', async () => { + expect.assertions(2); + worker.use( + rest.post( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + (req, res, ctx) => { + expect(req.headers.get('Authorization')).toBe('Basic dTpw'); + expect(req.body).toEqual({ + target: { + commit: { + type: 'commit', + hash: 'ce5b7431602f7cbba007062eeb55225c6e18e956', + }, + ref_type: 'branch', + type: 'pipeline_ref_target', + ref_name: 'master', + }, + }); + return res( + ctx.status(201), + ctx.set('Content-Type', 'application/json'), + ctx.json({}), + ); + }, + ), + ); const ctx = Object.assign({}, mockContext, { input: yaml.parse(examples[1].example).steps[0].input, }); - (fetch as jest.MockedFunction).mockResolvedValue( - new Response(JSON.stringify(createdResponse), { - url: 'url', - status: 201, - statusText: 'Created', - }), - ); await action.handler(ctx); - expect(fetch).toHaveBeenCalledWith( - 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', - { - body: JSON.stringify({ - target: { - commit: { - type: 'commit', - hash: 'ce5b7431602f7cbba007062eeb55225c6e18e956', - }, - ref_type: 'branch', - type: 'pipeline_ref_target', - ref_name: 'master', - }, - }), - headers: { - Accept: 'application/json', - Authorization: 'Bearer testToken', - 'Content-Type': 'application/json', - }, - method: 'POST', - }, - ); - expect(logStream.write).toHaveBeenCalledTimes(2); - expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); - expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); }); it('should trigger a specific pipeline definition for a commit', async () => { + expect.assertions(2); + worker.use( + rest.post( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + (req, res, ctx) => { + expect(req.headers.get('Authorization')).toBe('Basic dTpw'); + expect(req.body).toEqual({ + target: { + commit: { + type: 'commit', + hash: 'a3c4e02c9a3755eccdc3764e6ea13facdf30f923', + }, + selector: { + type: 'custom', + pattern: 'Deploy to production', + }, + type: 'pipeline_commit_target', + }, + }); + return res( + ctx.status(201), + ctx.set('Content-Type', 'application/json'), + ctx.json({}), + ); + }, + ), + ); const ctx = Object.assign({}, mockContext, { input: yaml.parse(examples[2].example).steps[0].input, }); - (fetch as jest.MockedFunction).mockResolvedValue( - new Response(JSON.stringify(createdResponse), { - url: 'url', - status: 201, - statusText: 'Created', - }), - ); await action.handler(ctx); - expect(fetch).toHaveBeenCalledWith( - 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', - { - body: JSON.stringify({ - target: { - commit: { - type: 'commit', - hash: 'a3c4e02c9a3755eccdc3764e6ea13facdf30f923', - }, - selector: { - type: 'custom', - pattern: 'Deploy to production', - }, - type: 'pipeline_commit_target', - }, - }), - headers: { - Accept: 'application/json', - Authorization: 'Bearer testToken', - 'Content-Type': 'application/json', - }, - method: 'POST', - }, - ); - expect(logStream.write).toHaveBeenCalledTimes(2); - expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); - expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); }); it('should trigger a specific pipeline definition for a commit on a branch or tag', async () => { + expect.assertions(2); + worker.use( + rest.post( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + (req, res, ctx) => { + expect(req.headers.get('Authorization')).toBe('Basic dTpw'); + expect(req.body).toEqual({ + target: { + commit: { + type: 'commit', + hash: 'a3c4e02c9a3755eccdc3764e6ea13facdf30f923', + }, + selector: { + type: 'custom', + pattern: 'Deploy to production', + }, + type: 'pipeline_ref_target', + ref_name: 'master', + ref_type: 'branch', + }, + }); + return res( + ctx.status(201), + ctx.set('Content-Type', 'application/json'), + ctx.json({}), + ); + }, + ), + ); const ctx = Object.assign({}, mockContext, { input: yaml.parse(examples[3].example).steps[0].input, }); - (fetch as jest.MockedFunction).mockResolvedValue( - new Response(JSON.stringify(createdResponse), { - url: 'url', - status: 201, - statusText: 'Created', - }), - ); await action.handler(ctx); - expect(fetch).toHaveBeenCalledWith( - 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', - { - body: JSON.stringify({ - target: { - commit: { - type: 'commit', - hash: 'a3c4e02c9a3755eccdc3764e6ea13facdf30f923', - }, - selector: { - type: 'custom', - pattern: 'Deploy to production', - }, - type: 'pipeline_ref_target', - ref_name: 'master', - ref_type: 'branch', - }, - }), - headers: { - Accept: 'application/json', - Authorization: 'Bearer testToken', - 'Content-Type': 'application/json', - }, - method: 'POST', - }, - ); - expect(logStream.write).toHaveBeenCalledTimes(2); - expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); - expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); }); it('should trigger a custom pipeline with variables', async () => { + expect.assertions(2); + worker.use( + rest.post( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + (req, res, ctx) => { + expect(req.headers.get('Authorization')).toBe('Basic dTpw'); + expect(req.body).toEqual({ + target: { + type: 'pipeline_ref_target', + ref_name: 'master', + ref_type: 'branch', + selector: { + type: 'custom', + pattern: 'Deploy to production', + }, + }, + variables: [ + { key: 'var1key', value: 'var1value', secured: true }, + { + key: 'var2key', + value: 'var2value', + }, + ], + }); + return res( + ctx.status(201), + ctx.set('Content-Type', 'application/json'), + ctx.json({}), + ); + }, + ), + ); const ctx = Object.assign({}, mockContext, { input: yaml.parse(examples[4].example).steps[0].input, }); - (fetch as jest.MockedFunction).mockResolvedValue( - new Response(JSON.stringify(createdResponse), { - url: 'url', - status: 201, - statusText: 'Created', - }), - ); await action.handler(ctx); - expect(fetch).toHaveBeenCalledWith( - 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', - { - body: JSON.stringify({ - target: { - type: 'pipeline_ref_target', - ref_name: 'master', - ref_type: 'branch', - selector: { - type: 'custom', - pattern: 'Deploy to production', - }, - }, - variables: [ - { key: 'var1key', value: 'var1value', secured: true }, - { - key: 'var2key', - value: 'var2value', - }, - ], - }), - headers: { - Accept: 'application/json', - Authorization: 'Bearer testToken', - 'Content-Type': 'application/json', - }, - method: 'POST', - }, - ); - expect(logStream.write).toHaveBeenCalledTimes(2); - expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); - expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); }); it('should trigger a pull request pipeline', async () => { + expect.assertions(2); + worker.use( + rest.post( + 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', + (req, res, ctx) => { + expect(req.headers.get('Authorization')).toBe('Basic dTpw'); + expect(req.body).toEqual({ + target: { + type: 'pipeline_pullrequest_target', + source: 'pull-request-branch', + destination: 'master', + destination_commit: { + hash: '9f848b7', + }, + commit: { + hash: '1a372fc', + }, + pull_request: { + id: '3', + }, + selector: { + type: 'pull-requests', + pattern: '**', + }, + }, + }); + return res( + ctx.status(201), + ctx.set('Content-Type', 'application/json'), + ctx.json({}), + ); + }, + ), + ); const ctx = Object.assign({}, mockContext, { input: yaml.parse(examples[5].example).steps[0].input, }); - (fetch as jest.MockedFunction).mockResolvedValue( - new Response(JSON.stringify(createdResponse), { - url: 'url', - status: 201, - statusText: 'Created', - }), - ); await action.handler(ctx); - expect(fetch).toHaveBeenCalledWith( - 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', - { - body: JSON.stringify({ - target: { - type: 'pipeline_pullrequest_target', - source: 'pull-request-branch', - destination: 'master', - destination_commit: { - hash: '9f848b7', - }, - commit: { - hash: '1a372fc', - }, - pull_request: { - id: '3', - }, - selector: { - type: 'pull-requests', - pattern: '**', - }, - }, - }), - headers: { - Accept: 'application/json', - Authorization: 'Bearer testToken', - 'Content-Type': 'application/json', - }, - method: 'POST', - }, - ); - expect(logStream.write).toHaveBeenCalledTimes(2); - expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); - expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); }); }); diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.test.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.test.ts index d5f9da2f5d..97cdc05d2f 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.test.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.test.ts @@ -15,90 +15,64 @@ */ import { getVoidLogger } from '@backstage/backend-common'; -import { createMockDirectory } from '@backstage/backend-test-utils'; -import { Writable } from 'stream'; -import { TemplateAction } from '@backstage/plugin-scaffolder-node'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; +import { PassThrough } from 'stream'; import { createBitbucketPipelinesRunAction } from './bitbucketCloudPipelinesRun'; -import fetch from 'node-fetch'; - -jest.mock('node-fetch'); -const { Response } = jest.requireActual('node-fetch'); - -const createdResponse = { - type: '', - uuid: '', - build_number: 33, - creator: { - type: '', - }, - repository: { - type: '', - }, - target: { - type: '', - }, - trigger: { - type: '', - }, - state: { - type: '', - }, - created_on: '', - completed_on: '', - build_seconds_used: 50, -}; +import { ConfigReader } from '@backstage/config'; +import { ScmIntegrations } from '@backstage/integration'; describe('bitbucket:pipelines:run', () => { - const logStream = { - write: jest.fn(), - } as jest.Mocked> as jest.Mocked; - const mockDir = createMockDirectory(); - const workspacePath = mockDir.resolve('workspace'); - let action: TemplateAction; + const config = new ConfigReader({ + integrations: { + bitbucketCloud: [ + { + username: 'u', + appPassword: 'p', + }, + ], + }, + }); + const integrations = ScmIntegrations.fromConfig(config); + const action = createBitbucketPipelinesRunAction({ integrations }); const mockContext = { input: {}, - baseUrl: 'somebase', - workspacePath, + workspacePath: 'wsp', logger: getVoidLogger(), - logStream, + logStream: new PassThrough(), output: jest.fn(), createTemporaryDirectory: jest.fn(), }; + const worker = setupServer(); + setupRequestMockHandlers(worker); beforeEach(() => { - jest.resetAllMocks(); - action = createBitbucketPipelinesRunAction(); + jest.clearAllMocks(); }); it('should call the bitbucket api for running a pipeline', async () => { + expect.assertions(1); const workspace = 'test-workspace'; const repo_slug = 'test-repo-slug'; - const ctx = Object.assign({}, mockContext, { + worker.use( + rest.post( + `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/pipelines`, + (req, res, ctx) => { + expect(req.headers.get('Authorization')).toBe('Basic dTpw'); + return res( + ctx.status(201), + ctx.set('Content-Type', 'application/json'), + ctx.json({}), + ); + }, + ), + ); + + const testContext = Object.assign({}, mockContext, { input: { workspace, repo_slug }, }); - (fetch as jest.MockedFunction).mockResolvedValue( - new Response(JSON.stringify(createdResponse), { - url: 'url', - status: 201, - statusText: 'Created', - }), - ); - await action.handler(ctx); - expect(fetch).toHaveBeenCalledWith( - 'https://api.bitbucket.org/2.0/repositories/test-workspace/test-repo-slug/pipelines', - { - body: {}, - headers: { - Accept: 'application/json', - Authorization: 'Bearer testToken', - 'Content-Type': 'application/json', - }, - method: 'POST', - }, - ); - expect(logStream.write).toHaveBeenCalledTimes(2); - expect(logStream.write).toHaveBeenNthCalledWith(1, 'Response: 201 Created'); - expect(logStream.write).toHaveBeenNthCalledWith(2, createdResponse); + await action.handler(testContext); }); }); diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts index d523cb6c6e..a8ad93ce9b 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts @@ -18,6 +18,9 @@ import { examples } from './bitbucketCloudPipelinesRun.examples'; import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; import fetch from 'node-fetch'; import * as inputProps from './inputProperties'; +import { ScmIntegrationRegistry } from '@backstage/integration'; +import { InputError } from '@backstage/errors'; +import { getAuthorizationHeader } from './helpers'; const id = 'bitbucket:pipelines:run'; /** @@ -25,11 +28,15 @@ const id = 'bitbucket:pipelines:run'; * * @public */ -export const createBitbucketPipelinesRunAction = () => { +export const createBitbucketPipelinesRunAction = (options: { + integrations: ScmIntegrationRegistry; +}) => { + const { integrations } = options; return createTemplateAction<{ workspace: string; repo_slug: string; body?: object; + token?: string; }>({ id, description: '', @@ -42,32 +49,41 @@ export const createBitbucketPipelinesRunAction = () => { workspace: inputProps.workspace, repo_slug: inputProps.repo_slug, body: inputProps.pipelinesRunBody, + token: inputProps.token, }, }, }, supportsDryRun: false, async handler(ctx) { - const { workspace, repo_slug, body } = ctx.input; + const { workspace, repo_slug, body, token } = ctx.input; + const host = 'bitbucket.org'; + const integrationConfig = integrations.bitbucketCloud.byHost(host); + if (!integrationConfig) { + throw new InputError( + `No matching integration configuration for host ${host}, please check your integrations config`, + ); + } + + const authorization = getAuthorizationHeader( + token ? { token } : integrationConfig.config, + ); + try { const response = await fetch( `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/pipelines`, { method: 'POST', headers: { - Authorization: 'Bearer testToken', + Authorization: authorization, Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify(body) ?? {}, }, ); - ctx.logStream.write( - `Response: ${response.status} ${response.statusText}`, - ); const data = await response.json(); - ctx.logStream.write(data); - } catch (err) { - ctx.logStream.write(err); + } catch (e) { + throw new Error(`Unable to run pipeline, ${e}`); } }, }); diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/inputProperties.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/inputProperties.ts index 395c3f1c28..1a4a845e63 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/actions/inputProperties.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/inputProperties.ts @@ -76,6 +76,12 @@ const secured = { type: 'boolean', }; +const token = { + title: 'Authentication Token', + type: 'string', + description: 'The token to use for authorization to BitBucket Cloud', +}; + const destination_commit = { title: 'destination_commit', type: 'object', @@ -145,4 +151,4 @@ const pipelinesRunBody = { }, }; -export { workspace, repo_slug, pipelinesRunBody }; +export { workspace, repo_slug, pipelinesRunBody, token }; From e7fc793e898de09879f0e11274ecc213f0c6feba Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Wed, 20 Dec 2023 11:34:01 +0000 Subject: [PATCH 054/155] feat(createBuiltinActions): adds bitbucket:pipelines:run action to built in actions Signed-off-by: Matthew Prinold --- ...itbucketCloudPipelinesRun.examples.test.ts | 20 +++-- .../bitbucketCloudPipelinesRun.test.ts | 86 ++++++++++++++++++- .../src/actions/bitbucketCloudPipelinesRun.ts | 51 ++++++++--- .../actions/builtin/createBuiltinActions.ts | 4 + 4 files changed, 139 insertions(+), 22 deletions(-) diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.examples.test.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.examples.test.ts index 2296f5b5e8..90ae2c08b9 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.examples.test.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.examples.test.ts @@ -47,6 +47,14 @@ describe('bitbucket:pipelines:run', () => { output: jest.fn(), createTemporaryDirectory: jest.fn(), }; + const responseJson = { + repository: { + links: { + html: { href: 'https://bitbucket.org/test-workspace/test-repo-slug' }, + }, + }, + build_number: 1, + }; const worker = setupServer(); setupRequestMockHandlers(worker); @@ -71,7 +79,7 @@ describe('bitbucket:pipelines:run', () => { return res( ctx.status(201), ctx.set('Content-Type', 'application/json'), - ctx.json({}), + ctx.json(responseJson), ); }, ), @@ -103,7 +111,7 @@ describe('bitbucket:pipelines:run', () => { return res( ctx.status(201), ctx.set('Content-Type', 'application/json'), - ctx.json({}), + ctx.json(responseJson), ); }, ), @@ -137,7 +145,7 @@ describe('bitbucket:pipelines:run', () => { return res( ctx.status(201), ctx.set('Content-Type', 'application/json'), - ctx.json({}), + ctx.json(responseJson), ); }, ), @@ -173,7 +181,7 @@ describe('bitbucket:pipelines:run', () => { return res( ctx.status(201), ctx.set('Content-Type', 'application/json'), - ctx.json({}), + ctx.json(responseJson), ); }, ), @@ -212,7 +220,7 @@ describe('bitbucket:pipelines:run', () => { return res( ctx.status(201), ctx.set('Content-Type', 'application/json'), - ctx.json({}), + ctx.json(responseJson), ); }, ), @@ -253,7 +261,7 @@ describe('bitbucket:pipelines:run', () => { return res( ctx.status(201), ctx.set('Content-Type', 'application/json'), - ctx.json({}), + ctx.json(responseJson), ); }, ), diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.test.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.test.ts index 97cdc05d2f..dc76a79898 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.test.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.test.ts @@ -45,6 +45,16 @@ describe('bitbucket:pipelines:run', () => { output: jest.fn(), createTemporaryDirectory: jest.fn(), }; + const workspace = 'test-workspace'; + const repo_slug = 'test-repo-slug'; + const responseJson = { + repository: { + links: { + html: { href: 'https://bitbucket.org/test-workspace/test-repo-slug' }, + }, + }, + build_number: 1, + }; const worker = setupServer(); setupRequestMockHandlers(worker); @@ -52,10 +62,27 @@ describe('bitbucket:pipelines:run', () => { jest.clearAllMocks(); }); - it('should call the bitbucket api for running a pipeline', async () => { + it('should throw if there is no integration credentials or token provided', async () => { + const configNoCreds = new ConfigReader({ + integrations: { + bitbucketCloud: [], + }, + }); + + const integrationsNoCreds = ScmIntegrations.fromConfig(configNoCreds); + const actionNoCreds = createBitbucketPipelinesRunAction({ + integrations: integrationsNoCreds, + }); + const testContext = Object.assign({}, mockContext, { + input: { workspace, repo_slug }, + }); + await expect(actionNoCreds.handler(testContext)).rejects.toThrow( + /Authorization has not been provided for Bitbucket Cloud/, + ); + }); + + it('should call the bitbucket api for running a pipeline with integration credentials', async () => { expect.assertions(1); - const workspace = 'test-workspace'; - const repo_slug = 'test-repo-slug'; worker.use( rest.post( `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/pipelines`, @@ -64,7 +91,7 @@ describe('bitbucket:pipelines:run', () => { return res( ctx.status(201), ctx.set('Content-Type', 'application/json'), - ctx.json({}), + ctx.json(responseJson), ); }, ), @@ -75,4 +102,55 @@ describe('bitbucket:pipelines:run', () => { }); await action.handler(testContext); }); + + it('should call the bitbucket api for running a pipeline with input token', async () => { + expect.assertions(1); + worker.use( + rest.post( + `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/pipelines`, + (req, res, ctx) => { + expect(req.headers.get('Authorization')).toBe('Bearer abc'); + return res( + ctx.status(201), + ctx.set('Content-Type', 'application/json'), + ctx.json(responseJson), + ); + }, + ), + ); + + const testContext = Object.assign({}, mockContext, { + input: { workspace, repo_slug, token: 'abc' }, + }); + await action.handler(testContext); + }); + + it('should call outputs with the correct data', async () => { + worker.use( + rest.post( + `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/pipelines`, + (_, res, ctx) => { + return res( + ctx.status(201), + ctx.set('Content-Type', 'application/json'), + ctx.json(responseJson), + ); + }, + ), + ); + + const testContext = Object.assign({}, mockContext, { + input: { workspace, repo_slug, token: 'abc' }, + }); + await action.handler(testContext); + expect(testContext.output).toHaveBeenCalledWith('buildNumber', 1); + expect(testContext.output).toHaveBeenCalledWith( + 'repoUrl', + 'https://bitbucket.org/test-workspace/test-repo-slug', + ); + expect(testContext.output).toHaveBeenCalledWith( + 'pipelinesUrl', + 'https://bitbucket.org/test-workspace/test-repo-slug/pipelines', + ); + }); }); diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts index a8ad93ce9b..594da76971 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts @@ -16,10 +16,9 @@ import { examples } from './bitbucketCloudPipelinesRun.examples'; import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; -import fetch from 'node-fetch'; +import fetch, { Response } from 'node-fetch'; import * as inputProps from './inputProperties'; import { ScmIntegrationRegistry } from '@backstage/integration'; -import { InputError } from '@backstage/errors'; import { getAuthorizationHeader } from './helpers'; const id = 'bitbucket:pipelines:run'; @@ -44,7 +43,7 @@ export const createBitbucketPipelinesRunAction = (options: { schema: { input: { type: 'object', - required: ['workspace', 'repo_url'], + required: ['workspace', 'repo_slug'], properties: { workspace: inputProps.workspace, repo_slug: inputProps.repo_slug, @@ -52,24 +51,36 @@ export const createBitbucketPipelinesRunAction = (options: { token: inputProps.token, }, }, + output: { + type: 'object', + properties: { + buildNumber: { + title: 'Build number', + type: 'number', + }, + repoUrl: { + title: 'A URL to the pipeline repositry', + type: 'string', + }, + repoContentsUrl: { + title: 'A URL to the pipeline', + type: 'string', + }, + }, + }, }, supportsDryRun: false, async handler(ctx) { const { workspace, repo_slug, body, token } = ctx.input; const host = 'bitbucket.org'; const integrationConfig = integrations.bitbucketCloud.byHost(host); - if (!integrationConfig) { - throw new InputError( - `No matching integration configuration for host ${host}, please check your integrations config`, - ); - } const authorization = getAuthorizationHeader( - token ? { token } : integrationConfig.config, + token ? { token } : integrationConfig!.config, ); - + let response: Response; try { - const response = await fetch( + response = await fetch( `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/pipelines`, { method: 'POST', @@ -81,10 +92,26 @@ export const createBitbucketPipelinesRunAction = (options: { body: JSON.stringify(body) ?? {}, }, ); - const data = await response.json(); } catch (e) { throw new Error(`Unable to run pipeline, ${e}`); } + + if (response.status !== 201) { + throw new Error( + `Unable to run pipeline, ${response.status} ${ + response.statusText + }, ${await response.text()}`, + ); + } + + const responseObject = await response.json(); + + ctx.output('buildNumber', responseObject.build_number); + ctx.output('repoUrl', responseObject.repository.links.html.href); + ctx.output( + 'pipelinesUrl', + `${responseObject.repository.links.html.href}/pipelines`, + ); }, }); }; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts index dfef2d3c92..a767b3cd17 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts @@ -60,6 +60,7 @@ import { createPublishBitbucketCloudAction, createPublishBitbucketServerAction, createPublishBitbucketServerPullRequestAction, + createBitbucketPipelinesRunAction, } from '@backstage/plugin-scaffolder-backend-module-bitbucket'; import { @@ -223,6 +224,9 @@ export const createBuiltinActions = ( integrations, githubCredentialsProvider, }), + createBitbucketPipelinesRunAction({ + integrations, + }), ]; return actions as TemplateAction[]; From 54a035bde1ebfdcba7ba62846be5d6a09950996b Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Wed, 20 Dec 2023 12:18:23 +0000 Subject: [PATCH 055/155] feat(InputProperties): updates descriptions and titles Signed-off-by: Matthew Prinold --- .../src/actions/inputProperties.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/inputProperties.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/inputProperties.ts index 1a4a845e63..d37426e982 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/actions/inputProperties.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/inputProperties.ts @@ -16,12 +16,12 @@ const workspace = { title: 'Workspace', - description: `This can either be the workspace ID (slug) or the workspace UUID surrounded by curly-braces, for example {workspace UUID}.`, + description: `The workspace name`, type: 'string', }; const repo_slug = { - title: 'The repository', + title: 'Repository name', description: 'The repository name', type: 'string', }; @@ -117,8 +117,9 @@ const pull_request = { }; const pipelinesRunBody = { - title: '', - description: '', + title: 'Request Body', + description: + 'Request body properties: see Bitbucket Cloud Rest API documentation for more details', type: 'object', properties: { target: { From 8d29882a7be8a621c178b072e501855066494630 Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Wed, 20 Dec 2023 13:16:28 +0000 Subject: [PATCH 056/155] chore(api-report): rebuilds api-report Signed-off-by: Matthew Prinold --- .../api-report.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/plugins/scaffolder-backend-module-bitbucket/api-report.md b/plugins/scaffolder-backend-module-bitbucket/api-report.md index 8e58c5fe7e..0f5f09b5b8 100644 --- a/plugins/scaffolder-backend-module-bitbucket/api-report.md +++ b/plugins/scaffolder-backend-module-bitbucket/api-report.md @@ -8,6 +8,19 @@ import { JsonObject } from '@backstage/types'; import { ScmIntegrationRegistry } from '@backstage/integration'; import { TemplateAction } from '@backstage/plugin-scaffolder-node'; +// @public +export const createBitbucketPipelinesRunAction: (options: { + integrations: ScmIntegrationRegistry; +}) => TemplateAction< + { + workspace: string; + repo_slug: string; + body?: object | undefined; + token?: string | undefined; + }, + JsonObject +>; + // @public @deprecated export function createPublishBitbucketAction(options: { integrations: ScmIntegrationRegistry; From a694f7188d78d28a5111638e7a481ae8ccf5e644 Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Wed, 20 Dec 2023 13:22:02 +0000 Subject: [PATCH 057/155] docs(Changeset): adds change set for new builtin action bitbucket:pipelines:run Signed-off-by: Matthew Prinold --- .changeset/green-dolphins-cover.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/green-dolphins-cover.md diff --git a/.changeset/green-dolphins-cover.md b/.changeset/green-dolphins-cover.md new file mode 100644 index 0000000000..cefd10e246 --- /dev/null +++ b/.changeset/green-dolphins-cover.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-scaffolder-backend-module-bitbucket': patch +'@backstage/plugin-scaffolder-backend': patch +--- + +The Scaffolder builtin actions now contains an action for running pipelines from Bitbucket Cloud Rest API From 0a36addbce6b35ea09185537c6bf5b3b96b89605 Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Wed, 3 Jan 2024 09:39:12 +0000 Subject: [PATCH 058/155] refactor(bitbucketCloudPipelineRun): updates description for the action Signed-off-by: Matthew Prinold --- .../src/actions/bitbucketCloudPipelinesRun.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts index 594da76971..c44fdcc824 100644 --- a/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts +++ b/plugins/scaffolder-backend-module-bitbucket/src/actions/bitbucketCloudPipelinesRun.ts @@ -38,7 +38,7 @@ export const createBitbucketPipelinesRunAction = (options: { token?: string; }>({ id, - description: '', + description: 'Run a bitbucket cloud pipeline', examples, schema: { input: { From 32aafe024e014cb404ba2de61b1ec5908f1cf0ee Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Thu, 4 Jan 2024 10:22:53 +0000 Subject: [PATCH 059/155] docs(changeset): updates changeset from patch to minor Signed-off-by: Matthew Prinold --- .changeset/green-dolphins-cover.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/green-dolphins-cover.md b/.changeset/green-dolphins-cover.md index cefd10e246..b990a2651a 100644 --- a/.changeset/green-dolphins-cover.md +++ b/.changeset/green-dolphins-cover.md @@ -1,6 +1,6 @@ --- -'@backstage/plugin-scaffolder-backend-module-bitbucket': patch -'@backstage/plugin-scaffolder-backend': patch +'@backstage/plugin-scaffolder-backend-module-bitbucket': minor +'@backstage/plugin-scaffolder-backend': minor --- The Scaffolder builtin actions now contains an action for running pipelines from Bitbucket Cloud Rest API From 4e1e124cc6b4d27b7d6a8e647dd48fbe67d4577f Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Thu, 4 Jan 2024 10:49:36 +0000 Subject: [PATCH 060/155] Revert "docs(changeset): updates changeset from patch to minor" This reverts commit 9766e3dfb65a552badf0ade43c9d1335aaa029a1. Signed-off-by: Matthew Prinold --- .changeset/green-dolphins-cover.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/green-dolphins-cover.md b/.changeset/green-dolphins-cover.md index b990a2651a..cefd10e246 100644 --- a/.changeset/green-dolphins-cover.md +++ b/.changeset/green-dolphins-cover.md @@ -1,6 +1,6 @@ --- -'@backstage/plugin-scaffolder-backend-module-bitbucket': minor -'@backstage/plugin-scaffolder-backend': minor +'@backstage/plugin-scaffolder-backend-module-bitbucket': patch +'@backstage/plugin-scaffolder-backend': patch --- The Scaffolder builtin actions now contains an action for running pipelines from Bitbucket Cloud Rest API From 2b1392cd3e55a8df771e5a39ae86d54b1b91e179 Mon Sep 17 00:00:00 2001 From: Matthew Prinold Date: Thu, 4 Jan 2024 10:52:11 +0000 Subject: [PATCH 061/155] docs(changeset): updates changeset from patch to minor for plugin-scaffolder-backend Signed-off-by: Matthew Prinold --- .changeset/green-dolphins-cover.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/green-dolphins-cover.md b/.changeset/green-dolphins-cover.md index cefd10e246..77c90e72f5 100644 --- a/.changeset/green-dolphins-cover.md +++ b/.changeset/green-dolphins-cover.md @@ -1,6 +1,6 @@ --- '@backstage/plugin-scaffolder-backend-module-bitbucket': patch -'@backstage/plugin-scaffolder-backend': patch +'@backstage/plugin-scaffolder-backend': minor --- The Scaffolder builtin actions now contains an action for running pipelines from Bitbucket Cloud Rest API From c01835945b63e3e49cb34641c9417048343c121f Mon Sep 17 00:00:00 2001 From: Adam Vollrath Date: Thu, 4 Jan 2024 10:59:41 -0600 Subject: [PATCH 062/155] Limit permissions of GHA token in Uffizzi second stage workflow. Signed-off-by: Adam Vollrath --- .github/workflows/uffizzi-preview.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/uffizzi-preview.yaml b/.github/workflows/uffizzi-preview.yaml index cd1f6f939c..93c42e6c71 100644 --- a/.github/workflows/uffizzi-preview.yaml +++ b/.github/workflows/uffizzi-preview.yaml @@ -12,6 +12,8 @@ jobs: name: Cache Manifests File runs-on: ubuntu-latest if: ${{ github.event.workflow_run.conclusion == 'success' }} + permissions: + actions: read outputs: manifests-cache-key: ${{ steps.hash.outputs.MANIFESTS_FILE_HASH }} git-ref: ${{ steps.event.outputs.GIT_REF }} @@ -84,14 +86,14 @@ jobs: cat event.json deploy-uffizzi-preview: - permissions: - contents: read - pull-requests: write - id-token: write name: Deploy to Uffizzi Virtual Cluster needs: - cache-manifests-file if: ${{ github.event.workflow_run.conclusion == 'success' && needs.cache-manifests-file.outputs.action != 'closed' }} + permissions: + contents: read + pull-requests: write + id-token: write runs-on: ubuntu-latest steps: - name: Checkout From 9f4cb8a8f797981b802aee49a5d0190deab5820f Mon Sep 17 00:00:00 2001 From: Adam Vollrath Date: Thu, 4 Jan 2024 11:18:53 -0600 Subject: [PATCH 063/155] Enforce harden-runner policy. Signed-off-by: Adam Vollrath --- .github/workflows/uffizzi-preview.yaml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/uffizzi-preview.yaml b/.github/workflows/uffizzi-preview.yaml index 93c42e6c71..c1659097a7 100644 --- a/.github/workflows/uffizzi-preview.yaml +++ b/.github/workflows/uffizzi-preview.yaml @@ -13,7 +13,9 @@ jobs: runs-on: ubuntu-latest if: ${{ github.event.workflow_run.conclusion == 'success' }} permissions: - actions: read + # "If you specify the access for any of these scopes, all of those that are not specified are set to none." + # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions + actions: read # Access cache outputs: manifests-cache-key: ${{ steps.hash.outputs.MANIFESTS_FILE_HASH }} git-ref: ${{ steps.event.outputs.GIT_REF }} @@ -23,7 +25,10 @@ jobs: - name: Harden Runner uses: step-security/harden-runner@eb238b55efaa70779f274895e782ed17c84f2895 # v2.6.1 with: - egress-policy: audit + disable-sudo: true + egress-policy: block + allowed-endpoints: > + api.github.com:443 - name: 'Download artifacts' # Fetch output (zip archive) from the workflow run that triggered this workflow. From b327d39483828495e4a19e326da31943b10771be Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Thu, 4 Jan 2024 10:39:12 -0600 Subject: [PATCH 064/155] Revert "[GitHub Issue Templates] Removed placeholder and moved text to description" Signed-off-by: Andre Wanlin --- .github/ISSUE_TEMPLATE/bug.yaml | 21 ++++++++++++++------- .github/ISSUE_TEMPLATE/feature.yaml | 5 ++++- .github/ISSUE_TEMPLATE/plugin.yaml | 5 ++++- .github/ISSUE_TEMPLATE/rfc.yaml | 12 ++++++++---- .github/ISSUE_TEMPLATE/ux_component.yaml | 13 ++++++++----- 5 files changed, 38 insertions(+), 18 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index 356faa81ea..57595621e4 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -13,29 +13,33 @@ body: required: true attributes: label: '📜 Description' - description: 'A clear and concise description of what the bug is. It bugs out when ...' + description: 'A clear and concise description of what the bug is.' + placeholder: 'It bugs out when ...' - type: textarea id: expected-behavior validations: required: true attributes: label: '👍 Expected behavior' - description: 'What did you think should happen? It should ...' + description: 'What did you think should happen?' + placeholder: 'It should ...' - type: textarea id: actual-behavior validations: required: true attributes: label: '👎 Actual Behavior with Screenshots' - description: 'What did actually happen? Add screenshots, if applicable. It actually ...' + description: 'What did actually happen? Add screenshots, if applicable.' + placeholder: 'It actually ...' - type: textarea id: steps-to-reproduce validations: required: true attributes: label: '👟 Reproduction steps' - description: 'How do you trigger this bug? Please walk us through it step by step. Provide a link to a live example, or an unambiguous set of steps to reproduce this bug. Include code or configuration to reproduce, if relevant.' - placeholder: "\n + description: 'How do you trigger this bug? Please walk us through it step by step.' + placeholder: + "Provide a link to a live example, or an unambiguous set of steps to reproduce this bug. Include code or configuration to reproduce, if relevant.\n 1. Go to '...'\n 2. Click on '....'\n 3. Scroll down to '....'" @@ -45,14 +49,17 @@ body: required: false attributes: label: '📃 Provide the context for the Bug.' - description: 'How has this issue affected you? What are you trying to accomplish? Providing context (e.g. links to configuration settings, stack trace or log data) helps us come up with a solution that is most useful in the real world.' + description: 'How has this issue affected you? What are you trying to accomplish?' + placeholder: 'Providing context (e.g. links to configuration settings, stack trace or log data) helps us come up with a solution that is most useful in the real world.' - type: textarea id: environment validations: required: false attributes: label: '🖥️ Your Environment' - description: 'Always provide output of `yarn backstage-cli info`; provide browser information when applicable. Include as many relevant details about the environment you experienced the bug in.' + description: 'Provide Browser Information + Provide Output of `yarn backstage-cli info`' + placeholder: 'Include as many relevant details about the environment you experienced the bug in.' - type: checkboxes id: no-duplicate-issues attributes: diff --git a/.github/ISSUE_TEMPLATE/feature.yaml b/.github/ISSUE_TEMPLATE/feature.yaml index 8b1a697351..b2d5a6be81 100644 --- a/.github/ISSUE_TEMPLATE/feature.yaml +++ b/.github/ISSUE_TEMPLATE/feature.yaml @@ -14,6 +14,7 @@ body: attributes: label: '🔖 Feature description' description: 'A clear and concise description of what the feature is.' + placeholder: 'You should add ...' - type: textarea id: context validations: @@ -21,11 +22,13 @@ body: attributes: label: '🎤 Context' description: 'Please explain why this feature should be implemented and how it would be used. Add examples, if applicable.' + placeholder: 'In my use-case, ...' - type: textarea id: implementation attributes: label: '✌️ Possible Implementation' - description: 'A clear and concise description of what you want to happen. Not obligatory, but ideas as to the implementation of the addition or change.' + description: 'A clear and concise description of what you want to happen.' + placeholder: 'Not obligatory, but ideas as to the implementation of the addition or change' - type: checkboxes id: no-duplicate-issues attributes: diff --git a/.github/ISSUE_TEMPLATE/plugin.yaml b/.github/ISSUE_TEMPLATE/plugin.yaml index f77076146c..a7f5216631 100644 --- a/.github/ISSUE_TEMPLATE/plugin.yaml +++ b/.github/ISSUE_TEMPLATE/plugin.yaml @@ -14,16 +14,19 @@ body: attributes: label: '🔖 Summary' description: 'Provide a general summary of the plugin and how it should work' + placeholder: 'You should add ...' - type: textarea id: website attributes: label: '🌐 Project website (if applicable)' description: 'Add a link to the open source project or product this plugin will integrate with, if existing' + placeholder: 'Website Link is ...' - type: textarea id: context attributes: label: '✌️ Context' - description: 'A clear and concise description about the Plugin and any additional context.' + description: 'A clear and concise description about the Plugin.' + placeholder: 'Providing additional context' - type: checkboxes id: no-duplicate-issues attributes: diff --git a/.github/ISSUE_TEMPLATE/rfc.yaml b/.github/ISSUE_TEMPLATE/rfc.yaml index eae85419e7..8e73992dc8 100644 --- a/.github/ISSUE_TEMPLATE/rfc.yaml +++ b/.github/ISSUE_TEMPLATE/rfc.yaml @@ -13,24 +13,28 @@ body: required: true attributes: label: '🔖 Need' - description: "Let us know why are you proposing this change. The problem we're trying to address and the benefits/impact we expect to get from this are ..." + description: 'Let us know why are you proposing this change' + placeholder: 'The problem we’re trying to address and the benefits/impact we expect to get from this are ...' - type: textarea id: proposal validations: required: true attributes: label: '🎉 Proposal' - description: 'Describe the proposal in as much detail as needed for reviewers to give concrete feedback. Take special care in this section to describe any implications on data privacy or security.' + description: 'Describe the proposal in as much detail as needed for reviewers to give concrete feedback.' + placeholder: 'Take special care in this section to describe any implications on data privacy or security.' - type: textarea id: alternatives attributes: label: '〽️ Alternatives' - description: 'What alternatives to the proposed solution were considered? What criteria/data was used to discard these?' + description: 'What alternatives to the proposed solution were considered?' + placeholder: 'What criteria/data was used to discard these?' - type: textarea id: risk attributes: label: '❌ Risks' - description: 'What other things happening could conflict or compete (for example for resources) with the proposal? What risk are there and how do we plan to handle them?' + description: 'What other things happening could conflict or compete (for example for resources) with the proposal?' + placeholder: 'What risk are there and how do we plan to handle them?' - type: checkboxes id: no-duplicate-issues attributes: diff --git a/.github/ISSUE_TEMPLATE/ux_component.yaml b/.github/ISSUE_TEMPLATE/ux_component.yaml index 97280b67bf..c528356eb3 100644 --- a/.github/ISSUE_TEMPLATE/ux_component.yaml +++ b/.github/ISSUE_TEMPLATE/ux_component.yaml @@ -6,34 +6,37 @@ body: - type: markdown attributes: value: | - We value your time and efforts to submit this UX Component form. 🙏 + We value your time and efforts to submit this RFC form. 🙏 - type: textarea id: ux-general validations: required: true attributes: label: '🔖 General' - description: | - 'Write a nice note to the community requesting the creation of a new component. Include an image of your component. Bonus points for a GIF!' + description: 'Write a nice note to the community requesting the creation of a new component.' + placeholder: 'Include an image of your component. Bonus points for a GIF!' - type: textarea id: usage validations: required: true attributes: label: '💻 Usage' - description: "Tell us what's the point of this component/pattern is. How does it help? How should it work? Any rules?" + description: "Tell us what's the point of this component/pattern is." + placeholder: 'How does it help? How should it work? Any rules?' - type: textarea id: specs validations: required: true attributes: label: '📐 Specs' - description: "Include images that detail the redlines for your component. Once we get our Figma workspace set up, we'll be posting the Figma files rather than doing specs by hand." + description: 'Include images that detail the redlines for your component.' + placeholder: "Once we get our Figma workspace set up, we'll be posting the Figma files rather than doing specs by hand." - type: textarea id: future attributes: label: '🔮 Future' description: 'List out any upcoming, exciting functionality for this component.' + placeholder: 'The component will have ...' - type: checkboxes id: no-duplicate-issues attributes: From ce30118cf04d4c081b01eaf4f99b26fb6b6843a4 Mon Sep 17 00:00:00 2001 From: bnechyporenko Date: Thu, 4 Jan 2024 15:18:03 +0100 Subject: [PATCH 065/155] Scaffolder: Fix for a step with no properties Signed-off-by: Bogdan Nechyporenko Signed-off-by: bnechyporenko --- .../src/next/hooks/useTemplateSchema.test.tsx | 112 ++++++++++++++++++ .../src/next/hooks/useTemplateSchema.ts | 4 +- 2 files changed, 114 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.test.tsx b/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.test.tsx index ac55d73a04..d1d86ab977 100644 --- a/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.test.tsx +++ b/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.test.tsx @@ -263,6 +263,118 @@ describe('useTemplateSchema', () => { expect(first.schema).toEqual({ type: 'object', + properties: {}, + }); + }); + + it('should deal with dependencies and oneOf options', () => { + const firstStepDependencies = { + preconditions: { + oneOf: [ + { + title: 'About', + description: 'you have chosen option A', + properties: { + preconditions: { + enum: ['optionA'], + }, + }, + }, + { + title: 'About', + description: 'you have chosen option B', + properties: { + preconditions: { + enum: ['optionB'], + }, + }, + }, + ], + }, + }; + + const secondStepDependencies = { + preconditions: { + oneOf: [ + { + required: ['inputA'], + properties: { + preconditions: { + enum: ['optionA'], + }, + inputA: { + title: 'Input A', + type: 'string', + }, + }, + }, + { + required: ['inputB'], + properties: { + preconditions: { + enum: ['optionB'], + }, + inputA: { + title: 'Input B', + type: 'string', + }, + }, + }, + ], + }, + }; + + const manifest: TemplateParameterSchema = { + title: 'Test Template', + description: 'Test Template Description', + steps: [ + { + title: 'First step', + schema: { + type: 'object', + properties: { + preconditions: { + title: 'Preconditions', + type: 'string', + description: 'Choose an option', + enum: ['optionA', 'optionB'], + enumNames: ['Option A', 'Option B'], + }, + }, + dependencies: firstStepDependencies, + }, + }, + { + title: 'Second step', + schema: { + dependencies: secondStepDependencies, + }, + }, + ], + }; + + const { result } = renderHook(() => useTemplateSchema(manifest), { + wrapper: ({ children }: React.PropsWithChildren<{}>) => ( + false }]]} + > + {children} + + ), + }); + + const [first, second] = result.current.steps; + + expect(first.schema).toEqual({ + dependencies: firstStepDependencies, + properties: expect.anything(), + title: undefined, + type: 'object', + }); + + expect(second.schema).toEqual({ + dependencies: secondStepDependencies, + title: undefined, }); }); }); diff --git a/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts b/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts index aa5cefbaec..af004910be 100644 --- a/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts +++ b/plugins/scaffolder-react/src/next/hooks/useTemplateSchema.ts @@ -69,9 +69,9 @@ export const useTemplateSchema = ( }, } as ParsedTemplateSchema; - if (step.schema?.properties) { + if (step.schema?.properties || !step.schema?.dependencies) { strippedSchema.schema.properties = Object.fromEntries( - Object.entries((step.schema?.properties ?? []) as JsonObject).filter( + Object.entries((step.schema?.properties ?? {}) as JsonObject).filter( ([key]) => { const stepFeatureFlag = step.uiSchema[key]?.['ui:backstage']?.featureFlag; From 0b9ce2b28100bb35e4b6e4821057e890147b1e8e Mon Sep 17 00:00:00 2001 From: bnechyporenko Date: Thu, 4 Jan 2024 15:38:14 +0100 Subject: [PATCH 066/155] Scaffolder: Fix for a step with no properties Signed-off-by: Bogdan Nechyporenko Signed-off-by: bnechyporenko --- .changeset/giant-fans-type.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/giant-fans-type.md diff --git a/.changeset/giant-fans-type.md b/.changeset/giant-fans-type.md new file mode 100644 index 0000000000..64f32423d5 --- /dev/null +++ b/.changeset/giant-fans-type.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-react': patch +--- + +Fix for a step with no properties From 4c03e905d284ff795746a615c9f3d1af610225d0 Mon Sep 17 00:00:00 2001 From: "manuel.falcon" Date: Fri, 5 Jan 2024 13:15:57 +0100 Subject: [PATCH 067/155] Changing minor for patch as sugested in PR Signed-off-by: manuel.falcon --- .changeset/brave-shirts-hang.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/brave-shirts-hang.md b/.changeset/brave-shirts-hang.md index 07aeb514da..4fa7e4ef77 100644 --- a/.changeset/brave-shirts-hang.md +++ b/.changeset/brave-shirts-hang.md @@ -1,5 +1,5 @@ --- -'@backstage/backend-common': minor +'@backstage/backend-common': patch --- Adding support for removing file from git index From a272d70367b66b46c7481c79198c3fb4efb2fca9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 16:13:21 +0000 Subject: [PATCH 068/155] chore(deps): update dependency @types/humanize-duration to v3.27.4 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 15212e967e..2f6945686e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18060,9 +18060,9 @@ __metadata: linkType: hard "@types/humanize-duration@npm:^3.18.1, @types/humanize-duration@npm:^3.25.1, @types/humanize-duration@npm:^3.27.1": - version: 3.27.3 - resolution: "@types/humanize-duration@npm:3.27.3" - checksum: 33a13bf6206a7708ed0cac83fa98e13314774ba4fd15ab19e454ef9e413d625e9e508ddcbfc32ee9b0093d938ad4a3aee764543b4edc0ebb05d62c1bbc363598 + version: 3.27.4 + resolution: "@types/humanize-duration@npm:3.27.4" + checksum: aa7fa41af839021c846a1728d2f097b7885f80acbc5050623a9804d23fd8fee19d2654eaae331f000a4e551b88d99cd0b5f6cc97aa99f869b9205f6248066827 languageName: node linkType: hard From e6276190adffe30c69665366adec369dc944ab0c Mon Sep 17 00:00:00 2001 From: knottAutodesk <143034967+knottAutodesk@users.noreply.github.com> Date: Sat, 6 Jan 2024 16:43:51 -0800 Subject: [PATCH 069/155] Update authorizing-parameters-steps-and-actions.md debug:log is causing markdown rendering issues - it should be enclosed in back-ticks. Signed-off-by: knottAutodesk <143034967+knottAutodesk@users.noreply.github.com> --- .../authorizing-parameters-steps-and-actions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/features/software-templates/authorizing-parameters-steps-and-actions.md b/docs/features/software-templates/authorizing-parameters-steps-and-actions.md index 1351676c37..27e8d48023 100644 --- a/docs/features/software-templates/authorizing-parameters-steps-and-actions.md +++ b/docs/features/software-templates/authorizing-parameters-steps-and-actions.md @@ -128,10 +128,10 @@ class ExamplePermissionPolicy implements PermissionPolicy { } ``` -With this permission policy, the user `spiderman` won't be able to execute the debug:log action. +With this permission policy, the user `spiderman` won't be able to execute the `debug:log` action. You can also restrict the input provided to the action by combining multiple rules. -In the example below, `spiderman` won't be able to execute debug:log when passing `{ "message": "not-this!" }` as action input: +In the example below, `spiderman` won't be able to execute `debug:log` when passing `{ "message": "not-this!" }` as action input: ```ts title="packages/backend/src/plugins/permission.ts" /* highlight-add-start */ From 4c1f50cbd2062ff7516887a6ab1d772d17728a14 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 7 Jan 2024 14:37:56 +0100 Subject: [PATCH 070/155] core-compat-api: wrap discovered elements with compatWrapper Signed-off-by: Patrik Oldsberg --- .changeset/brave-queens-crash.md | 5 +++++ .../src/collectLegacyRoutes.tsx | 19 +++++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 .changeset/brave-queens-crash.md diff --git a/.changeset/brave-queens-crash.md b/.changeset/brave-queens-crash.md new file mode 100644 index 0000000000..c28e5975f3 --- /dev/null +++ b/.changeset/brave-queens-crash.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-compat-api': patch +--- + +Make `convertLegacyApp` wrap discovered routes with `compatWrapper`. diff --git a/packages/core-compat-api/src/collectLegacyRoutes.tsx b/packages/core-compat-api/src/collectLegacyRoutes.tsx index b4af6ac01a..4d560b81d5 100644 --- a/packages/core-compat-api/src/collectLegacyRoutes.tsx +++ b/packages/core-compat-api/src/collectLegacyRoutes.tsx @@ -33,6 +33,7 @@ import { import React, { Children, ReactNode, isValidElement } from 'react'; import { Route, Routes } from 'react-router-dom'; import { convertLegacyRouteRef } from './convertLegacyRouteRef'; +import { compatWrapper } from './compatWrapper'; /* @@ -207,14 +208,16 @@ export function collectLegacyRoutes( }), }, loader: async () => - route.props.children ? ( - - - - - - ) : ( - routeElement + compatWrapper( + route.props.children ? ( + + + + + + ) : ( + routeElement + ), ), }), ); From 4e80771bc41789267cbb8c890fb293e13cc6f0ed Mon Sep 17 00:00:00 2001 From: buaydin <126671687+buaydin@users.noreply.github.com> Date: Mon, 8 Jan 2024 13:52:17 +0300 Subject: [PATCH 071/155] Update README.md missing ")" error TS1005: ')' expected Signed-off-by: buaydin <126671687+buaydin@users.noreply.github.com> --- plugins/sonarqube-backend/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sonarqube-backend/README.md b/plugins/sonarqube-backend/README.md index 1a1e2ae2dd..4eeac67498 100644 --- a/plugins/sonarqube-backend/README.md +++ b/plugins/sonarqube-backend/README.md @@ -12,7 +12,7 @@ In your `packages/backend/src/index.ts` make the following changes: import { createBackend } from '@backstage/backend-defaults'; const backend = createBackend(); // ... other feature additions -+ backend.add(import('@backstage/plugin-sonarqube-backend'); ++ backend.add(import('@backstage/plugin-sonarqube-backend')); backend.start(); ``` From 062b8f2611af29afbd497e69ea30aa0821ae2a00 Mon Sep 17 00:00:00 2001 From: rui ma Date: Mon, 8 Jan 2024 19:04:43 +0800 Subject: [PATCH 072/155] feat: Add permission check to Register Existing API button Signed-off-by: rui ma --- .changeset/clever-meals-drop.md | 5 +++++ plugins/api-docs/package.json | 2 ++ .../DefaultApiExplorerPage.test.tsx | 3 +++ .../ApiExplorerPage/DefaultApiExplorerPage.tsx | 15 +++++++++++---- yarn.lock | 2 ++ 5 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 .changeset/clever-meals-drop.md diff --git a/.changeset/clever-meals-drop.md b/.changeset/clever-meals-drop.md new file mode 100644 index 0000000000..63ceb1a4d3 --- /dev/null +++ b/.changeset/clever-meals-drop.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-api-docs': patch +--- + +Add permission check to Register Existing API button diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 8fedf41203..fb85bb9cc2 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -38,7 +38,9 @@ "@backstage/core-components": "workspace:^", "@backstage/core-plugin-api": "workspace:^", "@backstage/plugin-catalog": "workspace:^", + "@backstage/plugin-catalog-common": "workspace:^", "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/plugin-permission-react": "workspace:^", "@graphiql/react": "^0.20.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/plugins/api-docs/src/components/ApiExplorerPage/DefaultApiExplorerPage.test.tsx b/plugins/api-docs/src/components/ApiExplorerPage/DefaultApiExplorerPage.test.tsx index 6d0b191d68..7938770c4c 100644 --- a/plugins/api-docs/src/components/ApiExplorerPage/DefaultApiExplorerPage.test.tsx +++ b/plugins/api-docs/src/components/ApiExplorerPage/DefaultApiExplorerPage.test.tsx @@ -32,6 +32,7 @@ import { starredEntitiesApiRef, } from '@backstage/plugin-catalog-react'; import { + MockPermissionApi, MockStorageApi, TestApiProvider, renderInTestApp, @@ -41,6 +42,7 @@ import { screen, waitFor } from '@testing-library/react'; import React from 'react'; import { apiDocsConfigRef } from '../../config'; import { DefaultApiExplorerPage } from './DefaultApiExplorerPage'; +import { permissionApiRef } from '@backstage/plugin-permission-react'; describe('DefaultApiExplorerPage', () => { const catalogApi: Partial = { @@ -98,6 +100,7 @@ describe('DefaultApiExplorerPage', () => { new DefaultStarredEntitiesApi({ storageApi }), ], [apiDocsConfigRef, apiDocsConfig], + [permissionApiRef, new MockPermissionApi()], ]} > {children} diff --git a/plugins/api-docs/src/components/ApiExplorerPage/DefaultApiExplorerPage.tsx b/plugins/api-docs/src/components/ApiExplorerPage/DefaultApiExplorerPage.tsx index ad43205c5f..dc83c2528d 100644 --- a/plugins/api-docs/src/components/ApiExplorerPage/DefaultApiExplorerPage.tsx +++ b/plugins/api-docs/src/components/ApiExplorerPage/DefaultApiExplorerPage.tsx @@ -38,6 +38,8 @@ import { } from '@backstage/plugin-catalog-react'; import React from 'react'; import { registerComponentRouteRef } from '../../routes'; +import { usePermission } from '@backstage/plugin-permission-react'; +import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/alpha'; const defaultColumns: TableColumn[] = [ CatalogTable.columns.createTitleColumn({ hidden: true }), @@ -72,6 +74,9 @@ export const DefaultApiExplorerPage = (props: DefaultApiExplorerPageProps) => { configApi.getOptionalString('organization.name') ?? 'Backstage' } API Explorer`; const registerComponentLink = useRouteRef(registerComponentRouteRef); + const { allowed } = usePermission({ + permission: catalogEntityCreatePermission, + }); return ( { > - + {allowed && ( + + )} All your APIs diff --git a/yarn.lock b/yarn.lock index 15212e967e..94cbc813ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4553,7 +4553,9 @@ __metadata: "@backstage/core-plugin-api": "workspace:^" "@backstage/dev-utils": "workspace:^" "@backstage/plugin-catalog": "workspace:^" + "@backstage/plugin-catalog-common": "workspace:^" "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/plugin-permission-react": "workspace:^" "@backstage/test-utils": "workspace:^" "@graphiql/react": ^0.20.0 "@material-ui/core": ^4.12.2 From 4ffb18a5074d0a514f5a17526e73b6dd03771148 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 8 Jan 2024 12:13:44 +0100 Subject: [PATCH 073/155] core-compat-api: add test for legacy API access Signed-off-by: Patrik Oldsberg --- packages/core-compat-api/package.json | 1 + .../src/collectLegacyRoutes.test.tsx | 38 +++++++++++++++++++ yarn.lock | 1 + 3 files changed, 40 insertions(+) diff --git a/packages/core-compat-api/package.json b/packages/core-compat-api/package.json index 29f70aae68..f5de02c154 100644 --- a/packages/core-compat-api/package.json +++ b/packages/core-compat-api/package.json @@ -35,6 +35,7 @@ }, "devDependencies": { "@backstage/cli": "workspace:^", + "@backstage/frontend-app-api": "workspace:^", "@backstage/frontend-test-utils": "workspace:^", "@backstage/plugin-catalog": "workspace:^", "@backstage/plugin-puppetdb": "workspace:^", diff --git a/packages/core-compat-api/src/collectLegacyRoutes.test.tsx b/packages/core-compat-api/src/collectLegacyRoutes.test.tsx index ed6807514d..240aa33e2c 100644 --- a/packages/core-compat-api/src/collectLegacyRoutes.test.tsx +++ b/packages/core-compat-api/src/collectLegacyRoutes.test.tsx @@ -32,6 +32,14 @@ import { Route, Routes } from 'react-router-dom'; import { collectLegacyRoutes } from './collectLegacyRoutes'; // eslint-disable-next-line @backstage/no-relative-monorepo-imports import { toInternalBackstagePlugin } from '../../frontend-plugin-api/src/wiring/createPlugin'; +import { + createPlugin, + createRoutableExtension, + createRouteRef, + useApp, +} from '@backstage/core-plugin-api'; +import { createSpecializedApp } from '@backstage/frontend-app-api'; +import { render, screen } from '@testing-library/react'; describe('collectLegacyRoutes', () => { it('should collect legacy routes', () => { @@ -241,4 +249,34 @@ describe('collectLegacyRoutes', () => { }, ]); }); + + it('should make legacy APIs available', async () => { + const plugin = createPlugin({ + id: 'test', + }); + const routeRef = createRouteRef({ id: 'test' }); + const Page = plugin.provide( + createRoutableExtension({ + name: 'Test', + mountPoint: routeRef, + component: () => + Promise.resolve(() => { + const app = useApp(); + return
plugins: {app.getPlugins().map(p => p.getId())}
; + }), + }), + ); + + const features = collectLegacyRoutes( + + } /> + , + ); + + render(createSpecializedApp({ features }).createRoot()); + + await expect( + screen.findByText('plugins: test'), + ).resolves.toBeInTheDocument(); + }); }); diff --git a/yarn.lock b/yarn.lock index 15212e967e..53d8974d6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3797,6 +3797,7 @@ __metadata: "@backstage/cli": "workspace:^" "@backstage/core-app-api": "workspace:^" "@backstage/core-plugin-api": "workspace:^" + "@backstage/frontend-app-api": "workspace:^" "@backstage/frontend-plugin-api": "workspace:^" "@backstage/frontend-test-utils": "workspace:^" "@backstage/plugin-catalog": "workspace:^" From 53445cd72f0bcda06ee66dab8f086e939bb320aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 8 Jan 2024 13:43:56 +0100 Subject: [PATCH 074/155] add changeset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/chatty-rivers-hope.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/chatty-rivers-hope.md diff --git a/.changeset/chatty-rivers-hope.md b/.changeset/chatty-rivers-hope.md new file mode 100644 index 0000000000..97fdd644fe --- /dev/null +++ b/.changeset/chatty-rivers-hope.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-sonarqube-backend': patch +--- + +Updated README From d5ddc4e4672921b41b0cd8935a7d833fa84d7819 Mon Sep 17 00:00:00 2001 From: Patrick Jungermann Date: Tue, 9 Jan 2024 01:28:55 +0100 Subject: [PATCH 075/155] docs(events): add docs for new backend system Add documentation on how to install the plugins with the new backend system. Signed-off-by: Patrick Jungermann --- .changeset/stale-cars-attack.md | 6 +++++ .../events-backend-module-aws-sqs/README.md | 4 ++++ plugins/events-backend/README.md | 24 ++++++++++++------- 3 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 .changeset/stale-cars-attack.md diff --git a/.changeset/stale-cars-attack.md b/.changeset/stale-cars-attack.md new file mode 100644 index 0000000000..431cc9232c --- /dev/null +++ b/.changeset/stale-cars-attack.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-events-backend-module-aws-sqs': patch +'@backstage/plugin-events-backend': patch +--- + +Add documentation on how to install the plugins with the new backend system. diff --git a/plugins/events-backend-module-aws-sqs/README.md b/plugins/events-backend-module-aws-sqs/README.md index cb3a5045c0..397de35c10 100644 --- a/plugins/events-backend-module-aws-sqs/README.md +++ b/plugins/events-backend-module-aws-sqs/README.md @@ -40,3 +40,7 @@ events: # From your Backstage root directory yarn add --cwd packages/backend @backstage/plugin-events-backend-module-aws-sqs ``` + +```ts title="packages/backend/src/index.ts" +backend.add(import('@backstage/plugin-events-backend-module-aws-sqs/alpha')); +``` diff --git a/plugins/events-backend/README.md b/plugins/events-backend/README.md index 29c420cef2..6fa02a7e6a 100644 --- a/plugins/events-backend/README.md +++ b/plugins/events-backend/README.md @@ -24,7 +24,15 @@ to the used event broker. yarn add --cwd packages/backend @backstage/plugin-events-backend @backstage/plugin-events-node ``` -### Event Broker +### Add to backend + +```ts title="packages/backend/src/index.ts" +backend.add(import('@backstage/plugin-events-backend/alpha')); +``` + +### Add to backend (old) + +#### Event Broker First you will need to add and implementation of the `EventBroker` interface to the backend plugin environment. This will allow event broker instance any backend plugins to publish and subscribe to events in order to communicate @@ -44,7 +52,7 @@ Then update plugin environment to include the event broker. + eventBroker: EventBroker; ``` -### Publishing and Subscribing to events with the broker +#### Publishing and Subscribing to events with the broker Backend plugins are passed the event broker in the plugin environment at startup of the application. The plugin can make use of this to communicate between parts of the application. @@ -80,27 +88,27 @@ export default async function createPlugin( } ``` -### Implementing an `EventSubscriber` class +#### Implementing an `EventSubscriber` class More complex solutions might need the creation of a class that implements the `EventSubscriber` interface. e.g. ```typescript jsx -import { EventSubscriber } from "./EventSubscriber"; +import { EventSubscriber } from './EventSubscriber'; class ExampleSubscriber implements EventSubscriber { - ... + // ... supportsEventTopics() { - return ['publish.example'] + return ['publish.example']; } async onEvent(params: EventParams) { - env.logger.info(`receieved ${params.topic} event`) + env.logger.info(`receieved ${params.topic} event`); } } ``` -### Events Backend +#### Events Backend The events backend plugin provides a router to handler http events and publish the http requests onto the event broker. From af76a957ba9f549e5cbb9cfbd188b3ce33758ea8 Mon Sep 17 00:00:00 2001 From: Patrick Jungermann Date: Tue, 9 Jan 2024 01:31:49 +0100 Subject: [PATCH 076/155] feat(events): add default exports for new backend system Add default exports for event modules to be used with the new backend system as well as documentation on how to install. Signed-off-by: Patrick Jungermann --- .changeset/odd-ligers-return.md | 7 +++++++ plugins/events-backend-module-azure/README.md | 8 ++++++++ .../events-backend-module-azure/api-report-alpha.md | 4 +++- plugins/events-backend-module-azure/src/alpha.ts | 1 + .../events-backend-module-bitbucket-cloud/README.md | 10 ++++++++++ .../api-report-alpha.md | 4 +++- .../events-backend-module-bitbucket-cloud/src/alpha.ts | 1 + plugins/events-backend-module-gerrit/README.md | 8 ++++++++ .../events-backend-module-gerrit/api-report-alpha.md | 4 +++- plugins/events-backend-module-gerrit/src/alpha.ts | 1 + 10 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 .changeset/odd-ligers-return.md diff --git a/.changeset/odd-ligers-return.md b/.changeset/odd-ligers-return.md new file mode 100644 index 0000000000..6b7cdff593 --- /dev/null +++ b/.changeset/odd-ligers-return.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-events-backend-module-bitbucket-cloud': patch +'@backstage/plugin-events-backend-module-gerrit': patch +'@backstage/plugin-events-backend-module-azure': patch +--- + +Add default exports for the new backend system and documentation. diff --git a/plugins/events-backend-module-azure/README.md b/plugins/events-backend-module-azure/README.md index 26bffbc45d..457fd81fbc 100644 --- a/plugins/events-backend-module-azure/README.md +++ b/plugins/events-backend-module-azure/README.md @@ -31,6 +31,14 @@ Install this module: yarn add --cwd packages/backend @backstage/plugin-events-backend-module-azure ``` +### Add to backend + +```ts title="packages/backend/src/index.ts" +backend.add(import('@backstage/plugin-events-backend-module-azure/alpha')); +``` + +### Add to backend (old) + Add the event router to the `EventsBackend` instance in `packages/backend/src/plugins/events.ts`: ```diff diff --git a/plugins/events-backend-module-azure/api-report-alpha.md b/plugins/events-backend-module-azure/api-report-alpha.md index 1bd568d1df..d07f8852f3 100644 --- a/plugins/events-backend-module-azure/api-report-alpha.md +++ b/plugins/events-backend-module-azure/api-report-alpha.md @@ -6,7 +6,9 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleAzureDevOpsEventRouter: () => BackendFeature; +const eventsModuleAzureDevOpsEventRouter: () => BackendFeature; +export default eventsModuleAzureDevOpsEventRouter; +export { eventsModuleAzureDevOpsEventRouter }; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-azure/src/alpha.ts b/plugins/events-backend-module-azure/src/alpha.ts index 07334fcbda..4de53df42a 100644 --- a/plugins/events-backend-module-azure/src/alpha.ts +++ b/plugins/events-backend-module-azure/src/alpha.ts @@ -15,3 +15,4 @@ */ export { eventsModuleAzureDevOpsEventRouter } from './service/eventsModuleAzureDevOpsEventRouter'; +export { eventsModuleAzureDevOpsEventRouter as default } from './service/eventsModuleAzureDevOpsEventRouter'; diff --git a/plugins/events-backend-module-bitbucket-cloud/README.md b/plugins/events-backend-module-bitbucket-cloud/README.md index 60fdf52af9..d70a70c87e 100644 --- a/plugins/events-backend-module-bitbucket-cloud/README.md +++ b/plugins/events-backend-module-bitbucket-cloud/README.md @@ -31,6 +31,16 @@ Install this module: yarn add --cwd packages/backend @backstage/plugin-events-backend-module-bitbucket-cloud ``` +### Add to backend + +```ts title="packages/backend/src/index.ts" +backend.add( + import('@backstage/plugin-events-backend-module-bitbucket-cloud/alpha'), +); +``` + +### Add to backend (old) + Add the event router to the `EventsBackend` instance in `packages/backend/src/plugins/events.ts`: ```diff diff --git a/plugins/events-backend-module-bitbucket-cloud/api-report-alpha.md b/plugins/events-backend-module-bitbucket-cloud/api-report-alpha.md index 5e63ae36c8..fa7cdfa9f6 100644 --- a/plugins/events-backend-module-bitbucket-cloud/api-report-alpha.md +++ b/plugins/events-backend-module-bitbucket-cloud/api-report-alpha.md @@ -6,7 +6,9 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleBitbucketCloudEventRouter: () => BackendFeature; +const eventsModuleBitbucketCloudEventRouter: () => BackendFeature; +export default eventsModuleBitbucketCloudEventRouter; +export { eventsModuleBitbucketCloudEventRouter }; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-bitbucket-cloud/src/alpha.ts b/plugins/events-backend-module-bitbucket-cloud/src/alpha.ts index 75cda4327d..1f0e09a653 100644 --- a/plugins/events-backend-module-bitbucket-cloud/src/alpha.ts +++ b/plugins/events-backend-module-bitbucket-cloud/src/alpha.ts @@ -15,3 +15,4 @@ */ export { eventsModuleBitbucketCloudEventRouter } from './service/eventsModuleBitbucketCloudEventRouter'; +export { eventsModuleBitbucketCloudEventRouter as default } from './service/eventsModuleBitbucketCloudEventRouter'; diff --git a/plugins/events-backend-module-gerrit/README.md b/plugins/events-backend-module-gerrit/README.md index 1808ef46ba..34b2d154be 100644 --- a/plugins/events-backend-module-gerrit/README.md +++ b/plugins/events-backend-module-gerrit/README.md @@ -30,6 +30,14 @@ Install this module: yarn add --cwd packages/backend @backstage/plugin-events-backend-module-gerrit ``` +### Add to backend + +```ts title="packages/backend/src/index.ts" +backend.add(import('@backstage/plugin-events-backend-module-gerrit/alpha')); +``` + +### Add to backend (old) + Add the event router to the `EventsBackend` instance in `packages/backend/src/plugins/events.ts`: ```diff diff --git a/plugins/events-backend-module-gerrit/api-report-alpha.md b/plugins/events-backend-module-gerrit/api-report-alpha.md index d1be54730f..66dea72747 100644 --- a/plugins/events-backend-module-gerrit/api-report-alpha.md +++ b/plugins/events-backend-module-gerrit/api-report-alpha.md @@ -6,7 +6,9 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleGerritEventRouter: () => BackendFeature; +const eventsModuleGerritEventRouter: () => BackendFeature; +export default eventsModuleGerritEventRouter; +export { eventsModuleGerritEventRouter }; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-gerrit/src/alpha.ts b/plugins/events-backend-module-gerrit/src/alpha.ts index 788331b998..9c1eea0b75 100644 --- a/plugins/events-backend-module-gerrit/src/alpha.ts +++ b/plugins/events-backend-module-gerrit/src/alpha.ts @@ -15,3 +15,4 @@ */ export { eventsModuleGerritEventRouter } from './service/eventsModuleGerritEventRouter'; +export { eventsModuleGerritEventRouter as default } from './service/eventsModuleGerritEventRouter'; From 4ebf99beb4d1149b9889bb462f74cbd44c89dcba Mon Sep 17 00:00:00 2001 From: Patrick Jungermann Date: Sun, 7 Jan 2024 01:07:04 +0100 Subject: [PATCH 077/155] feat(catalog): support new backend system at catalog-backend-module-openapi Add the backend module `catalogModuleJsonSchemaRefPlaceholderResolver` that registers the `jsonSchemaRefPlaceholderResolver` for the keys `asyncapi` (usable as `$asyncapi`) and `openapi` (usable as `$openapi`). Signed-off-by: Patrick Jungermann --- .changeset/great-adults-begin.md | 14 +++++ .../catalog-backend-module-openapi/README.md | 27 ++++++++++ .../api-report.md | 5 ++ .../package.json | 1 + .../src/index.ts | 3 ++ ...leJsonSchemaRefPlaceholderResolver.test.ts | 54 +++++++++++++++++++ ...gModuleJsonSchemaRefPlaceholderResolver.ts | 48 +++++++++++++++++ .../src/module/index.ts | 17 ++++++ yarn.lock | 1 + 9 files changed, 170 insertions(+) create mode 100644 .changeset/great-adults-begin.md create mode 100644 plugins/catalog-backend-module-openapi/src/module/catalogModuleJsonSchemaRefPlaceholderResolver.test.ts create mode 100644 plugins/catalog-backend-module-openapi/src/module/catalogModuleJsonSchemaRefPlaceholderResolver.ts create mode 100644 plugins/catalog-backend-module-openapi/src/module/index.ts diff --git a/.changeset/great-adults-begin.md b/.changeset/great-adults-begin.md new file mode 100644 index 0000000000..697613afc0 --- /dev/null +++ b/.changeset/great-adults-begin.md @@ -0,0 +1,14 @@ +--- +'@backstage/plugin-catalog-backend-module-openapi': patch +--- + +Add support for the new backend system. + +A new backend module for the catalog backend +was added and exported as `default`. + +You can use it with the new backend system like + +```ts title="packages/backend/src/index.ts" +backend.add(import('@backstage/plugin-catalog-backend-module-openapi')); +``` diff --git a/plugins/catalog-backend-module-openapi/README.md b/plugins/catalog-backend-module-openapi/README.md index 6b988e15f5..6a8028895d 100644 --- a/plugins/catalog-backend-module-openapi/README.md +++ b/plugins/catalog-backend-module-openapi/README.md @@ -17,6 +17,33 @@ yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-openapi ### Adding the plugin to your `packages/backend` +```ts title="packages/backend/src/index.ts" +backend.add(import('@backstage/plugin-catalog-backend-module-openapi')); +``` + +This will add the `jsonSchemaRefPlaceholderResolver` for +the placeholder resolver keys `asyncapi` and `openapi`. + +This allows you to use the `$openapi` placeholder when referencing your OpenAPI specification and `$asyncapi` when referencing your AsyncAPI specifications. This will then resolve all `$ref` instances in your specification. + +You can also use this resolver for other kind of yaml files to resolve $ref pointer. + +```yaml +apiVersion: backstage.io/v1alpha1 +kind: API +metadata: + name: example + description: Example API +spec: + type: openapi + lifecycle: production + owner: team + definition: + $openapi: ./spec/openapi.yaml # by using $openapi Backstage will now resolve all $ref instances +``` + +### Adding the plugin to your `packages/backend` (old backend system) + #### **jsonSchemaRefPlaceholderResolver** The placeholder resolver can be added by importing `jsonSchemaRefPlaceholderResolver` in `src/plugins/catalog.ts` in your `backend` package and adding the following. diff --git a/plugins/catalog-backend-module-openapi/api-report.md b/plugins/catalog-backend-module-openapi/api-report.md index 455816645a..206cfac291 100644 --- a/plugins/catalog-backend-module-openapi/api-report.md +++ b/plugins/catalog-backend-module-openapi/api-report.md @@ -3,6 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogProcessor } from '@backstage/plugin-catalog-node'; import { Config } from '@backstage/config'; import { Entity } from '@backstage/catalog-model'; @@ -13,6 +14,10 @@ import { PlaceholderResolverParams } from '@backstage/plugin-catalog-backend'; import { ScmIntegrations } from '@backstage/integration'; import { UrlReader } from '@backstage/backend-common'; +// @public +const catalogModuleJsonSchemaRefPlaceholderResolver: () => BackendFeature; +export default catalogModuleJsonSchemaRefPlaceholderResolver; + // @public (undocumented) export function jsonSchemaRefPlaceholderResolver( params: PlaceholderResolverParams, diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 495d5f4f0d..ab6ca057c7 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -34,6 +34,7 @@ "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.6", "@backstage/backend-common": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", "@backstage/catalog-model": "workspace:^", "@backstage/config": "workspace:^", "@backstage/integration": "workspace:^", diff --git a/plugins/catalog-backend-module-openapi/src/index.ts b/plugins/catalog-backend-module-openapi/src/index.ts index 170c925a7f..70ab88c2ff 100644 --- a/plugins/catalog-backend-module-openapi/src/index.ts +++ b/plugins/catalog-backend-module-openapi/src/index.ts @@ -22,3 +22,6 @@ export { jsonSchemaRefPlaceholderResolver } from './jsonSchemaRefPlaceholderReso * @deprecated replaced by jsonSchemaRefPlaceholderResolver */ export const openApiPlaceholderResolver = jsonSchemaRefPlaceholderResolver; + +export * from './module'; +export { default } from './module'; diff --git a/plugins/catalog-backend-module-openapi/src/module/catalogModuleJsonSchemaRefPlaceholderResolver.test.ts b/plugins/catalog-backend-module-openapi/src/module/catalogModuleJsonSchemaRefPlaceholderResolver.test.ts new file mode 100644 index 0000000000..cfea25341e --- /dev/null +++ b/plugins/catalog-backend-module-openapi/src/module/catalogModuleJsonSchemaRefPlaceholderResolver.test.ts @@ -0,0 +1,54 @@ +/* + * Copyright 2024 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 { startTestBackend } from '@backstage/backend-test-utils'; +import { PlaceholderResolver } from '@backstage/plugin-catalog-node'; +import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; +import { catalogModuleJsonSchemaRefPlaceholderResolver } from './catalogModuleJsonSchemaRefPlaceholderResolver'; +import { jsonSchemaRefPlaceholderResolver } from '../jsonSchemaRefPlaceholderResolver'; + +describe('catalogModuleJsonSchemaRefPlaceholderResolver', () => { + it('should register provider at the catalog extension point', async () => { + const registeredPlaceholderResolvers: { + [key: string]: PlaceholderResolver; + } = {}; + + const extensionPoint = { + addPlaceholderResolver: ( + key: string, + resolver: PlaceholderResolver, + ): void => { + registeredPlaceholderResolvers[key] = resolver; + }, + }; + + await startTestBackend({ + extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], + features: [catalogModuleJsonSchemaRefPlaceholderResolver()], + }); + + expect(Object.keys(registeredPlaceholderResolvers)).toEqual([ + 'asyncapi', + 'openapi', + ]); + expect(registeredPlaceholderResolvers.asyncapi).toBe( + jsonSchemaRefPlaceholderResolver, + ); + expect(registeredPlaceholderResolvers.openapi).toBe( + jsonSchemaRefPlaceholderResolver, + ); + }); +}); diff --git a/plugins/catalog-backend-module-openapi/src/module/catalogModuleJsonSchemaRefPlaceholderResolver.ts b/plugins/catalog-backend-module-openapi/src/module/catalogModuleJsonSchemaRefPlaceholderResolver.ts new file mode 100644 index 0000000000..053951866a --- /dev/null +++ b/plugins/catalog-backend-module-openapi/src/module/catalogModuleJsonSchemaRefPlaceholderResolver.ts @@ -0,0 +1,48 @@ +/* + * Copyright 2024 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 { createBackendModule } from '@backstage/backend-plugin-api'; +import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; +import { jsonSchemaRefPlaceholderResolver } from '../jsonSchemaRefPlaceholderResolver'; + +/** + * Registers the jsonSchemaRefPlaceholderResolver + * as placeholder resolver for `$asyncapi` and `$openapi`. + * + * @public + */ +export const catalogModuleJsonSchemaRefPlaceholderResolver = + createBackendModule({ + pluginId: 'catalog', + moduleId: 'json-schema-ref-placeholder-resolver', + register(env) { + env.registerInit({ + deps: { + catalog: catalogProcessingExtensionPoint, + }, + async init({ catalog }) { + catalog.addPlaceholderResolver( + 'asyncapi', + jsonSchemaRefPlaceholderResolver, + ); + catalog.addPlaceholderResolver( + 'openapi', + jsonSchemaRefPlaceholderResolver, + ); + }, + }); + }, + }); diff --git a/plugins/catalog-backend-module-openapi/src/module/index.ts b/plugins/catalog-backend-module-openapi/src/module/index.ts new file mode 100644 index 0000000000..b914472c8d --- /dev/null +++ b/plugins/catalog-backend-module-openapi/src/module/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2024 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 { catalogModuleJsonSchemaRefPlaceholderResolver as default } from './catalogModuleJsonSchemaRefPlaceholderResolver'; diff --git a/yarn.lock b/yarn.lock index 15212e967e..fefcd817a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5544,6 +5544,7 @@ __metadata: dependencies: "@apidevtools/json-schema-ref-parser": ^9.0.6 "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-test-utils": "workspace:^" "@backstage/catalog-model": "workspace:^" "@backstage/cli": "workspace:^" From 516fd3e91862ab86a265100fada6f247d183f92e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 9 Jan 2024 08:40:26 +0100 Subject: [PATCH 078/155] updated backend/frontend system readme files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/quiet-oranges-bake.md | 11 +++++++++++ packages/backend-app-api/README.md | 4 +--- packages/backend-defaults/README.md | 2 -- packages/backend-dev-utils/README.md | 2 -- packages/backend-next/README.md | 2 +- packages/backend-plugin-api/README.md | 4 +--- packages/frontend-app-api/README.md | 4 ++-- packages/frontend-plugin-api/README.md | 4 ++-- packages/frontend-test-utils/README.md | 2 ++ 9 files changed, 20 insertions(+), 15 deletions(-) create mode 100644 .changeset/quiet-oranges-bake.md diff --git a/.changeset/quiet-oranges-bake.md b/.changeset/quiet-oranges-bake.md new file mode 100644 index 0000000000..a7360c9e4a --- /dev/null +++ b/.changeset/quiet-oranges-bake.md @@ -0,0 +1,11 @@ +--- +'@backstage/frontend-plugin-api': patch +'@backstage/frontend-test-utils': patch +'@backstage/backend-plugin-api': patch +'@backstage/backend-dev-utils': patch +'@backstage/backend-defaults': patch +'@backstage/frontend-app-api': patch +'@backstage/backend-app-api': patch +--- + +Updated README to reflect release status diff --git a/packages/backend-app-api/README.md b/packages/backend-app-api/README.md index e5b80abeaf..3fd6170b4f 100644 --- a/packages/backend-app-api/README.md +++ b/packages/backend-app-api/README.md @@ -1,8 +1,6 @@ # @backstage/backend-app-api -**This package is EXPERIMENTAL, we recommend against using it for production deployments** - -This package provides the core API used by Backstage backend apps. +This package provides the framework API used by Backstage backend apps. ## Installation diff --git a/packages/backend-defaults/README.md b/packages/backend-defaults/README.md index 2dcc5766df..01e42d42c4 100644 --- a/packages/backend-defaults/README.md +++ b/packages/backend-defaults/README.md @@ -1,7 +1,5 @@ # @backstage/backend-defaults -**This package is EXPERIMENTAL, we recommend against using it for production deployments** - This package provides the default implementations and setup for a standard Backstage backend app. ## Installation diff --git a/packages/backend-dev-utils/README.md b/packages/backend-dev-utils/README.md index cebe591d50..744a9d2ca0 100644 --- a/packages/backend-dev-utils/README.md +++ b/packages/backend-dev-utils/README.md @@ -1,7 +1,5 @@ # @backstage/backend-dev-utils -**This package is EXPERIMENTAL, but we encourage use of it to add support for the new backend system in your own plugins** - This package helps set up local development environments for Backstage backend packages. ## Installation diff --git a/packages/backend-next/README.md b/packages/backend-next/README.md index 94fc0767c4..4634e5673f 100644 --- a/packages/backend-next/README.md +++ b/packages/backend-next/README.md @@ -1,5 +1,5 @@ # example-backend-next -This is an example backend for the new **EXPERIMENTAL** Backstage backend system. +This is an example backend for [the new Backstage backend system](https://backstage.io/docs/backend-system/). Do not use this in your own projects. diff --git a/packages/backend-plugin-api/README.md b/packages/backend-plugin-api/README.md index a17c8715a7..b827ecc50c 100644 --- a/packages/backend-plugin-api/README.md +++ b/packages/backend-plugin-api/README.md @@ -1,8 +1,6 @@ # @backstage/backend-plugin-api -**This package is EXPERIMENTAL, but we encourage use of it to add support for the new backend system in your own plugins** - -This package provides the core API used by Backstage backend plugins and modules. +This package provides the framework API used by Backstage backend plugins and modules. ## Installation diff --git a/packages/frontend-app-api/README.md b/packages/frontend-app-api/README.md index 8b2fe5dc23..256ae99462 100644 --- a/packages/frontend-app-api/README.md +++ b/packages/frontend-app-api/README.md @@ -1,8 +1,8 @@ # @backstage/frontend-app-api -**This package is EXPERIMENTAL, we recommend against using it for production deployments** +**The [new frontend system](https://backstage.io/docs/frontend-system/) that this package is part of is in alpha, and we do not yet recommend using it for production deployments** -This package provides the core API used by Backstage frontend apps. It implements the design outlined in [RFC: Frontend System Evolution](https://github.com/backstage/backstage/issues/18372). +This package provides the framework API used by Backstage frontend apps. It implements the design outlined in [RFC: Frontend System Evolution](https://github.com/backstage/backstage/issues/18372). ## Documentation diff --git a/packages/frontend-plugin-api/README.md b/packages/frontend-plugin-api/README.md index 1fd3da79d8..aedf740840 100644 --- a/packages/frontend-plugin-api/README.md +++ b/packages/frontend-plugin-api/README.md @@ -1,8 +1,8 @@ # @backstage/frontend-plugin-api -**This package is EXPERIMENTAL, we recommend against using it for production deployments** +**The [new frontend system](https://backstage.io/docs/frontend-system/) that this package is part of is in alpha, and we do not yet recommend using it for production deployments** -This package provides the core API used by Backstage frontend plugins. It implements the design outlined in [RFC: Frontend System Evolution](https://github.com/backstage/backstage/issues/18372). +This package provides the framework API used by Backstage frontend plugins. It implements the design outlined in [RFC: Frontend System Evolution](https://github.com/backstage/backstage/issues/18372). ## Documentation diff --git a/packages/frontend-test-utils/README.md b/packages/frontend-test-utils/README.md index 50f853d9ed..455d112773 100644 --- a/packages/frontend-test-utils/README.md +++ b/packages/frontend-test-utils/README.md @@ -1,5 +1,7 @@ # @backstage/frontend-test-utils +**The [new frontend system](https://backstage.io/docs/frontend-system/) that this package is part of is in alpha, and we do not yet recommend using it for production deployments** + Contains utilities that can be used when testing frontend features such as extensions. ## Installation From a8eca44b3e3a7df2cccfd8bd2ac68de9c054b248 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 08:32:33 +0000 Subject: [PATCH 079/155] build(deps): bump follow-redirects from 1.15.2 to 1.15.4 in /microsite Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.2 to 1.15.4. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.2...v1.15.4) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- microsite/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/microsite/yarn.lock b/microsite/yarn.lock index 7fb45745ca..36c4f4bdac 100644 --- a/microsite/yarn.lock +++ b/microsite/yarn.lock @@ -5874,12 +5874,12 @@ __metadata: linkType: hard "follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.9": - version: 1.15.2 - resolution: "follow-redirects@npm:1.15.2" + version: 1.15.4 + resolution: "follow-redirects@npm:1.15.4" peerDependenciesMeta: debug: optional: true - checksum: faa66059b66358ba65c234c2f2a37fcec029dc22775f35d9ad6abac56003268baf41e55f9ee645957b32c7d9f62baf1f0b906e68267276f54ec4b4c597c2b190 + checksum: e178d1deff8b23d5d24ec3f7a94cde6e47d74d0dc649c35fc9857041267c12ec5d44650a0c5597ef83056ada9ea6ca0c30e7c4f97dbf07d035086be9e6a5b7b6 languageName: node linkType: hard From 7a39edd3f9ddeefd07737ee429aad56c5c7a2cc4 Mon Sep 17 00:00:00 2001 From: Arthur Gavlyukovskiy Date: Tue, 9 Jan 2024 12:01:29 +0100 Subject: [PATCH 080/155] Remove nested try-catch Signed-off-by: Arthur Gavlyukovskiy --- .../src/actions/gitlabRepoPush.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.ts index 59f51b263c..330d0f6f08 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/gitlabRepoPush.ts @@ -149,22 +149,27 @@ export const createGitlabRepoPushAction = (options: { execute_filemode: file.executable, })); + let branchExists = false; try { await api.Branches.show(repoID, branchName); - } catch (e) { + branchExists = true; + } catch (e: any) { if (e.response?.statusCode !== 404) { throw new InputError( `Failed to check status of branch '${branchName}'. Please make sure that branch already exists or Backstage has permissions to create one. ${e}`, ); } + } + + if (!branchExists) { // create a branch using the default branch as ref try { const projects = await api.Projects.show(repoID); const { default_branch: defaultBranch } = projects; await api.Branches.create(repoID, branchName, String(defaultBranch)); - } catch (e2) { + } catch (e) { throw new InputError( - `The branch '${branchName}' was not found and creation failed with error. Please make sure that branch already exists or Backstage has permissions to create one. ${e2}`, + `The branch '${branchName}' was not found and creation failed with error. Please make sure that branch already exists or Backstage has permissions to create one. ${e}`, ); } } From ac277f3c91d6cdbece4e7fef89aa2766e4cc79a2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 9 Jan 2024 12:44:34 +0000 Subject: [PATCH 081/155] Version Packages (next) --- .changeset/create-app-1704804195.md | 5 + .changeset/pre.json | 10 +- docs/releases/v1.22.0-next.2-changelog.md | 1835 +++++++++++++++++ package.json | 2 +- packages/app-next-example-plugin/CHANGELOG.md | 7 + packages/app-next-example-plugin/package.json | 2 +- packages/app-next/CHANGELOG.md | 65 + packages/app-next/package.json | 2 +- packages/app/CHANGELOG.md | 64 + packages/app/package.json | 2 +- packages/backend-app-api/CHANGELOG.md | 14 + packages/backend-app-api/package.json | 2 +- packages/backend-common/CHANGELOG.md | 10 + packages/backend-common/package.json | 2 +- packages/backend-defaults/CHANGELOG.md | 10 + packages/backend-defaults/package.json | 2 +- packages/backend-dev-utils/CHANGELOG.md | 6 + packages/backend-dev-utils/package.json | 2 +- packages/backend-next/CHANGELOG.md | 40 + packages/backend-next/package.json | 2 +- packages/backend-openapi-utils/CHANGELOG.md | 7 + packages/backend-openapi-utils/package.json | 2 +- packages/backend-plugin-api/CHANGELOG.md | 9 + packages/backend-plugin-api/package.json | 2 +- packages/backend-plugin-manager/CHANGELOG.md | 17 + packages/backend-plugin-manager/package.json | 2 +- packages/backend-tasks/CHANGELOG.md | 7 + packages/backend-tasks/package.json | 2 +- packages/backend-test-utils/CHANGELOG.md | 10 + packages/backend-test-utils/package.json | 2 +- packages/backend/CHANGELOG.md | 52 + packages/backend/package.json | 2 +- packages/core-compat-api/CHANGELOG.md | 8 + packages/core-compat-api/package.json | 2 +- packages/create-app/CHANGELOG.md | 6 + packages/create-app/package.json | 2 +- packages/dev-utils/CHANGELOG.md | 8 + packages/dev-utils/package.json | 2 +- packages/e2e-test/CHANGELOG.md | 7 + packages/e2e-test/package.json | 2 +- packages/frontend-app-api/CHANGELOG.md | 8 + packages/frontend-app-api/package.json | 2 +- packages/frontend-plugin-api/CHANGELOG.md | 6 + packages/frontend-plugin-api/package.json | 2 +- packages/frontend-test-utils/CHANGELOG.md | 9 + packages/frontend-test-utils/package.json | 2 +- packages/repo-tools/CHANGELOG.md | 8 + packages/repo-tools/package.json | 2 +- .../techdocs-cli-embedded-app/CHANGELOG.md | 10 + .../techdocs-cli-embedded-app/package.json | 2 +- packages/techdocs-cli/CHANGELOG.md | 8 + packages/techdocs-cli/package.json | 2 +- plugins/adr-backend/CHANGELOG.md | 8 + plugins/adr-backend/package.json | 2 +- plugins/adr/CHANGELOG.md | 10 + plugins/adr/package.json | 2 +- plugins/airbrake-backend/CHANGELOG.md | 8 + plugins/airbrake-backend/package.json | 2 +- plugins/airbrake/CHANGELOG.md | 8 + plugins/airbrake/package.json | 2 +- plugins/allure/CHANGELOG.md | 7 + plugins/allure/package.json | 2 +- plugins/api-docs/CHANGELOG.md | 8 + plugins/api-docs/package.json | 2 +- plugins/app-backend/CHANGELOG.md | 10 + plugins/app-backend/package.json | 2 +- plugins/app-node/CHANGELOG.md | 7 + plugins/app-node/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- plugins/auth-backend/CHANGELOG.md | 18 + plugins/auth-backend/package.json | 2 +- plugins/auth-node/CHANGELOG.md | 8 + plugins/auth-node/package.json | 2 +- plugins/azure-devops-backend/CHANGELOG.md | 9 + plugins/azure-devops-backend/package.json | 2 +- plugins/azure-devops/CHANGELOG.md | 7 + plugins/azure-devops/package.json | 2 +- plugins/azure-sites-backend/CHANGELOG.md | 7 + plugins/azure-sites-backend/package.json | 2 +- plugins/azure-sites/CHANGELOG.md | 7 + plugins/azure-sites/package.json | 2 +- plugins/badges-backend/CHANGELOG.md | 9 + plugins/badges-backend/package.json | 2 +- plugins/badges/CHANGELOG.md | 7 + plugins/badges/package.json | 2 +- plugins/bazaar-backend/CHANGELOG.md | 9 + plugins/bazaar-backend/package.json | 2 +- plugins/bazaar/CHANGELOG.md | 7 + plugins/bazaar/package.json | 2 +- plugins/bitrise/CHANGELOG.md | 7 + plugins/bitrise/package.json | 2 +- .../catalog-backend-module-aws/CHANGELOG.md | 10 + .../catalog-backend-module-aws/package.json | 2 +- .../catalog-backend-module-azure/CHANGELOG.md | 10 + .../catalog-backend-module-azure/package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../catalog-backend-module-gcp/CHANGELOG.md | 10 + .../catalog-backend-module-gcp/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../catalog-backend-module-ldap/CHANGELOG.md | 8 + .../catalog-backend-module-ldap/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- plugins/catalog-backend/CHANGELOG.md | 15 + plugins/catalog-backend/package.json | 2 +- plugins/catalog-graph/CHANGELOG.md | 7 + plugins/catalog-graph/package.json | 2 +- plugins/catalog-import/CHANGELOG.md | 10 + plugins/catalog-import/package.json | 2 +- plugins/catalog-node/CHANGELOG.md | 8 + plugins/catalog-node/package.json | 2 +- plugins/catalog-react/CHANGELOG.md | 8 + plugins/catalog-react/package.json | 2 +- plugins/catalog/CHANGELOG.md | 11 + plugins/catalog/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- plugins/cicd-statistics/CHANGELOG.md | 7 + plugins/cicd-statistics/package.json | 2 +- plugins/circleci/CHANGELOG.md | 7 + plugins/circleci/package.json | 2 +- plugins/cloudbuild/CHANGELOG.md | 7 + plugins/cloudbuild/package.json | 2 +- plugins/code-climate/CHANGELOG.md | 7 + plugins/code-climate/package.json | 2 +- plugins/code-coverage-backend/CHANGELOG.md | 9 + plugins/code-coverage-backend/package.json | 2 +- plugins/code-coverage/CHANGELOG.md | 7 + plugins/code-coverage/package.json | 2 +- plugins/cost-insights/CHANGELOG.md | 7 + plugins/cost-insights/package.json | 2 +- plugins/devtools-backend/CHANGELOG.md | 11 + plugins/devtools-backend/package.json | 2 +- plugins/dynatrace/CHANGELOG.md | 7 + plugins/dynatrace/package.json | 2 +- plugins/entity-feedback-backend/CHANGELOG.md | 9 + plugins/entity-feedback-backend/package.json | 2 +- plugins/entity-feedback/CHANGELOG.md | 7 + plugins/entity-feedback/package.json | 2 +- plugins/entity-validation/CHANGELOG.md | 7 + plugins/entity-validation/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../events-backend-module-azure/CHANGELOG.md | 8 + .../events-backend-module-azure/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../events-backend-module-gerrit/CHANGELOG.md | 8 + .../events-backend-module-gerrit/package.json | 2 +- .../events-backend-module-github/CHANGELOG.md | 8 + .../events-backend-module-github/package.json | 2 +- .../events-backend-module-gitlab/CHANGELOG.md | 8 + .../events-backend-module-gitlab/package.json | 2 +- .../events-backend-test-utils/CHANGELOG.md | 7 + .../events-backend-test-utils/package.json | 2 +- plugins/events-backend/CHANGELOG.md | 9 + plugins/events-backend/package.json | 2 +- plugins/events-node/CHANGELOG.md | 7 + plugins/events-node/package.json | 2 +- .../example-todo-list-backend/CHANGELOG.md | 9 + .../example-todo-list-backend/package.json | 2 +- plugins/explore-backend/CHANGELOG.md | 8 + plugins/explore-backend/package.json | 2 +- plugins/explore/CHANGELOG.md | 9 + plugins/explore/package.json | 2 +- plugins/firehydrant/CHANGELOG.md | 7 + plugins/firehydrant/package.json | 2 +- plugins/fossa/CHANGELOG.md | 7 + plugins/fossa/package.json | 2 +- plugins/github-actions/CHANGELOG.md | 8 + plugins/github-actions/package.json | 2 +- plugins/github-deployments/CHANGELOG.md | 8 + plugins/github-deployments/package.json | 2 +- plugins/github-issues/CHANGELOG.md | 7 + plugins/github-issues/package.json | 2 +- .../github-pull-requests-board/CHANGELOG.md | 7 + .../github-pull-requests-board/package.json | 2 +- plugins/gocd/CHANGELOG.md | 7 + plugins/gocd/package.json | 2 +- plugins/graphiql/CHANGELOG.md | 8 + plugins/graphiql/package.json | 2 +- plugins/home-react/CHANGELOG.md | 9 + plugins/home-react/package.json | 2 +- plugins/home/CHANGELOG.md | 14 + plugins/home/package.json | 2 +- plugins/ilert/CHANGELOG.md | 7 + plugins/ilert/package.json | 2 +- plugins/jenkins-backend/CHANGELOG.md | 11 + plugins/jenkins-backend/package.json | 2 +- plugins/jenkins/CHANGELOG.md | 7 + plugins/jenkins/package.json | 2 +- plugins/kafka-backend/CHANGELOG.md | 8 + plugins/kafka-backend/package.json | 2 +- plugins/kafka/CHANGELOG.md | 7 + plugins/kafka/package.json | 2 +- plugins/kubernetes-backend/CHANGELOG.md | 12 + plugins/kubernetes-backend/package.json | 2 +- plugins/kubernetes-cluster/CHANGELOG.md | 7 + plugins/kubernetes-cluster/package.json | 2 +- plugins/kubernetes-node/CHANGELOG.md | 7 + plugins/kubernetes-node/package.json | 2 +- plugins/kubernetes/CHANGELOG.md | 7 + plugins/kubernetes/package.json | 2 +- plugins/lighthouse-backend/CHANGELOG.md | 10 + plugins/lighthouse-backend/package.json | 2 +- plugins/lighthouse/CHANGELOG.md | 7 + plugins/lighthouse/package.json | 2 +- plugins/linguist-backend/CHANGELOG.md | 11 + plugins/linguist-backend/package.json | 2 +- plugins/linguist/CHANGELOG.md | 10 + plugins/linguist/package.json | 2 +- plugins/newrelic-dashboard/CHANGELOG.md | 7 + plugins/newrelic-dashboard/package.json | 2 +- plugins/nomad-backend/CHANGELOG.md | 8 + plugins/nomad-backend/package.json | 2 +- plugins/nomad/CHANGELOG.md | 7 + plugins/nomad/package.json | 2 +- plugins/octopus-deploy/CHANGELOG.md | 8 + plugins/octopus-deploy/package.json | 2 +- plugins/org-react/CHANGELOG.md | 7 + plugins/org-react/package.json | 2 +- plugins/org/CHANGELOG.md | 7 + plugins/org/package.json | 2 +- plugins/pagerduty/CHANGELOG.md | 8 + plugins/pagerduty/package.json | 2 +- plugins/periskop-backend/CHANGELOG.md | 8 + plugins/periskop-backend/package.json | 2 +- plugins/periskop/CHANGELOG.md | 7 + plugins/periskop/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- plugins/permission-backend/CHANGELOG.md | 10 + plugins/permission-backend/package.json | 2 +- plugins/permission-node/CHANGELOG.md | 9 + plugins/permission-node/package.json | 2 +- plugins/playlist-backend/CHANGELOG.md | 10 + plugins/playlist-backend/package.json | 2 +- plugins/playlist/CHANGELOG.md | 8 + plugins/playlist/package.json | 2 +- plugins/proxy-backend/CHANGELOG.md | 8 + plugins/proxy-backend/package.json | 2 +- plugins/puppetdb/CHANGELOG.md | 7 + plugins/puppetdb/package.json | 2 +- plugins/rollbar-backend/CHANGELOG.md | 7 + plugins/rollbar-backend/package.json | 2 +- plugins/rollbar/CHANGELOG.md | 7 + plugins/rollbar/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- plugins/scaffolder-backend/CHANGELOG.md | 19 + plugins/scaffolder-backend/package.json | 2 +- plugins/scaffolder-node/CHANGELOG.md | 8 + plugins/scaffolder-node/package.json | 2 +- plugins/scaffolder-react/CHANGELOG.md | 11 + plugins/scaffolder-react/package.json | 2 +- plugins/scaffolder/CHANGELOG.md | 13 + plugins/scaffolder/package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- plugins/search-backend-module-pg/CHANGELOG.md | 9 + plugins/search-backend-module-pg/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- plugins/search-backend-node/CHANGELOG.md | 9 + plugins/search-backend-node/package.json | 2 +- plugins/search-backend/CHANGELOG.md | 12 + plugins/search-backend/package.json | 2 +- plugins/search-react/CHANGELOG.md | 7 + plugins/search-react/package.json | 2 +- plugins/search/CHANGELOG.md | 10 + plugins/search/package.json | 2 +- plugins/sentry/CHANGELOG.md | 7 + plugins/sentry/package.json | 2 +- plugins/sonarqube-backend/CHANGELOG.md | 9 + plugins/sonarqube-backend/package.json | 2 +- plugins/sonarqube/CHANGELOG.md | 7 + plugins/sonarqube/package.json | 2 +- plugins/splunk-on-call/CHANGELOG.md | 7 + plugins/splunk-on-call/package.json | 2 +- plugins/stack-overflow-backend/CHANGELOG.md | 7 + plugins/stack-overflow-backend/package.json | 2 +- plugins/stack-overflow/CHANGELOG.md | 9 + plugins/stack-overflow/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- plugins/tech-insights-backend/CHANGELOG.md | 9 + plugins/tech-insights-backend/package.json | 2 +- plugins/tech-insights-node/CHANGELOG.md | 7 + plugins/tech-insights-node/package.json | 2 +- plugins/tech-insights/CHANGELOG.md | 7 + plugins/tech-insights/package.json | 2 +- plugins/tech-radar/CHANGELOG.md | 8 + plugins/tech-radar/package.json | 2 +- .../techdocs-addons-test-utils/CHANGELOG.md | 11 + .../techdocs-addons-test-utils/package.json | 2 +- plugins/techdocs-backend/CHANGELOG.md | 10 + plugins/techdocs-backend/package.json | 2 +- plugins/techdocs-node/CHANGELOG.md | 8 + plugins/techdocs-node/package.json | 2 +- plugins/techdocs/CHANGELOG.md | 11 + plugins/techdocs/package.json | 2 +- plugins/todo-backend/CHANGELOG.md | 10 + plugins/todo-backend/package.json | 2 +- plugins/todo/CHANGELOG.md | 7 + plugins/todo/package.json | 2 +- plugins/user-settings-backend/CHANGELOG.md | 9 + plugins/user-settings-backend/package.json | 2 +- plugins/user-settings/CHANGELOG.md | 10 + plugins/user-settings/package.json | 2 +- plugins/vault-backend/CHANGELOG.md | 10 + plugins/vault-backend/package.json | 2 +- plugins/vault-node/CHANGELOG.md | 7 + plugins/vault-node/package.json | 2 +- plugins/vault/CHANGELOG.md | 7 + plugins/vault/package.json | 2 +- plugins/visualizer/CHANGELOG.md | 7 + plugins/visualizer/package.json | 2 +- 386 files changed, 3875 insertions(+), 193 deletions(-) create mode 100644 .changeset/create-app-1704804195.md create mode 100644 docs/releases/v1.22.0-next.2-changelog.md diff --git a/.changeset/create-app-1704804195.md b/.changeset/create-app-1704804195.md new file mode 100644 index 0000000000..b50d431d4b --- /dev/null +++ b/.changeset/create-app-1704804195.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Bumped create-app version. diff --git a/.changeset/pre.json b/.changeset/pre.json index 4321e60c45..8190034fe5 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -266,24 +266,32 @@ }, "changesets": [ "afraid-mice-give", + "brave-queens-crash", "brown-planes-sort", + "chatty-rivers-hope", "chilled-seahorses-clean", + "chilled-zebras-wash", "create-app-1703547661", + "create-app-1704804195", "curvy-dingos-jump", "fast-tables-hammer", "friendly-horses-kneel", "funny-rings-fry", "gold-pianos-worry", "happy-forks-jam", + "hip-dancers-pay", "large-poets-buy", "lazy-teachers-walk", "many-peaches-dress", "new-plants-sort", "orange-planets-suffer", + "quiet-oranges-bake", "renovate-126fde4", + "renovate-91133b2", "renovate-9647667", "rotten-tools-clean", "sour-taxis-rush", - "stale-hairs-sparkle" + "stale-hairs-sparkle", + "tricky-pans-explain" ] } diff --git a/docs/releases/v1.22.0-next.2-changelog.md b/docs/releases/v1.22.0-next.2-changelog.md new file mode 100644 index 0000000000..c9dcfeff98 --- /dev/null +++ b/docs/releases/v1.22.0-next.2-changelog.md @@ -0,0 +1,1835 @@ +# Release v1.22.0-next.2 + +## @backstage/backend-app-api@0.5.10-next.2 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + - @backstage/cli-node@0.2.2-next.0 + - @backstage/config-loader@1.6.1-next.0 + +## @backstage/backend-common@0.20.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-dev-utils@0.1.3-next.0 + - @backstage/backend-app-api@0.5.10-next.2 + - @backstage/config-loader@1.6.1-next.0 + +## @backstage/backend-defaults@0.2.9-next.2 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-app-api@0.5.10-next.2 + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/backend-dev-utils@0.1.3-next.0 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status + +## @backstage/backend-openapi-utils@0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + +## @backstage/backend-plugin-api@0.6.9-next.2 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status +- Updated dependencies + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/backend-tasks@0.5.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/backend-test-utils@0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-app-api@0.5.10-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/core-compat-api@0.1.1-next.2 + +### Patch Changes + +- 4c1f50c: Make `convertLegacyApp` wrap discovered routes with `compatWrapper`. +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + +## @backstage/create-app@0.5.9-next.2 + +### Patch Changes + +- Bumped create-app version. + +## @backstage/dev-utils@1.0.26-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/integration-react@1.1.23-next.0 + +## @backstage/frontend-app-api@0.4.1-next.2 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + +## @backstage/frontend-plugin-api@0.4.1-next.2 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status + +## @backstage/frontend-test-utils@0.1.1-next.2 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/frontend-app-api@0.4.1-next.2 + +## @backstage/repo-tools@0.5.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/cli-node@0.2.2-next.0 + +## @techdocs/cli@1.8.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-techdocs-node@1.11.1-next.2 + +## @backstage/plugin-adr@0.6.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + - @backstage/integration-react@1.1.23-next.0 + +## @backstage/plugin-adr-backend@0.4.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-airbrake@0.3.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/dev-utils@1.0.26-next.2 + +## @backstage/plugin-airbrake-backend@0.3.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-allure@0.1.45-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-api-docs@0.10.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.16.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-app-backend@0.3.57-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-app-node@0.1.9-next.2 + - @backstage/config-loader@1.6.1-next.0 + +## @backstage/plugin-app-node@0.1.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + +## @backstage/plugin-auth-backend@0.20.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-backend-module-atlassian-provider@0.1.1-next.2 + - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.3-next.2 + - @backstage/plugin-auth-backend-module-github-provider@0.1.6-next.2 + - @backstage/plugin-auth-backend-module-gitlab-provider@0.1.6-next.2 + - @backstage/plugin-auth-backend-module-google-provider@0.1.6-next.2 + - @backstage/plugin-auth-backend-module-oauth2-provider@0.1.6-next.2 + - @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.1-next.2 + - @backstage/plugin-auth-backend-module-okta-provider@0.0.2-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + +## @backstage/plugin-auth-backend-module-atlassian-provider@0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-auth-backend-module-github-provider@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-auth-backend-module-gitlab-provider@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-auth-backend-module-google-provider@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-auth-backend-module-microsoft-provider@0.1.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-auth-backend-module-oauth2-provider@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-auth-backend-module-okta-provider@0.0.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-auth-backend-module-pinniped-provider@0.1.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-auth-backend-module-vmware-cloud-provider@0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-auth-node@0.4.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-azure-devops@0.3.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-azure-devops-backend@0.5.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + +## @backstage/plugin-azure-sites@0.1.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-azure-sites-backend@0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-badges@0.2.53-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-badges-backend@0.3.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-bazaar@0.2.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-bazaar-backend@0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-bitrise@0.1.56-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-catalog@1.16.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + - @backstage/integration-react@1.1.23-next.0 + +## @backstage/plugin-catalog-backend@1.16.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/backend-openapi-utils@0.1.2-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/plugin-search-backend-module-catalog@0.1.13-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-aws@0.3.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-azure@0.1.28-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-backstage-openapi@0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/backend-openapi-utils@0.1.2-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-bitbucket@0.2.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.22-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-gcp@0.1.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.25-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-github@0.4.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-backend@1.16.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-github-org@0.1.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-backend-module-github@0.4.7-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-gitlab@0.3.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.4.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-backend@1.16.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-msgraph@0.5.16-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.26-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-backend@1.16.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + +## @backstage/plugin-catalog-backend-module-puppetdb@0.1.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + +## @backstage/plugin-catalog-backend-module-unprocessed@0.3.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-catalog-graph@0.3.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-catalog-import@0.10.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/integration-react@1.1.23-next.0 + +## @backstage/plugin-catalog-node@1.6.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + +## @backstage/plugin-catalog-react@1.9.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/integration-react@1.1.23-next.0 + +## @backstage/plugin-cicd-statistics@0.1.31-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-cicd-statistics-module-gitlab@0.1.25-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-cicd-statistics@0.1.31-next.2 + +## @backstage/plugin-circleci@0.3.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-cloudbuild@0.3.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-code-climate@0.1.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-code-coverage@0.2.22-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-code-coverage-backend@0.2.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-cost-insights@0.12.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-devtools-backend@0.2.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/config-loader@1.6.1-next.0 + +## @backstage/plugin-dynatrace@8.0.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-entity-feedback@0.2.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-entity-feedback-backend@0.2.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-entity-validation@0.1.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-events-backend@0.2.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + +## @backstage/plugin-events-backend-module-aws-sqs@0.2.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-events-backend-module-azure@0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + +## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + +## @backstage/plugin-events-backend-module-gerrit@0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + +## @backstage/plugin-events-backend-module-github@0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + +## @backstage/plugin-events-backend-module-gitlab@0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + +## @backstage/plugin-events-backend-test-utils@0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.18-next.2 + +## @backstage/plugin-events-node@0.2.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + +## @backstage/plugin-explore@0.4.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + +## @backstage/plugin-explore-backend@0.0.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-search-backend-module-explore@0.1.13-next.2 + +## @backstage/plugin-firehydrant@0.2.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-fossa@0.2.61-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-github-actions@0.6.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/integration-react@1.1.23-next.0 + +## @backstage/plugin-github-deployments@0.1.60-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/integration-react@1.1.23-next.0 + +## @backstage/plugin-github-issues@0.2.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-github-pull-requests-board@0.1.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-gocd@0.1.35-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-graphiql@0.3.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + +## @backstage/plugin-home@0.6.1-next.2 + +### Patch Changes + +- 98ac5ab: Updated dependency `@rjsf/utils` to `5.15.1`. + Updated dependency `@rjsf/core` to `5.15.1`. + Updated dependency `@rjsf/material-ui` to `5.15.1`. + Updated dependency `@rjsf/validator-ajv8` to `5.15.1`. +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-home-react@0.1.7-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-home-react@0.1.7-next.2 + +### Patch Changes + +- 98ac5ab: Updated dependency `@rjsf/utils` to `5.15.1`. + Updated dependency `@rjsf/core` to `5.15.1`. + Updated dependency `@rjsf/material-ui` to `5.15.1`. + Updated dependency `@rjsf/validator-ajv8` to `5.15.1`. + +## @backstage/plugin-ilert@0.2.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-jenkins@0.9.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-jenkins-backend@0.3.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + +## @backstage/plugin-kafka@0.3.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-kafka-backend@0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-kubernetes@0.11.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-kubernetes-backend@0.14.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-kubernetes-node@0.1.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + +## @backstage/plugin-kubernetes-cluster@0.0.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-kubernetes-node@0.1.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + +## @backstage/plugin-lighthouse@0.4.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-lighthouse-backend@0.4.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-linguist@0.1.14-next.2 + +### Patch Changes + +- 4f42918: Added alpha support for the New Frontend System (Declarative Integration) +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-linguist-backend@0.5.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-newrelic-dashboard@0.3.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-nomad@0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-nomad-backend@0.1.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-octopus-deploy@0.2.11-next.2 + +### Patch Changes + +- 7d96ba8: added install path and fixed import on plugin-octopus-deploy +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-org@0.6.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-org-react@0.1.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-pagerduty@0.7.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home-react@0.1.7-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-periskop@0.1.27-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-periskop-backend@0.2.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-permission-backend@0.5.32-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + +## @backstage/plugin-permission-backend-module-allow-all-policy@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + +## @backstage/plugin-permission-node@0.7.20-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-playlist@0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + +## @backstage/plugin-playlist-backend@0.3.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + +## @backstage/plugin-proxy-backend@0.4.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-puppetdb@0.1.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-rollbar@0.4.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-rollbar-backend@0.1.54-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-scaffolder@1.17.1-next.2 + +### Patch Changes + +- 98ac5ab: Updated dependency `@rjsf/utils` to `5.15.1`. + Updated dependency `@rjsf/core` to `5.15.1`. + Updated dependency `@rjsf/material-ui` to `5.15.1`. + Updated dependency `@rjsf/validator-ajv8` to `5.15.1`. +- Updated dependencies + - @backstage/plugin-scaffolder-react@1.7.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/integration-react@1.1.23-next.0 + +## @backstage/plugin-scaffolder-backend@1.19.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.6-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + - @backstage/plugin-scaffolder-backend-module-azure@0.1.1-next.2 + - @backstage/plugin-scaffolder-backend-module-bitbucket@0.1.1-next.2 + - @backstage/plugin-scaffolder-backend-module-gerrit@0.1.1-next.2 + - @backstage/plugin-scaffolder-backend-module-github@0.1.1-next.2 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.2.12-next.2 + +## @backstage/plugin-scaffolder-backend-module-azure@0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + +## @backstage/plugin-scaffolder-backend-module-bitbucket@0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + +## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.33-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + +## @backstage/plugin-scaffolder-backend-module-gerrit@0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + +## @backstage/plugin-scaffolder-backend-module-github@0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + +## @backstage/plugin-scaffolder-backend-module-gitlab@0.2.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.26-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + +## @backstage/plugin-scaffolder-backend-module-sentry@0.1.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.30-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + +## @backstage/plugin-scaffolder-node@0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-scaffolder-react@1.7.1-next.2 + +### Patch Changes + +- 98ac5ab: Updated dependency `@rjsf/utils` to `5.15.1`. + Updated dependency `@rjsf/core` to `5.15.1`. + Updated dependency `@rjsf/material-ui` to `5.15.1`. + Updated dependency `@rjsf/validator-ajv8` to `5.15.1`. +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-search@1.4.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + +## @backstage/plugin-search-backend@1.4.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/backend-openapi-utils@0.1.2-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + +## @backstage/plugin-search-backend-module-catalog@0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-search-backend-module-elasticsearch@1.3.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + +## @backstage/plugin-search-backend-module-explore@0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-search-backend-module-pg@0.5.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + +## @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-search-backend-module-techdocs@0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/plugin-techdocs-node@1.11.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-search-backend-node@1.2.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-search-react@1.7.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + +## @backstage/plugin-sentry@0.5.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-sonarqube@0.7.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-sonarqube-backend@0.2.11-next.2 + +### Patch Changes + +- 53445cd: Updated README +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-splunk-on-call@0.4.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-stack-overflow@0.1.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-home-react@0.1.7-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + +## @backstage/plugin-stack-overflow-backend@0.2.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.2-next.2 + +## @backstage/plugin-tech-insights@0.3.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-tech-insights-backend@0.5.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + - @backstage/plugin-tech-insights-node@0.4.15-next.2 + +## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.41-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-tech-insights-node@0.4.15-next.2 + +## @backstage/plugin-tech-insights-node@0.4.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-tech-radar@0.6.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + +## @backstage/plugin-techdocs@1.9.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + - @backstage/integration-react@1.1.23-next.0 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.26-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.16.1-next.2 + - @backstage/plugin-techdocs@1.9.3-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + - @backstage/integration-react@1.1.23-next.0 + +## @backstage/plugin-techdocs-backend@1.9.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-search-backend-module-techdocs@0.1.13-next.2 + - @backstage/plugin-techdocs-node@1.11.1-next.2 + +## @backstage/plugin-techdocs-node@1.11.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + +## @backstage/plugin-todo@0.2.33-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-todo-backend@0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/backend-openapi-utils@0.1.2-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + +## @backstage/plugin-user-settings@0.8.0-next.2 + +### Patch Changes + +- eea0849: add user-settings declarative integration core nav item +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-user-settings-backend@0.2.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-vault@0.1.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + +## @backstage/plugin-vault-backend@0.4.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-vault-node@0.1.2-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + +## @backstage/plugin-vault-node@0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + +## example-app@0.2.91-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-user-settings@0.8.0-next.2 + - @backstage/plugin-octopus-deploy@0.2.11-next.2 + - @backstage/frontend-app-api@0.4.1-next.2 + - @backstage/plugin-home@0.6.1-next.2 + - @backstage/plugin-scaffolder-react@1.7.1-next.2 + - @backstage/plugin-scaffolder@1.17.1-next.2 + - @backstage/plugin-linguist@0.1.14-next.2 + - @backstage/plugin-catalog@1.16.1-next.2 + - @backstage/plugin-catalog-import@0.10.5-next.2 + - @backstage/plugin-graphiql@0.3.2-next.2 + - @backstage/plugin-search@1.4.5-next.2 + - @backstage/plugin-tech-radar@0.6.12-next.2 + - @backstage/plugin-techdocs@1.9.3-next.2 + - @backstage/plugin-adr@0.6.12-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-explore@0.4.15-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + - @backstage/plugin-stack-overflow@0.1.24-next.2 + - @backstage/cli@0.25.1-next.1 + - @backstage/plugin-pagerduty@0.7.1-next.2 + - @backstage/plugin-api-docs@0.10.3-next.2 + - @backstage/plugin-catalog-graph@0.3.3-next.2 + - @backstage/plugin-org@0.6.19-next.2 + - @backstage/plugin-airbrake@0.3.29-next.2 + - @backstage/plugin-azure-devops@0.3.11-next.2 + - @backstage/plugin-azure-sites@0.1.18-next.2 + - @backstage/plugin-badges@0.2.53-next.2 + - @backstage/plugin-cloudbuild@0.3.29-next.2 + - @backstage/plugin-code-coverage@0.2.22-next.2 + - @backstage/plugin-cost-insights@0.12.18-next.2 + - @backstage/plugin-dynatrace@8.0.3-next.2 + - @backstage/plugin-entity-feedback@0.2.12-next.2 + - @backstage/plugin-github-actions@0.6.10-next.2 + - @backstage/plugin-gocd@0.1.35-next.2 + - @backstage/plugin-jenkins@0.9.4-next.2 + - @backstage/plugin-kafka@0.3.29-next.2 + - @backstage/plugin-kubernetes@0.11.4-next.2 + - @backstage/plugin-kubernetes-cluster@0.0.5-next.2 + - @backstage/plugin-lighthouse@0.4.14-next.2 + - @backstage/plugin-newrelic-dashboard@0.3.4-next.2 + - @backstage/plugin-nomad@0.1.10-next.2 + - @backstage/plugin-playlist@0.2.3-next.2 + - @backstage/plugin-puppetdb@0.1.12-next.2 + - @backstage/plugin-rollbar@0.4.29-next.2 + - @backstage/plugin-sentry@0.5.14-next.2 + - @backstage/plugin-tech-insights@0.3.21-next.2 + - @backstage/plugin-todo@0.2.33-next.2 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.4-next.1 + - @backstage/integration-react@1.1.23-next.0 + - @backstage/plugin-apache-airflow@0.2.19-next.1 + - @backstage/plugin-catalog-unprocessed-entities@0.1.7-next.1 + - @backstage/plugin-devtools@0.1.8-next.1 + - @backstage/plugin-gcalendar@0.3.22-next.1 + - @backstage/plugin-gcp-projects@0.3.45-next.1 + - @backstage/plugin-microsoft-calendar@0.1.11-next.1 + - @backstage/plugin-newrelic@0.3.44-next.1 + - @backstage/plugin-shortcuts@0.3.18-next.1 + - @backstage/plugin-stackstorm@0.1.10-next.1 + +## example-app-next@0.0.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/plugin-user-settings@0.8.0-next.2 + - @backstage/plugin-octopus-deploy@0.2.11-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/frontend-app-api@0.4.1-next.2 + - @backstage/plugin-home@0.6.1-next.2 + - @backstage/plugin-scaffolder-react@1.7.1-next.2 + - @backstage/plugin-scaffolder@1.17.1-next.2 + - @backstage/plugin-linguist@0.1.14-next.2 + - @backstage/plugin-catalog@1.16.1-next.2 + - @backstage/plugin-catalog-import@0.10.5-next.2 + - @backstage/plugin-graphiql@0.3.2-next.2 + - @backstage/plugin-search@1.4.5-next.2 + - @backstage/plugin-tech-radar@0.6.12-next.2 + - @backstage/plugin-techdocs@1.9.3-next.2 + - app-next-example-plugin@0.0.5-next.2 + - @backstage/plugin-adr@0.6.12-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-explore@0.4.15-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + - @backstage/plugin-visualizer@0.0.2-next.2 + - @backstage/cli@0.25.1-next.1 + - @backstage/plugin-pagerduty@0.7.1-next.2 + - @backstage/plugin-api-docs@0.10.3-next.2 + - @backstage/plugin-catalog-graph@0.3.3-next.2 + - @backstage/plugin-org@0.6.19-next.2 + - @backstage/plugin-airbrake@0.3.29-next.2 + - @backstage/plugin-azure-devops@0.3.11-next.2 + - @backstage/plugin-azure-sites@0.1.18-next.2 + - @backstage/plugin-badges@0.2.53-next.2 + - @backstage/plugin-cloudbuild@0.3.29-next.2 + - @backstage/plugin-code-coverage@0.2.22-next.2 + - @backstage/plugin-cost-insights@0.12.18-next.2 + - @backstage/plugin-dynatrace@8.0.3-next.2 + - @backstage/plugin-entity-feedback@0.2.12-next.2 + - @backstage/plugin-github-actions@0.6.10-next.2 + - @backstage/plugin-gocd@0.1.35-next.2 + - @backstage/plugin-jenkins@0.9.4-next.2 + - @backstage/plugin-kafka@0.3.29-next.2 + - @backstage/plugin-kubernetes@0.11.4-next.2 + - @backstage/plugin-lighthouse@0.4.14-next.2 + - @backstage/plugin-newrelic-dashboard@0.3.4-next.2 + - @backstage/plugin-playlist@0.2.3-next.2 + - @backstage/plugin-puppetdb@0.1.12-next.2 + - @backstage/plugin-rollbar@0.4.29-next.2 + - @backstage/plugin-sentry@0.5.14-next.2 + - @backstage/plugin-tech-insights@0.3.21-next.2 + - @backstage/plugin-todo@0.2.33-next.2 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.4-next.1 + - @backstage/integration-react@1.1.23-next.0 + - @backstage/plugin-apache-airflow@0.2.19-next.1 + - @backstage/plugin-catalog-unprocessed-entities@0.1.7-next.1 + - @backstage/plugin-devtools@0.1.8-next.1 + - @backstage/plugin-gcalendar@0.3.22-next.1 + - @backstage/plugin-gcp-projects@0.3.45-next.1 + - @backstage/plugin-microsoft-calendar@0.1.11-next.1 + - @backstage/plugin-newrelic@0.3.44-next.1 + - @backstage/plugin-shortcuts@0.3.18-next.1 + - @backstage/plugin-stackstorm@0.1.10-next.1 + +## app-next-example-plugin@0.0.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + +## example-backend@0.2.91-next.2 + +### Patch Changes + +- Updated dependencies + - example-app@0.2.91-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-adr-backend@0.4.6-next.2 + - @backstage/plugin-app-backend@0.3.57-next.2 + - @backstage/plugin-auth-backend@0.20.3-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-azure-devops-backend@0.5.1-next.2 + - @backstage/plugin-badges-backend@0.3.6-next.2 + - @backstage/plugin-catalog-backend@1.16.1-next.2 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.6-next.2 + - @backstage/plugin-catalog-backend-module-unprocessed@0.3.6-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-code-coverage-backend@0.2.23-next.2 + - @backstage/plugin-devtools-backend@0.2.6-next.2 + - @backstage/plugin-entity-feedback-backend@0.2.6-next.2 + - @backstage/plugin-events-backend@0.2.18-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/plugin-jenkins-backend@0.3.3-next.2 + - @backstage/plugin-kafka-backend@0.3.7-next.2 + - @backstage/plugin-kubernetes-backend@0.14.1-next.2 + - @backstage/plugin-lighthouse-backend@0.4.1-next.2 + - @backstage/plugin-linguist-backend@0.5.6-next.2 + - @backstage/plugin-nomad-backend@0.1.11-next.2 + - @backstage/plugin-permission-backend@0.5.32-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/plugin-playlist-backend@0.3.13-next.2 + - @backstage/plugin-proxy-backend@0.4.7-next.2 + - @backstage/plugin-scaffolder-backend@1.19.3-next.2 + - @backstage/plugin-search-backend@1.4.9-next.2 + - @backstage/plugin-search-backend-module-catalog@0.1.13-next.2 + - @backstage/plugin-search-backend-module-elasticsearch@1.3.12-next.2 + - @backstage/plugin-search-backend-module-explore@0.1.13-next.2 + - @backstage/plugin-search-backend-module-pg@0.5.18-next.2 + - @backstage/plugin-search-backend-module-techdocs@0.1.13-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/plugin-techdocs-backend@1.9.2-next.2 + - @backstage/plugin-todo-backend@0.3.7-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + - @backstage/plugin-azure-sites-backend@0.1.19-next.2 + - @backstage/plugin-explore-backend@0.0.19-next.2 + - @backstage/plugin-rollbar-backend@0.1.54-next.2 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.10-next.2 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.26-next.2 + - @backstage/plugin-tech-insights-backend@0.5.23-next.2 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.41-next.2 + - @backstage/plugin-tech-insights-node@0.4.15-next.2 + +## example-backend-next@0.0.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-sonarqube-backend@0.2.11-next.2 + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-defaults@0.2.9-next.2 + - @backstage/plugin-adr-backend@0.4.6-next.2 + - @backstage/plugin-app-backend@0.3.57-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-azure-devops-backend@0.5.1-next.2 + - @backstage/plugin-badges-backend@0.3.6-next.2 + - @backstage/plugin-catalog-backend@1.16.1-next.2 + - @backstage/plugin-catalog-backend-module-backstage-openapi@0.1.2-next.2 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.6-next.2 + - @backstage/plugin-catalog-backend-module-unprocessed@0.3.6-next.2 + - @backstage/plugin-devtools-backend@0.2.6-next.2 + - @backstage/plugin-entity-feedback-backend@0.2.6-next.2 + - @backstage/plugin-jenkins-backend@0.3.3-next.2 + - @backstage/plugin-kubernetes-backend@0.14.1-next.2 + - @backstage/plugin-lighthouse-backend@0.4.1-next.2 + - @backstage/plugin-linguist-backend@0.5.6-next.2 + - @backstage/plugin-nomad-backend@0.1.11-next.2 + - @backstage/plugin-permission-backend@0.5.32-next.2 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.6-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/plugin-playlist-backend@0.3.13-next.2 + - @backstage/plugin-proxy-backend@0.4.7-next.2 + - @backstage/plugin-scaffolder-backend@1.19.3-next.2 + - @backstage/plugin-search-backend@1.4.9-next.2 + - @backstage/plugin-search-backend-module-catalog@0.1.13-next.2 + - @backstage/plugin-search-backend-module-explore@0.1.13-next.2 + - @backstage/plugin-search-backend-module-techdocs@0.1.13-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/plugin-techdocs-backend@1.9.2-next.2 + - @backstage/plugin-todo-backend@0.3.7-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + - @backstage/plugin-catalog-backend-module-openapi@0.1.26-next.2 + +## @backstage/backend-plugin-manager@0.0.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-backend@1.16.1-next.2 + - @backstage/plugin-events-backend@0.2.18-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + - @backstage/cli-node@0.2.2-next.0 + +## e2e-test@0.2.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.9-next.2 + +## techdocs-cli-embedded-app@0.2.90-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.16.1-next.2 + - @backstage/plugin-techdocs@1.9.3-next.2 + - @backstage/cli@0.25.1-next.1 + - @backstage/integration-react@1.1.23-next.0 + +## @internal/plugin-todo-list-backend@1.0.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + +## @backstage/plugin-visualizer@0.0.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 diff --git a/package.json b/package.json index 35f58dd467..5fbce0ad70 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "@material-ui/pickers@^3.3.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch", "@material-ui/pickers@^3.2.10": "patch:@material-ui/pickers@npm%3A3.3.11#./.yarn/patches/@material-ui-pickers-npm-3.3.11-1c8f68ea20.patch" }, - "version": "1.22.0-next.1", + "version": "1.22.0-next.2", "dependencies": { "@backstage/errors": "workspace:^", "@manypkg/get-packages": "^1.1.3", diff --git a/packages/app-next-example-plugin/CHANGELOG.md b/packages/app-next-example-plugin/CHANGELOG.md index 2dc7ea82ee..a3c3157139 100644 --- a/packages/app-next-example-plugin/CHANGELOG.md +++ b/packages/app-next-example-plugin/CHANGELOG.md @@ -1,5 +1,12 @@ # app-next-example-plugin +## 0.0.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + ## 0.0.5-next.1 ### Patch Changes diff --git a/packages/app-next-example-plugin/package.json b/packages/app-next-example-plugin/package.json index 31ba60cc78..3e7f665b77 100644 --- a/packages/app-next-example-plugin/package.json +++ b/packages/app-next-example-plugin/package.json @@ -1,7 +1,7 @@ { "name": "app-next-example-plugin", "description": "Backstage internal example plugin", - "version": "0.0.5-next.1", + "version": "0.0.5-next.2", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/app-next/CHANGELOG.md b/packages/app-next/CHANGELOG.md index 01536945cb..3a4b1a2369 100644 --- a/packages/app-next/CHANGELOG.md +++ b/packages/app-next/CHANGELOG.md @@ -1,5 +1,70 @@ # example-app-next +## 0.0.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/plugin-user-settings@0.8.0-next.2 + - @backstage/plugin-octopus-deploy@0.2.11-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/frontend-app-api@0.4.1-next.2 + - @backstage/plugin-home@0.6.1-next.2 + - @backstage/plugin-scaffolder-react@1.7.1-next.2 + - @backstage/plugin-scaffolder@1.17.1-next.2 + - @backstage/plugin-linguist@0.1.14-next.2 + - @backstage/plugin-catalog@1.16.1-next.2 + - @backstage/plugin-catalog-import@0.10.5-next.2 + - @backstage/plugin-graphiql@0.3.2-next.2 + - @backstage/plugin-search@1.4.5-next.2 + - @backstage/plugin-tech-radar@0.6.12-next.2 + - @backstage/plugin-techdocs@1.9.3-next.2 + - app-next-example-plugin@0.0.5-next.2 + - @backstage/plugin-adr@0.6.12-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-explore@0.4.15-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + - @backstage/plugin-visualizer@0.0.2-next.2 + - @backstage/cli@0.25.1-next.1 + - @backstage/plugin-pagerduty@0.7.1-next.2 + - @backstage/plugin-api-docs@0.10.3-next.2 + - @backstage/plugin-catalog-graph@0.3.3-next.2 + - @backstage/plugin-org@0.6.19-next.2 + - @backstage/plugin-airbrake@0.3.29-next.2 + - @backstage/plugin-azure-devops@0.3.11-next.2 + - @backstage/plugin-azure-sites@0.1.18-next.2 + - @backstage/plugin-badges@0.2.53-next.2 + - @backstage/plugin-cloudbuild@0.3.29-next.2 + - @backstage/plugin-code-coverage@0.2.22-next.2 + - @backstage/plugin-cost-insights@0.12.18-next.2 + - @backstage/plugin-dynatrace@8.0.3-next.2 + - @backstage/plugin-entity-feedback@0.2.12-next.2 + - @backstage/plugin-github-actions@0.6.10-next.2 + - @backstage/plugin-gocd@0.1.35-next.2 + - @backstage/plugin-jenkins@0.9.4-next.2 + - @backstage/plugin-kafka@0.3.29-next.2 + - @backstage/plugin-kubernetes@0.11.4-next.2 + - @backstage/plugin-lighthouse@0.4.14-next.2 + - @backstage/plugin-newrelic-dashboard@0.3.4-next.2 + - @backstage/plugin-playlist@0.2.3-next.2 + - @backstage/plugin-puppetdb@0.1.12-next.2 + - @backstage/plugin-rollbar@0.4.29-next.2 + - @backstage/plugin-sentry@0.5.14-next.2 + - @backstage/plugin-tech-insights@0.3.21-next.2 + - @backstage/plugin-todo@0.2.33-next.2 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.4-next.1 + - @backstage/integration-react@1.1.23-next.0 + - @backstage/plugin-apache-airflow@0.2.19-next.1 + - @backstage/plugin-catalog-unprocessed-entities@0.1.7-next.1 + - @backstage/plugin-devtools@0.1.8-next.1 + - @backstage/plugin-gcalendar@0.3.22-next.1 + - @backstage/plugin-gcp-projects@0.3.45-next.1 + - @backstage/plugin-microsoft-calendar@0.1.11-next.1 + - @backstage/plugin-newrelic@0.3.44-next.1 + - @backstage/plugin-shortcuts@0.3.18-next.1 + - @backstage/plugin-stackstorm@0.1.10-next.1 + ## 0.0.5-next.1 ### Patch Changes diff --git a/packages/app-next/package.json b/packages/app-next/package.json index c19b9c71cb..4d77e35ad9 100644 --- a/packages/app-next/package.json +++ b/packages/app-next/package.json @@ -1,6 +1,6 @@ { "name": "example-app-next", - "version": "0.0.5-next.1", + "version": "0.0.5-next.2", "private": true, "backstage": { "role": "frontend" diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 1f554fae68..5cb183211c 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,69 @@ # example-app +## 0.2.91-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-user-settings@0.8.0-next.2 + - @backstage/plugin-octopus-deploy@0.2.11-next.2 + - @backstage/frontend-app-api@0.4.1-next.2 + - @backstage/plugin-home@0.6.1-next.2 + - @backstage/plugin-scaffolder-react@1.7.1-next.2 + - @backstage/plugin-scaffolder@1.17.1-next.2 + - @backstage/plugin-linguist@0.1.14-next.2 + - @backstage/plugin-catalog@1.16.1-next.2 + - @backstage/plugin-catalog-import@0.10.5-next.2 + - @backstage/plugin-graphiql@0.3.2-next.2 + - @backstage/plugin-search@1.4.5-next.2 + - @backstage/plugin-tech-radar@0.6.12-next.2 + - @backstage/plugin-techdocs@1.9.3-next.2 + - @backstage/plugin-adr@0.6.12-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-explore@0.4.15-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + - @backstage/plugin-stack-overflow@0.1.24-next.2 + - @backstage/cli@0.25.1-next.1 + - @backstage/plugin-pagerduty@0.7.1-next.2 + - @backstage/plugin-api-docs@0.10.3-next.2 + - @backstage/plugin-catalog-graph@0.3.3-next.2 + - @backstage/plugin-org@0.6.19-next.2 + - @backstage/plugin-airbrake@0.3.29-next.2 + - @backstage/plugin-azure-devops@0.3.11-next.2 + - @backstage/plugin-azure-sites@0.1.18-next.2 + - @backstage/plugin-badges@0.2.53-next.2 + - @backstage/plugin-cloudbuild@0.3.29-next.2 + - @backstage/plugin-code-coverage@0.2.22-next.2 + - @backstage/plugin-cost-insights@0.12.18-next.2 + - @backstage/plugin-dynatrace@8.0.3-next.2 + - @backstage/plugin-entity-feedback@0.2.12-next.2 + - @backstage/plugin-github-actions@0.6.10-next.2 + - @backstage/plugin-gocd@0.1.35-next.2 + - @backstage/plugin-jenkins@0.9.4-next.2 + - @backstage/plugin-kafka@0.3.29-next.2 + - @backstage/plugin-kubernetes@0.11.4-next.2 + - @backstage/plugin-kubernetes-cluster@0.0.5-next.2 + - @backstage/plugin-lighthouse@0.4.14-next.2 + - @backstage/plugin-newrelic-dashboard@0.3.4-next.2 + - @backstage/plugin-nomad@0.1.10-next.2 + - @backstage/plugin-playlist@0.2.3-next.2 + - @backstage/plugin-puppetdb@0.1.12-next.2 + - @backstage/plugin-rollbar@0.4.29-next.2 + - @backstage/plugin-sentry@0.5.14-next.2 + - @backstage/plugin-tech-insights@0.3.21-next.2 + - @backstage/plugin-todo@0.2.33-next.2 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.4-next.1 + - @backstage/integration-react@1.1.23-next.0 + - @backstage/plugin-apache-airflow@0.2.19-next.1 + - @backstage/plugin-catalog-unprocessed-entities@0.1.7-next.1 + - @backstage/plugin-devtools@0.1.8-next.1 + - @backstage/plugin-gcalendar@0.3.22-next.1 + - @backstage/plugin-gcp-projects@0.3.45-next.1 + - @backstage/plugin-microsoft-calendar@0.1.11-next.1 + - @backstage/plugin-newrelic@0.3.44-next.1 + - @backstage/plugin-shortcuts@0.3.18-next.1 + - @backstage/plugin-stackstorm@0.1.10-next.1 + ## 0.2.91-next.1 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 7c0cfd4dae..1d5ac94352 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.91-next.1", + "version": "0.2.91-next.2", "private": true, "backstage": { "role": "frontend" diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index 73a467896e..5790b020fb 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/backend-app-api +## 0.5.10-next.2 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + - @backstage/cli-node@0.2.2-next.0 + - @backstage/config-loader@1.6.1-next.0 + ## 0.5.10-next.1 ### Patch Changes diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index 318ff9ed67..246da2e6a4 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-app-api", "description": "Core API used by Backstage backend apps", - "version": "0.5.10-next.1", + "version": "0.5.10-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index 9562f887fa..b9a80e3841 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/backend-common +## 0.20.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-dev-utils@0.1.3-next.0 + - @backstage/backend-app-api@0.5.10-next.2 + - @backstage/config-loader@1.6.1-next.0 + ## 0.20.1-next.1 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 72e011f7e2..14670e42f8 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.20.1-next.1", + "version": "0.20.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md index 36690921e2..7f8f81d706 100644 --- a/packages/backend-defaults/CHANGELOG.md +++ b/packages/backend-defaults/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/backend-defaults +## 0.2.9-next.2 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-app-api@0.5.10-next.2 + - @backstage/backend-common@0.20.1-next.2 + ## 0.2.9-next.1 ### Patch Changes diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index ac8fd8a624..6315f2615a 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-defaults", "description": "Backend defaults used by Backstage backend apps", - "version": "0.2.9-next.1", + "version": "0.2.9-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-dev-utils/CHANGELOG.md b/packages/backend-dev-utils/CHANGELOG.md index f1d1887b78..0ff2ed6442 100644 --- a/packages/backend-dev-utils/CHANGELOG.md +++ b/packages/backend-dev-utils/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/backend-dev-utils +## 0.1.3-next.0 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status + ## 0.1.2 ### Patch Changes diff --git a/packages/backend-dev-utils/package.json b/packages/backend-dev-utils/package.json index b6156e622c..a58c3ef6bd 100644 --- a/packages/backend-dev-utils/package.json +++ b/packages/backend-dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-dev-utils", - "version": "0.1.2", + "version": "0.1.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/backend-next/CHANGELOG.md b/packages/backend-next/CHANGELOG.md index 8058f77313..0cf0e0ec5c 100644 --- a/packages/backend-next/CHANGELOG.md +++ b/packages/backend-next/CHANGELOG.md @@ -1,5 +1,45 @@ # example-backend-next +## 0.0.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-sonarqube-backend@0.2.11-next.2 + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-defaults@0.2.9-next.2 + - @backstage/plugin-adr-backend@0.4.6-next.2 + - @backstage/plugin-app-backend@0.3.57-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-azure-devops-backend@0.5.1-next.2 + - @backstage/plugin-badges-backend@0.3.6-next.2 + - @backstage/plugin-catalog-backend@1.16.1-next.2 + - @backstage/plugin-catalog-backend-module-backstage-openapi@0.1.2-next.2 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.6-next.2 + - @backstage/plugin-catalog-backend-module-unprocessed@0.3.6-next.2 + - @backstage/plugin-devtools-backend@0.2.6-next.2 + - @backstage/plugin-entity-feedback-backend@0.2.6-next.2 + - @backstage/plugin-jenkins-backend@0.3.3-next.2 + - @backstage/plugin-kubernetes-backend@0.14.1-next.2 + - @backstage/plugin-lighthouse-backend@0.4.1-next.2 + - @backstage/plugin-linguist-backend@0.5.6-next.2 + - @backstage/plugin-nomad-backend@0.1.11-next.2 + - @backstage/plugin-permission-backend@0.5.32-next.2 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.6-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/plugin-playlist-backend@0.3.13-next.2 + - @backstage/plugin-proxy-backend@0.4.7-next.2 + - @backstage/plugin-scaffolder-backend@1.19.3-next.2 + - @backstage/plugin-search-backend@1.4.9-next.2 + - @backstage/plugin-search-backend-module-catalog@0.1.13-next.2 + - @backstage/plugin-search-backend-module-explore@0.1.13-next.2 + - @backstage/plugin-search-backend-module-techdocs@0.1.13-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/plugin-techdocs-backend@1.9.2-next.2 + - @backstage/plugin-todo-backend@0.3.7-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + - @backstage/plugin-catalog-backend-module-openapi@0.1.26-next.2 + ## 0.0.19-next.1 ### Patch Changes diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 40ae14942f..a7bb842d76 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-next", - "version": "0.0.19-next.1", + "version": "0.0.19-next.2", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/backend-openapi-utils/CHANGELOG.md b/packages/backend-openapi-utils/CHANGELOG.md index c40e40fd59..ab7900200a 100644 --- a/packages/backend-openapi-utils/CHANGELOG.md +++ b/packages/backend-openapi-utils/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/backend-openapi-utils +## 0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + ## 0.1.2-next.1 ### Patch Changes diff --git a/packages/backend-openapi-utils/package.json b/packages/backend-openapi-utils/package.json index ea84033d7b..79c5d47bbd 100644 --- a/packages/backend-openapi-utils/package.json +++ b/packages/backend-openapi-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-openapi-utils", "description": "OpenAPI typescript support.", - "version": "0.1.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/backend-plugin-api/CHANGELOG.md b/packages/backend-plugin-api/CHANGELOG.md index 580f3fec11..ff61277e52 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-plugin-api +## 0.6.9-next.2 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status +- Updated dependencies + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.6.9-next.1 ### Patch Changes diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index cc66ac562d..52ed558974 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-plugin-api", "description": "Core API used by Backstage backend plugins", - "version": "0.6.9-next.1", + "version": "0.6.9-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-plugin-manager/CHANGELOG.md b/packages/backend-plugin-manager/CHANGELOG.md index 01fc89b7f3..109c2e8409 100644 --- a/packages/backend-plugin-manager/CHANGELOG.md +++ b/packages/backend-plugin-manager/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/backend-plugin-manager +## 0.0.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-backend@1.16.1-next.2 + - @backstage/plugin-events-backend@0.2.18-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + - @backstage/cli-node@0.2.2-next.0 + ## 0.0.5-next.1 ### Patch Changes diff --git a/packages/backend-plugin-manager/package.json b/packages/backend-plugin-manager/package.json index b5351dc3ad..45344f4c94 100644 --- a/packages/backend-plugin-manager/package.json +++ b/packages/backend-plugin-manager/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-plugin-manager", "description": "Backstage plugin management backend", - "version": "0.0.5-next.1", + "version": "0.0.5-next.2", "private": true, "main": "src/index.ts", "types": "src/index.ts", diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index 0f64a7643c..8cf0bf8f5b 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/backend-tasks +## 0.5.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + ## 0.5.14-next.1 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index 0e6103f06f..139c160bbf 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-tasks", "description": "Common distributed task management library for Backstage backends", - "version": "0.5.14-next.1", + "version": "0.5.14-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md index 86e28f5413..e9dbbaa15a 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/backend-test-utils +## 0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-app-api@0.5.10-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.2.10-next.1 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index c6f4924be4..00d4a98d40 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-test-utils", "description": "Test helpers library for Backstage backends", - "version": "0.2.10-next.1", + "version": "0.2.10-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 52aaafe2df..f333e0ee04 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,57 @@ # example-backend +## 0.2.91-next.2 + +### Patch Changes + +- Updated dependencies + - example-app@0.2.91-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-adr-backend@0.4.6-next.2 + - @backstage/plugin-app-backend@0.3.57-next.2 + - @backstage/plugin-auth-backend@0.20.3-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-azure-devops-backend@0.5.1-next.2 + - @backstage/plugin-badges-backend@0.3.6-next.2 + - @backstage/plugin-catalog-backend@1.16.1-next.2 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.6-next.2 + - @backstage/plugin-catalog-backend-module-unprocessed@0.3.6-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-code-coverage-backend@0.2.23-next.2 + - @backstage/plugin-devtools-backend@0.2.6-next.2 + - @backstage/plugin-entity-feedback-backend@0.2.6-next.2 + - @backstage/plugin-events-backend@0.2.18-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/plugin-jenkins-backend@0.3.3-next.2 + - @backstage/plugin-kafka-backend@0.3.7-next.2 + - @backstage/plugin-kubernetes-backend@0.14.1-next.2 + - @backstage/plugin-lighthouse-backend@0.4.1-next.2 + - @backstage/plugin-linguist-backend@0.5.6-next.2 + - @backstage/plugin-nomad-backend@0.1.11-next.2 + - @backstage/plugin-permission-backend@0.5.32-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/plugin-playlist-backend@0.3.13-next.2 + - @backstage/plugin-proxy-backend@0.4.7-next.2 + - @backstage/plugin-scaffolder-backend@1.19.3-next.2 + - @backstage/plugin-search-backend@1.4.9-next.2 + - @backstage/plugin-search-backend-module-catalog@0.1.13-next.2 + - @backstage/plugin-search-backend-module-elasticsearch@1.3.12-next.2 + - @backstage/plugin-search-backend-module-explore@0.1.13-next.2 + - @backstage/plugin-search-backend-module-pg@0.5.18-next.2 + - @backstage/plugin-search-backend-module-techdocs@0.1.13-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/plugin-techdocs-backend@1.9.2-next.2 + - @backstage/plugin-todo-backend@0.3.7-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + - @backstage/plugin-azure-sites-backend@0.1.19-next.2 + - @backstage/plugin-explore-backend@0.0.19-next.2 + - @backstage/plugin-rollbar-backend@0.1.54-next.2 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.10-next.2 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.26-next.2 + - @backstage/plugin-tech-insights-backend@0.5.23-next.2 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.41-next.2 + - @backstage/plugin-tech-insights-node@0.4.15-next.2 + ## 0.2.91-next.1 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index c3959d63b5..b5518dde56 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.91-next.1", + "version": "0.2.91-next.2", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/core-compat-api/CHANGELOG.md b/packages/core-compat-api/CHANGELOG.md index 48977a4c4f..50604d27db 100644 --- a/packages/core-compat-api/CHANGELOG.md +++ b/packages/core-compat-api/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/core-compat-api +## 0.1.1-next.2 + +### Patch Changes + +- 4c1f50c: Make `convertLegacyApp` wrap discovered routes with `compatWrapper`. +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + ## 0.1.1-next.1 ### Patch Changes diff --git a/packages/core-compat-api/package.json b/packages/core-compat-api/package.json index f5de02c154..9869de1e60 100644 --- a/packages/core-compat-api/package.json +++ b/packages/core-compat-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/core-compat-api", - "version": "0.1.1-next.1", + "version": "0.1.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index da3bb217a3..1c77f14254 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/create-app +## 0.5.9-next.2 + +### Patch Changes + +- Bumped create-app version. + ## 0.5.9-next.1 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index d41322422c..e68dea26f5 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "A CLI that helps you create your own Backstage app", - "version": "0.5.9-next.1", + "version": "0.5.9-next.2", "publishConfig": { "access": "public" }, diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index 202e1021db..cbbd849093 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/dev-utils +## 1.0.26-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/integration-react@1.1.23-next.0 + ## 1.0.26-next.1 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 2100ce95f0..74c548a5a4 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/dev-utils", "description": "Utilities for developing Backstage plugins.", - "version": "1.0.26-next.1", + "version": "1.0.26-next.2", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/e2e-test/CHANGELOG.md b/packages/e2e-test/CHANGELOG.md index c25142ff82..ef58183440 100644 --- a/packages/e2e-test/CHANGELOG.md +++ b/packages/e2e-test/CHANGELOG.md @@ -1,5 +1,12 @@ # e2e-test +## 0.2.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.9-next.2 + ## 0.2.11-next.1 ### Patch Changes diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 033b7d2a5f..8999c53daa 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -1,7 +1,7 @@ { "name": "e2e-test", "description": "E2E test for verifying Backstage packages", - "version": "0.2.11-next.1", + "version": "0.2.11-next.2", "private": true, "backstage": { "role": "cli" diff --git a/packages/frontend-app-api/CHANGELOG.md b/packages/frontend-app-api/CHANGELOG.md index 106f7172e1..f6d98b7845 100644 --- a/packages/frontend-app-api/CHANGELOG.md +++ b/packages/frontend-app-api/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/frontend-app-api +## 0.4.1-next.2 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + ## 0.4.1-next.1 ### Patch Changes diff --git a/packages/frontend-app-api/package.json b/packages/frontend-app-api/package.json index 620cc19190..25ab827d4a 100644 --- a/packages/frontend-app-api/package.json +++ b/packages/frontend-app-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-app-api", - "version": "0.4.1-next.1", + "version": "0.4.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/frontend-plugin-api/CHANGELOG.md b/packages/frontend-plugin-api/CHANGELOG.md index d79ce6715b..c02760f4e1 100644 --- a/packages/frontend-plugin-api/CHANGELOG.md +++ b/packages/frontend-plugin-api/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/frontend-plugin-api +## 0.4.1-next.2 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status + ## 0.4.1-next.1 ### Patch Changes diff --git a/packages/frontend-plugin-api/package.json b/packages/frontend-plugin-api/package.json index aeb6f0b256..4722cd1bff 100644 --- a/packages/frontend-plugin-api/package.json +++ b/packages/frontend-plugin-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-plugin-api", - "version": "0.4.1-next.1", + "version": "0.4.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/frontend-test-utils/CHANGELOG.md b/packages/frontend-test-utils/CHANGELOG.md index 1569ceaeff..0d119d72fa 100644 --- a/packages/frontend-test-utils/CHANGELOG.md +++ b/packages/frontend-test-utils/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/frontend-test-utils +## 0.1.1-next.2 + +### Patch Changes + +- 516fd3e: Updated README to reflect release status +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/frontend-app-api@0.4.1-next.2 + ## 0.1.1-next.1 ### Patch Changes diff --git a/packages/frontend-test-utils/package.json b/packages/frontend-test-utils/package.json index 18bd1a025e..141ce93e34 100644 --- a/packages/frontend-test-utils/package.json +++ b/packages/frontend-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-test-utils", - "version": "0.1.1-next.1", + "version": "0.1.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md index 8f13e90570..a968648f1c 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/repo-tools +## 0.5.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/cli-node@0.2.2-next.0 + ## 0.5.2-next.1 ### Patch Changes diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 69dbb190fa..1f46d1fe65 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/repo-tools", "description": "CLI for Backstage repo tooling ", - "version": "0.5.2-next.1", + "version": "0.5.2-next.2", "publishConfig": { "access": "public" }, diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index 3162966a4a..ceacc30019 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,15 @@ # techdocs-cli-embedded-app +## 0.2.90-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.16.1-next.2 + - @backstage/plugin-techdocs@1.9.3-next.2 + - @backstage/cli@0.25.1-next.1 + - @backstage/integration-react@1.1.23-next.0 + ## 0.2.90-next.1 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index d5da1169c7..2fb78763ac 100644 --- a/packages/techdocs-cli-embedded-app/package.json +++ b/packages/techdocs-cli-embedded-app/package.json @@ -1,6 +1,6 @@ { "name": "techdocs-cli-embedded-app", - "version": "0.2.90-next.1", + "version": "0.2.90-next.2", "private": true, "backstage": { "role": "frontend" diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index ed43167f56..d0eddde367 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,13 @@ # @techdocs/cli +## 1.8.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-techdocs-node@1.11.1-next.2 + ## 1.8.1-next.1 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 65e3e16716..67d9de2012 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@techdocs/cli", "description": "Utility CLI for managing TechDocs sites in Backstage.", - "version": "1.8.1-next.1", + "version": "1.8.1-next.2", "publishConfig": { "access": "public" }, diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md index 23857d82e3..81c3f3bce6 100644 --- a/plugins/adr-backend/CHANGELOG.md +++ b/plugins/adr-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-adr-backend +## 0.4.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + ## 0.4.6-next.1 ### Patch Changes diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index efe1653fe2..cbd535acc0 100644 --- a/plugins/adr-backend/package.json +++ b/plugins/adr-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr-backend", - "version": "0.4.6-next.1", + "version": "0.4.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/adr/CHANGELOG.md b/plugins/adr/CHANGELOG.md index a3fe23803d..2d33b2db7c 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-adr +## 0.6.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + - @backstage/integration-react@1.1.23-next.0 + ## 0.6.12-next.1 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index 96652e0c62..6760c7b3a2 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.6.12-next.1", + "version": "0.6.12-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/airbrake-backend/CHANGELOG.md b/plugins/airbrake-backend/CHANGELOG.md index c84b4a5098..ccad48c17e 100644 --- a/plugins/airbrake-backend/CHANGELOG.md +++ b/plugins/airbrake-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-airbrake-backend +## 0.3.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + ## 0.3.6-next.1 ### Patch Changes diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index c7d20a22d7..a505c3d493 100644 --- a/plugins/airbrake-backend/package.json +++ b/plugins/airbrake-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake-backend", - "version": "0.3.6-next.1", + "version": "0.3.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/airbrake/CHANGELOG.md b/plugins/airbrake/CHANGELOG.md index 2a40d0c4c1..9df64be9aa 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-airbrake +## 0.3.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/dev-utils@1.0.26-next.2 + ## 0.3.29-next.1 ### Patch Changes diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index 730436d20c..4d33c28633 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.3.29-next.1", + "version": "0.3.29-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/allure/CHANGELOG.md b/plugins/allure/CHANGELOG.md index 3739341635..554839eb83 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-allure +## 0.1.45-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.45-next.1 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index 5c7f49f29b..6d8817def9 100644 --- a/plugins/allure/package.json +++ b/plugins/allure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-allure", "description": "A Backstage plugin that integrates with Allure", - "version": "0.1.45-next.1", + "version": "0.1.45-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index b157a73217..a8e4e81997 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-api-docs +## 0.10.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.16.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.10.3-next.1 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 8fedf41203..84e563655b 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-api-docs", "description": "A Backstage plugin that helps represent API entities in the frontend", - "version": "0.10.3-next.1", + "version": "0.10.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md index 508eed69ab..8d66e21c5c 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-app-backend +## 0.3.57-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-app-node@0.1.9-next.2 + - @backstage/config-loader@1.6.1-next.0 + ## 0.3.57-next.1 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index 6b5f3be8d2..ec9fd3c805 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-app-backend", "description": "A Backstage backend plugin that serves the Backstage frontend app", - "version": "0.3.57-next.1", + "version": "0.3.57-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/app-node/CHANGELOG.md b/plugins/app-node/CHANGELOG.md index b39f2a2621..9739a86adb 100644 --- a/plugins/app-node/CHANGELOG.md +++ b/plugins/app-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-app-node +## 0.1.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + ## 0.1.9-next.1 ### Patch Changes diff --git a/plugins/app-node/package.json b/plugins/app-node/package.json index 971fe6b6e0..772b7634cc 100644 --- a/plugins/app-node/package.json +++ b/plugins/app-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-app-node", "description": "Node.js library for the app plugin", - "version": "0.1.9-next.1", + "version": "0.1.9-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md b/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md index 1a58abfcef..53cb34d82c 100644 --- a/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-atlassian-provider +## 0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-atlassian-provider/package.json b/plugins/auth-backend-module-atlassian-provider/package.json index b33679387b..1b23ec5b86 100644 --- a/plugins/auth-backend-module-atlassian-provider/package.json +++ b/plugins/auth-backend-module-atlassian-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-atlassian-provider", "description": "The atlassian-provider backend module for the auth plugin.", - "version": "0.1.1-next.1", + "version": "0.1.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md b/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md index af43d4e2f0..506bd36057 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-gcp-iap-provider +## 0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.2.3-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-gcp-iap-provider/package.json b/plugins/auth-backend-module-gcp-iap-provider/package.json index 064eb52055..21eb4fc51e 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/package.json +++ b/plugins/auth-backend-module-gcp-iap-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-gcp-iap-provider", "description": "A GCP IAP auth provider module for the Backstage auth backend", - "version": "0.2.3-next.1", + "version": "0.2.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-github-provider/CHANGELOG.md b/plugins/auth-backend-module-github-provider/CHANGELOG.md index be21837ee8..cdfc128d85 100644 --- a/plugins/auth-backend-module-github-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-github-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-github-provider +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-github-provider/package.json b/plugins/auth-backend-module-github-provider/package.json index 49daad89c4..7cd95fe0a0 100644 --- a/plugins/auth-backend-module-github-provider/package.json +++ b/plugins/auth-backend-module-github-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-github-provider", "description": "The github-provider backend module for the auth plugin.", - "version": "0.1.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md b/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md index 861b78bea8..9222ec93be 100644 --- a/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-gitlab-provider +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-gitlab-provider/package.json b/plugins/auth-backend-module-gitlab-provider/package.json index 029ec0b3fc..bdf17c3c07 100644 --- a/plugins/auth-backend-module-gitlab-provider/package.json +++ b/plugins/auth-backend-module-gitlab-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-gitlab-provider", "description": "The gitlab-provider backend module for the auth plugin.", - "version": "0.1.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-google-provider/CHANGELOG.md b/plugins/auth-backend-module-google-provider/CHANGELOG.md index 5a5b5f6a62..57127a7aea 100644 --- a/plugins/auth-backend-module-google-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-google-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-google-provider +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-google-provider/package.json b/plugins/auth-backend-module-google-provider/package.json index 10a981997c..eb8191090a 100644 --- a/plugins/auth-backend-module-google-provider/package.json +++ b/plugins/auth-backend-module-google-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-google-provider", "description": "A Google auth provider module for the Backstage auth backend", - "version": "0.1.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md b/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md index 57fa8a7469..61a4b756ab 100644 --- a/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-microsoft-provider +## 0.1.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.1.4-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-microsoft-provider/package.json b/plugins/auth-backend-module-microsoft-provider/package.json index 2156179154..99e85bd8d8 100644 --- a/plugins/auth-backend-module-microsoft-provider/package.json +++ b/plugins/auth-backend-module-microsoft-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-microsoft-provider", "description": "The microsoft-provider backend module for the auth plugin.", - "version": "0.1.4-next.1", + "version": "0.1.4-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md b/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md index 498147fefa..46cee9f112 100644 --- a/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-oauth2-provider +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-oauth2-provider/package.json b/plugins/auth-backend-module-oauth2-provider/package.json index b005b13ade..cf385237e5 100644 --- a/plugins/auth-backend-module-oauth2-provider/package.json +++ b/plugins/auth-backend-module-oauth2-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-oauth2-provider", "description": "The oauth2-provider backend module for the auth plugin.", - "version": "0.1.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md b/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md index 1b698712d6..7ecac42625 100644 --- a/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-oauth2-proxy-provider +## 0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-oauth2-proxy-provider/package.json b/plugins/auth-backend-module-oauth2-proxy-provider/package.json index 368a4dbe0e..7ed983ce0e 100644 --- a/plugins/auth-backend-module-oauth2-proxy-provider/package.json +++ b/plugins/auth-backend-module-oauth2-proxy-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-oauth2-proxy-provider", "description": "The oauth2-proxy-provider backend module for the auth plugin.", - "version": "0.1.1-next.1", + "version": "0.1.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-okta-provider/CHANGELOG.md b/plugins/auth-backend-module-okta-provider/CHANGELOG.md index eb8ffbbc80..5834ce13de 100644 --- a/plugins/auth-backend-module-okta-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-okta-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-okta-provider +## 0.0.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.0.2-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-okta-provider/package.json b/plugins/auth-backend-module-okta-provider/package.json index 981b05fb8f..68fa330c3c 100644 --- a/plugins/auth-backend-module-okta-provider/package.json +++ b/plugins/auth-backend-module-okta-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-okta-provider", "description": "The okta-provider backend module for the auth plugin.", - "version": "0.0.2-next.1", + "version": "0.0.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md b/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md index a34f8338f2..29f61ec259 100644 --- a/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-pinniped-provider +## 0.1.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.1.3-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-pinniped-provider/package.json b/plugins/auth-backend-module-pinniped-provider/package.json index ed0e7a1c8c..6160708204 100644 --- a/plugins/auth-backend-module-pinniped-provider/package.json +++ b/plugins/auth-backend-module-pinniped-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-pinniped-provider", "description": "The pinniped-provider backend module for the auth plugin.", - "version": "0.1.3-next.1", + "version": "0.1.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md b/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md index 4bfdac9f2f..c2f21ade42 100644 --- a/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-backend-module-vmware-cloud-provider +## 0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-vmware-cloud-provider/package.json b/plugins/auth-backend-module-vmware-cloud-provider/package.json index 5ebd864ef5..0d353a6b84 100644 --- a/plugins/auth-backend-module-vmware-cloud-provider/package.json +++ b/plugins/auth-backend-module-vmware-cloud-provider/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend-module-vmware-cloud-provider", "description": "The vmware-cloud-provider backend module for the auth plugin.", - "version": "0.1.1-next.1", + "version": "0.1.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index eeecda384a..964b2e05e8 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-auth-backend +## 0.20.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-backend-module-atlassian-provider@0.1.1-next.2 + - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.3-next.2 + - @backstage/plugin-auth-backend-module-github-provider@0.1.6-next.2 + - @backstage/plugin-auth-backend-module-gitlab-provider@0.1.6-next.2 + - @backstage/plugin-auth-backend-module-google-provider@0.1.6-next.2 + - @backstage/plugin-auth-backend-module-oauth2-provider@0.1.6-next.2 + - @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.1-next.2 + - @backstage/plugin-auth-backend-module-okta-provider@0.0.2-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + ## 0.20.3-next.1 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 6e5660815a..f05551736a 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend", "description": "A Backstage backend plugin that handles authentication", - "version": "0.20.3-next.1", + "version": "0.20.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-node/CHANGELOG.md b/plugins/auth-node/CHANGELOG.md index ab2516be2d..f2bbe106a3 100644 --- a/plugins/auth-node/CHANGELOG.md +++ b/plugins/auth-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-auth-node +## 0.4.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + ## 0.4.3-next.1 ### Patch Changes diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index 6c76eff3b8..1f11c7d0a7 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-node", - "version": "0.4.3-next.1", + "version": "0.4.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-devops-backend/CHANGELOG.md b/plugins/azure-devops-backend/CHANGELOG.md index 84c9a5df54..e63fd49793 100644 --- a/plugins/azure-devops-backend/CHANGELOG.md +++ b/plugins/azure-devops-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-azure-devops-backend +## 0.5.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + ## 0.5.1-next.1 ### Patch Changes diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 113677ff79..e0e3074701 100644 --- a/plugins/azure-devops-backend/package.json +++ b/plugins/azure-devops-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops-backend", - "version": "0.5.1-next.1", + "version": "0.5.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-devops/CHANGELOG.md b/plugins/azure-devops/CHANGELOG.md index da2e0d3fa0..c4f5208d26 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-azure-devops +## 0.3.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.3.11-next.1 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index 53d74fe6f7..c394bd8597 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops", - "version": "0.3.11-next.1", + "version": "0.3.11-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-sites-backend/CHANGELOG.md b/plugins/azure-sites-backend/CHANGELOG.md index 951d2fc785..2d7744f9d9 100644 --- a/plugins/azure-sites-backend/CHANGELOG.md +++ b/plugins/azure-sites-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-azure-sites-backend +## 0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/azure-sites-backend/package.json b/plugins/azure-sites-backend/package.json index 5d05f4e5e0..be5f7f47c9 100644 --- a/plugins/azure-sites-backend/package.json +++ b/plugins/azure-sites-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-sites-backend", - "version": "0.1.19-next.1", + "version": "0.1.19-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-sites/CHANGELOG.md b/plugins/azure-sites/CHANGELOG.md index 06adf894fb..fa99632e82 100644 --- a/plugins/azure-sites/CHANGELOG.md +++ b/plugins/azure-sites/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-azure-sites +## 0.1.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.18-next.1 ### Patch Changes diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json index caa06b6de4..3ca64a04e8 100644 --- a/plugins/azure-sites/package.json +++ b/plugins/azure-sites/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-sites", - "version": "0.1.18-next.1", + "version": "0.1.18-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md index 7c2470c64f..ff7908984b 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-badges-backend +## 0.3.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.3.6-next.1 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index c46c5bbaf1..3a3c229e7b 100644 --- a/plugins/badges-backend/package.json +++ b/plugins/badges-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges-backend", "description": "A Backstage backend plugin that generates README badges for your entities", - "version": "0.3.6-next.1", + "version": "0.3.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/badges/CHANGELOG.md b/plugins/badges/CHANGELOG.md index a6f71e5073..2dd15e3d78 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-badges +## 0.2.53-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.2.53-next.1 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index d9ca86a424..4ca01e0312 100644 --- a/plugins/badges/package.json +++ b/plugins/badges/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges", "description": "A Backstage plugin that generates README badges for your entities", - "version": "0.2.53-next.1", + "version": "0.2.53-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bazaar-backend/CHANGELOG.md b/plugins/bazaar-backend/CHANGELOG.md index cdd55bc02e..c476a90394 100644 --- a/plugins/bazaar-backend/CHANGELOG.md +++ b/plugins/bazaar-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-bazaar-backend +## 0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.3.7-next.1 ### Patch Changes diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index a3e48d8bd3..5d650ab325 100644 --- a/plugins/bazaar-backend/package.json +++ b/plugins/bazaar-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar-backend", - "version": "0.3.7-next.1", + "version": "0.3.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bazaar/CHANGELOG.md b/plugins/bazaar/CHANGELOG.md index 227e4689a7..df27712931 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-bazaar +## 0.2.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.2.21-next.1 ### Patch Changes diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index f103ba1726..d00b018041 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.2.21-next.1", + "version": "0.2.21-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bitrise/CHANGELOG.md b/plugins/bitrise/CHANGELOG.md index d4d4dcdd01..bc60cb7323 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-bitrise +## 0.1.56-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.56-next.1 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index ccddc2e088..dad18f8c8d 100644 --- a/plugins/bitrise/package.json +++ b/plugins/bitrise/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-bitrise", "description": "A Backstage plugin that integrates towards Bitrise", - "version": "0.1.56-next.1", + "version": "0.1.56-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-aws/CHANGELOG.md b/plugins/catalog-backend-module-aws/CHANGELOG.md index 5e4687d322..4b74bd929e 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.3.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.3.3-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index 57c094d988..b134e0ac63 100644 --- a/plugins/catalog-backend-module-aws/package.json +++ b/plugins/catalog-backend-module-aws/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-aws", "description": "A Backstage catalog backend module that helps integrate towards AWS", - "version": "0.3.3-next.1", + "version": "0.3.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md index ba467b201f..41a3530478 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.28-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.1.28-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index e17fe6b1e9..7729541f81 100644 --- a/plugins/catalog-backend-module-azure/package.json +++ b/plugins/catalog-backend-module-azure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-azure", "description": "A Backstage catalog backend module that helps integrate towards Azure", - "version": "0.1.28-next.1", + "version": "0.1.28-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md b/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md index 583cd38e3f..f85f00add2 100644 --- a/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-backend-module-backstage-openapi +## 0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/backend-openapi-utils@0.1.2-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-backstage-openapi/package.json b/plugins/catalog-backend-module-backstage-openapi/package.json index 1f49fd2715..728ff04920 100644 --- a/plugins/catalog-backend-module-backstage-openapi/package.json +++ b/plugins/catalog-backend-module-backstage-openapi/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-backstage-openapi", - "version": "0.1.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md index 574d7f4051..7e28d5e4d8 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-backend-module-bitbucket-cloud +## 0.1.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.1.24-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index df8d956599..ba3b165d31 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/package.json +++ b/plugins/catalog-backend-module-bitbucket-cloud/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-cloud", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket Cloud", - "version": "0.1.24-next.1", + "version": "0.1.24-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md index 15845da184..3111f2cef3 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server +## 0.1.22-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.1.22-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index 7e56481f55..4e75fd71a7 100644 --- a/plugins/catalog-backend-module-bitbucket-server/package.json +++ b/plugins/catalog-backend-module-bitbucket-server/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-server", - "version": "0.1.22-next.1", + "version": "0.1.22-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md index cc207827c6..37ea4f7179 100644 --- a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-bitbucket +## 0.2.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + ## 0.2.24-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index 1f0add4c46..2241bcfeb0 100644 --- a/plugins/catalog-backend-module-bitbucket/package.json +++ b/plugins/catalog-backend-module-bitbucket/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket", - "version": "0.2.24-next.1", + "version": "0.2.24-next.2", "deprecated": true, "main": "src/index.ts", "types": "src/index.ts", diff --git a/plugins/catalog-backend-module-gcp/CHANGELOG.md b/plugins/catalog-backend-module-gcp/CHANGELOG.md index 6ea18854e9..737676e11d 100644 --- a/plugins/catalog-backend-module-gcp/CHANGELOG.md +++ b/plugins/catalog-backend-module-gcp/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-gcp +## 0.1.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.1.9-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-gcp/package.json b/plugins/catalog-backend-module-gcp/package.json index 5e1ebda71d..4d03df555e 100644 --- a/plugins/catalog-backend-module-gcp/package.json +++ b/plugins/catalog-backend-module-gcp/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-gcp", "description": "A Backstage catalog backend module that helps integrate towards GCP", - "version": "0.1.9-next.1", + "version": "0.1.9-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md index 7c68090dd6..ae9f0ac4e5 100644 --- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md +++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-gerrit +## 0.1.25-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.1.25-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index 858de342c2..41786609c5 100644 --- a/plugins/catalog-backend-module-gerrit/package.json +++ b/plugins/catalog-backend-module-gerrit/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-gerrit", - "version": "0.1.25-next.1", + "version": "0.1.25-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-github-org/CHANGELOG.md b/plugins/catalog-backend-module-github-org/CHANGELOG.md index bdb674adc0..18ef030f1e 100644 --- a/plugins/catalog-backend-module-github-org/CHANGELOG.md +++ b/plugins/catalog-backend-module-github-org/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-backend-module-github-org +## 0.1.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-backend-module-github@0.4.7-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.1.3-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-github-org/package.json b/plugins/catalog-backend-module-github-org/package.json index 5fe618f1ca..e817e33ffe 100644 --- a/plugins/catalog-backend-module-github-org/package.json +++ b/plugins/catalog-backend-module-github-org/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-github-org", "description": "The github-org backend module for the catalog plugin.", - "version": "0.1.3-next.1", + "version": "0.1.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index 0ebca9c910..88840caf17 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-github +## 0.4.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-backend@1.16.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.4.7-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index 2e6ec26190..fbca514b3e 100644 --- a/plugins/catalog-backend-module-github/package.json +++ b/plugins/catalog-backend-module-github/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-github", "description": "A Backstage catalog backend module that helps integrate towards GitHub", - "version": "0.4.7-next.1", + "version": "0.4.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md index c5c4f7f87a..eb0177d7b5 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.3.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.3.6-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index 96a71c7695..cf54123207 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab", "description": "A Backstage catalog backend module that helps integrate towards GitLab", - "version": "0.3.6-next.1", + "version": "0.3.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md index ef5a8da3b7..d66c32a438 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md +++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-incremental-ingestion +## 0.4.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-backend@1.16.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.4.13-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index 987082d9a8..95d4b3563a 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/package.json +++ b/plugins/catalog-backend-module-incremental-ingestion/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-incremental-ingestion", "description": "An entity provider for streaming large asset sources into the catalog", - "version": "0.4.13-next.1", + "version": "0.4.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index 42abc68163..e862e66a3b 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.5.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.5.24-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index 2cce5949f9..c82c45545d 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-ldap", "description": "A Backstage catalog backend module that helps integrate towards LDAP", - "version": "0.5.24-next.1", + "version": "0.5.24-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index 391bc548f0..dbb12e9ecc 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.5.16-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.5.16-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index e06fd60bcc..779550f849 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-msgraph", "description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph", - "version": "0.5.16-next.1", + "version": "0.5.16-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md index d90a6d4847..cb12054932 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.1.26-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-backend@1.16.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + ## 0.1.26-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 495d5f4f0d..bee556dab3 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-openapi", "description": "A Backstage catalog backend module that helps with OpenAPI specifications", - "version": "0.1.26-next.1", + "version": "0.1.26-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md index 1dfc3537d4..63c288768e 100644 --- a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md +++ b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-puppetdb +## 0.1.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.1.14-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json index 18763a47a7..41cc2a0cc1 100644 --- a/plugins/catalog-backend-module-puppetdb/package.json +++ b/plugins/catalog-backend-module-puppetdb/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-puppetdb", "description": "A Backstage catalog backend module that helps integrate towards PuppetDB", - "version": "0.1.14-next.1", + "version": "0.1.14-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md b/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md index 40f9199f91..93fbd3ee37 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md +++ b/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-scaffolder-entity-model +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-scaffolder-entity-model/package.json b/plugins/catalog-backend-module-scaffolder-entity-model/package.json index 46539df512..7be1fb1ffc 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/package.json +++ b/plugins/catalog-backend-module-scaffolder-entity-model/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-scaffolder-entity-model", "description": "Adds support for the scaffolder specific entity model (e.g. the Template kind) to the catalog backend plugin.", - "version": "0.1.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md index 5d1845ffac..9c90b67b9f 100644 --- a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md +++ b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-unprocessed +## 0.3.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.3.6-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-unprocessed/package.json b/plugins/catalog-backend-module-unprocessed/package.json index acc067c054..92b5755d07 100644 --- a/plugins/catalog-backend-module-unprocessed/package.json +++ b/plugins/catalog-backend-module-unprocessed/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-unprocessed", "description": "Backstage Catalog module to view unprocessed entities", - "version": "0.3.6-next.1", + "version": "0.3.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index 6d9c01e745..45b11bba63 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend +## 1.16.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/backend-openapi-utils@0.1.2-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/plugin-search-backend-module-catalog@0.1.13-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 1.16.1-next.1 ### Patch Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index cf12fbaf0b..ad0ddcf767 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend", "description": "The Backstage backend plugin that provides the Backstage catalog", - "version": "1.16.1-next.1", + "version": "1.16.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index 3bf5fa247b..1523fa602b 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-catalog-graph +## 0.3.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.3.3-next.1 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index d159dfae48..c19131325b 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-graph", - "version": "0.3.3-next.1", + "version": "0.3.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md index 83db43e1c8..7b60edc160 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-import +## 0.10.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/integration-react@1.1.23-next.0 + ## 0.10.5-next.1 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index 3cb8e317fe..7f48d59f91 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-import", "description": "A Backstage plugin the helps you import entities into your catalog", - "version": "0.10.5-next.1", + "version": "0.10.5-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md index 5f9a5b5fd6..8da663cfa0 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-node +## 1.6.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + ## 1.6.1-next.1 ### Patch Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index 592c7562bc..e09509d2b5 100644 --- a/plugins/catalog-node/package.json +++ b/plugins/catalog-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-node", "description": "The plugin-catalog-node module for @backstage/plugin-catalog-backend", - "version": "1.6.1-next.1", + "version": "1.6.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index d6a0e0d4d9..62ce5b8337 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-react +## 1.9.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/integration-react@1.1.23-next.0 + ## 1.9.3-next.1 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index fe3fba834e..9ad06a3c98 100644 --- a/plugins/catalog-react/package.json +++ b/plugins/catalog-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-react", "description": "A frontend library that helps other Backstage plugins interact with the catalog", - "version": "1.9.3-next.1", + "version": "1.9.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index 52fdb9c969..3f3996bc30 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog +## 1.16.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + - @backstage/integration-react@1.1.23-next.0 + ## 1.16.1-next.1 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 70a4ce2a14..fc097efc4f 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog", "description": "The Backstage plugin for browsing the Backstage catalog", - "version": "1.16.1-next.1", + "version": "1.16.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md index 3645379d51..22482f3fe7 100644 --- a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md +++ b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-cicd-statistics-module-gitlab +## 0.1.25-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-cicd-statistics@0.1.31-next.2 + ## 0.1.25-next.1 ### Patch Changes diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json index 1e3dfcdb6c..285dfb76a0 100644 --- a/plugins/cicd-statistics-module-gitlab/package.json +++ b/plugins/cicd-statistics-module-gitlab/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cicd-statistics-module-gitlab", "description": "CI/CD Statistics plugin module; Gitlab CICD", - "version": "0.1.25-next.1", + "version": "0.1.25-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cicd-statistics/CHANGELOG.md b/plugins/cicd-statistics/CHANGELOG.md index 7b0c97a22f..c5d6328c08 100644 --- a/plugins/cicd-statistics/CHANGELOG.md +++ b/plugins/cicd-statistics/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-cicd-statistics +## 0.1.31-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.31-next.1 ### Patch Changes diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index 1bae81fc1c..6e52536878 100644 --- a/plugins/cicd-statistics/package.json +++ b/plugins/cicd-statistics/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cicd-statistics", "description": "A frontend plugin visualizing CI/CD pipeline statistics (build time)", - "version": "0.1.31-next.1", + "version": "0.1.31-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/circleci/CHANGELOG.md b/plugins/circleci/CHANGELOG.md index 3f547546c5..6e1310932c 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-circleci +## 0.3.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.3.29-next.1 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 55552ff302..92daf3e741 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-circleci", "description": "A Backstage plugin that integrates towards Circle CI", - "version": "0.3.29-next.1", + "version": "0.3.29-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cloudbuild/CHANGELOG.md b/plugins/cloudbuild/CHANGELOG.md index 65f498900d..7e21005cf8 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-cloudbuild +## 0.3.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.3.29-next.1 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index 1b71704da0..16ede212f9 100644 --- a/plugins/cloudbuild/package.json +++ b/plugins/cloudbuild/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cloudbuild", "description": "A Backstage plugin that integrates towards Google Cloud Build", - "version": "0.3.29-next.1", + "version": "0.3.29-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-climate/CHANGELOG.md b/plugins/code-climate/CHANGELOG.md index 5dd6af6608..c845623759 100644 --- a/plugins/code-climate/CHANGELOG.md +++ b/plugins/code-climate/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-code-climate +## 0.1.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.29-next.1 ### Patch Changes diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index 9b9684b032..02ef329e2f 100644 --- a/plugins/code-climate/package.json +++ b/plugins/code-climate/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-code-climate", - "version": "0.1.29-next.1", + "version": "0.1.29-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-coverage-backend/CHANGELOG.md b/plugins/code-coverage-backend/CHANGELOG.md index 3929e1a560..8244c65125 100644 --- a/plugins/code-coverage-backend/CHANGELOG.md +++ b/plugins/code-coverage-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-code-coverage-backend +## 0.2.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.2.23-next.1 ### Patch Changes diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index 5f0c4038d4..3c214effce 100644 --- a/plugins/code-coverage-backend/package.json +++ b/plugins/code-coverage-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage-backend", "description": "A Backstage backend plugin that helps you keep track of your code coverage", - "version": "0.2.23-next.1", + "version": "0.2.23-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md index 8f956bf4b5..36d0cdf180 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-code-coverage +## 0.2.22-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.2.22-next.1 ### Patch Changes diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 06577d9ae3..1dd4adda0c 100644 --- a/plugins/code-coverage/package.json +++ b/plugins/code-coverage/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage", "description": "A Backstage plugin that helps you keep track of your code coverage", - "version": "0.2.22-next.1", + "version": "0.2.22-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cost-insights/CHANGELOG.md b/plugins/cost-insights/CHANGELOG.md index ac46d4589a..3d62339bc8 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-cost-insights +## 0.12.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.12.18-next.1 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index 8a4aa56826..bf8f5ff02a 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cost-insights", "description": "A Backstage plugin that helps you keep track of your cloud spend", - "version": "0.12.18-next.1", + "version": "0.12.18-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/devtools-backend/CHANGELOG.md b/plugins/devtools-backend/CHANGELOG.md index a105fb25ff..29ed53fae6 100644 --- a/plugins/devtools-backend/CHANGELOG.md +++ b/plugins/devtools-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-devtools-backend +## 0.2.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/config-loader@1.6.1-next.0 + ## 0.2.6-next.1 ### Patch Changes diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index aca2adf8b8..d81b4538cf 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-devtools-backend", - "version": "0.2.6-next.1", + "version": "0.2.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/dynatrace/CHANGELOG.md b/plugins/dynatrace/CHANGELOG.md index bdd7de083c..7e2ad6ab27 100644 --- a/plugins/dynatrace/CHANGELOG.md +++ b/plugins/dynatrace/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-dynatrace +## 8.0.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 8.0.3-next.1 ### Patch Changes diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index d9708fb20a..a14915cebb 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-dynatrace", - "version": "8.0.3-next.1", + "version": "8.0.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/entity-feedback-backend/CHANGELOG.md b/plugins/entity-feedback-backend/CHANGELOG.md index 0e6b2878ac..ccaeaf63eb 100644 --- a/plugins/entity-feedback-backend/CHANGELOG.md +++ b/plugins/entity-feedback-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-entity-feedback-backend +## 0.2.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.2.6-next.1 ### Patch Changes diff --git a/plugins/entity-feedback-backend/package.json b/plugins/entity-feedback-backend/package.json index 1e0bd561d1..54cf74aa55 100644 --- a/plugins/entity-feedback-backend/package.json +++ b/plugins/entity-feedback-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-entity-feedback-backend", - "version": "0.2.6-next.1", + "version": "0.2.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/entity-feedback/CHANGELOG.md b/plugins/entity-feedback/CHANGELOG.md index cf626a7668..2d9bb0b57a 100644 --- a/plugins/entity-feedback/CHANGELOG.md +++ b/plugins/entity-feedback/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-entity-feedback +## 0.2.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.2.12-next.1 ### Patch Changes diff --git a/plugins/entity-feedback/package.json b/plugins/entity-feedback/package.json index 60944c2ad6..8d2b01dcfb 100644 --- a/plugins/entity-feedback/package.json +++ b/plugins/entity-feedback/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-entity-feedback", - "version": "0.2.12-next.1", + "version": "0.2.12-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/entity-validation/CHANGELOG.md b/plugins/entity-validation/CHANGELOG.md index 7482b3822c..183cba125f 100644 --- a/plugins/entity-validation/CHANGELOG.md +++ b/plugins/entity-validation/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-entity-validation +## 0.1.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.14-next.1 ### Patch Changes diff --git a/plugins/entity-validation/package.json b/plugins/entity-validation/package.json index ccc37bbb80..bd3f6a1e38 100644 --- a/plugins/entity-validation/package.json +++ b/plugins/entity-validation/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-entity-validation", - "version": "0.1.14-next.1", + "version": "0.1.14-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-aws-sqs/CHANGELOG.md b/plugins/events-backend-module-aws-sqs/CHANGELOG.md index 86bdc49717..fe483744a7 100644 --- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md +++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-events-backend-module-aws-sqs +## 0.2.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.2.12-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json index d9a6b6581c..041647f503 100644 --- a/plugins/events-backend-module-aws-sqs/package.json +++ b/plugins/events-backend-module-aws-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-aws-sqs", - "version": "0.2.12-next.1", + "version": "0.2.12-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-azure/CHANGELOG.md b/plugins/events-backend-module-azure/CHANGELOG.md index 649277350e..9f590d48eb 100644 --- a/plugins/events-backend-module-azure/CHANGELOG.md +++ b/plugins/events-backend-module-azure/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-azure +## 0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json index 51e55865a7..56ffec5737 100644 --- a/plugins/events-backend-module-azure/package.json +++ b/plugins/events-backend-module-azure/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-azure", - "version": "0.1.19-next.1", + "version": "0.1.19-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md index 53ecf33a1b..584963ce76 100644 --- a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-bitbucket-cloud +## 0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json index ae6d84bec3..db5343536b 100644 --- a/plugins/events-backend-module-bitbucket-cloud/package.json +++ b/plugins/events-backend-module-bitbucket-cloud/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-bitbucket-cloud", - "version": "0.1.19-next.1", + "version": "0.1.19-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-gerrit/CHANGELOG.md b/plugins/events-backend-module-gerrit/CHANGELOG.md index 7b9b3c5075..8770dcf0a2 100644 --- a/plugins/events-backend-module-gerrit/CHANGELOG.md +++ b/plugins/events-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-gerrit +## 0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json index 498b9c4492..80d6e5b6b2 100644 --- a/plugins/events-backend-module-gerrit/package.json +++ b/plugins/events-backend-module-gerrit/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-gerrit", - "version": "0.1.19-next.1", + "version": "0.1.19-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-github/CHANGELOG.md b/plugins/events-backend-module-github/CHANGELOG.md index 3ec7e4f0a8..41d718d9fb 100644 --- a/plugins/events-backend-module-github/CHANGELOG.md +++ b/plugins/events-backend-module-github/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-github +## 0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json index eeaa4d3c0a..c43468b8bf 100644 --- a/plugins/events-backend-module-github/package.json +++ b/plugins/events-backend-module-github/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-github", - "version": "0.1.19-next.1", + "version": "0.1.19-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-gitlab/CHANGELOG.md b/plugins/events-backend-module-gitlab/CHANGELOG.md index 728678066d..9858bfb44e 100644 --- a/plugins/events-backend-module-gitlab/CHANGELOG.md +++ b/plugins/events-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-gitlab +## 0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json index 44694b8968..cf5c9ff9d6 100644 --- a/plugins/events-backend-module-gitlab/package.json +++ b/plugins/events-backend-module-gitlab/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-gitlab", - "version": "0.1.19-next.1", + "version": "0.1.19-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-test-utils/CHANGELOG.md b/plugins/events-backend-test-utils/CHANGELOG.md index e1c146ea62..6cf527b228 100644 --- a/plugins/events-backend-test-utils/CHANGELOG.md +++ b/plugins/events-backend-test-utils/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-events-backend-test-utils +## 0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.18-next.2 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json index bcb8dde45d..cb9ec93a3d 100644 --- a/plugins/events-backend-test-utils/package.json +++ b/plugins/events-backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-events-backend-test-utils", "description": "The plugin-events-backend-test-utils for @backstage/plugin-events-node", - "version": "0.1.19-next.1", + "version": "0.1.19-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend/CHANGELOG.md b/plugins/events-backend/CHANGELOG.md index 44561cafe5..560ca79197 100644 --- a/plugins/events-backend/CHANGELOG.md +++ b/plugins/events-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend +## 0.2.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-events-node@0.2.18-next.2 + ## 0.2.18-next.1 ### Patch Changes diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json index 839b54a365..8c94fe5056 100644 --- a/plugins/events-backend/package.json +++ b/plugins/events-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend", - "version": "0.2.18-next.1", + "version": "0.2.18-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-node/CHANGELOG.md b/plugins/events-node/CHANGELOG.md index 0233d46b5e..095fe394e9 100644 --- a/plugins/events-node/CHANGELOG.md +++ b/plugins/events-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-events-node +## 0.2.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + ## 0.2.18-next.1 ### Patch Changes diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json index 042edda633..76cb9f731c 100644 --- a/plugins/events-node/package.json +++ b/plugins/events-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-events-node", "description": "The plugin-events-node module for @backstage/plugin-events-backend", - "version": "0.2.18-next.1", + "version": "0.2.18-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/example-todo-list-backend/CHANGELOG.md b/plugins/example-todo-list-backend/CHANGELOG.md index 6e06254c59..587238bf93 100644 --- a/plugins/example-todo-list-backend/CHANGELOG.md +++ b/plugins/example-todo-list-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @internal/plugin-todo-list-backend +## 1.0.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 1.0.21-next.1 ### Patch Changes diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index 769a97dc6f..091caf3c68 100644 --- a/plugins/example-todo-list-backend/package.json +++ b/plugins/example-todo-list-backend/package.json @@ -1,6 +1,6 @@ { "name": "@internal/plugin-todo-list-backend", - "version": "1.0.21-next.1", + "version": "1.0.21-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/explore-backend/CHANGELOG.md b/plugins/explore-backend/CHANGELOG.md index bf555518e1..0049c74da3 100644 --- a/plugins/explore-backend/CHANGELOG.md +++ b/plugins/explore-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-explore-backend +## 0.0.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-search-backend-module-explore@0.1.13-next.2 + ## 0.0.19-next.1 ### Patch Changes diff --git a/plugins/explore-backend/package.json b/plugins/explore-backend/package.json index feba009ea8..7a1adfdd19 100644 --- a/plugins/explore-backend/package.json +++ b/plugins/explore-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-explore-backend", - "version": "0.0.19-next.1", + "version": "0.0.19-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/explore/CHANGELOG.md b/plugins/explore/CHANGELOG.md index 6f4325f0ff..bb83d2b568 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-explore +## 0.4.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + ## 0.4.15-next.1 ### Patch Changes diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 9dd5afa07e..be2d997932 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-explore", "description": "A Backstage plugin for building an exploration page of your software ecosystem", - "version": "0.4.15-next.1", + "version": "0.4.15-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md index 11e2cf5f55..fdcd23958e 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-firehydrant +## 0.2.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.2.13-next.1 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index b8790295a7..be9f9e1165 100644 --- a/plugins/firehydrant/package.json +++ b/plugins/firehydrant/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-firehydrant", "description": "A Backstage plugin that integrates towards FireHydrant", - "version": "0.2.13-next.1", + "version": "0.2.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/fossa/CHANGELOG.md b/plugins/fossa/CHANGELOG.md index 29cc6a9b20..a369cd3122 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-fossa +## 0.2.61-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.2.61-next.1 ### Patch Changes diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index 2820179392..2aa82f79dd 100644 --- a/plugins/fossa/package.json +++ b/plugins/fossa/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-fossa", "description": "A Backstage plugin that integrates towards FOSSA", - "version": "0.2.61-next.1", + "version": "0.2.61-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-actions/CHANGELOG.md b/plugins/github-actions/CHANGELOG.md index 2fc594456b..9655ee39d4 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-github-actions +## 0.6.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/integration-react@1.1.23-next.0 + ## 0.6.10-next.1 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index a3bdcce037..e8d93e7caf 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-actions", "description": "A Backstage plugin that integrates towards GitHub Actions", - "version": "0.6.10-next.1", + "version": "0.6.10-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-deployments/CHANGELOG.md b/plugins/github-deployments/CHANGELOG.md index 1c15091b1b..26b7d7f041 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-github-deployments +## 0.1.60-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/integration-react@1.1.23-next.0 + ## 0.1.60-next.1 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 04f51bbc1b..d29e1b9a9f 100644 --- a/plugins/github-deployments/package.json +++ b/plugins/github-deployments/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-deployments", "description": "A Backstage plugin that integrates towards GitHub Deployments", - "version": "0.1.60-next.1", + "version": "0.1.60-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-issues/CHANGELOG.md b/plugins/github-issues/CHANGELOG.md index 1a7f71d637..193b5d240f 100644 --- a/plugins/github-issues/CHANGELOG.md +++ b/plugins/github-issues/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-github-issues +## 0.2.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.2.18-next.1 ### Patch Changes diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 202b82a2c9..9fb11fc9b9 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-github-issues", - "version": "0.2.18-next.1", + "version": "0.2.18-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-pull-requests-board/CHANGELOG.md b/plugins/github-pull-requests-board/CHANGELOG.md index 830967cc57..e6985932f4 100644 --- a/plugins/github-pull-requests-board/CHANGELOG.md +++ b/plugins/github-pull-requests-board/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-github-pull-requests-board +## 0.1.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.23-next.1 ### Patch Changes diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index 890ee8f8a3..e2fc39e328 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-pull-requests-board", "description": "A Backstage plugin that allows you to see all open Pull Requests for all the repositories owned by your team", - "version": "0.1.23-next.1", + "version": "0.1.23-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gocd/CHANGELOG.md b/plugins/gocd/CHANGELOG.md index 4e8501a397..ebe8301a7e 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-gocd +## 0.1.35-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.35-next.1 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index 4861e37866..f35ab50eaa 100644 --- a/plugins/gocd/package.json +++ b/plugins/gocd/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gocd", "description": "A Backstage plugin that integrates towards GoCD", - "version": "0.1.35-next.1", + "version": "0.1.35-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/graphiql/CHANGELOG.md b/plugins/graphiql/CHANGELOG.md index e1427265ed..aaf0d835c5 100644 --- a/plugins/graphiql/CHANGELOG.md +++ b/plugins/graphiql/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-graphiql +## 0.3.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + ## 0.3.2-next.1 ### Patch Changes diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 820807dfc6..5db5a189cd 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphiql", "description": "Backstage plugin for browsing GraphQL APIs", - "version": "0.3.2-next.1", + "version": "0.3.2-next.2", "publishConfig": { "access": "public" }, diff --git a/plugins/home-react/CHANGELOG.md b/plugins/home-react/CHANGELOG.md index 2f22d5967b..883f847698 100644 --- a/plugins/home-react/CHANGELOG.md +++ b/plugins/home-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-home-react +## 0.1.7-next.2 + +### Patch Changes + +- 98ac5ab: Updated dependency `@rjsf/utils` to `5.15.1`. + Updated dependency `@rjsf/core` to `5.15.1`. + Updated dependency `@rjsf/material-ui` to `5.15.1`. + Updated dependency `@rjsf/validator-ajv8` to `5.15.1`. + ## 0.1.7-next.1 ### Patch Changes diff --git a/plugins/home-react/package.json b/plugins/home-react/package.json index 2e2e294376..eb4609c45f 100644 --- a/plugins/home-react/package.json +++ b/plugins/home-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-home-react", "description": "A Backstage plugin that contains react components helps you build a home page", - "version": "0.1.7-next.1", + "version": "0.1.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index 0cf444f173..fc4cb2c393 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-home +## 0.6.1-next.2 + +### Patch Changes + +- 98ac5ab: Updated dependency `@rjsf/utils` to `5.15.1`. + Updated dependency `@rjsf/core` to `5.15.1`. + Updated dependency `@rjsf/material-ui` to `5.15.1`. + Updated dependency `@rjsf/validator-ajv8` to `5.15.1`. +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-home-react@0.1.7-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.6.1-next.1 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index ea4d94f011..0e14c193c9 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-home", "description": "A Backstage plugin that helps you build a home page", - "version": "0.6.1-next.1", + "version": "0.6.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/ilert/CHANGELOG.md b/plugins/ilert/CHANGELOG.md index de2d0b34ac..2dace2438d 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-ilert +## 0.2.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.2.18-next.1 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index c68ef6d58f..66d98511c3 100644 --- a/plugins/ilert/package.json +++ b/plugins/ilert/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-ilert", "description": "A Backstage plugin that integrates towards iLert", - "version": "0.2.18-next.1", + "version": "0.2.18-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md index 29d8c91997..919d116b6b 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-jenkins-backend +## 0.3.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + ## 0.3.3-next.1 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index ef91f1bf2e..59a794f2be 100644 --- a/plugins/jenkins-backend/package.json +++ b/plugins/jenkins-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins-backend", "description": "A Backstage backend plugin that integrates towards Jenkins", - "version": "0.3.3-next.1", + "version": "0.3.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/jenkins/CHANGELOG.md b/plugins/jenkins/CHANGELOG.md index e998d17f8e..0e2d3c9e31 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-jenkins +## 0.9.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.9.4-next.1 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index 09636ba148..e3463a840e 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins", "description": "A Backstage plugin that integrates towards Jenkins", - "version": "0.9.4-next.1", + "version": "0.9.4-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kafka-backend/CHANGELOG.md b/plugins/kafka-backend/CHANGELOG.md index 1418d420bf..b3a33d7a1a 100644 --- a/plugins/kafka-backend/CHANGELOG.md +++ b/plugins/kafka-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-kafka-backend +## 0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + ## 0.3.7-next.1 ### Patch Changes diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index 0e3f437dc6..ec5112cfc5 100644 --- a/plugins/kafka-backend/package.json +++ b/plugins/kafka-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka-backend", "description": "A Backstage backend plugin that integrates towards Kafka", - "version": "0.3.7-next.1", + "version": "0.3.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kafka/CHANGELOG.md b/plugins/kafka/CHANGELOG.md index 1b6f461220..92d2f5d429 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kafka +## 0.3.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.3.29-next.1 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index 54bca28904..fc237fab6a 100644 --- a/plugins/kafka/package.json +++ b/plugins/kafka/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka", "description": "A Backstage plugin that integrates towards Kafka", - "version": "0.3.29-next.1", + "version": "0.3.29-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md index 12244728cf..0ecf5b915b 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-kubernetes-backend +## 0.14.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-kubernetes-node@0.1.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + ## 0.14.1-next.1 ### Patch Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 0e24f0e56a..3e78f6c4e3 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-backend", "description": "A Backstage backend plugin that integrates towards Kubernetes", - "version": "0.14.1-next.1", + "version": "0.14.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-cluster/CHANGELOG.md b/plugins/kubernetes-cluster/CHANGELOG.md index ac741897f4..57453f97ec 100644 --- a/plugins/kubernetes-cluster/CHANGELOG.md +++ b/plugins/kubernetes-cluster/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kubernetes-cluster +## 0.0.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.0.5-next.1 ### Patch Changes diff --git a/plugins/kubernetes-cluster/package.json b/plugins/kubernetes-cluster/package.json index 9f0e4c333f..49e5efc969 100644 --- a/plugins/kubernetes-cluster/package.json +++ b/plugins/kubernetes-cluster/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-cluster", "description": "A Backstage plugin that shows details of Kubernetes clusters", - "version": "0.0.5-next.1", + "version": "0.0.5-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-node/CHANGELOG.md b/plugins/kubernetes-node/CHANGELOG.md index c7853c2c2f..a3e83a30cc 100644 --- a/plugins/kubernetes-node/CHANGELOG.md +++ b/plugins/kubernetes-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kubernetes-node +## 0.1.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + ## 0.1.3-next.1 ### Patch Changes diff --git a/plugins/kubernetes-node/package.json b/plugins/kubernetes-node/package.json index 8047b9fafa..73e9b661f2 100644 --- a/plugins/kubernetes-node/package.json +++ b/plugins/kubernetes-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-node", "description": "Node.js library for the kubernetes plugin", - "version": "0.1.3-next.1", + "version": "0.1.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index 5f50c92d57..9a147ee6a5 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kubernetes +## 0.11.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.11.4-next.1 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index 555f3a43a2..9ba26362fb 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes", "description": "A Backstage plugin that integrates towards Kubernetes", - "version": "0.11.4-next.1", + "version": "0.11.4-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/lighthouse-backend/CHANGELOG.md b/plugins/lighthouse-backend/CHANGELOG.md index 273aa94604..055c008062 100644 --- a/plugins/lighthouse-backend/CHANGELOG.md +++ b/plugins/lighthouse-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-lighthouse-backend +## 0.4.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.4.1-next.1 ### Patch Changes diff --git a/plugins/lighthouse-backend/package.json b/plugins/lighthouse-backend/package.json index 6556e5f7c0..101fc79c21 100644 --- a/plugins/lighthouse-backend/package.json +++ b/plugins/lighthouse-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-lighthouse-backend", "description": "Backend functionalities for lighthouse", - "version": "0.4.1-next.1", + "version": "0.4.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/lighthouse/CHANGELOG.md b/plugins/lighthouse/CHANGELOG.md index d3565b2fbe..335e0190e4 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-lighthouse +## 0.4.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.4.14-next.1 ### Patch Changes diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index f8c519bcc1..08bbf3b9b0 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-lighthouse", "description": "A Backstage plugin that integrates towards Lighthouse", - "version": "0.4.14-next.1", + "version": "0.4.14-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/linguist-backend/CHANGELOG.md b/plugins/linguist-backend/CHANGELOG.md index 4c3609c806..ef82a7802f 100644 --- a/plugins/linguist-backend/CHANGELOG.md +++ b/plugins/linguist-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-linguist-backend +## 0.5.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.5.6-next.1 ### Patch Changes diff --git a/plugins/linguist-backend/package.json b/plugins/linguist-backend/package.json index 00c07ef5d3..fef88b342a 100644 --- a/plugins/linguist-backend/package.json +++ b/plugins/linguist-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-linguist-backend", - "version": "0.5.6-next.1", + "version": "0.5.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/linguist/CHANGELOG.md b/plugins/linguist/CHANGELOG.md index 21684e7b6d..ff4532678c 100644 --- a/plugins/linguist/CHANGELOG.md +++ b/plugins/linguist/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-linguist +## 0.1.14-next.2 + +### Patch Changes + +- 4f42918: Added alpha support for the New Frontend System (Declarative Integration) +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.14-next.1 ### Patch Changes diff --git a/plugins/linguist/package.json b/plugins/linguist/package.json index 97b2846ee0..d3dc972c24 100644 --- a/plugins/linguist/package.json +++ b/plugins/linguist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-linguist", - "version": "0.1.14-next.1", + "version": "0.1.14-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/newrelic-dashboard/CHANGELOG.md b/plugins/newrelic-dashboard/CHANGELOG.md index 0c2c496432..4a1895ccb5 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-newrelic-dashboard +## 0.3.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.3.4-next.1 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index 822ceae9bc..ec8d4ce758 100644 --- a/plugins/newrelic-dashboard/package.json +++ b/plugins/newrelic-dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-newrelic-dashboard", - "version": "0.3.4-next.1", + "version": "0.3.4-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/nomad-backend/CHANGELOG.md b/plugins/nomad-backend/CHANGELOG.md index 5aa055e074..18758dda2f 100644 --- a/plugins/nomad-backend/CHANGELOG.md +++ b/plugins/nomad-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-nomad-backend +## 0.1.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + ## 0.1.11-next.1 ### Patch Changes diff --git a/plugins/nomad-backend/package.json b/plugins/nomad-backend/package.json index 1ae8e124dd..79938f713b 100644 --- a/plugins/nomad-backend/package.json +++ b/plugins/nomad-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-nomad-backend", - "version": "0.1.11-next.1", + "version": "0.1.11-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/nomad/CHANGELOG.md b/plugins/nomad/CHANGELOG.md index 15fe3c8c81..c947027f20 100644 --- a/plugins/nomad/CHANGELOG.md +++ b/plugins/nomad/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-nomad +## 0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/nomad/package.json b/plugins/nomad/package.json index f9c378f687..b92d593c0e 100644 --- a/plugins/nomad/package.json +++ b/plugins/nomad/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-nomad", - "version": "0.1.10-next.1", + "version": "0.1.10-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/octopus-deploy/CHANGELOG.md b/plugins/octopus-deploy/CHANGELOG.md index 51e22270ce..51a4c3a1f7 100644 --- a/plugins/octopus-deploy/CHANGELOG.md +++ b/plugins/octopus-deploy/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-octopus-deploy +## 0.2.11-next.2 + +### Patch Changes + +- 7d96ba8: added install path and fixed import on plugin-octopus-deploy +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.2.11-next.1 ### Patch Changes diff --git a/plugins/octopus-deploy/package.json b/plugins/octopus-deploy/package.json index f77c1cee1c..e232e608d9 100644 --- a/plugins/octopus-deploy/package.json +++ b/plugins/octopus-deploy/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-octopus-deploy", - "version": "0.2.11-next.1", + "version": "0.2.11-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/org-react/CHANGELOG.md b/plugins/org-react/CHANGELOG.md index b38003e41d..d1e3e44c0e 100644 --- a/plugins/org-react/CHANGELOG.md +++ b/plugins/org-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-org-react +## 0.1.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.18-next.1 ### Patch Changes diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index 6358529fdf..ae3fb70ea8 100644 --- a/plugins/org-react/package.json +++ b/plugins/org-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-org-react", - "version": "0.1.18-next.1", + "version": "0.1.18-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index d9245e5f11..6c1706c46f 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-org +## 0.6.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.6.19-next.1 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index c4181cb09b..a3494f1b8b 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-org", "description": "A Backstage plugin that helps you create entity pages for your organization", - "version": "0.6.19-next.1", + "version": "0.6.19-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/pagerduty/CHANGELOG.md b/plugins/pagerduty/CHANGELOG.md index 483370fc18..db12245793 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-pagerduty +## 0.7.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home-react@0.1.7-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.7.1-next.1 ### Patch Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 12f0d671d4..6b6c921da6 100644 --- a/plugins/pagerduty/package.json +++ b/plugins/pagerduty/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-pagerduty", "description": "This plugin has been deprecated, consider using [@pagerduty/backstage-plugin](https://github.com/pagerduty/backstage-plugin) instead.", - "version": "0.7.1-next.1", + "version": "0.7.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/periskop-backend/CHANGELOG.md b/plugins/periskop-backend/CHANGELOG.md index 272792ed88..f22b5a12c7 100644 --- a/plugins/periskop-backend/CHANGELOG.md +++ b/plugins/periskop-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-periskop-backend +## 0.2.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + ## 0.2.7-next.1 ### Patch Changes diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json index 334f8b8fd3..bb19ff995f 100644 --- a/plugins/periskop-backend/package.json +++ b/plugins/periskop-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop-backend", - "version": "0.2.7-next.1", + "version": "0.2.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/periskop/CHANGELOG.md b/plugins/periskop/CHANGELOG.md index d501fe7774..719ac2023d 100644 --- a/plugins/periskop/CHANGELOG.md +++ b/plugins/periskop/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-periskop +## 0.1.27-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.27-next.1 ### Patch Changes diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index da1d83c645..7a96359c86 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop", - "version": "0.1.27-next.1", + "version": "0.1.27-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md b/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md index 2caad57cb1..df80176895 100644 --- a/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md +++ b/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-backend-module-allow-all-policy +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/permission-backend-module-policy-allow-all/package.json b/plugins/permission-backend-module-policy-allow-all/package.json index 4e3b6291cd..74a0ca58d2 100644 --- a/plugins/permission-backend-module-policy-allow-all/package.json +++ b/plugins/permission-backend-module-policy-allow-all/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-permission-backend-module-allow-all-policy", "description": "Allow all policy backend module for the permission plugin.", - "version": "0.1.6-next.1", + "version": "0.1.6-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md index 025e5f452d..fdf78f2004 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-permission-backend +## 0.5.32-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + ## 0.5.32-next.1 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index e619d58e9b..e867a4a69e 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-backend", - "version": "0.5.32-next.1", + "version": "0.5.32-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md index a006ba04ad..b063aad38c 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-node +## 0.7.20-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.7.20-next.1 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index 320ab2b16e..6742a43968 100644 --- a/plugins/permission-node/package.json +++ b/plugins/permission-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-permission-node", "description": "Common permission and authorization utilities for backend plugins", - "version": "0.7.20-next.1", + "version": "0.7.20-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/playlist-backend/CHANGELOG.md b/plugins/playlist-backend/CHANGELOG.md index 4922dab858..86dc5201a0 100644 --- a/plugins/playlist-backend/CHANGELOG.md +++ b/plugins/playlist-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-playlist-backend +## 0.3.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + ## 0.3.13-next.1 ### Patch Changes diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json index 18fd6ce6b5..3d13d3049d 100644 --- a/plugins/playlist-backend/package.json +++ b/plugins/playlist-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist-backend", - "version": "0.3.13-next.1", + "version": "0.3.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/playlist/CHANGELOG.md b/plugins/playlist/CHANGELOG.md index 50b1d5bd07..f28d63c4fb 100644 --- a/plugins/playlist/CHANGELOG.md +++ b/plugins/playlist/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-playlist +## 0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + ## 0.2.3-next.1 ### Patch Changes diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index 216f0118af..622dab7346 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist", - "version": "0.2.3-next.1", + "version": "0.2.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/proxy-backend/CHANGELOG.md b/plugins/proxy-backend/CHANGELOG.md index 61f35b8a19..6bfdbbe9fc 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-proxy-backend +## 0.4.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + ## 0.4.7-next.1 ### Patch Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index 71deac06a2..5cc5f67973 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-proxy-backend", "description": "A Backstage backend plugin that helps you set up proxy endpoints in the backend", - "version": "0.4.7-next.1", + "version": "0.4.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/puppetdb/CHANGELOG.md b/plugins/puppetdb/CHANGELOG.md index 5eec383c3d..808df46247 100644 --- a/plugins/puppetdb/CHANGELOG.md +++ b/plugins/puppetdb/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-puppetdb +## 0.1.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.12-next.1 ### Patch Changes diff --git a/plugins/puppetdb/package.json b/plugins/puppetdb/package.json index fec982800f..e1423121f8 100644 --- a/plugins/puppetdb/package.json +++ b/plugins/puppetdb/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-puppetdb", "description": "Backstage plugin to visualize resource information and Puppet facts from PuppetDB.", - "version": "0.1.12-next.1", + "version": "0.1.12-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/rollbar-backend/CHANGELOG.md b/plugins/rollbar-backend/CHANGELOG.md index 6d49ffc538..c836e5f15d 100644 --- a/plugins/rollbar-backend/CHANGELOG.md +++ b/plugins/rollbar-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-rollbar-backend +## 0.1.54-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + ## 0.1.54-next.1 ### Patch Changes diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 843c9533f8..19b6177f15 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar-backend", "description": "A Backstage backend plugin that integrates towards Rollbar", - "version": "0.1.54-next.1", + "version": "0.1.54-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/rollbar/CHANGELOG.md b/plugins/rollbar/CHANGELOG.md index cd99ed2246..3400094c23 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-rollbar +## 0.4.29-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.4.29-next.1 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 03c0c8f4b7..4836a9d894 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar", "description": "A Backstage plugin that integrates towards Rollbar", - "version": "0.4.29-next.1", + "version": "0.4.29-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-azure/CHANGELOG.md b/plugins/scaffolder-backend-module-azure/CHANGELOG.md index e279cecbfa..05bbe1446e 100644 --- a/plugins/scaffolder-backend-module-azure/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-azure/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-azure +## 0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-azure/package.json b/plugins/scaffolder-backend-module-azure/package.json index 6589621675..f7a8e022f9 100644 --- a/plugins/scaffolder-backend-module-azure/package.json +++ b/plugins/scaffolder-backend-module-azure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-azure", "description": "The azure module for @backstage/plugin-scaffolder-backend", - "version": "0.1.1-next.1", + "version": "0.1.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md b/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md index edebcee304..1207c09620 100644 --- a/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-bitbucket +## 0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-bitbucket/package.json b/plugins/scaffolder-backend-module-bitbucket/package.json index 0564fbf389..358f95b740 100644 --- a/plugins/scaffolder-backend-module-bitbucket/package.json +++ b/plugins/scaffolder-backend-module-bitbucket/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-bitbucket", "description": "The bitbucket module for @backstage/plugin-scaffolder-backend", - "version": "0.1.1-next.1", + "version": "0.1.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md index 8ea73ffba3..648bdddb61 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-confluence-to-markdown +## 0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + ## 0.2.10-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json index 06be2562c4..e429e615f1 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown", "description": "The confluence-to-markdown module for @backstage/plugin-scaffolder-backend", - "version": "0.2.10-next.1", + "version": "0.2.10-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md index 3b5bb69dec..322004c912 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.33-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + ## 0.2.33-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index 1f598f9a8f..dd3f1555cc 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-cookiecutter", "description": "A module for the scaffolder backend that lets you template projects using cookiecutter", - "version": "0.2.33-next.1", + "version": "0.2.33-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md b/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md index 1ced6ce62d..aba1547066 100644 --- a/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-scaffolder-backend-module-gerrit +## 0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gerrit/package.json b/plugins/scaffolder-backend-module-gerrit/package.json index 878eb6c36c..1ac8d71c3e 100644 --- a/plugins/scaffolder-backend-module-gerrit/package.json +++ b/plugins/scaffolder-backend-module-gerrit/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gerrit", "description": "The gerrit module for @backstage/plugin-scaffolder-backend", - "version": "0.1.1-next.1", + "version": "0.1.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-github/CHANGELOG.md b/plugins/scaffolder-backend-module-github/CHANGELOG.md index 10b3907e99..9f63b4ffae 100644 --- a/plugins/scaffolder-backend-module-github/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-github/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-github +## 0.1.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-github/package.json b/plugins/scaffolder-backend-module-github/package.json index 25dfb654b6..3231536901 100644 --- a/plugins/scaffolder-backend-module-github/package.json +++ b/plugins/scaffolder-backend-module-github/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-github", "description": "The github module for @backstage/plugin-scaffolder-backend", - "version": "0.1.1-next.1", + "version": "0.1.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md index f8c32ffb5e..3968582cc5 100644 --- a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-gitlab +## 0.2.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + ## 0.2.12-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gitlab/package.json b/plugins/scaffolder-backend-module-gitlab/package.json index 2025269de5..338f7e812a 100644 --- a/plugins/scaffolder-backend-module-gitlab/package.json +++ b/plugins/scaffolder-backend-module-gitlab/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gitlab", - "version": "0.2.12-next.1", + "version": "0.2.12-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md index d6cf866b5e..476b7338fc 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.4.26-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + ## 0.4.26-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index 3caa338e02..44aa369aab 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-rails", "description": "A module for the scaffolder backend that lets you template projects using Rails", - "version": "0.4.26-next.1", + "version": "0.4.26-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md index 45fed0f711..39579fd6f2 100644 --- a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-scaffolder-backend-module-sentry +## 0.1.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + ## 0.1.17-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json index 79c782ee12..62c38fc5ca 100644 --- a/plugins/scaffolder-backend-module-sentry/package.json +++ b/plugins/scaffolder-backend-module-sentry/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-sentry", - "version": "0.1.17-next.1", + "version": "0.1.17-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index 2ed7330538..a4236219e2 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.2.30-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + ## 0.2.30-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index 8147c2b61d..c230a97881 100644 --- a/plugins/scaffolder-backend-module-yeoman/package.json +++ b/plugins/scaffolder-backend-module-yeoman/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-yeoman", - "version": "0.2.30-next.1", + "version": "0.2.30-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index 600b264f83..2b62c627c2 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-scaffolder-backend +## 1.19.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.6-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/plugin-scaffolder-node@0.2.10-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + - @backstage/plugin-scaffolder-backend-module-azure@0.1.1-next.2 + - @backstage/plugin-scaffolder-backend-module-bitbucket@0.1.1-next.2 + - @backstage/plugin-scaffolder-backend-module-gerrit@0.1.1-next.2 + - @backstage/plugin-scaffolder-backend-module-github@0.1.1-next.2 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.2.12-next.2 + ## 1.19.3-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index f45f26b42c..55640ceff4 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend", "description": "The Backstage backend plugin that helps you create new things", - "version": "1.19.3-next.1", + "version": "1.19.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-node/CHANGELOG.md b/plugins/scaffolder-node/CHANGELOG.md index 5d0db461a5..0ca6a7b633 100644 --- a/plugins/scaffolder-node/CHANGELOG.md +++ b/plugins/scaffolder-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-node +## 0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + ## 0.2.10-next.1 ### Patch Changes diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json index dd1bb85ec6..e21f5d5214 100644 --- a/plugins/scaffolder-node/package.json +++ b/plugins/scaffolder-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-node", "description": "The plugin-scaffolder-node module for @backstage/plugin-scaffolder-backend", - "version": "0.2.10-next.1", + "version": "0.2.10-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-react/CHANGELOG.md b/plugins/scaffolder-react/CHANGELOG.md index 35eb469a6f..ce01b049e2 100644 --- a/plugins/scaffolder-react/CHANGELOG.md +++ b/plugins/scaffolder-react/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-scaffolder-react +## 1.7.1-next.2 + +### Patch Changes + +- 98ac5ab: Updated dependency `@rjsf/utils` to `5.15.1`. + Updated dependency `@rjsf/core` to `5.15.1`. + Updated dependency `@rjsf/material-ui` to `5.15.1`. + Updated dependency `@rjsf/validator-ajv8` to `5.15.1`. +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 1.7.1-next.1 ### Patch Changes diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json index 6f87b4002e..dee80c50c3 100644 --- a/plugins/scaffolder-react/package.json +++ b/plugins/scaffolder-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-react", "description": "A frontend library that helps other Backstage plugins interact with the Scaffolder", - "version": "1.7.1-next.1", + "version": "1.7.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index 849af8f681..77aa66190f 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder +## 1.17.1-next.2 + +### Patch Changes + +- 98ac5ab: Updated dependency `@rjsf/utils` to `5.15.1`. + Updated dependency `@rjsf/core` to `5.15.1`. + Updated dependency `@rjsf/material-ui` to `5.15.1`. + Updated dependency `@rjsf/validator-ajv8` to `5.15.1`. +- Updated dependencies + - @backstage/plugin-scaffolder-react@1.7.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/integration-react@1.1.23-next.0 + ## 1.17.1-next.1 ### Patch Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 48b83a5ecf..d6fd2b3f85 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder", "description": "The Backstage plugin that helps you create new things", - "version": "1.17.1-next.1", + "version": "1.17.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-catalog/CHANGELOG.md b/plugins/search-backend-module-catalog/CHANGELOG.md index c14a4bad32..4af9c4d5a3 100644 --- a/plugins/search-backend-module-catalog/CHANGELOG.md +++ b/plugins/search-backend-module-catalog/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-search-backend-module-catalog +## 0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.1.13-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-catalog/package.json b/plugins/search-backend-module-catalog/package.json index dd99acb5d1..90c469e31d 100644 --- a/plugins/search-backend-module-catalog/package.json +++ b/plugins/search-backend-module-catalog/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-catalog", "description": "A module for the search backend that exports catalog modules", - "version": "0.1.13-next.1", + "version": "0.1.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md index 9aa4984be1..67c32fd11b 100644 --- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md +++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search-backend-module-elasticsearch +## 1.3.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + ## 1.3.12-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index ce17e1e20e..35cb46d9ef 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-elasticsearch", "description": "A module for the search backend that implements search using ElasticSearch", - "version": "1.3.12-next.1", + "version": "1.3.12-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-explore/CHANGELOG.md b/plugins/search-backend-module-explore/CHANGELOG.md index c701f2b289..8af09c36b8 100644 --- a/plugins/search-backend-module-explore/CHANGELOG.md +++ b/plugins/search-backend-module-explore/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-search-backend-module-explore +## 0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.1.13-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-explore/package.json b/plugins/search-backend-module-explore/package.json index 2d2944b422..348c525b90 100644 --- a/plugins/search-backend-module-explore/package.json +++ b/plugins/search-backend-module-explore/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-explore", "description": "A module for the search backend that exports explore modules", - "version": "0.1.13-next.1", + "version": "0.1.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md index ca5953da74..e3b518242e 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search-backend-module-pg +## 0.5.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + ## 0.5.18-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index f7971c46b7..ca6e7fc4f0 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-pg", "description": "A module for the search backend that implements search using PostgreSQL", - "version": "0.5.18-next.1", + "version": "0.5.18-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md b/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md index 74a60dd371..ed8740b1c0 100644 --- a/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md +++ b/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-search-backend-module-stack-overflow-collator +## 0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-stack-overflow-collator/package.json b/plugins/search-backend-module-stack-overflow-collator/package.json index de84bfdabe..9d523451e0 100644 --- a/plugins/search-backend-module-stack-overflow-collator/package.json +++ b/plugins/search-backend-module-stack-overflow-collator/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-stack-overflow-collator", "description": "A module for the search backend that exports stack overflow modules", - "version": "0.1.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-techdocs/CHANGELOG.md b/plugins/search-backend-module-techdocs/CHANGELOG.md index 4959e5fa70..69654e06f6 100644 --- a/plugins/search-backend-module-techdocs/CHANGELOG.md +++ b/plugins/search-backend-module-techdocs/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-backend-module-techdocs +## 0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + - @backstage/plugin-techdocs-node@1.11.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.1.13-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-techdocs/package.json b/plugins/search-backend-module-techdocs/package.json index c11f5c91e0..11f588842f 100644 --- a/plugins/search-backend-module-techdocs/package.json +++ b/plugins/search-backend-module-techdocs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-techdocs", "description": "A module for the search backend that exports techdocs modules", - "version": "0.1.13-next.1", + "version": "0.1.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-node/CHANGELOG.md b/plugins/search-backend-node/CHANGELOG.md index 6e0f119156..47ff37deb5 100644 --- a/plugins/search-backend-node/CHANGELOG.md +++ b/plugins/search-backend-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search-backend-node +## 1.2.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 1.2.13-next.1 ### Patch Changes diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index 4a52dd6d5d..8f3e736e37 100644 --- a/plugins/search-backend-node/package.json +++ b/plugins/search-backend-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-node", "description": "A library for Backstage backend plugins that want to interact with the search backend plugin", - "version": "1.2.13-next.1", + "version": "1.2.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md index 2920c07ca3..b63256ad36 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-backend +## 1.4.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/backend-openapi-utils@0.1.2-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + - @backstage/plugin-permission-node@0.7.20-next.2 + - @backstage/plugin-search-backend-node@1.2.13-next.2 + ## 1.4.9-next.1 ### Patch Changes diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index c44ad5bfc0..4b169aeaea 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend", "description": "The Backstage backend plugin that provides your backstage app with search", - "version": "1.4.9-next.1", + "version": "1.4.9-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md index f967dad8e9..7a10ac97c3 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-search-react +## 1.7.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + ## 1.7.5-next.1 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index 8fd51bf533..a2e8f4a1e9 100644 --- a/plugins/search-react/package.json +++ b/plugins/search-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-react", - "version": "1.7.5-next.1", + "version": "1.7.5-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md index 9f62896be0..a733ec9a46 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-search +## 1.4.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + ## 1.4.5-next.1 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index 0422c5b9c9..26f112a4fc 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search", "description": "The Backstage plugin that provides your backstage app with search", - "version": "1.4.5-next.1", + "version": "1.4.5-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sentry/CHANGELOG.md b/plugins/sentry/CHANGELOG.md index 74f89a4039..20368e375b 100644 --- a/plugins/sentry/CHANGELOG.md +++ b/plugins/sentry/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-sentry +## 0.5.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.5.14-next.1 ### Patch Changes diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 3401ae9ea2..2c1392df7a 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sentry", "description": "A Backstage plugin that integrates towards Sentry", - "version": "0.5.14-next.1", + "version": "0.5.14-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube-backend/CHANGELOG.md b/plugins/sonarqube-backend/CHANGELOG.md index 0400401b5a..8a1b277e4c 100644 --- a/plugins/sonarqube-backend/CHANGELOG.md +++ b/plugins/sonarqube-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-sonarqube-backend +## 0.2.11-next.2 + +### Patch Changes + +- 53445cd: Updated README +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + ## 0.2.11-next.1 ### Patch Changes diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index 6259f61c48..c151767bab 100644 --- a/plugins/sonarqube-backend/package.json +++ b/plugins/sonarqube-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sonarqube-backend", - "version": "0.2.11-next.1", + "version": "0.2.11-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube/CHANGELOG.md b/plugins/sonarqube/CHANGELOG.md index b1c35352eb..8d16295cc9 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-sonarqube +## 0.7.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.7.11-next.1 ### Patch Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index 1a193856d4..473a543b0e 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "version": "0.7.11-next.1", + "version": "0.7.11-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/splunk-on-call/CHANGELOG.md b/plugins/splunk-on-call/CHANGELOG.md index 88a43858a1..979e99cba2 100644 --- a/plugins/splunk-on-call/CHANGELOG.md +++ b/plugins/splunk-on-call/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-splunk-on-call +## 0.4.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.4.18-next.1 ### Patch Changes diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index 9485151bf8..cc4da14a72 100644 --- a/plugins/splunk-on-call/package.json +++ b/plugins/splunk-on-call/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-splunk-on-call", "description": "A Backstage plugin that integrates towards Splunk On-Call", - "version": "0.4.18-next.1", + "version": "0.4.18-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stack-overflow-backend/CHANGELOG.md b/plugins/stack-overflow-backend/CHANGELOG.md index 944d27519e..9695482f01 100644 --- a/plugins/stack-overflow-backend/CHANGELOG.md +++ b/plugins/stack-overflow-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-stack-overflow-backend +## 0.2.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.2-next.2 + ## 0.2.13-next.1 ### Patch Changes diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index 54facfce7f..77a1072150 100644 --- a/plugins/stack-overflow-backend/package.json +++ b/plugins/stack-overflow-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-stack-overflow-backend", "description": "Deprecated, consider using @backstage/plugin-search-backend-module-stack-overflow-collator instead", - "version": "0.2.13-next.1", + "version": "0.2.13-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stack-overflow/CHANGELOG.md b/plugins/stack-overflow/CHANGELOG.md index c3b64f532c..7bef72cc3a 100644 --- a/plugins/stack-overflow/CHANGELOG.md +++ b/plugins/stack-overflow/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-stack-overflow +## 0.1.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-home-react@0.1.7-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + ## 0.1.24-next.1 ### Patch Changes diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 5497cbc8d4..1b5da9ae13 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-stack-overflow", - "version": "0.1.24-next.1", + "version": "0.1.24-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md index 0d40dc7fd9..cc9313e90a 100644 --- a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md +++ b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-tech-insights-backend-module-jsonfc +## 0.1.41-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-tech-insights-node@0.4.15-next.2 + ## 0.1.41-next.1 ### Patch Changes diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json index a8ba792071..89cc4031d8 100644 --- a/plugins/tech-insights-backend-module-jsonfc/package.json +++ b/plugins/tech-insights-backend-module-jsonfc/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend-module-jsonfc", - "version": "0.1.41-next.1", + "version": "0.1.41-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights-backend/CHANGELOG.md b/plugins/tech-insights-backend/CHANGELOG.md index 50521df4b2..c9b59e5ad8 100644 --- a/plugins/tech-insights-backend/CHANGELOG.md +++ b/plugins/tech-insights-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-tech-insights-backend +## 0.5.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + - @backstage/plugin-tech-insights-node@0.4.15-next.2 + ## 0.5.23-next.1 ### Patch Changes diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index 1a5efee76f..307e97c1ab 100644 --- a/plugins/tech-insights-backend/package.json +++ b/plugins/tech-insights-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend", - "version": "0.5.23-next.1", + "version": "0.5.23-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights-node/CHANGELOG.md b/plugins/tech-insights-node/CHANGELOG.md index f00609c4a0..6a877f1177 100644 --- a/plugins/tech-insights-node/CHANGELOG.md +++ b/plugins/tech-insights-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-tech-insights-node +## 0.4.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.20.1-next.2 + ## 0.4.15-next.1 ### Patch Changes diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json index 9c88957a87..469bfb5601 100644 --- a/plugins/tech-insights-node/package.json +++ b/plugins/tech-insights-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-node", - "version": "0.4.15-next.1", + "version": "0.4.15-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights/CHANGELOG.md b/plugins/tech-insights/CHANGELOG.md index 989f5348e0..afe3a21dec 100644 --- a/plugins/tech-insights/CHANGELOG.md +++ b/plugins/tech-insights/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-tech-insights +## 0.3.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.3.21-next.1 ### Patch Changes diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index 058ab823a4..236ebd6b12 100644 --- a/plugins/tech-insights/package.json +++ b/plugins/tech-insights/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights", - "version": "0.3.21-next.1", + "version": "0.3.21-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-radar/CHANGELOG.md b/plugins/tech-radar/CHANGELOG.md index f8ec1b4f60..366ef940f6 100644 --- a/plugins/tech-radar/CHANGELOG.md +++ b/plugins/tech-radar/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-tech-radar +## 0.6.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + ## 0.6.12-next.1 ### Patch Changes diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index a984e2d23f..0536114019 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-tech-radar", "description": "A Backstage plugin that lets you display a Tech Radar for your organization", - "version": "0.6.12-next.1", + "version": "0.6.12-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md index 2142255971..2689d6ef64 100644 --- a/plugins/techdocs-addons-test-utils/CHANGELOG.md +++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-techdocs-addons-test-utils +## 1.0.26-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.16.1-next.2 + - @backstage/plugin-techdocs@1.9.3-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + - @backstage/integration-react@1.1.23-next.0 + ## 1.0.26-next.1 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index cd4c21b0d4..c46e3e679f 100644 --- a/plugins/techdocs-addons-test-utils/package.json +++ b/plugins/techdocs-addons-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-addons-test-utils", - "version": "1.0.26-next.1", + "version": "1.0.26-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md index 4b890ab4d5..0f1e623fa9 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-techdocs-backend +## 1.9.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-search-backend-module-techdocs@0.1.13-next.2 + - @backstage/plugin-techdocs-node@1.11.1-next.2 + ## 1.9.2-next.1 ### Patch Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index ba5f004bd2..bcaf6ba079 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-backend", "description": "The Backstage backend plugin that renders technical documentation for your components", - "version": "1.9.2-next.1", + "version": "1.9.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md index 1008e78ac4..770292f8c6 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-techdocs-node +## 1.11.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + ## 1.11.1-next.1 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 8ba9aa0ee4..e983e235c4 100644 --- a/plugins/techdocs-node/package.json +++ b/plugins/techdocs-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-node", "description": "Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli", - "version": "1.11.1-next.1", + "version": "1.11.1-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index 94e22b0f87..0410402b8d 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-techdocs +## 1.9.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + - @backstage/plugin-search-react@1.7.5-next.2 + - @backstage/integration-react@1.1.23-next.0 + ## 1.9.3-next.1 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 9ee3772543..1ea3cd3e5d 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs", "description": "The Backstage plugin that renders technical documentation for your components", - "version": "1.9.3-next.1", + "version": "1.9.3-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/todo-backend/CHANGELOG.md b/plugins/todo-backend/CHANGELOG.md index c1f03e5d89..8fba287cb4 100644 --- a/plugins/todo-backend/CHANGELOG.md +++ b/plugins/todo-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-todo-backend +## 0.3.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/backend-openapi-utils@0.1.2-next.2 + - @backstage/plugin-catalog-node@1.6.1-next.2 + ## 0.3.7-next.1 ### Patch Changes diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index e3548286fb..ed08369624 100644 --- a/plugins/todo-backend/package.json +++ b/plugins/todo-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo-backend", "description": "A Backstage backend plugin that lets you browse TODO comments in your source code", - "version": "0.3.7-next.1", + "version": "0.3.7-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/todo/CHANGELOG.md b/plugins/todo/CHANGELOG.md index 02bb1a1fe3..c477dd098f 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-todo +## 0.2.33-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.2.33-next.1 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index b3300fc378..b06baf040b 100644 --- a/plugins/todo/package.json +++ b/plugins/todo/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo", "description": "A Backstage plugin that lets you browse TODO comments in your source code", - "version": "0.2.33-next.1", + "version": "0.2.33-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/user-settings-backend/CHANGELOG.md b/plugins/user-settings-backend/CHANGELOG.md index d12ebc4344..3b1d01c240 100644 --- a/plugins/user-settings-backend/CHANGELOG.md +++ b/plugins/user-settings-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-user-settings-backend +## 0.2.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-auth-node@0.4.3-next.2 + ## 0.2.8-next.1 ### Patch Changes diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index af5fa09808..276a6eaa4a 100644 --- a/plugins/user-settings-backend/package.json +++ b/plugins/user-settings-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-user-settings-backend", "description": "The Backstage backend plugin to manage user settings", - "version": "0.2.8-next.1", + "version": "0.2.8-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md index d6a0b76e31..333f0f334c 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-user-settings +## 0.8.0-next.2 + +### Patch Changes + +- eea0849: add user-settings declarative integration core nav item +- Updated dependencies + - @backstage/core-compat-api@0.1.1-next.2 + - @backstage/frontend-plugin-api@0.4.1-next.2 + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.8.0-next.1 ### Minor Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 274644d4e1..7f98fa8de9 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-user-settings", "description": "A Backstage plugin that provides a settings page", - "version": "0.8.0-next.1", + "version": "0.8.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/vault-backend/CHANGELOG.md b/plugins/vault-backend/CHANGELOG.md index a306ad4205..8fd4b0e95f 100644 --- a/plugins/vault-backend/CHANGELOG.md +++ b/plugins/vault-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-vault-backend +## 0.4.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + - @backstage/backend-common@0.20.1-next.2 + - @backstage/plugin-vault-node@0.1.2-next.2 + - @backstage/backend-tasks@0.5.14-next.2 + ## 0.4.2-next.1 ### Patch Changes diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json index e550be780e..e262825a48 100644 --- a/plugins/vault-backend/package.json +++ b/plugins/vault-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault-backend", "description": "A Backstage backend plugin that integrates towards Vault", - "version": "0.4.2-next.1", + "version": "0.4.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/vault-node/CHANGELOG.md b/plugins/vault-node/CHANGELOG.md index 092800a9a9..901b22a638 100644 --- a/plugins/vault-node/CHANGELOG.md +++ b/plugins/vault-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-vault-node +## 0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.9-next.2 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/vault-node/package.json b/plugins/vault-node/package.json index 7835ec16c9..780d5ff5bb 100644 --- a/plugins/vault-node/package.json +++ b/plugins/vault-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault-node", "description": "Node.js library for the vault plugin", - "version": "0.1.2-next.1", + "version": "0.1.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/vault/CHANGELOG.md b/plugins/vault/CHANGELOG.md index b2b44d3d1c..93a69e5e76 100644 --- a/plugins/vault/CHANGELOG.md +++ b/plugins/vault/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-vault +## 0.1.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.9.3-next.2 + ## 0.1.24-next.1 ### Patch Changes diff --git a/plugins/vault/package.json b/plugins/vault/package.json index 48abd099a9..ce7b7a0dcb 100644 --- a/plugins/vault/package.json +++ b/plugins/vault/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault", "description": "A Backstage plugin that integrates towards Vault", - "version": "0.1.24-next.1", + "version": "0.1.24-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/visualizer/CHANGELOG.md b/plugins/visualizer/CHANGELOG.md index 7bb94a5016..824b909935 100644 --- a/plugins/visualizer/CHANGELOG.md +++ b/plugins/visualizer/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-visualizer +## 0.0.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.4.1-next.2 + ## 0.0.2-next.1 ### Patch Changes diff --git a/plugins/visualizer/package.json b/plugins/visualizer/package.json index 53cc419735..8482cca16f 100644 --- a/plugins/visualizer/package.json +++ b/plugins/visualizer/package.json @@ -2,7 +2,7 @@ "name": "@backstage/plugin-visualizer", "description": "Visualizes the Backstage app structure", "private": true, - "version": "0.0.2-next.1", + "version": "0.0.2-next.2", "publishConfig": { "access": "public" }, From c7c2b71ca2b25381a5be138f1c10c7605ed20566 Mon Sep 17 00:00:00 2001 From: Harrison Hogg Date: Tue, 9 Jan 2024 21:24:10 +0000 Subject: [PATCH 082/155] Updated the permissions framework readme wording Signed-off-by: Harrison Hogg --- plugins/permission-backend/README.md | 5 +---- plugins/permission-common/README.md | 6 +----- plugins/permission-node/README.md | 6 +----- plugins/permission-react/README.md | 6 ++---- 4 files changed, 5 insertions(+), 18 deletions(-) diff --git a/plugins/permission-backend/README.md b/plugins/permission-backend/README.md index 59fe1730ba..b4f6124bf4 100644 --- a/plugins/permission-backend/README.md +++ b/plugins/permission-backend/README.md @@ -1,6 +1,3 @@ # @backstage/plugin-permission-backend -> NOTE: THIS PACKAGE IS EXPERIMENTAL, HERE BE DRAGONS - -Backend for Backstage authorization and permissions. For more information, see -the [authorization PRFC](https://github.com/backstage/backstage/pull/7761). +Backend for Backstage authorization and permissions. For more information, see the [permissions documentation on Backstage.io](https://backstage.io/docs/permissions/overview). diff --git a/plugins/permission-common/README.md b/plugins/permission-common/README.md index 7ba998bed5..fdb72b4be5 100644 --- a/plugins/permission-common/README.md +++ b/plugins/permission-common/README.md @@ -1,7 +1,3 @@ # @backstage/plugin-permission-common -> NOTE: THIS PACKAGE IS EXPERIMENTAL, HERE BE DRAGONS - -Isomorphic types and client for Backstage permissions and authorization. For -more information, see the [authorization -PRFC](https://github.com/backstage/backstage/pull/7761). +Isomorphic types and client for Backstage permissions and authorization. For more information, see the [permissions documentation on Backstage.io](https://backstage.io/docs/permissions/overview). diff --git a/plugins/permission-node/README.md b/plugins/permission-node/README.md index 82dfe54f9c..39859d8f4c 100644 --- a/plugins/permission-node/README.md +++ b/plugins/permission-node/README.md @@ -1,7 +1,3 @@ # @backstage/plugin-permission-node -> NOTE: THIS PACKAGE IS EXPERIMENTAL, HERE BE DRAGONS - -Common permission and authorization utilities for backend plugins. For more -information, see the [authorization -PRFC](https://github.com/backstage/backstage/pull/7761). +Common permission and authorization utilities for backend plugins. For more information, see the [permissions documentation on Backstage.io](https://backstage.io/docs/permissions/overview). diff --git a/plugins/permission-react/README.md b/plugins/permission-react/README.md index 72383f024d..de22b0dba0 100644 --- a/plugins/permission-react/README.md +++ b/plugins/permission-react/README.md @@ -1,5 +1,3 @@ -# permission +# @backstage/plugin-permission-react -**NOTE: THIS PACKAGE IS EXPERIMENTAL!** - -Components and hooks to help implement permissions in Backstage frontend plugins. For more information, see the [authorization PRFC](https://github.com/backstage/backstage/pull/7761). +Components and hooks to help implement permissions in Backstage frontend plugins. For more information, see the [permissions documentation on Backstage.io](https://backstage.io/docs/permissions/overview). From b1acd9bdd370f605ecd4884ec22a9b94951b1dde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 10 Jan 2024 09:12:02 +0100 Subject: [PATCH 083/155] added changeset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/tender-roses-teach.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .changeset/tender-roses-teach.md diff --git a/.changeset/tender-roses-teach.md b/.changeset/tender-roses-teach.md new file mode 100644 index 0000000000..4d569917fb --- /dev/null +++ b/.changeset/tender-roses-teach.md @@ -0,0 +1,8 @@ +--- +'@backstage/plugin-permission-backend': patch +'@backstage/plugin-permission-common': patch +'@backstage/plugin-permission-react': patch +'@backstage/plugin-permission-node': patch +--- + +Updated README From d4149bf6d44fa45303a993d6df378060b903ca4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 9 Jan 2024 18:51:48 +0100 Subject: [PATCH 084/155] rename app/router to app/root MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/olive-walls-wonder.md | 7 ++ .../src/extensions/{Core.tsx => App.tsx} | 2 +- .../{CoreLayout.tsx => AppLayout.tsx} | 4 +- .../extensions/{CoreNav.tsx => AppNav.tsx} | 2 +- .../{CoreRouter.tsx => AppRoot.tsx} | 4 +- .../{CoreRoutes.tsx => AppRoutes.tsx} | 3 +- .../src/tree/readAppExtensionsConfig.test.ts | 90 +++++++++---------- .../src/wiring/createApp.test.tsx | 6 +- .../frontend-app-api/src/wiring/createApp.tsx | 24 ++--- .../extensions/createSignInPageExtension.tsx | 2 +- .../src/wiring/createPlugin.test.ts | 6 +- .../src/app/createExtensionTester.tsx | 2 +- 12 files changed, 80 insertions(+), 72 deletions(-) create mode 100644 .changeset/olive-walls-wonder.md rename packages/frontend-app-api/src/extensions/{Core.tsx => App.tsx} (97%) rename packages/frontend-app-api/src/extensions/{CoreLayout.tsx => AppLayout.tsx} (93%) rename packages/frontend-app-api/src/extensions/{CoreNav.tsx => AppNav.tsx} (98%) rename packages/frontend-app-api/src/extensions/{CoreRouter.tsx => AppRoot.tsx} (98%) rename packages/frontend-app-api/src/extensions/{CoreRoutes.tsx => AppRoutes.tsx} (97%) diff --git a/.changeset/olive-walls-wonder.md b/.changeset/olive-walls-wonder.md new file mode 100644 index 0000000000..ef8d37272e --- /dev/null +++ b/.changeset/olive-walls-wonder.md @@ -0,0 +1,7 @@ +--- +'@backstage/frontend-app-api': minor +'@backstage/frontend-plugin-api': minor +'@backstage/frontend-test-utils': patch +--- + +Rename the `app/router` extension to `app/root`. diff --git a/packages/frontend-app-api/src/extensions/Core.tsx b/packages/frontend-app-api/src/extensions/App.tsx similarity index 97% rename from packages/frontend-app-api/src/extensions/Core.tsx rename to packages/frontend-app-api/src/extensions/App.tsx index ea722ce862..751a255fa7 100644 --- a/packages/frontend-app-api/src/extensions/Core.tsx +++ b/packages/frontend-app-api/src/extensions/App.tsx @@ -24,7 +24,7 @@ import { createTranslationExtension, } from '@backstage/frontend-plugin-api'; -export const Core = createExtension({ +export const App = createExtension({ namespace: 'app', attachTo: { id: 'root', input: 'default' }, // ignored inputs: { diff --git a/packages/frontend-app-api/src/extensions/CoreLayout.tsx b/packages/frontend-app-api/src/extensions/AppLayout.tsx similarity index 93% rename from packages/frontend-app-api/src/extensions/CoreLayout.tsx rename to packages/frontend-app-api/src/extensions/AppLayout.tsx index 2d65dff73a..7be0029c25 100644 --- a/packages/frontend-app-api/src/extensions/CoreLayout.tsx +++ b/packages/frontend-app-api/src/extensions/AppLayout.tsx @@ -22,10 +22,10 @@ import { } from '@backstage/frontend-plugin-api'; import { SidebarPage } from '@backstage/core-components'; -export const CoreLayout = createExtension({ +export const AppLayout = createExtension({ namespace: 'app', name: 'layout', - attachTo: { id: 'app/router', input: 'children' }, + attachTo: { id: 'app/root', input: 'children' }, inputs: { nav: createExtensionInput( { diff --git a/packages/frontend-app-api/src/extensions/CoreNav.tsx b/packages/frontend-app-api/src/extensions/AppNav.tsx similarity index 98% rename from packages/frontend-app-api/src/extensions/CoreNav.tsx rename to packages/frontend-app-api/src/extensions/AppNav.tsx index 9c0ac5e85a..c5bf028ef8 100644 --- a/packages/frontend-app-api/src/extensions/CoreNav.tsx +++ b/packages/frontend-app-api/src/extensions/AppNav.tsx @@ -78,7 +78,7 @@ const SidebarNavItem = ( return ; }; -export const CoreNav = createExtension({ +export const AppNav = createExtension({ namespace: 'app', name: 'nav', attachTo: { id: 'app/layout', input: 'nav' }, diff --git a/packages/frontend-app-api/src/extensions/CoreRouter.tsx b/packages/frontend-app-api/src/extensions/AppRoot.tsx similarity index 98% rename from packages/frontend-app-api/src/extensions/CoreRouter.tsx rename to packages/frontend-app-api/src/extensions/AppRoot.tsx index 5c823c2e60..0894287541 100644 --- a/packages/frontend-app-api/src/extensions/CoreRouter.tsx +++ b/packages/frontend-app-api/src/extensions/AppRoot.tsx @@ -34,9 +34,9 @@ import { AppIdentityProxy } from '../../../core-app-api/src/apis/implementations import { BrowserRouter } from 'react-router-dom'; import { RouteTracker } from '../routing/RouteTracker'; -export const CoreRouter = createExtension({ +export const AppRoot = createExtension({ namespace: 'app', - name: 'router', + name: 'root', attachTo: { id: 'app', input: 'root' }, inputs: { signInPage: createExtensionInput( diff --git a/packages/frontend-app-api/src/extensions/CoreRoutes.tsx b/packages/frontend-app-api/src/extensions/AppRoutes.tsx similarity index 97% rename from packages/frontend-app-api/src/extensions/CoreRoutes.tsx rename to packages/frontend-app-api/src/extensions/AppRoutes.tsx index d66c857f3b..38a9291755 100644 --- a/packages/frontend-app-api/src/extensions/CoreRoutes.tsx +++ b/packages/frontend-app-api/src/extensions/AppRoutes.tsx @@ -24,7 +24,7 @@ import { } from '@backstage/frontend-plugin-api'; import { useRoutes } from 'react-router-dom'; -export const CoreRoutes = createExtension({ +export const AppRoutes = createExtension({ namespace: 'app', name: 'routes', attachTo: { id: 'app/layout', input: 'content' }, @@ -57,6 +57,7 @@ export const CoreRoutes = createExtension({ return element; }; + return { element: , }; diff --git a/packages/frontend-app-api/src/tree/readAppExtensionsConfig.test.ts b/packages/frontend-app-api/src/tree/readAppExtensionsConfig.test.ts index 4531947f9a..440407549e 100644 --- a/packages/frontend-app-api/src/tree/readAppExtensionsConfig.test.ts +++ b/packages/frontend-app-api/src/tree/readAppExtensionsConfig.test.ts @@ -25,18 +25,18 @@ describe('readAppExtensionsConfig', () => { it('should disable extension with shorthand notation', () => { expect( readAppExtensionsConfig( - new ConfigReader({ app: { extensions: [{ 'app/router': false }] } }), + new ConfigReader({ app: { extensions: [{ 'app/root': false }] } }), ), ).toEqual([ { - id: 'app/router', + id: 'app/root', disabled: true, }, ]); expect( readAppExtensionsConfig( new ConfigReader({ - app: { extensions: [{ 'app/router': { disabled: true } }] }, + app: { extensions: [{ 'app/root': { disabled: true } }] }, }), ), ).toEqual([ @@ -44,7 +44,7 @@ describe('readAppExtensionsConfig', () => { at: undefined, config: undefined, disabled: true, - id: 'app/router', + id: 'app/root', }, ]); }); @@ -52,33 +52,33 @@ describe('readAppExtensionsConfig', () => { it('should enable extension with shorthand notation', () => { expect( readAppExtensionsConfig( - new ConfigReader({ app: { extensions: ['app/router'] } }), + new ConfigReader({ app: { extensions: ['app/root'] } }), ), ).toEqual([ { - id: 'app/router', + id: 'app/root', disabled: false, }, ]); expect( readAppExtensionsConfig( - new ConfigReader({ app: { extensions: [{ 'app/router': true }] } }), + new ConfigReader({ app: { extensions: [{ 'app/root': true }] } }), ), ).toEqual([ { - id: 'app/router', + id: 'app/root', disabled: false, }, ]); expect( readAppExtensionsConfig( new ConfigReader({ - app: { extensions: [{ 'app/router': { disabled: false } }] }, + app: { extensions: [{ 'app/root': { disabled: false } }] }, }), ), ).toEqual([ { - id: 'app/router', + id: 'app/root', disabled: false, }, ]); @@ -89,12 +89,12 @@ describe('readAppExtensionsConfig', () => { readAppExtensionsConfig( new ConfigReader({ app: { - extensions: [{ 'app/router': 'some-string' }], + extensions: [{ 'app/root': 'some-string' }], }, }), ), ).toThrow( - 'Invalid extension configuration at app.extensions[0][app/router], value must be a boolean or object', + 'Invalid extension configuration at app.extensions[0][app/root], value must be a boolean or object', ); }); @@ -156,8 +156,8 @@ describe('expandShorthandExtensionParameters', () => { }); it('supports string key', () => { - expect(run('app/router')).toEqual({ - id: 'app/router', + expect(run('app/root')).toEqual({ + id: 'app/root', disabled: false, }); expect(() => run('')).toThrowErrorMatchingInlineSnapshot( @@ -170,96 +170,96 @@ describe('expandShorthandExtensionParameters', () => { it('supports null value', () => { // this is the result of typing: - // - app/router: + // - app/root: // The missing value is interpreted as null by the yaml parser so we deal with that - expect(run({ 'app/router': null })).toEqual({ - id: 'app/router', + expect(run({ 'app/root': null })).toEqual({ + id: 'app/root', disabled: false, }); }); it('supports boolean value', () => { - expect(run({ 'app/router': true })).toEqual({ - id: 'app/router', + expect(run({ 'app/root': true })).toEqual({ + id: 'app/root', disabled: false, }); - expect(run({ 'app/router': false })).toEqual({ - id: 'app/router', + expect(run({ 'app/root': false })).toEqual({ + id: 'app/root', disabled: true, }); }); it('should not support string values', () => { expect(() => - run({ 'app/router': 'example-package#MyRouter' }), + run({ 'app/root': 'example-package#MyRouter' }), ).toThrowErrorMatchingInlineSnapshot( - `"Invalid extension configuration at app.extensions[1][app/router], value must be a boolean or object"`, + `"Invalid extension configuration at app.extensions[1][app/root], value must be a boolean or object"`, ); }); it('supports object id only in the key', () => { expect(() => - run({ 'app/router': { id: 'some.id' } }), + run({ 'app/root': { id: 'some.id' } }), ).toThrowErrorMatchingInlineSnapshot( - `"Invalid extension configuration at app.extensions[1][app/router].id, unknown parameter; expected one of 'attachTo', 'disabled', 'config'"`, + `"Invalid extension configuration at app.extensions[1][app/root].id, unknown parameter; expected one of 'attachTo', 'disabled', 'config'"`, ); }); it('supports object attachTo', () => { expect( run({ - 'app/router': { attachTo: { id: 'other.root', input: 'inputs' } }, + 'app/root': { attachTo: { id: 'other.root', input: 'inputs' } }, }), ).toEqual({ - id: 'app/router', + id: 'app/root', attachTo: { id: 'other.root', input: 'inputs' }, }); expect(() => run({ - 'app/router': { + 'app/root': { id: 'other-id', }, }), ).toThrowErrorMatchingInlineSnapshot( - `"Invalid extension configuration at app.extensions[1][app/router].id, unknown parameter; expected one of 'attachTo', 'disabled', 'config'"`, + `"Invalid extension configuration at app.extensions[1][app/root].id, unknown parameter; expected one of 'attachTo', 'disabled', 'config'"`, ); }); it('supports object disabled', () => { - expect(run({ 'app/router': { disabled: true } })).toEqual({ - id: 'app/router', + expect(run({ 'app/root': { disabled: true } })).toEqual({ + id: 'app/root', disabled: true, }); - expect(run({ 'app/router': { disabled: false } })).toEqual({ - id: 'app/router', + expect(run({ 'app/root': { disabled: false } })).toEqual({ + id: 'app/root', disabled: false, }); expect(() => - run({ 'app/router': { disabled: 0 } }), + run({ 'app/root': { disabled: 0 } }), ).toThrowErrorMatchingInlineSnapshot( - `"Invalid extension configuration at app.extensions[1][app/router].disabled, must be a boolean"`, + `"Invalid extension configuration at app.extensions[1][app/root].disabled, must be a boolean"`, ); }); it('supports object config', () => { - expect( - run({ 'app/router': { config: { disableRedirects: true } } }), - ).toEqual({ - id: 'app/router', - config: { disableRedirects: true }, - }); + expect(run({ 'app/root': { config: { disableRedirects: true } } })).toEqual( + { + id: 'app/root', + config: { disableRedirects: true }, + }, + ); expect(() => - run({ 'app/router': { config: 0 } }), + run({ 'app/root': { config: 0 } }), ).toThrowErrorMatchingInlineSnapshot( - `"Invalid extension configuration at app.extensions[1][app/router].config, must be an object"`, + `"Invalid extension configuration at app.extensions[1][app/root].config, must be an object"`, ); }); it('rejects unknown object keys', () => { expect(() => - run({ 'app/router': { foo: { settings: true } } }), + run({ 'app/root': { foo: { settings: true } } }), ).toThrowErrorMatchingInlineSnapshot( - `"Invalid extension configuration at app.extensions[1][app/router].foo, unknown parameter; expected one of 'attachTo', 'disabled', 'config'"`, + `"Invalid extension configuration at app.extensions[1][app/root].foo, unknown parameter; expected one of 'attachTo', 'disabled', 'config'"`, ); }); }); diff --git a/packages/frontend-app-api/src/wiring/createApp.test.tsx b/packages/frontend-app-api/src/wiring/createApp.test.tsx index d5a206e7fb..e6ddc03e38 100644 --- a/packages/frontend-app-api/src/wiring/createApp.test.tsx +++ b/packages/frontend-app-api/src/wiring/createApp.test.tsx @@ -194,7 +194,7 @@ describe('createApp', () => { extensions: [ createExtension({ namespace: 'app', - name: 'router', + name: 'root', attachTo: { id: 'app', input: 'root' }, disabled: true, output: {}, @@ -244,7 +244,7 @@ describe('createApp', () => { expect(String(tree.root)).toMatchInlineSnapshot(` " root [ - + children [ content [ @@ -259,7 +259,7 @@ describe('createApp', () => { ] ] - + ] components [ diff --git a/packages/frontend-app-api/src/wiring/createApp.tsx b/packages/frontend-app-api/src/wiring/createApp.tsx index 09a7034ffb..b25bad03bc 100644 --- a/packages/frontend-app-api/src/wiring/createApp.tsx +++ b/packages/frontend-app-api/src/wiring/createApp.tsx @@ -32,10 +32,10 @@ import { RouteRef, useRouteRef, } from '@backstage/frontend-plugin-api'; -import { Core } from '../extensions/Core'; -import { CoreRoutes } from '../extensions/CoreRoutes'; -import { CoreLayout } from '../extensions/CoreLayout'; -import { CoreNav } from '../extensions/CoreNav'; +import { App } from '../extensions/App'; +import { AppRoutes } from '../extensions/AppRoutes'; +import { AppLayout } from '../extensions/AppLayout'; +import { AppNav } from '../extensions/AppNav'; import { AnyApiFactory, ApiHolder, @@ -95,7 +95,7 @@ import { } from '../extensions/components'; import { AppNode } from '@backstage/frontend-plugin-api'; import { InternalAppContext } from './InternalAppContext'; -import { CoreRouter } from '../extensions/CoreRouter'; +import { AppRoot } from '../extensions/AppRoot'; // eslint-disable-next-line @backstage/no-relative-monorepo-imports import { toInternalBackstagePlugin } from '../../../frontend-plugin-api/src/wiring/createPlugin'; // eslint-disable-next-line @backstage/no-relative-monorepo-imports @@ -106,11 +106,11 @@ import { stringifyError } from '@backstage/errors'; const DefaultApis = defaultApis.map(factory => createApiExtension({ factory })); export const builtinExtensions = [ - Core, - CoreRouter, - CoreRoutes, - CoreNav, - CoreLayout, + App, + AppRoot, + AppRoutes, + AppNav, + AppLayout, DefaultProgressComponent, DefaultErrorBoundaryComponent, DefaultNotFoundErrorPageComponent, @@ -371,7 +371,7 @@ export function createSpecializedApp(options?: { ); const rootEl = tree.root.instance!.getData(coreExtensionData.reactElement); - const App = () => ( + const AppComponent = () => ( @@ -387,7 +387,7 @@ export function createSpecializedApp(options?: { return { createRoot() { - return ; + return ; }, }; } diff --git a/packages/frontend-plugin-api/src/extensions/createSignInPageExtension.tsx b/packages/frontend-plugin-api/src/extensions/createSignInPageExtension.tsx index 543a5447ad..b525cc3a7b 100644 --- a/packages/frontend-plugin-api/src/extensions/createSignInPageExtension.tsx +++ b/packages/frontend-plugin-api/src/extensions/createSignInPageExtension.tsx @@ -50,7 +50,7 @@ export function createSignInPageExtension< kind: 'sign-in-page', namespace: options?.namespace, name: options?.name, - attachTo: options.attachTo ?? { id: 'app/router', input: 'signInPage' }, + attachTo: options.attachTo ?? { id: 'app/root', input: 'signInPage' }, configSchema: options.configSchema, inputs: options.inputs, disabled: options.disabled, diff --git a/packages/frontend-plugin-api/src/wiring/createPlugin.test.ts b/packages/frontend-plugin-api/src/wiring/createPlugin.test.ts index cb02048bdc..d2f78122d3 100644 --- a/packages/frontend-plugin-api/src/wiring/createPlugin.test.ts +++ b/packages/frontend-plugin-api/src/wiring/createPlugin.test.ts @@ -150,7 +150,7 @@ describe('createPlugin', () => { await renderWithEffects( createTestAppRoot({ features: [plugin], - config: { app: { extensions: [{ 'app/router': false }] } }, + config: { app: { extensions: [{ 'app/root': false }] } }, }), ); @@ -172,7 +172,7 @@ describe('createPlugin', () => { config: { app: { extensions: [ - { 'app/router': false }, + { 'app/root': false }, { 'test/2': { config: { name: 'extension-2-renamed' }, @@ -210,7 +210,7 @@ describe('createPlugin', () => { features: [plugin], config: { app: { - extensions: [{ 'app/router': false }], + extensions: [{ 'app/root': false }], }, }, }), diff --git a/packages/frontend-test-utils/src/app/createExtensionTester.tsx b/packages/frontend-test-utils/src/app/createExtensionTester.tsx index aae2e5ed32..1a4ebbac48 100644 --- a/packages/frontend-test-utils/src/app/createExtensionTester.tsx +++ b/packages/frontend-test-utils/src/app/createExtensionTester.tsx @@ -151,7 +151,7 @@ const AuthenticationProvider = (props: { const TestCoreRouterExtension = createExtension({ namespace: 'app', - name: 'router', + name: 'root', attachTo: { id: 'app', input: 'root' }, inputs: { signInPage: createExtensionInput( From f7566f9e1007a9a01c9d07bd8b5c41a8ef958ab4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 10 Jan 2024 09:16:53 +0100 Subject: [PATCH 085/155] review comments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/olive-walls-wonder.md | 3 +-- .changeset/olive-walls-wonder2.md | 5 +++++ 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 .changeset/olive-walls-wonder2.md diff --git a/.changeset/olive-walls-wonder.md b/.changeset/olive-walls-wonder.md index ef8d37272e..db67697567 100644 --- a/.changeset/olive-walls-wonder.md +++ b/.changeset/olive-walls-wonder.md @@ -1,7 +1,6 @@ --- '@backstage/frontend-app-api': minor '@backstage/frontend-plugin-api': minor -'@backstage/frontend-test-utils': patch --- -Rename the `app/router` extension to `app/root`. +**BREAKING**: Renamed the `app/router` extension to `app/root`. diff --git a/.changeset/olive-walls-wonder2.md b/.changeset/olive-walls-wonder2.md new file mode 100644 index 0000000000..6b1c447b94 --- /dev/null +++ b/.changeset/olive-walls-wonder2.md @@ -0,0 +1,5 @@ +--- +'@backstage/frontend-test-utils': patch +--- + +Updates to reflect the `app/router` extension having been renamed to `app/root`. From eb261980898a260905e5ee1d75de1c1b3d78cbd8 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Wed, 10 Jan 2024 09:51:43 +0100 Subject: [PATCH 086/155] docs(release): adding throubleshooting section Signed-off-by: Camila Belo --- docs/publishing.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/publishing.md b/docs/publishing.md index f8964278b5..adf75b4b32 100644 --- a/docs/publishing.md +++ b/docs/publishing.md @@ -134,3 +134,10 @@ process is used to release an emergency fix as version `6.5.1` in the patch rele - [ ] The fix, which you can likely cherry-pick from your patch branch: `git cherry-pick origin/patch/v1.18.0^` - [ ] An updated `CHANGELOG.md` of all patched packages from the tip of the patch branch, `git checkout origin/patch/v1.18.0 -- {packages,plugins}/*/CHANGELOG.md`. Note that if the patch happens after any next-line releases you'll need to restore those entries in the changelog, placing the patch release entry beneath any next-line release entries. - [ ] A changeset with the message "Applied the fix from version `6.5.1` of this package, which is part of the `v1.18.1` release of Backstage." + +## Throubleshooting + +### When the release workflow is not triggered for some reason, such as a GitHub incident + +Ask one of the maintainers to force push master back to a previous commit and then push the release merge commit again. This can break open pull requests and if that happens, we will have to go through each open pull request and rebase them with the new master base commit. + From c9f6399d020fe6c9bceb5b888c34c461b8df4786 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Wed, 10 Jan 2024 10:07:00 +0100 Subject: [PATCH 087/155] docs(publishing): apply suggestions on throubleshooting Co-authored-by: Patrik Oldsberg Signed-off-by: Camila Belo --- docs/publishing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/publishing.md b/docs/publishing.md index adf75b4b32..64c6584a3c 100644 --- a/docs/publishing.md +++ b/docs/publishing.md @@ -139,5 +139,5 @@ process is used to release an emergency fix as version `6.5.1` in the patch rele ### When the release workflow is not triggered for some reason, such as a GitHub incident -Ask one of the maintainers to force push master back to a previous commit and then push the release merge commit again. This can break open pull requests and if that happens, we will have to go through each open pull request and rebase them with the new master base commit. +Ask one of the maintainers to force push master back to a previous commit and then push the release merge commit again. From d5eda61198213fb9d313b58d46dce3797336b4bf Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Wed, 10 Jan 2024 16:21:01 +0530 Subject: [PATCH 088/155] Updated readme document of codescene plugin Signed-off-by: AmbrishRamachandiran --- .changeset/beige-pillows-repeat.md | 5 +++++ plugins/codescene/README.md | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/beige-pillows-repeat.md diff --git a/.changeset/beige-pillows-repeat.md b/.changeset/beige-pillows-repeat.md new file mode 100644 index 0000000000..6ac6d9c847 --- /dev/null +++ b/.changeset/beige-pillows-repeat.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-codescene': patch +--- + +updated readme document in codescene plugin diff --git a/plugins/codescene/README.md b/plugins/codescene/README.md index bbfb58e68f..8c84c9015c 100644 --- a/plugins/codescene/README.md +++ b/plugins/codescene/README.md @@ -1,8 +1,8 @@ # codescene -[CodeScene](https://codescene.com/) is a multi-purpose tool bridging code, business and people. See hidden risks and social patterns in your code. Prioritize and reduce technical debt. +[CodeScene](https://codescene.com/) is a multi-purpose tool that connects code, businesses, and people. Discover hidden hazards and social trends in your code. Prioritise and minimise technical debt. -The CodeScene Backstage Plugin exposes a page component that will list the existing projects and their analysis data on your CodeScene instance. +The CodeScene Backstage Plugin provides a page component that displays a list of existing projects and associated analysis data on your CodeScene instance. ![screenshot](./docs/codescene-plugin-screenshot.png) From 4019ab6fca640064f52c8618cc91a59987ca4f84 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Wed, 10 Jan 2024 16:27:39 +0530 Subject: [PATCH 089/155] Updated readme document of codescene plugin Signed-off-by: AmbrishRamachandiran --- .changeset/beige-pillows-repeat.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/beige-pillows-repeat.md b/.changeset/beige-pillows-repeat.md index 6ac6d9c847..0c0eb3f4fa 100644 --- a/.changeset/beige-pillows-repeat.md +++ b/.changeset/beige-pillows-repeat.md @@ -2,4 +2,4 @@ '@backstage/plugin-codescene': patch --- -updated readme document in codescene plugin +Updated Readme document in codescene plugin From 4b1a4d8bbe8864306c1e339d9a59f0b0a90e07b7 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Jan 2024 12:49:06 +0100 Subject: [PATCH 090/155] Apply suggestions from code review Signed-off-by: Patrik Oldsberg --- docs/backend-system/building-backends/08-migrating.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/backend-system/building-backends/08-migrating.md b/docs/backend-system/building-backends/08-migrating.md index ac54d6d3ef..2514f0925e 100644 --- a/docs/backend-system/building-backends/08-migrating.md +++ b/docs/backend-system/building-backends/08-migrating.md @@ -757,7 +757,7 @@ implementations that they represent, and being exported from there. ### The Auth Plugin -A basic installation of the auth plugin will look as follows. +A basic installation of the auth plugin with a microsoft provider will look as follows. ```ts title="packages/backend/src/index.ts" const backend = createBackend(); @@ -769,7 +769,7 @@ backend.add(import('@backstage/plugin-auth-backend-module-microsoft-provider')); An additional step you'll need to take is to add the resolvers to your configuration, here's an example: -```yaml title:"app-config.yaml +```yaml title:"app-config.yaml" auth: environment: development providers: From 0c03cc3e1e6ad44990ca0ec6f4b72207d45b1662 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Jan 2024 13:01:13 +0100 Subject: [PATCH 091/155] .github/workflows: pin Vale CLI version to 2.30.0 Signed-off-by: Patrik Oldsberg --- .github/workflows/verify_docs-quality.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/verify_docs-quality.yml b/.github/workflows/verify_docs-quality.yml index f87c8c2d38..8e3b333dd3 100644 --- a/.github/workflows/verify_docs-quality.yml +++ b/.github/workflows/verify_docs-quality.yml @@ -30,5 +30,6 @@ jobs: with: # This also contains --config=.github/vale/config.ini ... :/ files: '${{ steps.generate.outputs.args }}' + version: 2.30.0 # TODO: migrate to v3 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 5e554f164f67f3cbbd7e9c00331eab668f12e531 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Wed, 10 Jan 2024 15:46:13 +0100 Subject: [PATCH 092/155] Update flat-terms-provide.md Signed-off-by: Ben Lambert --- .changeset/flat-terms-provide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/flat-terms-provide.md b/.changeset/flat-terms-provide.md index 32578c74e3..f7a22fa7ea 100644 --- a/.changeset/flat-terms-provide.md +++ b/.changeset/flat-terms-provide.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-scaffolder-backend-module-gitlab': minor +'@backstage/plugin-scaffolder-backend-module-gitlab': patch --- -Add Scaffolder custom action that creates GitLab issues: gitlab:issues:create +Add Scaffolder custom action that creates GitLab issues called `gitlab:issues:create` From 8a69cc95b251456a9d40d676748dc53db8919eb2 Mon Sep 17 00:00:00 2001 From: David Weber Date: Tue, 9 Jan 2024 21:50:54 +0100 Subject: [PATCH 093/155] fix: fix custom http resolvers for AsyncAPI widget Signed-off-by: David Weber --- .changeset/blue-hats-admire.md | 5 ++++ .../AsyncApiDefinition.tsx | 27 ++++++++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 .changeset/blue-hats-admire.md diff --git a/.changeset/blue-hats-admire.md b/.changeset/blue-hats-admire.md new file mode 100644 index 0000000000..0be0c7d25f --- /dev/null +++ b/.changeset/blue-hats-admire.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-api-docs': patch +--- + +Fix custom http resolvers for AsyncAPI widget. diff --git a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.tsx b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.tsx index 3e2fbd1078..461e466b4f 100644 --- a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.tsx +++ b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.tsx @@ -143,18 +143,33 @@ const useStyles = makeStyles(theme => ({ }, })); -const fetchResolver = { - order: 199, // Use 199 as the built-in http resolver is 200 - canRead: /^https?:\/\//, - async read(file: any) { - const response = await fetch(file.url); +const httpsFetchResolver = { + schema: 'https', + order: 1, + canRead: true, + async read(uri: any) { + const response = await fetch(uri.toString()); + return response.text(); + }, +}; + +const httpFetchResolver = { + schema: 'http', + order: 1, + canRead: true, + async read(uri: any) { + const response = await fetch(uri.toString()); return response.text(); }, }; const config = { parserOptions: { - resolve: { fetch: fetchResolver }, + __unstable: { + resolver: { + resolvers: [httpsFetchResolver, httpFetchResolver], + }, + }, }, }; From f42ff3fc47b23284dc36409ce3176333da4d5a90 Mon Sep 17 00:00:00 2001 From: Emma Indal Date: Wed, 10 Jan 2024 16:08:48 +0100 Subject: [PATCH 094/155] update ids of config options for search DI Signed-off-by: Emma Indal --- docs/features/search/declarative-integration.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/features/search/declarative-integration.md b/docs/features/search/declarative-integration.md index f0083e4d4b..c331d810ef 100644 --- a/docs/features/search/declarative-integration.md +++ b/docs/features/search/declarative-integration.md @@ -51,18 +51,19 @@ _Example disabling the search page extension_ # app-config.yaml app: extensions: - - plugin.search.page: false # ✨ + - page:search: false # ✨ + - nav-item:search: false # ✨ ``` -_Example setting the search sidebar item label_ +_Example setting the search sidebar item title_ ```yaml # app-config.yaml app: extensions: - - plugin.search.nav.index: # ✨ + - nav-item:search: # ✨ config: - label: 'Search Page' + title: 'Search Page' ``` > **Known limitations:** From df4bc9def62722a23cf82cbc55eb47b754fc392f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 10 Jan 2024 16:43:19 +0100 Subject: [PATCH 095/155] avoid build warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/smooth-pumas-fold.md | 5 +++++ .../components/fields/RepoUrlPicker/RepoUrlPickerHost.tsx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/smooth-pumas-fold.md diff --git a/.changeset/smooth-pumas-fold.md b/.changeset/smooth-pumas-fold.md new file mode 100644 index 0000000000..4a3540460b --- /dev/null +++ b/.changeset/smooth-pumas-fold.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +Minor internal refactor diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPickerHost.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPickerHost.tsx index 5a78cf6195..51844f02ff 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPickerHost.tsx +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/RepoUrlPickerHost.tsx @@ -72,7 +72,7 @@ export const RepoUrlPickerHost = (props: { >