scaffolder-backend: Allow more options in publish:github action

Signed-off-by: Peiman Jafari <pjafari@skillz.com>
This commit is contained in:
Peiman Jafari
2022-03-02 20:44:58 -08:00
parent 80d2674a31
commit 458d16869c
3 changed files with 57 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Allow passing more repo configuration for `publish:github` action
@@ -88,6 +88,10 @@ describe('publish:github', () => {
name: 'repo',
org: 'owner',
private: true,
delete_branch_on_merge: false,
allow_squash_merge: true,
allow_merge_commit: true,
allow_rebase_merge: true,
visibility: 'private',
});
@@ -103,6 +107,10 @@ describe('publish:github', () => {
name: 'repo',
org: 'owner',
private: false,
delete_branch_on_merge: false,
allow_squash_merge: true,
allow_merge_commit: true,
allow_rebase_merge: true,
visibility: 'public',
});
});
@@ -123,6 +131,10 @@ describe('publish:github', () => {
description: 'description',
name: 'repo',
private: true,
delete_branch_on_merge: false,
allow_squash_merge: true,
allow_merge_commit: true,
allow_rebase_merge: true,
});
await action.handler({
@@ -138,6 +150,10 @@ describe('publish:github', () => {
description: 'description',
name: 'repo',
private: false,
delete_branch_on_merge: false,
allow_squash_merge: true,
allow_merge_commit: true,
allow_rebase_merge: true,
});
});
@@ -46,6 +46,10 @@ export function createPublishGithubAction(options: {
description?: string;
access?: string;
defaultBranch?: string;
deleteBranchOnMerge: boolean;
allowRebaseMerge: boolean;
allowSquashMerge: boolean;
allowMergeCommit: boolean;
sourcePath?: string;
requireCodeOwnerReviews?: boolean;
repoVisibility?: 'private' | 'internal' | 'public';
@@ -94,6 +98,26 @@ export function createPublishGithubAction(options: {
type: 'string',
description: `Sets the default branch on the repository. The default value is 'master'`,
},
deleteBranchOnMerge: {
title: 'Delete Branch On Merge',
type: 'boolean',
description: `Delete the branch after merging the PR. The default value is 'false'`,
},
allowMergeCommit: {
title: 'Allow Merge Commits',
type: 'boolean',
description: `Allow merge commits. The default value is 'true'`,
},
allowSquashMerge: {
title: 'Allow Squash Merges',
type: 'boolean',
description: `Allow squash merges. The default value is 'true'`,
},
allowRebaseMerge: {
title: 'Allow Rebase Merges',
type: 'boolean',
description: `Allow rebase merges. The default value is 'true'`,
},
sourcePath: {
title: 'Source Path',
description:
@@ -156,6 +180,10 @@ export function createPublishGithubAction(options: {
requireCodeOwnerReviews = false,
repoVisibility = 'private',
defaultBranch = 'master',
deleteBranchOnMerge = false,
allowMergeCommit = true,
allowSquashMerge = true,
allowRebaseMerge = true,
collaborators,
topics,
token: providedToken,
@@ -188,11 +216,19 @@ export function createPublishGithubAction(options: {
private: repoVisibility === 'private',
visibility: repoVisibility,
description: description,
delete_branch_on_merge: deleteBranchOnMerge,
allow_merge_commit: allowMergeCommit,
allow_squash_merge: allowSquashMerge,
allow_rebase_merge: allowRebaseMerge,
})
: client.rest.repos.createForAuthenticatedUser({
name: repo,
private: repoVisibility === 'private',
description: description,
delete_branch_on_merge: deleteBranchOnMerge,
allow_merge_commit: allowMergeCommit,
allow_squash_merge: allowSquashMerge,
allow_rebase_merge: allowRebaseMerge,
});
const { data: newRepo } = await repoCreationPromise;