diff --git a/plugins/github-release-manager/README.md b/plugins/github-release-manager/README.md
index 075068c51a..43c842bc26 100644
--- a/plugins/github-release-manager/README.md
+++ b/plugins/github-release-manager/README.md
@@ -46,4 +46,14 @@ Looking at the flow above, a common release lifecycle could be:
## Usage
+### Importing
+
The plugin exports a single full-page extension `GitHubReleaseManagerPage`, which one can add to an app like a usual top-level tool on a dedicated route.
+
+### Configuration
+
+The plugin is configurable either via props or the select elements on the page.
+
+If project configuration is provided via props, the select elements are disabled. It is also possible to omit components from the page via props, as well as attaching callbacks for successful executions.
+
+See the plugin's dev folder (`dev/index.tsx`) to see some examples.
diff --git a/plugins/github-release-manager/dev/index.tsx b/plugins/github-release-manager/dev/index.tsx
index b6897e2a9b..bca24d56a4 100644
--- a/plugins/github-release-manager/dev/index.tsx
+++ b/plugins/github-release-manager/dev/index.tsx
@@ -16,12 +16,13 @@
import React from 'react';
import { createDevApp } from '@backstage/dev-utils';
-import { Alert } from '@material-ui/lab';
+import { Typography } from '@material-ui/core';
import {
gitHubReleaseManagerPlugin,
GitHubReleaseManagerPage,
} from '../src/plugin';
+import { InfoCardPlus } from '../src/components/InfoCardPlus';
function DevWrapper({ children }: { children: React.ReactNode }) {
return
{children}
;
@@ -31,21 +32,30 @@ createDevApp()
.registerPlugin(gitHubReleaseManagerPlugin)
.addPage({
title: 'Dynamic',
+ path: '/dynamic',
element: (
- <>
- Configure via select inputs
+
+
+ Dev notes
+ Configure plugin via select inputs
+
-
-
-
- >
+
+
),
})
.addPage({
title: 'Static',
+ path: '/static',
element: (
- Statically configured via props
+
+ Dev notes
+
+ Configure plugin statically by passing props to the
+ `GitHubReleaseManagerPage` component
+
+
- Optionally omit components
+
+ Dev notes
+ Each components can be omitted
+ Success callbacks can also be added
+
diff --git a/plugins/github-release-manager/src/cards/Cards.tsx b/plugins/github-release-manager/src/cards/Cards.tsx
index f39697b664..5773717cd8 100644
--- a/plugins/github-release-manager/src/cards/Cards.tsx
+++ b/plugins/github-release-manager/src/cards/Cards.tsx
@@ -94,14 +94,14 @@ export function Cards({
)}
- {components?.info?.omit !== true && (
+ {!components?.info?.omit && (
)}
- {components?.createRc?.omit !== true && (
+ {!components?.createRc?.omit && (
)}
- {components?.promoteRc?.omit !== true && (
+ {!components?.promoteRc?.omit && (
)}
- {components?.patch?.omit !== true && (
+ {!components?.patch?.omit && (
{
- successCb?: (args: Args) => Promise | void;
- omit?: boolean;
-}
+export type ComponentConfig =
+ | {
+ omit?: void;
+ successCb?: (args: Args) => Promise | void;
+ }
+ | {
+ omit: boolean;
+ successCb?: void;
+ };
-interface ComponentConfigCreateRcSuccessCbArgs {
+interface CreateRcSuccessCbArgs {
gitHubReleaseUrl: string;
gitHubReleaseName: string | null;
comparisonUrl: string;
previousTag?: string;
createdTag: string;
}
-export type ComponentConfigCreateRc = ComponentConfig;
+export type ComponentConfigCreateRc = ComponentConfig;
-interface ComponentConfigPromoteRcSuccessCbArgs {
+interface PromoteRcSuccessCbArgs {
gitHubReleaseUrl: string;
gitHubReleaseName: string | null;
previousTagUrl: string;
@@ -36,9 +41,9 @@ interface ComponentConfigPromoteRcSuccessCbArgs {
updatedTagUrl: string;
updatedTag: string;
}
-export type ComponentConfigPromoteRc = ComponentConfig;
+export type ComponentConfigPromoteRc = ComponentConfig;
-interface ComponentConfigPatchSuccessCbArgs {
+interface PatchSuccessCbArgs {
updatedReleaseUrl: string;
updatedReleaseName: string | null;
previousTag: string;
@@ -46,7 +51,7 @@ interface ComponentConfigPatchSuccessCbArgs {
patchCommitUrl: string;
patchCommitMessage: string;
}
-export type ComponentConfigPatch = ComponentConfig;
+export type ComponentConfigPatch = ComponentConfig;
export interface ResponseStep {
message: string | React.ReactNode;