diff --git a/.changeset/afraid-foxes-provide.md b/.changeset/afraid-foxes-provide.md
new file mode 100644
index 0000000000..e02702b895
--- /dev/null
+++ b/.changeset/afraid-foxes-provide.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-sonarqube': patch
+---
+
+Additional export added in order to bind SonarQubeClient to its apiref
diff --git a/plugins/sonarqube/api-report.md b/plugins/sonarqube/api-report.md
index 31e98a0f4a..f77c66ac59 100644
--- a/plugins/sonarqube/api-report.md
+++ b/plugins/sonarqube/api-report.md
@@ -6,8 +6,12 @@
///
import { BackstagePlugin } from '@backstage/core-plugin-api';
+import { DiscoveryApi } from '@backstage/core-plugin-api';
import { Entity } from '@backstage/catalog-model';
+import { FindingSummary } from '@backstage/plugin-sonarqube-react';
+import { IdentityApi } from '@backstage/core-plugin-api';
import { InfoCardVariants } from '@backstage/core-components';
+import { SonarQubeApi } from '@backstage/plugin-sonarqube-react';
// @public (undocumented)
export type DuplicationRating = {
@@ -38,6 +42,29 @@ export const SonarQubeCard: (props: {
duplicationRatings?: DuplicationRating[];
}) => JSX.Element;
+// @alpha (undocumented)
+export class SonarQubeClient implements SonarQubeApi {
+ constructor({
+ discoveryApi,
+ identityApi,
+ }: {
+ discoveryApi: DiscoveryApi;
+ identityApi: IdentityApi;
+ });
+ // (undocumented)
+ discoveryApi: DiscoveryApi;
+ // (undocumented)
+ getFindingSummary({
+ componentKey,
+ projectInstance,
+ }?: {
+ componentKey?: string;
+ projectInstance?: string;
+ }): Promise;
+ // (undocumented)
+ identityApi: IdentityApi;
+}
+
// @public (undocumented)
export type SonarQubeContentPageProps = {
title?: string;
diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json
index 80b8622fc1..ae37737b94 100644
--- a/plugins/sonarqube/package.json
+++ b/plugins/sonarqube/package.json
@@ -8,7 +8,8 @@
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
- "types": "dist/index.d.ts"
+ "types": "dist/index.d.ts",
+ "alphaTypes": "dist/index.alpha.d.ts"
},
"backstage": {
"role": "frontend-plugin"
@@ -25,7 +26,7 @@
"sonarcloud"
],
"scripts": {
- "build": "backstage-cli package build",
+ "build": "backstage-cli package build --experimental-type-build",
"start": "backstage-cli package start",
"lint": "backstage-cli package lint",
"test": "backstage-cli package test",
@@ -64,6 +65,7 @@
},
"files": [
"dist",
+ "alpha",
"config.d.ts"
],
"configSchema": "config.d.ts"
diff --git a/plugins/sonarqube/src/api/SonarQubeClient.ts b/plugins/sonarqube/src/api/SonarQubeClient.ts
index cf893ccef5..f742fe026f 100644
--- a/plugins/sonarqube/src/api/SonarQubeClient.ts
+++ b/plugins/sonarqube/src/api/SonarQubeClient.ts
@@ -23,6 +23,7 @@ import {
import { InstanceUrlWrapper, FindingsWrapper } from './types';
import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api';
+/** @alpha */
export class SonarQubeClient implements SonarQubeApi {
discoveryApi: DiscoveryApi;
identityApi: IdentityApi;
diff --git a/plugins/sonarqube/src/index.ts b/plugins/sonarqube/src/index.ts
index 30f6351d4d..93648caeb5 100644
--- a/plugins/sonarqube/src/index.ts
+++ b/plugins/sonarqube/src/index.ts
@@ -21,5 +21,6 @@
* @packageDocumentation
*/
+export * from './api';
export * from './components';
export * from './plugin';