code-climate

Signed-off-by: Fredrik Adelöw <freben@gmail.com>
This commit is contained in:
Fredrik Adelöw
2022-08-19 09:38:13 +02:00
parent a9b435ed1c
commit e117ad2fec
9 changed files with 10 additions and 30 deletions
+1 -21
View File
@@ -11,21 +11,15 @@ import { DiscoveryApi } from '@backstage/core-plugin-api';
import { FetchApi } from '@backstage/core-plugin-api';
import { RouteRef } from '@backstage/core-plugin-api';
// Warning: (ae-missing-release-tag) "CodeClimateApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CodeClimateApi {
// (undocumented)
fetchData(repoID: string): Promise<CodeClimateData>;
}
// Warning: (ae-missing-release-tag) "codeClimateApiRef" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const codeClimateApiRef: ApiRef<CodeClimateApi>;
// Warning: (ae-missing-release-tag) "CodeClimateData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CodeClimateData = {
repoID: string;
@@ -42,8 +36,6 @@ export type CodeClimateData = {
numberOfOtherIssues: number;
};
// Warning: (ae-missing-release-tag) "codeClimatePlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const codeClimatePlugin: BackstagePlugin<
{
@@ -53,30 +45,18 @@ export const codeClimatePlugin: BackstagePlugin<
{}
>;
// Warning: (ae-missing-release-tag) "EntityCodeClimateCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const EntityCodeClimateCard: () => JSX.Element;
// Warning: (ae-missing-release-tag) "MockCodeClimateApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MockCodeClimateApi implements CodeClimateApi {
// (undocumented)
fetchData(): Promise<CodeClimateData>;
}
// Warning: (ae-missing-release-tag) "mockData" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const mockData: CodeClimateData;
// Warning: (ae-missing-release-tag) "ProductionCodeClimateApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProductionCodeClimateApi implements CodeClimateApi {
// Warning: (ae-forgotten-export) The symbol "Options" needs to be exported by the entry point index.d.ts
constructor(options: Options);
constructor(options: { discoveryApi: DiscoveryApi; fetchApi: FetchApi });
// (undocumented)
fetchAllData(options: {
apiUrl: string;
@@ -17,10 +17,12 @@
import { CodeClimateData } from './code-climate-data';
import { createApiRef } from '@backstage/core-plugin-api';
/** @public */
export const codeClimateApiRef = createApiRef<CodeClimateApi>({
id: 'plugin.code-climate.service',
});
/** @public */
export interface CodeClimateApi {
fetchData(repoID: string): Promise<CodeClimateData>;
}
@@ -164,6 +164,7 @@ export type CodeClimateIssuesData = {
meta: { current_page: number; total_pages: number; total_count: number };
};
/** @public */
export type CodeClimateData = {
repoID: string;
maintainability: {
@@ -14,5 +14,4 @@
* limitations under the License.
*/
export { mockData } from './mock-api';
export { MockCodeClimateApi } from './mock-api';
@@ -47,6 +47,7 @@ export const mockData: CodeClimateData = {
numberOfOtherIssues: 26,
};
/** @public */
export class MockCodeClimateApi implements CodeClimateApi {
fetchData(): Promise<CodeClimateData> {
return new Promise(resolve => {
@@ -34,16 +34,12 @@ const codeSmellsQuery = `${basicIssuesOptions}&${categoriesFilter}=Complexity`;
const duplicationQuery = `${basicIssuesOptions}&${categoriesFilter}=Duplication`;
const otherIssuesQuery = `${basicIssuesOptions}&${categoriesFilter}=Bug%20Risk`;
type Options = {
discoveryApi: DiscoveryApi;
fetchApi: FetchApi;
};
/** @public */
export class ProductionCodeClimateApi implements CodeClimateApi {
private readonly discoveryApi: DiscoveryApi;
private readonly fetchApi: FetchApi;
constructor(options: Options) {
constructor(options: { discoveryApi: DiscoveryApi; fetchApi: FetchApi }) {
this.discoveryApi = options.discoveryApi;
this.fetchApi = options.fetchApi;
}
@@ -17,7 +17,7 @@
import React from 'react';
import { render } from '@testing-library/react';
import { CodeClimateTable } from './CodeClimateTable';
import { mockData } from '../../api/mock';
import { mockData } from '../../api/mock/mock-api';
import { ThemeProvider } from '@material-ui/core';
import { lightTheme } from '@backstage/theme';
+2
View File
@@ -30,6 +30,7 @@ export const rootRouteRef = createRouteRef({
id: 'code-climate',
});
/** @public */
export const codeClimatePlugin = createPlugin({
id: 'code-climate',
apis: [
@@ -48,6 +49,7 @@ export const codeClimatePlugin = createPlugin({
},
});
/** @public */
export const EntityCodeClimateCard = codeClimatePlugin.provide(
createComponentExtension({
name: 'EntityCodeClimateCard',