backstage

Форк
0
63 строки · 1.9 Кб
1
/*
2
 * Copyright 2023 The Backstage Authors
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *     http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
import { OCTOPUS_DEPLOY_PROJECT_ID_ANNOTATION } from './constants';
17
import { octopusDeployEntityContentRouteRef } from './routes';
18

19
import { OctopusDeployClient, octopusDeployApiRef } from './api';
20

21
import {
22
  createApiFactory,
23
  createPlugin,
24
  createRoutableExtension,
25
  discoveryApiRef,
26
  fetchApiRef,
27
  configApiRef,
28
} from '@backstage/core-plugin-api';
29

30
import { Entity } from '@backstage/catalog-model';
31

32
/** @public */
33
export const isOctopusDeployAvailable = (entity: Entity) =>
34
  Boolean(entity.metadata.annotations?.[OCTOPUS_DEPLOY_PROJECT_ID_ANNOTATION]);
35

36
/** @public */
37
export const octopusDeployPlugin = createPlugin({
38
  id: 'octopus-deploy',
39
  apis: [
40
    createApiFactory({
41
      api: octopusDeployApiRef,
42
      deps: {
43
        discoveryApi: discoveryApiRef,
44
        fetchApi: fetchApiRef,
45
        configApi: configApiRef,
46
      },
47
      factory: ({ discoveryApi, fetchApi, configApi }) =>
48
        new OctopusDeployClient({ discoveryApi, fetchApi, configApi }),
49
    }),
50
  ],
51
});
52

53
/** @public */
54
export const EntityOctopusDeployContent = octopusDeployPlugin.provide(
55
  createRoutableExtension({
56
    name: 'EntityOctopusDeployContent',
57
    component: () =>
58
      import('./components/EntityPageOctopusDeploy').then(
59
        m => m.EntityPageOctopusDeploy,
60
      ),
61
    mountPoint: octopusDeployEntityContentRouteRef,
62
  }),
63
);
64

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.