diff --git a/plugins/cicd-statistics/api-report.md b/plugins/cicd-statistics/api-report.md index aef376c9b8..1af39b6f0f 100644 --- a/plugins/cicd-statistics/api-report.md +++ b/plugins/cicd-statistics/api-report.md @@ -82,7 +82,9 @@ export interface CicdStatisticsApi { // (undocumented) fetchBuilds(options: FetchBuildsOptions): Promise; // (undocumented) - getConfiguration(): Promise>; + getConfiguration( + options: GetConfigurationOptions, + ): Promise>; } // Warning: (ae-missing-release-tag) "cicdStatisticsApiRef" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -150,9 +152,15 @@ export type FilterStatusType = | 'expired'; // Warning: (ae-missing-release-tag) "rootCatalogCicdStatsRouteRef" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// Warning: (ae-missing-release-tag) "GetConfigurationOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export const rootCatalogCicdStatsRouteRef: RouteRef; +// @public +export interface GetConfigurationOptions { + // (undocumented) + entity: Entity; +} // Warning: (ae-missing-release-tag) "Stage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // diff --git a/plugins/cicd-statistics/src/apis/types.ts b/plugins/cicd-statistics/src/apis/types.ts index 1f2fa8a5b9..6bfc21008d 100644 --- a/plugins/cicd-statistics/src/apis/types.ts +++ b/plugins/cicd-statistics/src/apis/types.ts @@ -195,6 +195,14 @@ export type UpdateProgress = ( started?: number, ) => void; +/** + * When reading configuration, the Api can return a custom settings depending on + * the entity being viewed. + */ +export interface GetConfigurationOptions { + entity: Entity; +} + /** * When fetching, the Api should fetch build information about the `entity` and * respect the `timeFrom`, `timeTo`, `filterStatus` and `filterType`. @@ -220,6 +228,8 @@ export interface FetchBuildsOptions { * the UI. */ export interface CicdStatisticsApi { - getConfiguration(): Promise>; + getConfiguration( + options: GetConfigurationOptions, + ): Promise>; fetchBuilds(options: FetchBuildsOptions): Promise; } diff --git a/plugins/cicd-statistics/src/hooks/use-cicd-configuration.ts b/plugins/cicd-statistics/src/hooks/use-cicd-configuration.ts index 89f2c9f666..d435cb21aa 100644 --- a/plugins/cicd-statistics/src/hooks/use-cicd-configuration.ts +++ b/plugins/cicd-statistics/src/hooks/use-cicd-configuration.ts @@ -15,6 +15,7 @@ */ import { useState, useEffect } from 'react'; +import { useEntity } from '@backstage/plugin-catalog-react'; import { CicdConfiguration, statusTypes } from '../apis'; import { Progress } from '../components/progress'; @@ -23,6 +24,7 @@ import { useCicdStatisticsApi } from './use-cicd-statistics-api'; export function useCicdConfiguration(): Progress { const cicdStatisticsApi = useCicdStatisticsApi(); + const { entity } = useEntity(); const [state, setState] = useState>({ loading: true, @@ -35,7 +37,7 @@ export function useCicdConfiguration(): Progress { } cicdStatisticsApi - .getConfiguration() + .getConfiguration({ entity }) .then(configuration => { const { availableStatuses = statusTypes, @@ -53,7 +55,7 @@ export function useCicdConfiguration(): Progress { .catch(error => { setState({ error }); }); - }, [cicdStatisticsApi]); + }, [cicdStatisticsApi, entity]); return state; }