From f63f1aff888ef5b29076b0dac357448dc51b9bd1 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Thu, 10 Dec 2020 14:44:32 -0500 Subject: [PATCH] Add body content to catalog import PR --- .../catalog-import/src/api/CatalogImportClient.ts | 15 ++++++++++++++- plugins/catalog-import/src/plugin.ts | 11 ++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/plugins/catalog-import/src/api/CatalogImportClient.ts b/plugins/catalog-import/src/api/CatalogImportClient.ts index 4ac015ffbf..029f7f7fb5 100644 --- a/plugins/catalog-import/src/api/CatalogImportClient.ts +++ b/plugins/catalog-import/src/api/CatalogImportClient.ts @@ -15,7 +15,7 @@ */ import { Octokit } from '@octokit/rest'; -import { DiscoveryApi, OAuthApi } from '@backstage/core'; +import { DiscoveryApi, OAuthApi, ConfigApi } from '@backstage/core'; import { CatalogImportApi } from './CatalogImportApi'; import { AnalyzeLocationResponse } from '@backstage/plugin-catalog-backend'; import { PartialEntity } from '../util/types'; @@ -24,13 +24,16 @@ import { GitHubIntegrationConfig } from '@backstage/integration'; export class CatalogImportClient implements CatalogImportApi { private readonly discoveryApi: DiscoveryApi; private readonly githubAuthApi: OAuthApi; + private readonly configApi: ConfigApi; constructor(options: { discoveryApi: DiscoveryApi; githubAuthApi: OAuthApi; + configApi: ConfigApi; }) { this.discoveryApi = options.discoveryApi; this.githubAuthApi = options.githubAuthApi; + this.configApi = options.configApi; } async generateEntityDefinitions({ @@ -164,12 +167,22 @@ export class CatalogImportClient implements CatalogImportApi { ); }); + const appTitle = this.configApi.getString('app.title'); + const appBaseUrl = this.configApi.getString('app.baseUrl'); + + const prBody = `This pull request adds a **Backstage entity metadata file** \ +to this repository so that the component can be added to the \ +${appTitle} software catalog.\n\nAfter you merge this pull request, \ +you can [return to Backstage](${appBaseUrl}/catalog-import) \ +to register the component with the direct URL to the ${fileName} file.`; + const pullRequestResponse = await octo.pulls .create({ owner, repo, title: `Add ${fileName} config file`, head: branchName, + body: prBody, base: repoData.data.default_branch, }) .catch(e => { diff --git a/plugins/catalog-import/src/plugin.ts b/plugins/catalog-import/src/plugin.ts index 3ce4918553..829be22045 100644 --- a/plugins/catalog-import/src/plugin.ts +++ b/plugins/catalog-import/src/plugin.ts @@ -20,6 +20,7 @@ import { createRouteRef, discoveryApiRef, githubAuthApiRef, + configApiRef, } from '@backstage/core'; import { catalogImportApiRef } from './api/CatalogImportApi'; import { CatalogImportClient } from './api/CatalogImportClient'; @@ -34,9 +35,13 @@ export const plugin = createPlugin({ apis: [ createApiFactory({ api: catalogImportApiRef, - deps: { discoveryApi: discoveryApiRef, githubAuthApi: githubAuthApiRef }, - factory: ({ discoveryApi, githubAuthApi }) => - new CatalogImportClient({ discoveryApi, githubAuthApi }), + deps: { + discoveryApi: discoveryApiRef, + githubAuthApi: githubAuthApiRef, + configApi: configApiRef, + }, + factory: ({ discoveryApi, githubAuthApi, configApi }) => + new CatalogImportClient({ discoveryApi, githubAuthApi, configApi }), }), ], });