diff --git a/.changeset/fifty-dogs-collect.md b/.changeset/fifty-dogs-collect.md new file mode 100644 index 0000000000..ac04d6b930 --- /dev/null +++ b/.changeset/fifty-dogs-collect.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-sentry': patch +--- + +Exported `isSentryAvailable` which can be used to determine if sentry is available. diff --git a/plugins/sentry/api-report.md b/plugins/sentry/api-report.md index 5ad2992ee4..043fa7a1fd 100644 --- a/plugins/sentry/api-report.md +++ b/plugins/sentry/api-report.md @@ -31,6 +31,9 @@ export const EntitySentryContent: ({ tableOptions, }: SentryPageProps) => JSX.Element; +// @public +export const isSentryAvailable: (entity: Entity) => boolean; + // Warning: (ae-missing-release-tag) "MockSentryApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) diff --git a/plugins/sentry/src/components/index.ts b/plugins/sentry/src/components/index.ts index 210ba8d718..9af8a05853 100644 --- a/plugins/sentry/src/components/index.ts +++ b/plugins/sentry/src/components/index.ts @@ -15,3 +15,4 @@ */ export * from './SentryIssuesWidget'; +export { isSentryAvailable } from './isSentryAvailable'; diff --git a/plugins/sentry/src/components/isSentryAvailable.ts b/plugins/sentry/src/components/isSentryAvailable.ts new file mode 100644 index 0000000000..1a7d26f97c --- /dev/null +++ b/plugins/sentry/src/components/isSentryAvailable.ts @@ -0,0 +1,25 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Entity } from '@backstage/catalog-model'; +import { SENTRY_PROJECT_SLUG_ANNOTATION } from './useProjectSlug'; + +/** + * @public + * Checks to see if sentry is available + */ +export const isSentryAvailable = (entity: Entity) => + Boolean(entity.metadata.annotations?.[SENTRY_PROJECT_SLUG_ANNOTATION]);