@backstage-community/plugin-sonarqube
Version:
135 lines (124 loc) • 5.68 kB
TypeScript
import { SonarQubeApi, FindingSummary } from '@backstage-community/plugin-sonarqube-react';
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
import { DiscoveryApi, FetchApi } from '@backstage/core-plugin-api';
import * as _backstage_catalog_model from '@backstage/catalog-model';
import * as react_jsx_runtime from 'react/jsx-runtime';
import * as _backstage_core_components from '@backstage/core-components';
import { InfoCardVariants } from '@backstage/core-components';
import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
import { ReactNode } from 'react';
/** @public */
declare class SonarQubeClient implements SonarQubeApi {
discoveryApi: DiscoveryApi;
fetchApi: FetchApi;
constructor(options: {
discoveryApi: DiscoveryApi;
fetchApi: FetchApi;
});
private callApi;
getFindingSummary({ componentKey, projectInstance, }?: {
componentKey?: string;
projectInstance?: string;
}): Promise<FindingSummary | undefined>;
settledResponseOf(responses: PromiseSettledResult<any>[]): Array<any>;
getFindingSummaries(components: Array<{
projectInstance: string | undefined;
componentKey: string;
}>): Promise<Map<string, FindingSummary>>;
}
/** @public */
type DuplicationRating = {
greaterThan: number;
rating: '1.0' | '2.0' | '3.0' | '4.0' | '5.0';
};
/** @public */
declare const SonarQubeCard: (props: {
variant?: InfoCardVariants;
duplicationRatings?: DuplicationRating[];
missingAnnotationReadMoreUrl?: string;
}) => react_jsx_runtime.JSX.Element;
/** @public */
type SonarQubeContentPageProps = {
title?: string;
supportTitle?: string;
missingAnnotationReadMoreUrl?: string;
};
/**
* @public
*/
type SonarOverviewProps = {
relationType: string;
entityKind: string;
};
/**
* @public
*/
declare const SonarQubeRelatedEntitiesOverview: (props: SonarOverviewProps) => react_jsx_runtime.JSX.Element;
/**
* @public
*/
type SonarQubeTableProps = {
tableContent: any[] | undefined;
title?: string;
options?: any | undefined;
emptyContent?: ReactNode;
localization?: any;
};
/**
* @public
*/
declare const SonarQubeTable: ({ tableContent, title, options, emptyContent, localization, }: SonarQubeTableProps) => react_jsx_runtime.JSX.Element;
/**
* @public
*
* @deprecated use the same type from `@backstage-community/plugin-sonarqube-react` instead
*/
declare const isSonarQubeAvailable: (entity: _backstage_catalog_model.Entity) => boolean;
/**
* @public
*
* @deprecated use the same type from `@backstage-community/plugin-sonarqube-react` instead
*/
declare const SONARQUBE_PROJECT_KEY_ANNOTATION = "sonarqube.org/project-key";
/** @public */
declare const sonarQubePlugin: _backstage_core_plugin_api.BackstagePlugin<{}, {}, {}>;
/** @public */
declare const EntitySonarQubeCard: (props: {
variant?: _backstage_core_components.InfoCardVariants | undefined;
duplicationRatings?: DuplicationRating[] | undefined;
missingAnnotationReadMoreUrl?: string | undefined;
}) => react_jsx_runtime.JSX.Element;
/** @public */
declare const EntitySonarQubeContentPage: (props: SonarQubeContentPageProps) => react_jsx_runtime.JSX.Element;
/**
* @public
*/
declare const sonarqubeTranslationRef: _backstage_frontend_plugin_api.TranslationRef<"sonarqube", {
readonly title: "SonarQube Dashboard";
readonly "sonarQubeCard.title": "Code Quality";
readonly "sonarQubeCard.deepLinkTitle": "View more";
readonly "sonarQubeCard.bugReportRatingCardTitle": "Bugs";
readonly "sonarQubeCard.vulnerabilitiesRatingCardTitle": "Vulnerabilities";
readonly "sonarQubeCard.codeSmellsRatingCardTitle": "Code Smells";
readonly "sonarQubeCard.hotspotsReviewedTitle": "Hotspots Reviewed";
readonly "sonarQubeCard.coverageRatingCardTitle": "Coverage";
readonly "sonarQubeCard.duplicationsRatingCard": "Duplications";
readonly "sonarQubeCard.qualityBadgeTooltip": "View SonarQube Dashboard";
readonly "sonarQubeCard.emptyState.title": "No information to display";
readonly "sonarQubeCard.emptyState.description": "There is no SonarQube project with key '{{ projectTitle }}', check that project exists and permissions.";
readonly "sonarQubeCard.noSonarQubeError.hasAnnotation": "There is no SonarQube project with key '{{project}}'";
readonly "sonarQubeCard.noSonarQubeError.noAnnotation": "No SonarQube annotation found";
readonly "sonarQubeCard.qualityBadgeLabel.notComputed": "Not computed";
readonly "sonarQubeCard.qualityBadgeLabel.gatePassed": "Gate passed";
readonly "sonarQubeCard.qualityBadgeLabel.gateFailed": "Gate failed";
readonly "sonarQubeTable.columnsTitle.name": "Name";
readonly "sonarQubeTable.columnsTitle.vulnerabilities": "Vulnerabilities";
readonly "sonarQubeTable.columnsTitle.bugs": "Bugs";
readonly "sonarQubeTable.columnsTitle.coverage": "Coverage";
readonly "sonarQubeTable.columnsTitle.lastAnalysis": "Last Analysis";
readonly "sonarQubeTable.columnsTitle.qualityGate": "Quality Gate";
readonly "sonarQubeTable.columnsTitle.codeSmells": "Code Smells";
readonly "sonarQubeTable.columnsTitle.hotspotsReviewed": "Hotspots Reviewed";
readonly "sonarQubeTable.columnsTitle.duplications": "Duplications";
}>;
export { type DuplicationRating, EntitySonarQubeCard, EntitySonarQubeContentPage, SONARQUBE_PROJECT_KEY_ANNOTATION, type SonarOverviewProps, SonarQubeCard, SonarQubeClient, type SonarQubeContentPageProps, SonarQubeRelatedEntitiesOverview, SonarQubeTable, type SonarQubeTableProps, isSonarQubeAvailable, sonarQubePlugin, sonarqubeTranslationRef };