From 0f668b58eb55e8925a8bd2e4612064dcdf768e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Fri, 19 Aug 2022 15:01:04 +0200 Subject: [PATCH] circleci MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- plugins/circleci/api-report.md | 21 +-------------------- plugins/circleci/src/api/CircleCIApi.ts | 21 ++++++++++++--------- plugins/circleci/src/api/index.ts | 3 ++- plugins/circleci/src/components/Router.tsx | 2 ++ plugins/circleci/src/constants.ts | 1 + plugins/circleci/src/plugin.ts | 2 ++ plugins/circleci/src/route-refs.tsx | 2 ++ scripts/api-extractor.ts | 1 - 8 files changed, 22 insertions(+), 31 deletions(-) diff --git a/plugins/circleci/api-report.md b/plugins/circleci/api-report.md index 034cfae3ee..277b5720de 100644 --- a/plugins/circleci/api-report.md +++ b/plugins/circleci/api-report.md @@ -26,17 +26,12 @@ export { BuildSummary }; export { BuildWithSteps }; -// Warning: (ae-missing-release-tag) "CIRCLECI_ANNOTATION" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const CIRCLECI_ANNOTATION = 'circleci.com/project-slug'; -// Warning: (ae-missing-release-tag) "CircleCIApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export class CircleCIApi { - // 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; proxyPath?: string }); // (undocumented) getBuild( buildNumber: number, @@ -59,44 +54,30 @@ export class CircleCIApi { ): Promise; } -// Warning: (ae-missing-release-tag) "circleCIApiRef" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const circleCIApiRef: ApiRef; -// Warning: (ae-missing-release-tag) "circleCIBuildRouteRef" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const circleCIBuildRouteRef: SubRouteRef>; -// Warning: (ae-missing-release-tag) "circleCIPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) const circleCIPlugin: BackstagePlugin<{}, {}, {}>; export { circleCIPlugin }; export { circleCIPlugin as plugin }; -// Warning: (ae-missing-release-tag) "circleCIRouteRef" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const circleCIRouteRef: RouteRef; -// Warning: (ae-missing-release-tag) "EntityCircleCIContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const EntityCircleCIContent: () => JSX.Element; export { GitType }; -// Warning: (ae-missing-release-tag) "isCircleCIAvailable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) const isCircleCIAvailable: (entity: Entity) => boolean; export { isCircleCIAvailable }; export { isCircleCIAvailable as isPluginApplicableToEntity }; -// Warning: (ae-missing-release-tag) "Router" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const Router: () => JSX.Element; ``` diff --git a/plugins/circleci/src/api/CircleCIApi.ts b/plugins/circleci/src/api/CircleCIApi.ts index 931feec4d5..6ec8addd76 100644 --- a/plugins/circleci/src/api/CircleCIApi.ts +++ b/plugins/circleci/src/api/CircleCIApi.ts @@ -28,28 +28,31 @@ import { } from 'circleci-api'; import { createApiRef, DiscoveryApi } from '@backstage/core-plugin-api'; +/** @public */ export { GitType }; + +/** @public */ export type { BuildWithSteps, BuildStepAction, BuildSummary }; +/** @public */ export const circleCIApiRef = createApiRef({ id: 'plugin.circleci.service', }); const DEFAULT_PROXY_PATH = '/circleci/api'; -type Options = { - discoveryApi: DiscoveryApi; - /** - * Path to use for requests via the proxy, defaults to /circleci/api - */ - proxyPath?: string; -}; - +/** @public */ export class CircleCIApi { private readonly discoveryApi: DiscoveryApi; private readonly proxyPath: string; - constructor(options: Options) { + constructor(options: { + discoveryApi: DiscoveryApi; + /** + * Path to use for requests via the proxy, defaults to /circleci/api + */ + proxyPath?: string; + }) { this.discoveryApi = options.discoveryApi; this.proxyPath = options.proxyPath ?? DEFAULT_PROXY_PATH; } diff --git a/plugins/circleci/src/api/index.ts b/plugins/circleci/src/api/index.ts index 213ce2de8b..08a549b1ee 100644 --- a/plugins/circleci/src/api/index.ts +++ b/plugins/circleci/src/api/index.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -export { CircleCIApi, circleCIApiRef, GitType } from './CircleCIApi'; +export type { GitType } from './CircleCIApi'; +export { CircleCIApi, circleCIApiRef } from './CircleCIApi'; export type { BuildWithSteps, BuildStepAction, diff --git a/plugins/circleci/src/components/Router.tsx b/plugins/circleci/src/components/Router.tsx index e16c91f2a0..09c74dbbe8 100644 --- a/plugins/circleci/src/components/Router.tsx +++ b/plugins/circleci/src/components/Router.tsx @@ -24,9 +24,11 @@ import { Entity } from '@backstage/catalog-model'; import { useEntity } from '@backstage/plugin-catalog-react'; import { MissingAnnotationEmptyState } from '@backstage/core-components'; +/** @public */ export const isCircleCIAvailable = (entity: Entity) => Boolean(entity.metadata.annotations?.[CIRCLECI_ANNOTATION]); +/** @public */ export const Router = () => { const { entity } = useEntity(); diff --git a/plugins/circleci/src/constants.ts b/plugins/circleci/src/constants.ts index 97c016826e..3478c22aee 100644 --- a/plugins/circleci/src/constants.ts +++ b/plugins/circleci/src/constants.ts @@ -14,4 +14,5 @@ * limitations under the License. */ +/** @public */ export const CIRCLECI_ANNOTATION = 'circleci.com/project-slug'; diff --git a/plugins/circleci/src/plugin.ts b/plugins/circleci/src/plugin.ts index 890e40ae9a..0cf7fb52ea 100644 --- a/plugins/circleci/src/plugin.ts +++ b/plugins/circleci/src/plugin.ts @@ -23,6 +23,7 @@ import { createRoutableExtension, } from '@backstage/core-plugin-api'; +/** @public */ export const circleCIPlugin = createPlugin({ id: 'circleci', apis: [ @@ -34,6 +35,7 @@ export const circleCIPlugin = createPlugin({ ], }); +/** @public */ export const EntityCircleCIContent = circleCIPlugin.provide( createRoutableExtension({ name: 'EntityCircleCIContent', diff --git a/plugins/circleci/src/route-refs.tsx b/plugins/circleci/src/route-refs.tsx index e8579b9f0d..22295c4ebc 100644 --- a/plugins/circleci/src/route-refs.tsx +++ b/plugins/circleci/src/route-refs.tsx @@ -16,10 +16,12 @@ import { createRouteRef, createSubRouteRef } from '@backstage/core-plugin-api'; +/** @public */ export const circleCIRouteRef = createRouteRef({ id: 'circle-ci', }); +/** @public */ export const circleCIBuildRouteRef = createSubRouteRef({ id: 'circle-ci/build', parent: circleCIRouteRef, diff --git a/scripts/api-extractor.ts b/scripts/api-extractor.ts index a508a13496..530c29dd18 100644 --- a/scripts/api-extractor.ts +++ b/scripts/api-extractor.ts @@ -201,7 +201,6 @@ const ALLOW_WARNINGS = [ 'packages/core-components', 'plugins/catalog', 'plugins/catalog-import', - 'plugins/circleci', 'plugins/cost-insights', 'plugins/git-release-manager', 'plugins/github-actions',