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 }); }, }), ],