chore: migrating server action
Signed-off-by: benjdlambert <ben@blam.sh>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch
|
||||
---
|
||||
|
||||
Migrate the actions to the new format
|
||||
@@ -48,7 +48,8 @@
|
||||
"@backstage/integration": "workspace:^",
|
||||
"@backstage/plugin-scaffolder-node": "workspace:^",
|
||||
"fs-extra": "^11.2.0",
|
||||
"yaml": "^2.0.0"
|
||||
"yaml": "^2.0.0",
|
||||
"zod": "^3.22.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/backend-test-utils": "workspace:^",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
```ts
|
||||
import { BackendFeature } from '@backstage/backend-plugin-api';
|
||||
import { Config } from '@backstage/config';
|
||||
import { JsonObject } from '@backstage/types';
|
||||
import { ScmIntegrationRegistry } from '@backstage/integration';
|
||||
import { TemplateAction } from '@backstage/plugin-scaffolder-node';
|
||||
|
||||
@@ -20,19 +19,23 @@ export function createPublishBitbucketServerAction(options: {
|
||||
}): TemplateAction<
|
||||
{
|
||||
repoUrl: string;
|
||||
description?: string;
|
||||
defaultBranch?: string;
|
||||
repoVisibility?: 'private' | 'public';
|
||||
sourcePath?: string;
|
||||
enableLFS?: boolean;
|
||||
token?: string;
|
||||
gitCommitMessage?: string;
|
||||
gitAuthorName?: string;
|
||||
gitAuthorEmail?: string;
|
||||
signCommit?: boolean;
|
||||
description?: string | undefined;
|
||||
repoVisibility?: 'private' | 'public' | undefined;
|
||||
defaultBranch?: string | undefined;
|
||||
sourcePath?: string | undefined;
|
||||
enableLFS?: boolean | undefined;
|
||||
token?: string | undefined;
|
||||
gitCommitMessage?: string | undefined;
|
||||
gitAuthorName?: string | undefined;
|
||||
gitAuthorEmail?: string | undefined;
|
||||
signCommit?: boolean | undefined;
|
||||
},
|
||||
JsonObject,
|
||||
'v1'
|
||||
{
|
||||
remoteUrl?: string | undefined;
|
||||
repoContentsUrl?: string | undefined;
|
||||
commitHash?: string | undefined;
|
||||
},
|
||||
'v2'
|
||||
>;
|
||||
|
||||
// @public
|
||||
@@ -43,15 +46,17 @@ export function createPublishBitbucketServerPullRequestAction(options: {
|
||||
{
|
||||
repoUrl: string;
|
||||
title: string;
|
||||
description?: string;
|
||||
targetBranch?: string;
|
||||
sourceBranch: string;
|
||||
reviewers?: string[];
|
||||
token?: string;
|
||||
gitAuthorName?: string;
|
||||
gitAuthorEmail?: string;
|
||||
description?: string | undefined;
|
||||
targetBranch?: string | undefined;
|
||||
reviewers?: string[] | undefined;
|
||||
token?: string | undefined;
|
||||
gitAuthorName?: string | undefined;
|
||||
gitAuthorEmail?: string | undefined;
|
||||
},
|
||||
JsonObject,
|
||||
'v1'
|
||||
{
|
||||
pullRequestUrl?: string | undefined;
|
||||
},
|
||||
'v2'
|
||||
>;
|
||||
```
|
||||
|
||||
@@ -126,101 +126,99 @@ export function createPublishBitbucketServerAction(options: {
|
||||
}) {
|
||||
const { integrations, config } = options;
|
||||
|
||||
return createTemplateAction<{
|
||||
repoUrl: string;
|
||||
description?: string;
|
||||
defaultBranch?: string;
|
||||
repoVisibility?: 'private' | 'public';
|
||||
sourcePath?: string;
|
||||
enableLFS?: boolean;
|
||||
token?: string;
|
||||
gitCommitMessage?: string;
|
||||
gitAuthorName?: string;
|
||||
gitAuthorEmail?: string;
|
||||
signCommit?: boolean;
|
||||
}>({
|
||||
return createTemplateAction({
|
||||
id: 'publish:bitbucketServer',
|
||||
description:
|
||||
'Initializes a git repository of the content in the workspace, and publishes it to Bitbucket Server.',
|
||||
examples,
|
||||
schema: {
|
||||
input: {
|
||||
type: 'object',
|
||||
required: ['repoUrl'],
|
||||
properties: {
|
||||
repoUrl: {
|
||||
title: 'Repository Location',
|
||||
type: 'string',
|
||||
},
|
||||
description: {
|
||||
title: 'Repository Description',
|
||||
type: 'string',
|
||||
},
|
||||
repoVisibility: {
|
||||
title: 'Repository Visibility',
|
||||
type: 'string',
|
||||
enum: ['private', 'public'],
|
||||
},
|
||||
defaultBranch: {
|
||||
title: 'Default Branch',
|
||||
type: 'string',
|
||||
description: `Sets the default branch on the repository. The default value is 'master'`,
|
||||
},
|
||||
sourcePath: {
|
||||
title: 'Source Path',
|
||||
description:
|
||||
'Path within the workspace that will be used as the repository root. If omitted, the entire workspace will be published as the repository.',
|
||||
type: 'string',
|
||||
},
|
||||
enableLFS: {
|
||||
title: 'Enable LFS?',
|
||||
description: 'Enable LFS for the repository.',
|
||||
type: 'boolean',
|
||||
},
|
||||
token: {
|
||||
title: 'Authentication Token',
|
||||
type: 'string',
|
||||
description:
|
||||
'The token to use for authorization to BitBucket Server',
|
||||
},
|
||||
gitCommitMessage: {
|
||||
title: 'Git Commit Message',
|
||||
type: 'string',
|
||||
description: `Sets the commit message on the repository. The default value is 'initial commit'`,
|
||||
},
|
||||
gitAuthorName: {
|
||||
title: 'Author Name',
|
||||
type: 'string',
|
||||
description: `Sets the author name for the commit. The default value is 'Scaffolder'`,
|
||||
},
|
||||
gitAuthorEmail: {
|
||||
title: 'Author Email',
|
||||
type: 'string',
|
||||
description: `Sets the author email for the commit.`,
|
||||
},
|
||||
signCommit: {
|
||||
title: 'Sign commit',
|
||||
type: 'boolean',
|
||||
description: 'Sign commit with configured PGP private key',
|
||||
},
|
||||
},
|
||||
repoUrl: z =>
|
||||
z.string({
|
||||
description: 'Repository Location',
|
||||
}),
|
||||
description: z =>
|
||||
z
|
||||
.string({
|
||||
description: 'Repository Description',
|
||||
})
|
||||
.optional(),
|
||||
repoVisibility: z =>
|
||||
z
|
||||
.enum(['private', 'public'], {
|
||||
description: 'Repository Visibility',
|
||||
})
|
||||
.optional(),
|
||||
defaultBranch: z =>
|
||||
z
|
||||
.string({
|
||||
description: `Sets the default branch on the repository. The default value is 'master'`,
|
||||
})
|
||||
.optional(),
|
||||
sourcePath: z =>
|
||||
z
|
||||
.string({
|
||||
description:
|
||||
'Path within the workspace that will be used as the repository root. If omitted, the entire workspace will be published as the repository.',
|
||||
})
|
||||
.optional(),
|
||||
enableLFS: z =>
|
||||
z
|
||||
.boolean({
|
||||
description: 'Enable LFS for the repository.',
|
||||
})
|
||||
.optional(),
|
||||
token: z =>
|
||||
z
|
||||
.string({
|
||||
description:
|
||||
'The token to use for authorization to BitBucket Server',
|
||||
})
|
||||
.optional(),
|
||||
gitCommitMessage: z =>
|
||||
z
|
||||
.string({
|
||||
description: `Sets the commit message on the repository. The default value is 'initial commit'`,
|
||||
})
|
||||
.optional(),
|
||||
gitAuthorName: z =>
|
||||
z
|
||||
.string({
|
||||
description: `Sets the author name for the commit. The default value is 'Scaffolder'`,
|
||||
})
|
||||
.optional(),
|
||||
gitAuthorEmail: z =>
|
||||
z
|
||||
.string({
|
||||
description: `Sets the author email for the commit.`,
|
||||
})
|
||||
.optional(),
|
||||
signCommit: z =>
|
||||
z
|
||||
.boolean({
|
||||
description: 'Sign commit with configured PGP private key',
|
||||
})
|
||||
.optional(),
|
||||
},
|
||||
output: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
remoteUrl: {
|
||||
title: 'A URL to the repository with the provider',
|
||||
type: 'string',
|
||||
},
|
||||
repoContentsUrl: {
|
||||
title: 'A URL to the root of the repository',
|
||||
type: 'string',
|
||||
},
|
||||
commitHash: {
|
||||
title: 'The git commit hash of the initial commit',
|
||||
type: 'string',
|
||||
},
|
||||
},
|
||||
remoteUrl: z =>
|
||||
z
|
||||
.string({
|
||||
description: 'A URL to the repository with the provider',
|
||||
})
|
||||
.optional(),
|
||||
repoContentsUrl: z =>
|
||||
z
|
||||
.string({
|
||||
description: 'A URL to the root of the repository',
|
||||
})
|
||||
.optional(),
|
||||
commitHash: z =>
|
||||
z
|
||||
.string({
|
||||
description: 'The git commit hash of the initial commit',
|
||||
})
|
||||
.optional(),
|
||||
},
|
||||
},
|
||||
async handler(ctx) {
|
||||
|
||||
+55
-69
@@ -253,83 +253,69 @@ export function createPublishBitbucketServerPullRequestAction(options: {
|
||||
}) {
|
||||
const { integrations, config } = options;
|
||||
|
||||
return createTemplateAction<{
|
||||
repoUrl: string;
|
||||
title: string;
|
||||
description?: string;
|
||||
targetBranch?: string;
|
||||
sourceBranch: string;
|
||||
reviewers?: string[];
|
||||
token?: string;
|
||||
gitAuthorName?: string;
|
||||
gitAuthorEmail?: string;
|
||||
}>({
|
||||
return createTemplateAction({
|
||||
id: 'publish:bitbucketServer:pull-request',
|
||||
examples,
|
||||
schema: {
|
||||
input: {
|
||||
type: 'object',
|
||||
required: ['repoUrl', 'title', 'sourceBranch'],
|
||||
properties: {
|
||||
repoUrl: {
|
||||
title: 'Repository Location',
|
||||
type: 'string',
|
||||
},
|
||||
title: {
|
||||
title: 'Pull Request title',
|
||||
type: 'string',
|
||||
repoUrl: z =>
|
||||
z.string({
|
||||
description: 'Repository Location',
|
||||
}),
|
||||
title: z =>
|
||||
z.string({
|
||||
description: 'The title for the pull request',
|
||||
},
|
||||
description: {
|
||||
title: 'Pull Request Description',
|
||||
type: 'string',
|
||||
description: 'The description of the pull request',
|
||||
},
|
||||
targetBranch: {
|
||||
title: 'Target Branch',
|
||||
type: 'string',
|
||||
description: `Branch of repository to apply changes to. The default value is 'master'`,
|
||||
},
|
||||
sourceBranch: {
|
||||
title: 'Source Branch',
|
||||
type: 'string',
|
||||
}),
|
||||
description: z =>
|
||||
z
|
||||
.string({
|
||||
description: 'The description of the pull request',
|
||||
})
|
||||
.optional(),
|
||||
targetBranch: z =>
|
||||
z
|
||||
.string({
|
||||
description: `Branch of repository to apply changes to. The default value is 'master'`,
|
||||
})
|
||||
.optional(),
|
||||
sourceBranch: z =>
|
||||
z.string({
|
||||
description: 'Branch of repository to copy changes from',
|
||||
},
|
||||
reviewers: {
|
||||
title: 'Pull Request Reviewers',
|
||||
type: 'array',
|
||||
items: {
|
||||
type: 'string',
|
||||
},
|
||||
description:
|
||||
'The usernames of reviewers that will be added to the pull request',
|
||||
},
|
||||
token: {
|
||||
title: 'Authorization Token',
|
||||
type: 'string',
|
||||
description:
|
||||
'The token to use for authorization to BitBucket Server',
|
||||
},
|
||||
gitAuthorName: {
|
||||
title: 'Author Name',
|
||||
type: 'string',
|
||||
description: `Sets the author name for the commit. The default value is 'Scaffolder'`,
|
||||
},
|
||||
gitAuthorEmail: {
|
||||
title: 'Author Email',
|
||||
type: 'string',
|
||||
description: `Sets the author email for the commit.`,
|
||||
},
|
||||
},
|
||||
}),
|
||||
reviewers: z =>
|
||||
z
|
||||
.array(z.string(), {
|
||||
description:
|
||||
'The usernames of reviewers that will be added to the pull request',
|
||||
})
|
||||
.optional(),
|
||||
token: z =>
|
||||
z
|
||||
.string({
|
||||
description:
|
||||
'The token to use for authorization to BitBucket Server',
|
||||
})
|
||||
.optional(),
|
||||
gitAuthorName: z =>
|
||||
z
|
||||
.string({
|
||||
description: `Sets the author name for the commit. The default value is 'Scaffolder'`,
|
||||
})
|
||||
.optional(),
|
||||
gitAuthorEmail: z =>
|
||||
z
|
||||
.string({
|
||||
description: `Sets the author email for the commit.`,
|
||||
})
|
||||
.optional(),
|
||||
},
|
||||
output: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
pullRequestUrl: {
|
||||
title: 'A URL to the pull request with the provider',
|
||||
type: 'string',
|
||||
},
|
||||
},
|
||||
pullRequestUrl: z =>
|
||||
z
|
||||
.string({
|
||||
description: 'A URL to the pull request with the provider',
|
||||
})
|
||||
.optional(),
|
||||
},
|
||||
},
|
||||
async handler(ctx) {
|
||||
|
||||
Reference in New Issue
Block a user