diff --git a/.changeset/lovely-turtles-remain.md b/.changeset/lovely-turtles-remain.md new file mode 100644 index 0000000000..711a397baa --- /dev/null +++ b/.changeset/lovely-turtles-remain.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Added description for publish:gerrit scaffolder actions diff --git a/OWNERS.md b/OWNERS.md index 2ea263f3b4..b3f9d7bef9 100644 --- a/OWNERS.md +++ b/OWNERS.md @@ -129,7 +129,7 @@ Scope: The Scaffolder frontend and backend plugins, and related tooling. | Name | Organization | GitHub | Discord | | ------------------- | -------------- | ------------------------------------- | ---------------- | | Bogdan Nechyporenko | Bol.com | [acierto](https://github.com/acierto) | `bogdan_haarlem` | -| Paul Cowan | frontendrescue | [dagda1](https://github.com/dadga1) | `dagda1` | +| Paul Cowan | frontendrescue | [dagda1](https://github.com/dagda1) | `dagda1` | ## Sponsors diff --git a/microsite/data/plugins/opencost.yaml b/microsite/data/plugins/opencost.yaml new file mode 100644 index 0000000000..dbf65979ca --- /dev/null +++ b/microsite/data/plugins/opencost.yaml @@ -0,0 +1,10 @@ +--- +title: OpenCost +author: Matt Ray +authorUrl: https://opencost.io +category: Monitoring +description: OpenCost provides cloud cost monitoring for your cloud native environments. +documentation: https://github.com/backstage/backstage/blob/master/plugins/opencost/README.md +iconUrl: img/opencost.png +npmPackageName: '@backstage/plugin-opencost' +addedDate: '2023-10-26' diff --git a/microsite/static/img/opencost.png b/microsite/static/img/opencost.png new file mode 100644 index 0000000000..14fe563941 Binary files /dev/null and b/microsite/static/img/opencost.png differ diff --git a/microsite/yarn.lock b/microsite/yarn.lock index ba22850109..0200b84675 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.2 - resolution: "@types/luxon@npm:3.3.2" - checksum: b9111132720eae0269538872a5a496b29587ecfc8edc3b0ff7d269aa93a5ff00a131b23d1e9d1f12ec39f2c779ad21bd8d9f90b122c85a182771aabde7f676b8 + version: 3.3.3 + resolution: "@types/luxon@npm:3.3.3" + checksum: 072dd39eea3f63453788fab2fcfc83eb33917afcaffe178ce08ecd8b016824b8ab3bfa991f66266f2fc1927768a56b4334945f2eb1d83638e325c0c43d7d0e86 languageName: node linkType: hard diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.examples.ts new file mode 100644 index 0000000000..6729b3602f --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.examples.ts @@ -0,0 +1,159 @@ +/* + * 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'; + +export const examples: TemplateExample[] = [ + { + description: + 'Initializes a Gerrit repository of contents in workspace and publish it to Gerrit with default configuration.', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + }, + }, + ], + }), + }, + { + description: 'Initializes a Gerrit repository with a description.', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + description: 'Initialize a gerrit repository', + }, + }, + ], + }), + }, + { + description: + 'Initializes a Gerrit repository with a default Branch, if not set defaults to master', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + defaultBranch: 'staging', + }, + }, + ], + }), + }, + { + description: + 'Initializes a Gerrit repository with an initial commit message, if not set defaults to initial commit', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + gitCommitMessage: 'Initial Commit Message', + }, + }, + ], + }), + }, + { + description: + 'Initializes a Gerrit repository with a repo Author Name, if not set defaults to Scaffolder', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + gitAuthorName: 'John Doe', + }, + }, + ], + }), + }, + { + description: 'Initializes a Gerrit repository with a repo Author Email', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + gitAuthorEmail: 'johndoe@email.com', + }, + }, + ], + }), + }, + { + description: + 'Path within the workspace that will be used as the repository root. If omitted, the entire workspace will be published as the repository', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + sourcePath: 'repository/', + }, + }, + ], + }), + }, + { + description: + 'Initializes a Gerrit repository with all proporties being set', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gerrit', + name: 'Publish to Gerrit', + input: { + repoUrl: 'gerrit.com?repo=repo&owner=owner', + description: 'Initialize a gerrit repository', + defaultBranch: 'staging', + gitCommitMessage: 'Initial Commit Message', + gitAuthorName: 'John Doe', + gitAuthorEmail: 'johndoe@email.com', + sourcePath: 'repository/', + }, + }, + ], + }), + }, +]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.ts index 60a0cc4aae..67ed868c4c 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gerrit.ts @@ -26,6 +26,7 @@ import { createTemplateAction } from '@backstage/plugin-scaffolder-node'; import { getRepoSourceDirectory, parseRepoUrl } from './util'; import fetch, { Response, RequestInit } from 'node-fetch'; import { initRepoAndPush } from '../helpers'; +import { examples } from './gerrit.examples'; const createGerritProject = async ( config: GerritIntegrationConfig, @@ -98,6 +99,7 @@ export function createPublishGerritAction(options: { id: 'publish:gerrit', description: 'Initializes a git repository of the content in the workspace, and publishes it to Gerrit.', + examples, schema: { input: { type: 'object', diff --git a/yarn.lock b/yarn.lock index 6bc7cc2b6b..f98a71a3b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19040,9 +19040,9 @@ __metadata: linkType: hard "@types/luxon@npm:*, @types/luxon@npm:^3.0.0, @types/luxon@npm:~3.3.0": - version: 3.3.2 - resolution: "@types/luxon@npm:3.3.2" - checksum: b9111132720eae0269538872a5a496b29587ecfc8edc3b0ff7d269aa93a5ff00a131b23d1e9d1f12ec39f2c779ad21bd8d9f90b122c85a182771aabde7f676b8 + version: 3.3.3 + resolution: "@types/luxon@npm:3.3.3" + checksum: 072dd39eea3f63453788fab2fcfc83eb33917afcaffe178ce08ecd8b016824b8ab3bfa991f66266f2fc1927768a56b4334945f2eb1d83638e325c0c43d7d0e86 languageName: node linkType: hard @@ -19540,28 +19540,28 @@ __metadata: linkType: hard "@types/recharts@npm:^1.8.14, @types/recharts@npm:^1.8.15": - version: 1.8.25 - resolution: "@types/recharts@npm:1.8.25" + version: 1.8.26 + resolution: "@types/recharts@npm:1.8.26" dependencies: "@types/d3-shape": ^1 "@types/react": "*" - checksum: b2ab1596f391b70e349ae5f6fc6b29c16f6298f1151747aff84b3380f4644c4e087a489ca55325dc627794317f8e677c9906ab75d2e270c79e45da976a347af5 + checksum: fb644ca93b12691ab45ac2bab863051945f9f33ddf52ad07857c982995262b14135c6d18ec3caed71f4fe7c4a6933b69e62bee3aba8e0bf3463f04e0d6ae7952 languageName: node linkType: hard "@types/recursive-readdir@npm:^2.2.0": - version: 2.2.2 - resolution: "@types/recursive-readdir@npm:2.2.2" + version: 2.2.3 + resolution: "@types/recursive-readdir@npm:2.2.3" dependencies: "@types/node": "*" - checksum: ed7f73d11354c7df7c5296a73500ace0b9874083c9f9cce4c5a294bb6c9b11f92d25c08a23bdc991f0537358d31e2ae3943169d42fe739ff54ecfddf9ff6b420 + checksum: 9a9136b93a133de006bf6d9b2f8bbae6e308a0b5a9c9acf490848de3ec3621804a09bc166999e81beace3151cacc2085f5617d90eaa329a99f73c1bb6806531d languageName: node linkType: hard "@types/regression@npm:^2.0.0": - version: 2.0.3 - resolution: "@types/regression@npm:2.0.3" - checksum: 774ef76911225b61c44946573b54ab710401d0e65b9433aa7014c701272167c47e818d4c9809284514881837c2159cd47aad6b290f00f8581920f2c7a146a512 + version: 2.0.4 + resolution: "@types/regression@npm:2.0.4" + checksum: e35f7474103ecd9750da2daa6182e236e096ad9edeba70e479a6f6dbe1486b3b7b03dac1976976622161e8f48ef92f83f1ed3f1d42b8e6ba249a50c168059a46 languageName: node linkType: hard @@ -19613,12 +19613,12 @@ __metadata: linkType: hard "@types/rollup-plugin-peer-deps-external@npm:^2.2.0": - version: 2.2.2 - resolution: "@types/rollup-plugin-peer-deps-external@npm:2.2.2" + version: 2.2.3 + resolution: "@types/rollup-plugin-peer-deps-external@npm:2.2.3" dependencies: "@types/node": "*" rollup: ^0.63.4 - checksum: a821911276d1882cf30c9650abc3c1cf7b29490ecacfdd537663a4de32b42ff7171bcd69568ce1b256191ad1d2937b1de839d1db85538769787986a5877273e2 + checksum: aa656653c469d50fd68cdb6af332032952a27fd761155e749df14e2379eec77fa24a40910c1f207f2d7a2f0c2274087882dea0ce52ad8031b1066e64905dfbc8 languageName: node linkType: hard @@ -19767,11 +19767,11 @@ __metadata: linkType: hard "@types/stoppable@npm:^1.1.0": - version: 1.1.1 - resolution: "@types/stoppable@npm:1.1.1" + version: 1.1.2 + resolution: "@types/stoppable@npm:1.1.2" dependencies: "@types/node": "*" - checksum: 65617648686469e7130a9c00a018c03ddcfed8527a162e50352780e9a1acb7187d646389a596c2aef3a5566e3d649f68f0de7822be7349cafde5c1ec863c37c6 + checksum: 729137560d508786dd381b96206074b6a622387a5c8a1f082fa23620a0734b84e909a972dee4dbc1891272b8fcdbd30f372043c43bdf917f2a5bfb7ac6640cf0 languageName: node linkType: hard @@ -19795,11 +19795,11 @@ __metadata: linkType: hard "@types/supertest@npm:^2.0.12, @types/supertest@npm:^2.0.8": - version: 2.0.14 - resolution: "@types/supertest@npm:2.0.14" + version: 2.0.15 + resolution: "@types/supertest@npm:2.0.15" dependencies: "@types/superagent": "*" - checksum: 9f6850a22b8f0fd4c26a6dfd9b64771a66476b1a4f841a3b84a9da843ce69463efbf37594fe107297dd14a225d199b802464d48d70e9413238c637903d392137 + checksum: 89c1983662f0ab20969b3a6c44344397fd222d0f78b282619aabbe817f7c88a64210fd2b8b8f075ea22a27084e30ebc287bc5105619cbbf9af7f008e77f6eb93 languageName: node linkType: hard @@ -19813,21 +19813,21 @@ __metadata: linkType: hard "@types/swagger-ui-react@npm:^4.18.0": - version: 4.18.1 - resolution: "@types/swagger-ui-react@npm:4.18.1" + version: 4.18.2 + resolution: "@types/swagger-ui-react@npm:4.18.2" dependencies: "@types/react": "*" - checksum: 33c5e9aeccaf6591bd8f59489f8ef50b941daf491f08ba00cb1f26140a756b00ecd6a84fcf0171cdb068134e52c3877bdac571357e12f224ae7fc5979aeedb6f + checksum: 71c5659f6d4bd75da20923aea551ecf013f4bc5af25cb03824ae6a8d324704ca413a0031c0488107c748000ff919b2179a36f34ab8d47e3519617217a95de039 languageName: node linkType: hard "@types/tar@npm:^6.1.1": - version: 6.1.6 - resolution: "@types/tar@npm:6.1.6" + version: 6.1.7 + resolution: "@types/tar@npm:6.1.7" dependencies: "@types/node": "*" minipass: ^4.0.0 - checksum: d4bcb5a06d8e4b6eac564f22274d72f6a14c614eaf5f6c6c270f3a43c197da2797a7c707bc0377cd2e6d8c429f277e1ca446121546c86021e9782034a306eafb + checksum: 74a346c86eb9fd1d7849b675e019ec784accf2f4a2abedc607e5449809f5205db6c31a7c0e7ac34e1ae5beabc3d260dbf82d7829398791397b971a56de4028b9 languageName: node linkType: hard @@ -19970,11 +19970,11 @@ __metadata: linkType: hard "@types/xml2js@npm:*, @types/xml2js@npm:^0.4.7": - version: 0.4.12 - resolution: "@types/xml2js@npm:0.4.12" + version: 0.4.13 + resolution: "@types/xml2js@npm:0.4.13" dependencies: "@types/node": "*" - checksum: 6197f6d51d70ba7e6d3169ef6d58adacfeddeb2d8cfe4d2bb24eda86223c7dd77c82896c3aa3c636b3b1442cebc6d05959d1e65fa206dac2caeb99aa2c943716 + checksum: 757355c1867b4bd70a85cacac91ed771d172f269469b92b3bace2c7e91f9848ea3efa2be2901f831e2a632efbf6d128208a4495ec8a5fed9f7c12f2c9ec4d929 languageName: node linkType: hard