diff --git a/.changeset/nice-trains-punch.md b/.changeset/nice-trains-punch.md new file mode 100644 index 0000000000..71225ac97c --- /dev/null +++ b/.changeset/nice-trains-punch.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-pagerduty': patch +--- + +Supporting Timezones diff --git a/plugins/pagerduty/src/api/client.ts b/plugins/pagerduty/src/api/client.ts index 527a56b2af..d1220f715f 100644 --- a/plugins/pagerduty/src/api/client.ts +++ b/plugins/pagerduty/src/api/client.ts @@ -46,7 +46,7 @@ export class PagerDutyClient implements PagerDutyApi { constructor(private readonly config: ClientApiConfig) {} async getServiceByIntegrationKey(integrationKey: string): Promise { - const params = `include[]=integrations&include[]=escalation_policies&query=${integrationKey}`; + const params = `time_zone=UTC&include[]=integrations&include[]=escalation_policies&query=${integrationKey}`; const url = `${await this.config.discoveryApi.getBaseUrl( 'proxy', )}/pagerduty/services?${params}`; @@ -56,7 +56,7 @@ export class PagerDutyClient implements PagerDutyApi { } async getIncidentsByServiceId(serviceId: string): Promise { - const params = `statuses[]=triggered&statuses[]=acknowledged&service_ids[]=${serviceId}`; + const params = `time_zone=UTC&sort_by=created_at&statuses[]=triggered&statuses[]=acknowledged&service_ids[]=${serviceId}`; const url = `${await this.config.discoveryApi.getBaseUrl( 'proxy', )}/pagerduty/incidents?${params}`; @@ -66,7 +66,7 @@ export class PagerDutyClient implements PagerDutyApi { } async getOnCallByPolicyId(policyId: string): Promise { - const params = `include[]=users&escalation_policy_ids[]=${policyId}`; + const params = `time_zone=UTC&include[]=users&escalation_policy_ids[]=${policyId}`; const url = `${await this.config.discoveryApi.getBaseUrl( 'proxy', )}/pagerduty/oncalls?${params}`; diff --git a/plugins/pagerduty/src/components/Escalation/EscalationPolicy.tsx b/plugins/pagerduty/src/components/Escalation/EscalationPolicy.tsx index 5e67d52172..faa480f6e2 100644 --- a/plugins/pagerduty/src/components/Escalation/EscalationPolicy.tsx +++ b/plugins/pagerduty/src/components/Escalation/EscalationPolicy.tsx @@ -32,7 +32,9 @@ export const EscalationPolicy = ({ policyId }: Props) => { const { value: users, loading, error } = useAsync(async () => { const oncalls = await api.getOnCallByPolicyId(policyId); - const users = oncalls.map(oncall => oncall.user); + const users = oncalls + .sort((a, b) => a.escalation_level - b.escalation_level) + .map(oncall => oncall.user); return users; }); diff --git a/plugins/pagerduty/src/components/Incident/IncidentEmptyState.tsx b/plugins/pagerduty/src/components/Incident/IncidentEmptyState.tsx index b697422b0f..f7a0398c55 100644 --- a/plugins/pagerduty/src/components/Incident/IncidentEmptyState.tsx +++ b/plugins/pagerduty/src/components/Incident/IncidentEmptyState.tsx @@ -22,7 +22,7 @@ export const IncidentsEmptyState = () => { return ( - Nice! No incidents found! + Nice! No incidents found!