From 3270b1b4f8c571aa9f6911ccefd0ae8f0142d7bf Mon Sep 17 00:00:00 2001 From: Deepankumar Loganathan Date: Mon, 29 Jan 2024 21:40:11 +0100 Subject: [PATCH] api-reports and changeset added Signed-off-by: Deepankumar Loganathan --- .changeset/ten-dryers-compete.md | 13 +++++++ packages/backend/src/plugins/azure-devops.ts | 1 + plugins/azure-devops-backend/api-report.md | 3 ++ .../src/service/standaloneServer.ts | 13 +++++++ plugins/azure-devops-common/api-report.md | 38 +++++++++++++++++++ plugins/azure-devops/api-report.md | 6 +++ 6 files changed, 74 insertions(+) create mode 100644 .changeset/ten-dryers-compete.md diff --git a/.changeset/ten-dryers-compete.md b/.changeset/ten-dryers-compete.md new file mode 100644 index 0000000000..14fdcd1e6c --- /dev/null +++ b/.changeset/ten-dryers-compete.md @@ -0,0 +1,13 @@ +--- +'@backstage/plugin-azure-devops-backend': minor +'@backstage/plugin-azure-devops': minor +'@backstage/plugin-azure-devops-common': patch +--- + +Azure DevOps plugin is now integrated with permission framework for the below features + +1. PullRequest +2. Dashboard Pull Request +3. Pipeline +4. GitTag +5. Readme diff --git a/packages/backend/src/plugins/azure-devops.ts b/packages/backend/src/plugins/azure-devops.ts index ed5b1d0068..719bb0500e 100644 --- a/packages/backend/src/plugins/azure-devops.ts +++ b/packages/backend/src/plugins/azure-devops.ts @@ -25,5 +25,6 @@ export default async function createPlugin( logger: env.logger, config: env.config, reader: env.reader, + permissions: env.permissions, }); } diff --git a/plugins/azure-devops-backend/api-report.md b/plugins/azure-devops-backend/api-report.md index d98d178cff..7231509fc1 100644 --- a/plugins/azure-devops-backend/api-report.md +++ b/plugins/azure-devops-backend/api-report.md @@ -16,6 +16,7 @@ import { GitRepository } from 'azure-devops-node-api/interfaces/GitInterfaces'; import { GitTag } from '@backstage/plugin-azure-devops-common'; import { LocationSpec } from '@backstage/plugin-catalog-common'; import { Logger } from 'winston'; +import { PermissionEvaluator } from '@backstage/plugin-permission-common'; import { Project } from '@backstage/plugin-azure-devops-common'; import { PullRequest } from '@backstage/plugin-azure-devops-common'; import { PullRequestOptions } from '@backstage/plugin-azure-devops-common'; @@ -160,6 +161,8 @@ export interface RouterOptions { // (undocumented) logger: Logger; // (undocumented) + permissions: PermissionEvaluator; + // (undocumented) reader: UrlReader; } ``` diff --git a/plugins/azure-devops-backend/src/service/standaloneServer.ts b/plugins/azure-devops-backend/src/service/standaloneServer.ts index e2f4aa4986..65b13fab35 100644 --- a/plugins/azure-devops-backend/src/service/standaloneServer.ts +++ b/plugins/azure-devops-backend/src/service/standaloneServer.ts @@ -18,10 +18,13 @@ import { createServiceBuilder, loadBackendConfig, UrlReaders, + ServerTokenManager, + HostDiscovery, } from '@backstage/backend-common'; import { Server } from 'http'; import { Logger } from 'winston'; import { createRouter } from './router'; +import { ServerPermissionClient } from '@backstage/plugin-permission-node'; export interface ServerOptions { port: number; @@ -34,13 +37,23 @@ export async function startStandaloneServer( ): Promise { const logger = options.logger.child({ service: 'azure-devops-backend' }); const config = await loadBackendConfig({ logger, argv: process.argv }); + const discovery = HostDiscovery.fromConfig(config); logger.debug('Starting application server...'); + const tokenManager = ServerTokenManager.fromConfig(config, { + logger, + }); + const permissions = ServerPermissionClient.fromConfig(config, { + discovery, + tokenManager, + }); + const router = await createRouter({ logger, config, reader: UrlReaders.default({ logger, config }), + permissions, }); let service = createServiceBuilder(module) diff --git a/plugins/azure-devops-common/api-report.md b/plugins/azure-devops-common/api-report.md index e8343178e3..7e559ac4fc 100644 --- a/plugins/azure-devops-common/api-report.md +++ b/plugins/azure-devops-common/api-report.md @@ -3,6 +3,9 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { BasicPermission } from '@backstage/plugin-permission-common'; +import { ResourcePermission } from '@backstage/plugin-permission-common'; + // @public (undocumented) export const AZURE_DEVOPS_BUILD_DEFINITION_ANNOTATION = 'dev.azure.com/build-definition'; @@ -22,6 +25,39 @@ export const AZURE_DEVOPS_README_ANNOTATION = 'dev.azure.com/readme-path'; // @public (undocumented) export const AZURE_DEVOPS_REPO_ANNOTATION = 'dev.azure.com/project-repo'; +// Warning: (ae-missing-release-tag) "azureDevOpsGitTagReadPermission" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const azureDevOpsGitTagReadPermission: ResourcePermission<'catalog-entity'>; + +// Warning: (ae-missing-release-tag) "azureDevOpsPermissions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const azureDevOpsPermissions: ( + | BasicPermission + | ResourcePermission<'catalog-entity'> +)[]; + +// Warning: (ae-missing-release-tag) "azureDevOpsPipelineReadPermission" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const azureDevOpsPipelineReadPermission: ResourcePermission<'catalog-entity'>; + +// Warning: (ae-missing-release-tag) "azureDevOpsPullRequestDashboardReadPermission" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const azureDevOpsPullRequestDashboardReadPermission: BasicPermission; + +// Warning: (ae-missing-release-tag) "azureDevOpsPullRequestReadPermission" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const azureDevOpsPullRequestReadPermission: ResourcePermission<'catalog-entity'>; + +// Warning: (ae-missing-release-tag) "azureDevOpsReadmeReadPermission" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const azureDevOpsReadmeReadPermission: ResourcePermission<'catalog-entity'>; + // @public (undocumented) export enum BuildResult { Canceled = 32, @@ -226,6 +262,8 @@ export interface Readme { // @public (undocumented) export interface ReadmeConfig { + // (undocumented) + entityRef: string; // (undocumented) host?: string; // (undocumented) diff --git a/plugins/azure-devops/api-report.md b/plugins/azure-devops/api-report.md index e4e2d4306f..e76e172d9b 100644 --- a/plugins/azure-devops/api-report.md +++ b/plugins/azure-devops/api-report.md @@ -69,6 +69,7 @@ export interface AzureDevOpsApi { // (undocumented) getBuildRuns( projectName: string, + entityRef: string, repoName?: string, definitionName?: string, host?: string, @@ -85,6 +86,7 @@ export interface AzureDevOpsApi { getGitTags( projectName: string, repoName: string, + entityRef: string, host?: string, org?: string, ): Promise<{ @@ -94,6 +96,7 @@ export interface AzureDevOpsApi { getPullRequests( projectName: string, repoName: string, + entityRef: string, host?: string, org?: string, options?: PullRequestOptions, @@ -127,6 +130,7 @@ export class AzureDevOpsClient implements AzureDevOpsApi { // (undocumented) getBuildRuns( projectName: string, + entityRef: string, repoName?: string, definitionName?: string, host?: string, @@ -143,6 +147,7 @@ export class AzureDevOpsClient implements AzureDevOpsApi { getGitTags( projectName: string, repoName: string, + entityRef: string, host?: string, org?: string, ): Promise<{ @@ -152,6 +157,7 @@ export class AzureDevOpsClient implements AzureDevOpsApi { getPullRequests( projectName: string, repoName: string, + entityRef: string, host?: string, org?: string, options?: PullRequestOptions,