From a2218363301901c79cb11a6518e21ce32f3539f6 Mon Sep 17 00:00:00 2001 From: Thomas Cardonne Date: Fri, 7 Apr 2023 11:41:45 +0200 Subject: [PATCH 1/2] feat(plugin-adr): use fetchApi instead of raw fetch Signed-off-by: Thomas Cardonne --- .changeset/nice-schools-remember.md | 5 +++++ plugins/adr/src/api/AdrClient.ts | 7 +++++-- plugins/adr/src/plugin.ts | 6 ++++-- 3 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 .changeset/nice-schools-remember.md diff --git a/.changeset/nice-schools-remember.md b/.changeset/nice-schools-remember.md new file mode 100644 index 0000000000..aa034a95a3 --- /dev/null +++ b/.changeset/nice-schools-remember.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-adr': patch +--- + +Use `fetchApi` instead of raw `fetch` in order to pass auth header if necessary. diff --git a/plugins/adr/src/api/AdrClient.ts b/plugins/adr/src/api/AdrClient.ts index da1adc04e4..9b85e8680d 100644 --- a/plugins/adr/src/api/AdrClient.ts +++ b/plugins/adr/src/api/AdrClient.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { DiscoveryApi } from '@backstage/core-plugin-api'; +import { DiscoveryApi, FetchApi } from '@backstage/core-plugin-api'; import { AdrApi, AdrListResult, AdrReadResult } from './types'; /** @@ -24,6 +24,7 @@ import { AdrApi, AdrListResult, AdrReadResult } from './types'; */ export interface AdrClientOptions { discoveryApi: DiscoveryApi; + fetchApi: FetchApi; } const readEndpoint = 'file'; @@ -36,9 +37,11 @@ const listEndpoint = 'list'; */ export class AdrClient implements AdrApi { private readonly discoveryApi: DiscoveryApi; + private readonly fetchApi: FetchApi; constructor(options: AdrClientOptions) { this.discoveryApi = options.discoveryApi; + this.fetchApi = options.fetchApi; } private async fetchAdrApi(endpoint: string, fileUrl: string): Promise { @@ -47,7 +50,7 @@ export class AdrClient implements AdrApi { fileUrl, )}`; - const result = await fetch(targetUrl); + const result = await this.fetchApi.fetch(targetUrl); const data = await result.json(); if (!result.ok) { diff --git a/plugins/adr/src/plugin.ts b/plugins/adr/src/plugin.ts index 05e4adec4a..d173ef5d78 100644 --- a/plugins/adr/src/plugin.ts +++ b/plugins/adr/src/plugin.ts @@ -20,6 +20,7 @@ import { createPlugin, createRoutableExtension, discoveryApiRef, + fetchApiRef, } from '@backstage/core-plugin-api'; import { createSearchResultListItemExtension } from '@backstage/plugin-search-react'; import { rootRouteRef } from './routes'; @@ -36,9 +37,10 @@ export const adrPlugin = createPlugin({ api: adrApiRef, deps: { discoveryApi: discoveryApiRef, + fetchApi: fetchApiRef, }, - factory({ discoveryApi }) { - return new AdrClient({ discoveryApi }); + factory({ discoveryApi, fetchApi }) { + return new AdrClient({ discoveryApi, fetchApi }); }, }), ], From 1770e86b8c209911c1fd50b2b9a72250429d805a Mon Sep 17 00:00:00 2001 From: Thomas Cardonne Date: Fri, 7 Apr 2023 17:41:43 +0200 Subject: [PATCH 2/2] chore(plugin-adr): update api-report Signed-off-by: Thomas Cardonne --- .changeset/nice-schools-remember.md | 2 +- plugins/adr/api-report.md | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.changeset/nice-schools-remember.md b/.changeset/nice-schools-remember.md index aa034a95a3..1b362532f8 100644 --- a/.changeset/nice-schools-remember.md +++ b/.changeset/nice-schools-remember.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-adr': patch +'@backstage/plugin-adr': minor --- Use `fetchApi` instead of raw `fetch` in order to pass auth header if necessary. diff --git a/plugins/adr/api-report.md b/plugins/adr/api-report.md index 1d07edc4ce..dceca2411c 100644 --- a/plugins/adr/api-report.md +++ b/plugins/adr/api-report.md @@ -10,6 +10,7 @@ import { AdrFilePathFilterFn } from '@backstage/plugin-adr-common'; import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; import { DiscoveryApi } from '@backstage/core-plugin-api'; +import { FetchApi } from '@backstage/core-plugin-api'; import { isAdrAvailable } from '@backstage/plugin-adr-common'; import { ReactNode } from 'react'; import { ResultHighlight } from '@backstage/plugin-search-common'; @@ -37,6 +38,8 @@ export class AdrClient implements AdrApi { export interface AdrClientOptions { // (undocumented) discoveryApi: DiscoveryApi; + // (undocumented) + fetchApi: FetchApi; } // @public