@backstage-community/plugin-github-actions 0.6.26 → 0.6.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @backstage-community/plugin-github-actions
2
2
 
3
+ ## 0.6.27
4
+
5
+ ### Patch Changes
6
+
7
+ - ede35ca: Use a consistent empty state in the workflow runs card regardless of the reason
8
+ for the card being empty.
9
+
3
10
  ## 0.6.26
4
11
 
5
12
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage-community/plugin-github-actions__alpha",
3
- "version": "0.6.26",
3
+ "version": "0.6.27",
4
4
  "main": "../dist/alpha.esm.js",
5
5
  "module": "../dist/alpha.esm.js",
6
6
  "types": "../dist/alpha.d.ts"
@@ -11,7 +11,7 @@ import MenuItem from '@material-ui/core/MenuItem';
11
11
  import TextField from '@material-ui/core/TextField';
12
12
  import CircularProgress from '@material-ui/core/CircularProgress';
13
13
  import { makeStyles, createStyles } from '@material-ui/core/styles';
14
- import { EmptyState, InfoCard, Link, LinkButton } from '@backstage/core-components';
14
+ import { InfoCard, Link, LinkButton } from '@backstage/core-components';
15
15
  import GitHubIcon from '@material-ui/icons/GitHub';
16
16
  import RetryIcon from '@material-ui/icons/Replay';
17
17
  import SyncIcon from '@material-ui/icons/Sync';
@@ -216,8 +216,6 @@ const WorkflowRunsCard = ({ entity }) => {
216
216
  repo,
217
217
  branch: branch === "all" ? void 0 : branch
218
218
  });
219
- const githubHost = hostname || "github.com";
220
- const hasNoRuns = !cardProps.loading && !runsData;
221
219
  const handleMenuChange = (event) => {
222
220
  const selectedValue = event.target.value;
223
221
  setBranch(selectedValue);
@@ -230,23 +228,7 @@ const WorkflowRunsCard = ({ entity }) => {
230
228
  useEffect(() => {
231
229
  setBranch(defaultBranch);
232
230
  }, [defaultBranch]);
233
- return /* @__PURE__ */ React.createElement(Grid, { item: true }, hasNoRuns ? /* @__PURE__ */ React.createElement(
234
- EmptyState,
235
- {
236
- missing: "data",
237
- title: "No Workflow Data",
238
- description: "This component has GitHub Actions enabled, but no data was found. Have you created any Workflows? Click the button below to create a new Workflow.",
239
- action: /* @__PURE__ */ React.createElement(
240
- Button,
241
- {
242
- variant: "contained",
243
- color: "primary",
244
- href: `https://${githubHost}/${projectName}/actions/new`
245
- },
246
- "Create new Workflow"
247
- )
248
- }
249
- ) : /* @__PURE__ */ React.createElement(
231
+ return /* @__PURE__ */ React.createElement(Grid, { item: true }, /* @__PURE__ */ React.createElement(
250
232
  InfoCard,
251
233
  {
252
234
  title: /* @__PURE__ */ React.createElement(Box, { display: "flex", alignItems: "center" }, /* @__PURE__ */ React.createElement(GitHubIcon, null), /* @__PURE__ */ React.createElement(Box, { mr: 1 }), /* @__PURE__ */ React.createElement(Typography, { variant: "h6" }, projectName), /* @__PURE__ */ React.createElement(
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowRunsCard.esm.js","sources":["../../../src/components/WorkflowRunsCard/WorkflowRunsCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React, { ChangeEvent, useEffect, useState } from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport Box from '@material-ui/core/Box';\nimport IconButton from '@material-ui/core/IconButton';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\nimport Grid from '@material-ui/core/Grid';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport TextField from '@material-ui/core/TextField';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\nimport {\n LinkButton,\n EmptyState,\n Link,\n InfoCard,\n} from '@backstage/core-components';\nimport GitHubIcon from '@material-ui/icons/GitHub';\nimport RetryIcon from '@material-ui/icons/Replay';\nimport SyncIcon from '@material-ui/icons/Sync';\nimport ExternalLinkIcon from '@material-ui/icons/Launch';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { useWorkflowRuns, WorkflowRun } from '../useWorkflowRuns';\nimport { WorkflowRunStatus } from '../WorkflowRunStatus';\nimport { buildRouteRef } from '../../routes';\nimport { getProjectNameFromEntity } from '../getProjectNameFromEntity';\nimport { getHostnameFromEntity } from '../getHostnameFromEntity';\n\nimport Alert, { Color } from '@material-ui/lab/Alert';\nimport { Entity } from '@backstage/catalog-model';\nimport Button from '@material-ui/core/Button';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n card: {\n border: `1px solid ${theme.palette.divider}`,\n boxShadow: theme.shadows[2],\n borderRadius: '4px',\n overflow: 'visible',\n position: 'relative',\n margin: theme.spacing(4, 1, 1),\n flex: '1',\n minWidth: '0px',\n },\n externalLinkIcon: {\n fontSize: 'inherit',\n verticalAlign: 'middle',\n },\n pagination: {\n width: '100%',\n },\n }),\n);\n\ntype WorkflowRunsCardViewProps = {\n runs?: WorkflowRun[];\n searchTerm: string;\n loading: boolean;\n onChangePageSize: (pageSize: number) => void;\n onChangePage: (page: number) => void;\n page: number;\n total: number;\n pageSize: number;\n projectName: string;\n};\n\nconst statusColors: Record<string, string> = {\n skipped: 'warning',\n canceled: 'info',\n timed_out: 'error',\n failure: 'error',\n success: 'success',\n};\n\nconst matchesSearchTerm = (run: WorkflowRun, searchTerm: string) => {\n const lowerCaseSearchTerm = searchTerm.toLocaleLowerCase();\n return (\n run.workflowName?.toLocaleLowerCase().includes(lowerCaseSearchTerm) ||\n run.source.branchName?.toLocaleLowerCase().includes(lowerCaseSearchTerm) ||\n run.status?.toLocaleLowerCase().includes(lowerCaseSearchTerm) ||\n run.id?.toLocaleLowerCase().includes(lowerCaseSearchTerm)\n );\n};\n\nexport const WorkflowRunsCardView = ({\n runs,\n searchTerm,\n loading,\n onChangePageSize,\n onChangePage,\n page,\n total,\n pageSize,\n}: WorkflowRunsCardViewProps) => {\n const classes = useStyles();\n const routeLink = useRouteRef(buildRouteRef);\n\n const filteredRuns = runs?.filter(run => matchesSearchTerm(run, searchTerm));\n\n return (\n <Grid container spacing={3}>\n {filteredRuns && runs?.length !== 0 ? (\n filteredRuns.map(run => (\n <Grid key={run.id} item container xs={12} lg={6} xl={4}>\n <Box className={classes.card}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n p={2}\n height=\"100%\"\n alignItems=\"center\"\n >\n <Box\n sx={{ width: '100%' }}\n textAlign=\"center\"\n display=\"flex\"\n flexDirection=\"column\"\n height=\"100%\"\n >\n <Tooltip\n title={run.status ?? 'No Status'}\n placement=\"top-start\"\n >\n <Alert\n variant=\"outlined\"\n severity={\n statusColors[\n run.conclusion as keyof typeof statusColors\n ] as Color\n }\n style={{ alignItems: 'center' }}\n >\n <Typography variant=\"h6\">\n <Link to={routeLink({ id: run.id })}>\n <Typography variant=\"h6\">\n {run.workflowName}\n </Typography>\n </Link>\n </Typography>\n </Alert>\n </Tooltip>\n <Tooltip title={run.message ?? 'No run message'}>\n <Box display=\"flex\" flexDirection=\"column\" marginY={1}>\n <Typography variant=\"subtitle2\" component=\"span\">\n Commit\n </Typography>\n <Typography\n variant=\"body2\"\n component=\"span\"\n style={{ overflowWrap: 'break-word' }}\n >\n {run.source.commit.hash!}\n </Typography>\n </Box>\n </Tooltip>\n\n {run.source.branchName && (\n <Box display=\"flex\" flexDirection=\"column\" marginY={1}>\n <Typography variant=\"subtitle2\" component=\"span\">\n Branch\n </Typography>\n <Typography\n variant=\"body2\"\n component=\"span\"\n style={{ overflowWrap: 'break-word' }}\n >\n {run.source.branchName}\n </Typography>\n </Box>\n )}\n <Box display=\"flex\" flexDirection=\"column\" marginY={1}>\n <Typography variant=\"subtitle2\" component=\"span\">\n Workflow ID\n </Typography>\n <Typography\n variant=\"body2\"\n component=\"span\"\n style={{ overflowWrap: 'break-word' }}\n >\n {run.id}\n </Typography>\n </Box>\n <WorkflowRunStatus\n status={run.status}\n conclusion={run.conclusion}\n />\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n mt=\"auto\"\n >\n <Box marginTop={2} marginBottom={1}>\n <Button\n endIcon={<RetryIcon />}\n onClick={run.onReRunClick}\n variant=\"outlined\"\n >\n Rerun workflow\n </Button>\n </Box>\n\n {run.githubUrl && (\n <Box>\n <LinkButton\n to={run.githubUrl}\n endIcon={<ExternalLinkIcon />}\n >\n View on GitHub\n </LinkButton>\n </Box>\n )}\n </Box>\n </Box>\n </Box>\n </Box>\n </Grid>\n ))\n ) : (\n <Box p={2}>\n {loading ? <CircularProgress /> : 'No matching runs found.'}\n </Box>\n )}\n <div className={classes.pagination}>\n <TablePagination\n component=\"div\"\n count={total}\n page={page}\n rowsPerPage={pageSize}\n onPageChange={(_, newPage) => onChangePage(newPage)}\n onRowsPerPageChange={event =>\n onChangePageSize(parseInt(event.target.value, 6))\n }\n labelRowsPerPage=\"Workflows per page\"\n rowsPerPageOptions={[6, 12, 18, { label: 'All', value: -1 }]}\n />\n </div>\n </Grid>\n );\n};\n\ntype WorkflowRunsCardProps = {\n entity: Entity;\n};\n\nconst WorkflowRunsCardSearch = ({\n searchTerm,\n handleSearch,\n retry,\n}: {\n searchTerm: string;\n handleSearch: (event: ChangeEvent<HTMLInputElement>) => void;\n retry: () => void;\n}) => {\n return (\n <>\n <Box flexGrow={1} />\n <TextField\n type=\"search\"\n label=\"Search\"\n value={searchTerm}\n onChange={handleSearch}\n data-testid=\"search-control\"\n style={{ marginRight: '20px' }}\n />\n <ButtonGroup>\n <Tooltip title=\"Reload workflow runs\">\n <IconButton onClick={retry}>\n <SyncIcon />\n </IconButton>\n </Tooltip>\n </ButtonGroup>\n </>\n );\n};\n\nexport const WorkflowRunsCard = ({ entity }: WorkflowRunsCardProps) => {\n const projectName = getProjectNameFromEntity(entity);\n const hostname = getHostnameFromEntity(entity);\n const [owner, repo] = (projectName ?? '/').split('/');\n const [branch, setBranch] = useState<string | undefined>('default');\n const [runs, setRuns] = useState<WorkflowRun[] | undefined>([]);\n const [searchTerm, setSearchTerm] = useState('');\n\n const handleSearch = (event: ChangeEvent<HTMLInputElement>) => {\n setSearchTerm(event.target.value);\n };\n\n const [\n { runs: runsData, branches, defaultBranch, ...cardProps },\n { retry, setPage, setPageSize },\n ] = useWorkflowRuns({\n hostname,\n owner,\n repo,\n branch: branch === 'all' ? undefined : branch,\n });\n\n const githubHost = hostname || 'github.com';\n const hasNoRuns = !cardProps.loading && !runsData;\n\n const handleMenuChange = (\n event: ChangeEvent<{ name?: string; value: unknown }>,\n ) => {\n const selectedValue = event.target.value as string;\n setBranch(selectedValue);\n setPage(0);\n retry();\n };\n\n useEffect(() => {\n setRuns(runsData);\n }, [runsData, branch]);\n\n useEffect(() => {\n setBranch(defaultBranch);\n }, [defaultBranch]);\n\n return (\n <Grid item>\n {hasNoRuns ? (\n <EmptyState\n missing=\"data\"\n title=\"No Workflow Data\"\n description=\"This component has GitHub Actions enabled, but no data was found. Have you created any Workflows? Click the button below to create a new Workflow.\"\n action={\n <Button\n variant=\"contained\"\n color=\"primary\"\n href={`https://${githubHost}/${projectName}/actions/new`}\n >\n Create new Workflow\n </Button>\n }\n />\n ) : (\n <InfoCard\n title={\n <Box display=\"flex\" alignItems=\"center\">\n <GitHubIcon />\n <Box mr={1} />\n <Typography variant=\"h6\">{projectName}</Typography>\n\n <Select\n value={branch}\n key={branch}\n label=\"Branch\"\n onChange={handleMenuChange}\n data-testid=\"menu-control\"\n style={{\n marginLeft: '30px',\n marginRight: '20px',\n width: '230px',\n }}\n >\n {branches.map(branchItem => (\n <MenuItem key={branchItem.name} value={branchItem.name}>\n {branchItem.name === defaultBranch ? (\n <Typography variant=\"body2\" component=\"span\">\n {branchItem.name}{' '}\n <Typography\n variant=\"body2\"\n component=\"span\"\n style={{ color: 'lightgray', fontSize: 'x-small' }}\n >\n (default)\n </Typography>\n </Typography>\n ) : (\n branchItem.name\n )}\n </MenuItem>\n ))}\n\n <MenuItem\n value=\"all\"\n key=\"all\"\n style={{ color: 'lightGrey', fontSize: 'small' }}\n >\n select all branches\n </MenuItem>\n </Select>\n\n <WorkflowRunsCardSearch\n searchTerm={searchTerm}\n handleSearch={handleSearch}\n retry={retry}\n />\n </Box>\n }\n >\n <WorkflowRunsCardView\n runs={runs}\n loading={cardProps.loading}\n onChangePageSize={setPageSize}\n onChangePage={setPage}\n page={cardProps.page}\n total={cardProps.total}\n pageSize={cardProps.pageSize}\n searchTerm={searchTerm}\n projectName={projectName}\n />\n </InfoCard>\n )}\n </Grid>\n );\n};\n\nexport default WorkflowRunsCard;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowRunsCard.esm.js","sources":["../../../src/components/WorkflowRunsCard/WorkflowRunsCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React, { ChangeEvent, useEffect, useState } from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport Box from '@material-ui/core/Box';\nimport IconButton from '@material-ui/core/IconButton';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\nimport Grid from '@material-ui/core/Grid';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport TextField from '@material-ui/core/TextField';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { makeStyles, createStyles, Theme } from '@material-ui/core/styles';\nimport { LinkButton, Link, InfoCard } from '@backstage/core-components';\nimport GitHubIcon from '@material-ui/icons/GitHub';\nimport RetryIcon from '@material-ui/icons/Replay';\nimport SyncIcon from '@material-ui/icons/Sync';\nimport ExternalLinkIcon from '@material-ui/icons/Launch';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { useWorkflowRuns, WorkflowRun } from '../useWorkflowRuns';\nimport { WorkflowRunStatus } from '../WorkflowRunStatus';\nimport { buildRouteRef } from '../../routes';\nimport { getProjectNameFromEntity } from '../getProjectNameFromEntity';\nimport { getHostnameFromEntity } from '../getHostnameFromEntity';\n\nimport Alert, { Color } from '@material-ui/lab/Alert';\nimport { Entity } from '@backstage/catalog-model';\nimport Button from '@material-ui/core/Button';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n card: {\n border: `1px solid ${theme.palette.divider}`,\n boxShadow: theme.shadows[2],\n borderRadius: '4px',\n overflow: 'visible',\n position: 'relative',\n margin: theme.spacing(4, 1, 1),\n flex: '1',\n minWidth: '0px',\n },\n externalLinkIcon: {\n fontSize: 'inherit',\n verticalAlign: 'middle',\n },\n pagination: {\n width: '100%',\n },\n }),\n);\n\ntype WorkflowRunsCardViewProps = {\n runs?: WorkflowRun[];\n searchTerm: string;\n loading: boolean;\n onChangePageSize: (pageSize: number) => void;\n onChangePage: (page: number) => void;\n page: number;\n total: number;\n pageSize: number;\n projectName: string;\n};\n\nconst statusColors: Record<string, string> = {\n skipped: 'warning',\n canceled: 'info',\n timed_out: 'error',\n failure: 'error',\n success: 'success',\n};\n\nconst matchesSearchTerm = (run: WorkflowRun, searchTerm: string) => {\n const lowerCaseSearchTerm = searchTerm.toLocaleLowerCase();\n return (\n run.workflowName?.toLocaleLowerCase().includes(lowerCaseSearchTerm) ||\n run.source.branchName?.toLocaleLowerCase().includes(lowerCaseSearchTerm) ||\n run.status?.toLocaleLowerCase().includes(lowerCaseSearchTerm) ||\n run.id?.toLocaleLowerCase().includes(lowerCaseSearchTerm)\n );\n};\n\nexport const WorkflowRunsCardView = ({\n runs,\n searchTerm,\n loading,\n onChangePageSize,\n onChangePage,\n page,\n total,\n pageSize,\n}: WorkflowRunsCardViewProps) => {\n const classes = useStyles();\n const routeLink = useRouteRef(buildRouteRef);\n\n const filteredRuns = runs?.filter(run => matchesSearchTerm(run, searchTerm));\n\n return (\n <Grid container spacing={3}>\n {filteredRuns && runs?.length !== 0 ? (\n filteredRuns.map(run => (\n <Grid key={run.id} item container xs={12} lg={6} xl={4}>\n <Box className={classes.card}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n p={2}\n height=\"100%\"\n alignItems=\"center\"\n >\n <Box\n sx={{ width: '100%' }}\n textAlign=\"center\"\n display=\"flex\"\n flexDirection=\"column\"\n height=\"100%\"\n >\n <Tooltip\n title={run.status ?? 'No Status'}\n placement=\"top-start\"\n >\n <Alert\n variant=\"outlined\"\n severity={\n statusColors[\n run.conclusion as keyof typeof statusColors\n ] as Color\n }\n style={{ alignItems: 'center' }}\n >\n <Typography variant=\"h6\">\n <Link to={routeLink({ id: run.id })}>\n <Typography variant=\"h6\">\n {run.workflowName}\n </Typography>\n </Link>\n </Typography>\n </Alert>\n </Tooltip>\n <Tooltip title={run.message ?? 'No run message'}>\n <Box display=\"flex\" flexDirection=\"column\" marginY={1}>\n <Typography variant=\"subtitle2\" component=\"span\">\n Commit\n </Typography>\n <Typography\n variant=\"body2\"\n component=\"span\"\n style={{ overflowWrap: 'break-word' }}\n >\n {run.source.commit.hash!}\n </Typography>\n </Box>\n </Tooltip>\n\n {run.source.branchName && (\n <Box display=\"flex\" flexDirection=\"column\" marginY={1}>\n <Typography variant=\"subtitle2\" component=\"span\">\n Branch\n </Typography>\n <Typography\n variant=\"body2\"\n component=\"span\"\n style={{ overflowWrap: 'break-word' }}\n >\n {run.source.branchName}\n </Typography>\n </Box>\n )}\n <Box display=\"flex\" flexDirection=\"column\" marginY={1}>\n <Typography variant=\"subtitle2\" component=\"span\">\n Workflow ID\n </Typography>\n <Typography\n variant=\"body2\"\n component=\"span\"\n style={{ overflowWrap: 'break-word' }}\n >\n {run.id}\n </Typography>\n </Box>\n <WorkflowRunStatus\n status={run.status}\n conclusion={run.conclusion}\n />\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n mt=\"auto\"\n >\n <Box marginTop={2} marginBottom={1}>\n <Button\n endIcon={<RetryIcon />}\n onClick={run.onReRunClick}\n variant=\"outlined\"\n >\n Rerun workflow\n </Button>\n </Box>\n\n {run.githubUrl && (\n <Box>\n <LinkButton\n to={run.githubUrl}\n endIcon={<ExternalLinkIcon />}\n >\n View on GitHub\n </LinkButton>\n </Box>\n )}\n </Box>\n </Box>\n </Box>\n </Box>\n </Grid>\n ))\n ) : (\n <Box p={2}>\n {loading ? <CircularProgress /> : 'No matching runs found.'}\n </Box>\n )}\n <div className={classes.pagination}>\n <TablePagination\n component=\"div\"\n count={total}\n page={page}\n rowsPerPage={pageSize}\n onPageChange={(_, newPage) => onChangePage(newPage)}\n onRowsPerPageChange={event =>\n onChangePageSize(parseInt(event.target.value, 6))\n }\n labelRowsPerPage=\"Workflows per page\"\n rowsPerPageOptions={[6, 12, 18, { label: 'All', value: -1 }]}\n />\n </div>\n </Grid>\n );\n};\n\ntype WorkflowRunsCardProps = {\n entity: Entity;\n};\n\nconst WorkflowRunsCardSearch = ({\n searchTerm,\n handleSearch,\n retry,\n}: {\n searchTerm: string;\n handleSearch: (event: ChangeEvent<HTMLInputElement>) => void;\n retry: () => void;\n}) => {\n return (\n <>\n <Box flexGrow={1} />\n <TextField\n type=\"search\"\n label=\"Search\"\n value={searchTerm}\n onChange={handleSearch}\n data-testid=\"search-control\"\n style={{ marginRight: '20px' }}\n />\n <ButtonGroup>\n <Tooltip title=\"Reload workflow runs\">\n <IconButton onClick={retry}>\n <SyncIcon />\n </IconButton>\n </Tooltip>\n </ButtonGroup>\n </>\n );\n};\n\nexport const WorkflowRunsCard = ({ entity }: WorkflowRunsCardProps) => {\n const projectName = getProjectNameFromEntity(entity);\n const hostname = getHostnameFromEntity(entity);\n const [owner, repo] = (projectName ?? '/').split('/');\n const [branch, setBranch] = useState<string | undefined>('default');\n const [runs, setRuns] = useState<WorkflowRun[] | undefined>([]);\n const [searchTerm, setSearchTerm] = useState('');\n\n const handleSearch = (event: ChangeEvent<HTMLInputElement>) => {\n setSearchTerm(event.target.value);\n };\n\n const [\n { runs: runsData, branches, defaultBranch, ...cardProps },\n { retry, setPage, setPageSize },\n ] = useWorkflowRuns({\n hostname,\n owner,\n repo,\n branch: branch === 'all' ? undefined : branch,\n });\n\n const handleMenuChange = (\n event: ChangeEvent<{ name?: string; value: unknown }>,\n ) => {\n const selectedValue = event.target.value as string;\n setBranch(selectedValue);\n setPage(0);\n retry();\n };\n\n useEffect(() => {\n setRuns(runsData);\n }, [runsData, branch]);\n\n useEffect(() => {\n setBranch(defaultBranch);\n }, [defaultBranch]);\n\n return (\n <Grid item>\n <InfoCard\n title={\n <Box display=\"flex\" alignItems=\"center\">\n <GitHubIcon />\n <Box mr={1} />\n <Typography variant=\"h6\">{projectName}</Typography>\n\n <Select\n value={branch}\n key={branch}\n label=\"Branch\"\n onChange={handleMenuChange}\n data-testid=\"menu-control\"\n style={{\n marginLeft: '30px',\n marginRight: '20px',\n width: '230px',\n }}\n >\n {branches.map(branchItem => (\n <MenuItem key={branchItem.name} value={branchItem.name}>\n {branchItem.name === defaultBranch ? (\n <Typography variant=\"body2\" component=\"span\">\n {branchItem.name}{' '}\n <Typography\n variant=\"body2\"\n component=\"span\"\n style={{ color: 'lightgray', fontSize: 'x-small' }}\n >\n (default)\n </Typography>\n </Typography>\n ) : (\n branchItem.name\n )}\n </MenuItem>\n ))}\n\n <MenuItem\n value=\"all\"\n key=\"all\"\n style={{ color: 'lightGrey', fontSize: 'small' }}\n >\n select all branches\n </MenuItem>\n </Select>\n\n <WorkflowRunsCardSearch\n searchTerm={searchTerm}\n handleSearch={handleSearch}\n retry={retry}\n />\n </Box>\n }\n >\n <WorkflowRunsCardView\n runs={runs}\n loading={cardProps.loading}\n onChangePageSize={setPageSize}\n onChangePage={setPage}\n page={cardProps.page}\n total={cardProps.total}\n pageSize={cardProps.pageSize}\n searchTerm={searchTerm}\n projectName={projectName}\n />\n </InfoCard>\n </Grid>\n );\n};\n\nexport default WorkflowRunsCard;\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage-community/plugin-github-actions",
3
- "version": "0.6.26",
3
+ "version": "0.6.27",
4
4
  "description": "A Backstage plugin that integrates towards GitHub Actions",
5
5
  "backstage": {
6
6
  "role": "frontend-plugin",