diff --git a/plugins/github-deployments/src/Router.tsx b/plugins/github-deployments/src/Router.tsx new file mode 100644 index 0000000000..e48f17b75f --- /dev/null +++ b/plugins/github-deployments/src/Router.tsx @@ -0,0 +1,21 @@ +/* + * Copyright 2021 Spotify AB + * + * 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'; + +export const GITHUB_PROJECT_SLUG_ANNOTATION = 'github.com/project-slug'; + +export const isGithubDeploymentsAvailable = (entity: Entity) => + Boolean(entity?.metadata.annotations?.[GITHUB_PROJECT_SLUG_ANNOTATION]); diff --git a/plugins/github-deployments/src/components/GithubDeploymentsCard.tsx b/plugins/github-deployments/src/components/GithubDeploymentsCard.tsx index 07784a951a..ebbe426caf 100644 --- a/plugins/github-deployments/src/components/GithubDeploymentsCard.tsx +++ b/plugins/github-deployments/src/components/GithubDeploymentsCard.tsx @@ -15,17 +15,15 @@ */ import React from 'react'; import { LinearProgress } from '@material-ui/core'; -import { Entity } from '@backstage/catalog-model'; import { InfoCard, MissingAnnotationEmptyState, useApi } from '@backstage/core'; import { useAsync } from 'react-use'; import { githubDeploymentsApiRef } from '../api'; -import GithubDeploymentsTable from './GithubDeploymentsTable/GithubDeploymentsTable'; import { useEntity } from '@backstage/plugin-catalog-react'; - -export const GITHUB_PROJECT_SLUG_ANNOTATION = 'github.com/project-slug'; - -export const isGithubDeploymentsAvailable = (entity: Entity) => - Boolean(entity?.metadata.annotations?.[GITHUB_PROJECT_SLUG_ANNOTATION]); +import { + GITHUB_PROJECT_SLUG_ANNOTATION, + isGithubDeploymentsAvailable, +} from '../Router'; +import GithubDeploymentsTable from './GithubDeploymentsTable/GithubDeploymentsTable'; const GithubDeploymentsComponent = ({ projectSlug, diff --git a/plugins/github-deployments/src/index.ts b/plugins/github-deployments/src/index.ts index e9860050d6..d1bff4e186 100644 --- a/plugins/github-deployments/src/index.ts +++ b/plugins/github-deployments/src/index.ts @@ -17,3 +17,4 @@ export { githubDeploymentsPlugin as plugin, EntityGithubDeploymentsCard, } from './plugin'; +export { isGithubDeploymentsAvailable as isPluginApplicableToEntity } from './Router';