From 458d16869c028d060be9a009616917fdd53082cb Mon Sep 17 00:00:00 2001 From: Peiman Jafari Date: Wed, 2 Mar 2022 20:44:58 -0800 Subject: [PATCH 1/4] scaffolder-backend: Allow more options in publish:github action Signed-off-by: Peiman Jafari --- .changeset/twenty-fireants-turn.md | 5 +++ .../actions/builtin/publish/github.test.ts | 16 +++++++++ .../actions/builtin/publish/github.ts | 36 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 .changeset/twenty-fireants-turn.md diff --git a/.changeset/twenty-fireants-turn.md b/.changeset/twenty-fireants-turn.md new file mode 100644 index 0000000000..fd9dc17530 --- /dev/null +++ b/.changeset/twenty-fireants-turn.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Allow passing more repo configuration for `publish:github` action diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts index 1e58635bbe..ec564e93dc 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts @@ -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, }); }); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts index 926a63915a..32969e1be3 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts @@ -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; From 751418ff8a81f4454934f01b13daa962abe22e33 Mon Sep 17 00:00:00 2001 From: Peiman Jafari Date: Thu, 3 Mar 2022 07:42:27 -0800 Subject: [PATCH 2/4] update mockContext Signed-off-by: Peiman Jafari --- .../src/scaffolder/actions/builtin/publish/github.test.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts index ec564e93dc..e997c30a32 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts @@ -54,6 +54,10 @@ describe('publish:github', () => { description: 'description', repoVisibility: 'private' as const, access: 'owner/blam', + deleteBranchOnMerge: false, + allowMergeCommit: true, + allowSquashMerge: true, + allowRebaseMerge: true, }, workspacePath: 'lol', logger: getVoidLogger(), From c108a04dd116a016147ff7a0733cf03682b81d96 Mon Sep 17 00:00:00 2001 From: Peiman Jafari Date: Thu, 3 Mar 2022 08:22:02 -0800 Subject: [PATCH 3/4] update api-report Signed-off-by: Peiman Jafari --- plugins/scaffolder-backend/api-report.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 3bc03c4840..3328a11343 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -233,6 +233,10 @@ export function createPublishGithubAction(options: { description?: string | undefined; access?: string | undefined; defaultBranch?: string | undefined; + deleteBranchOnMerge: boolean; + allowRebaseMerge: boolean; + allowSquashMerge: boolean; + allowMergeCommit: boolean; sourcePath?: string | undefined; requireCodeOwnerReviews?: boolean | undefined; repoVisibility?: 'internal' | 'private' | 'public' | undefined; From 7b058b37db2db6e680e696880de2bfc2424ffb56 Mon Sep 17 00:00:00 2001 From: Peiman Jafari Date: Thu, 3 Mar 2022 10:16:43 -0800 Subject: [PATCH 4/4] make new inputs optional Signed-off-by: Peiman Jafari --- plugins/scaffolder-backend/api-report.md | 8 ++++---- .../src/scaffolder/actions/builtin/publish/github.test.ts | 4 ---- .../src/scaffolder/actions/builtin/publish/github.ts | 8 ++++---- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 3328a11343..b18e199f40 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -233,10 +233,10 @@ export function createPublishGithubAction(options: { description?: string | undefined; access?: string | undefined; defaultBranch?: string | undefined; - deleteBranchOnMerge: boolean; - allowRebaseMerge: boolean; - allowSquashMerge: boolean; - allowMergeCommit: boolean; + deleteBranchOnMerge?: boolean | undefined; + allowRebaseMerge?: boolean | undefined; + allowSquashMerge?: boolean | undefined; + allowMergeCommit?: boolean | undefined; sourcePath?: string | undefined; requireCodeOwnerReviews?: boolean | undefined; repoVisibility?: 'internal' | 'private' | 'public' | undefined; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts index e997c30a32..ec564e93dc 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts @@ -54,10 +54,6 @@ describe('publish:github', () => { description: 'description', repoVisibility: 'private' as const, access: 'owner/blam', - deleteBranchOnMerge: false, - allowMergeCommit: true, - allowSquashMerge: true, - allowRebaseMerge: true, }, workspacePath: 'lol', logger: getVoidLogger(), diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts index 32969e1be3..7f1e7a1c93 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts @@ -46,10 +46,10 @@ export function createPublishGithubAction(options: { description?: string; access?: string; defaultBranch?: string; - deleteBranchOnMerge: boolean; - allowRebaseMerge: boolean; - allowSquashMerge: boolean; - allowMergeCommit: boolean; + deleteBranchOnMerge?: boolean; + allowRebaseMerge?: boolean; + allowSquashMerge?: boolean; + allowMergeCommit?: boolean; sourcePath?: string; requireCodeOwnerReviews?: boolean; repoVisibility?: 'private' | 'internal' | 'public';