From b95ee4667cd728668a66c76c3f05ad6f1f3a2a9e Mon Sep 17 00:00:00 2001 From: Jay Gabriels Date: Fri, 21 Jan 2022 11:54:06 -0800 Subject: [PATCH 1/9] Update ChangeEventListItem.tsx Signed-off-by: Jay Gabriels --- .../ChangeEvents/ChangeEventListItem.tsx | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx b/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx index 703d9d1edf..07498d495b 100644 --- a/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx +++ b/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx @@ -28,7 +28,6 @@ import { DateTime, Duration } from 'luxon'; import { ChangeEvent } from '../types'; import OpenInBrowserIcon from '@material-ui/icons/OpenInBrowser'; import { BackstageTheme } from '@backstage/theme'; -import { Link } from '@backstage/core-components'; const useStyles = makeStyles({ denseListIcon: { @@ -48,6 +47,7 @@ type Props = { }; export const ChangeEventListItem = ({ changeEvent }: Props) => { + console.log(changeEvent) const classes = useStyles(); const duration = new Date().getTime() - new Date(changeEvent.timestamp).getTime(); @@ -60,8 +60,9 @@ export const ChangeEventListItem = ({ changeEvent }: Props) => { externalLinkElem = ( @@ -86,15 +87,18 @@ export const ChangeEventListItem = ({ changeEvent }: Props) => { /> {externalLinkElem} - - - - - + {changeEvent.html_url === undefined ? null : + + + + + + } ); From b9b98f1b92c76495dc787030624a37115e17f788 Mon Sep 17 00:00:00 2001 From: Jay Gabriels Date: Fri, 21 Jan 2022 11:55:35 -0800 Subject: [PATCH 2/9] Update ChangeEventListItem.tsx Signed-off-by: Jay Gabriels --- .../src/components/ChangeEvents/ChangeEventListItem.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx b/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx index 07498d495b..a5a476edaa 100644 --- a/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx +++ b/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx @@ -47,7 +47,6 @@ type Props = { }; export const ChangeEventListItem = ({ changeEvent }: Props) => { - console.log(changeEvent) const classes = useStyles(); const duration = new Date().getTime() - new Date(changeEvent.timestamp).getTime(); From 5a459626bc419eb56840f1e107968c8e6b01c661 Mon Sep 17 00:00:00 2001 From: Jay Gabriels Date: Fri, 21 Jan 2022 12:19:15 -0800 Subject: [PATCH 3/9] Create tall-rats-lie.md Signed-off-by: Jay Gabriels --- .changeset/tall-rats-lie.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/tall-rats-lie.md diff --git a/.changeset/tall-rats-lie.md b/.changeset/tall-rats-lie.md new file mode 100644 index 0000000000..899b06d425 --- /dev/null +++ b/.changeset/tall-rats-lie.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-pagerduty': patch +--- + +Fixes change events tab from erroring when change events exist From fb247b39d842800736c039d6b463fe428aa56389 Mon Sep 17 00:00:00 2001 From: Jay Gabriels Date: Fri, 21 Jan 2022 12:29:10 -0800 Subject: [PATCH 4/9] Add test Signed-off-by: Jay Gabriels --- .../ChangeEvents/ChangeEvents.test.tsx | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/plugins/pagerduty/src/components/ChangeEvents/ChangeEvents.test.tsx b/plugins/pagerduty/src/components/ChangeEvents/ChangeEvents.test.tsx index 723e7b7b19..fca2422198 100644 --- a/plugins/pagerduty/src/components/ChangeEvents/ChangeEvents.test.tsx +++ b/plugins/pagerduty/src/components/ChangeEvents/ChangeEvents.test.tsx @@ -92,6 +92,54 @@ describe('Incidents', () => { expect(getAllByTitle('View in PagerDuty').length).toEqual(2); }); + it('Does not render a pagerduty link when html_url is not present in response', async () => { + mockPagerDutyApi.getChangeEventsByServiceId = jest + .fn() + .mockImplementationOnce( + async () => + [ + { + id: 'id1', + source: 'changeSource1', + links: [ + { + href: 'www.externalLink1.com', + text: 'link1', + }, + ], + summary: 'summary of event', + timestamp: '2020-07-17T08:42:58.315+0000', + }, + { + id: 'id2', + source: 'changeSource1', + html_url: 'www.pdlink.com/link', + links: [ + { + href: 'www.externalLink1.com', + text: 'link1', + }, + ], + summary: 'sum of EVENT', + timestamp: '2020-07-18T08:42:58.315+0000', + }, + ] as ChangeEvent[], + ); + const { getByText, getAllByTitle, queryByTestId } = render( + wrapInTestApp( + + + , + ), + ); + await waitFor(() => !queryByTestId('progress')); + expect(getByText('summary of event')).toBeInTheDocument(); + expect(getByText('sum of EVENT')).toBeInTheDocument(); + + // assert links, mailto and hrefs, date calculation + expect(getAllByTitle('View in PagerDuty').length).toEqual(1); + }); + it('Handle errors', async () => { mockPagerDutyApi.getChangeEventsByServiceId = jest .fn() From 9af88acb7b822f5eacee0d08be1feac1f8965923 Mon Sep 17 00:00:00 2001 From: Jay Gabriels Date: Mon, 24 Jan 2022 14:25:03 -0800 Subject: [PATCH 5/9] Update README.md Signed-off-by: Jay Gabriels --- plugins/pagerduty/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/pagerduty/README.md b/plugins/pagerduty/README.md index e357b8e801..923610db5e 100644 --- a/plugins/pagerduty/README.md +++ b/plugins/pagerduty/README.md @@ -7,6 +7,7 @@ - The Backstage PagerDuty plugin allows PagerDuty information about a Backstage entity to be displayed within Backstage. This includes active incidents, recent change events, as well as the current on-call responders' names, email addresses, and links to their profiles in PagerDuty. - Incidents can be manually triggered via the plugin with a user-provided description, which will in turn notify the current on-call responders. +- Change events will be displayed in a separate tab. If the change event payload has additional links the first link only will be rendered. # Requirements From 7966d8c75c4b112e2dfbd1a2548eac2ca3d7445b Mon Sep 17 00:00:00 2001 From: Jay Gabriels Date: Tue, 25 Jan 2022 15:20:45 -0800 Subject: [PATCH 6/9] Run prettier Signed-off-by: Jay Gabriels --- .../src/components/ChangeEvents/ChangeEventListItem.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx b/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx index a5a476edaa..2944e406f0 100644 --- a/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx +++ b/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx @@ -86,7 +86,7 @@ export const ChangeEventListItem = ({ changeEvent }: Props) => { /> {externalLinkElem} - {changeEvent.html_url === undefined ? null : + {changeEvent.html_url === undefined ? null : ( { - } + )} ); From ce0c66668f72162a9b16e78e6365c89031dd3075 Mon Sep 17 00:00:00 2001 From: Jay Gabriels Date: Wed, 26 Jan 2022 08:24:35 -0800 Subject: [PATCH 7/9] Update tall-rats-lie.md Signed-off-by: Jay Gabriels --- .changeset/tall-rats-lie.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/tall-rats-lie.md b/.changeset/tall-rats-lie.md index 899b06d425..ed76970df4 100644 --- a/.changeset/tall-rats-lie.md +++ b/.changeset/tall-rats-lie.md @@ -2,4 +2,4 @@ '@backstage/plugin-pagerduty': patch --- -Fixes change events tab from erroring when change events exist +Fix change events tab error when change events exist From 65ea82efdf8e71a11a73000a48076322a4fe6521 Mon Sep 17 00:00:00 2001 From: Jay Gabriels Date: Wed, 26 Jan 2022 11:50:57 -0800 Subject: [PATCH 8/9] Add Link component back in Signed-off-by: Jay Gabriels --- .../components/ChangeEvents/ChangeEventListItem.tsx | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx b/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx index 2944e406f0..515c181874 100644 --- a/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx +++ b/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx @@ -15,6 +15,7 @@ */ import React from 'react'; +import { Link } from '@backstage/core-components'; import { ListItem, ListItemSecondaryAction, @@ -58,12 +59,7 @@ export const ChangeEventListItem = ({ changeEvent }: Props) => { const text: string = changeEvent.links[0].text; externalLinkElem = ( - + @@ -89,9 +85,8 @@ export const ChangeEventListItem = ({ changeEvent }: Props) => { {changeEvent.html_url === undefined ? null : ( From c2e07bff68a42046993d08674bd443d485d9bd21 Mon Sep 17 00:00:00 2001 From: Jay Gabriels Date: Wed, 26 Jan 2022 11:52:34 -0800 Subject: [PATCH 9/9] Add missing key Signed-off-by: Jay Gabriels --- .../src/components/ChangeEvents/ChangeEventListItem.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx b/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx index 515c181874..4912277cee 100644 --- a/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx +++ b/plugins/pagerduty/src/components/ChangeEvents/ChangeEventListItem.tsx @@ -59,7 +59,11 @@ export const ChangeEventListItem = ({ changeEvent }: Props) => { const text: string = changeEvent.links[0].text; externalLinkElem = ( - +