From 82ca951c005af9aba030f709e8710535cf977d81 Mon Sep 17 00:00:00 2001 From: Phred Lane Date: Fri, 23 Jan 2026 09:44:07 -0600 Subject: [PATCH] refactor: updated GitHub repo creation to make differences clear (#32052) * refactor: updated repo creation to make differences clear Signed-off-by: Phred * added changeset Signed-off-by: Phred * revertrted variable cleanup based on review comments Signed-off-by: Phred * cleaned up types Signed-off-by: Phred --------- Signed-off-by: Phred --- .changeset/green-bags-shave.md | 5 ++ .../{helper.test.ts => helpers.test.ts} | 0 .../src/actions/helpers.ts | 71 ++++++++----------- 3 files changed, 33 insertions(+), 43 deletions(-) create mode 100644 .changeset/green-bags-shave.md rename plugins/scaffolder-backend-module-github/src/actions/{helper.test.ts => helpers.test.ts} (100%) diff --git a/.changeset/green-bags-shave.md b/.changeset/green-bags-shave.md new file mode 100644 index 0000000000..17211b78f0 --- /dev/null +++ b/.changeset/green-bags-shave.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-github': patch +--- + +cleaned up repo creation to make the unique portions explicit diff --git a/plugins/scaffolder-backend-module-github/src/actions/helper.test.ts b/plugins/scaffolder-backend-module-github/src/actions/helpers.test.ts similarity index 100% rename from plugins/scaffolder-backend-module-github/src/actions/helper.test.ts rename to plugins/scaffolder-backend-module-github/src/actions/helpers.test.ts diff --git a/plugins/scaffolder-backend-module-github/src/actions/helpers.ts b/plugins/scaffolder-backend-module-github/src/actions/helpers.ts index 58db784c35..6f73e6a770 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/helpers.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/helpers.ts @@ -81,7 +81,6 @@ export async function createGithubRepoWithCollaboratorsAndTopics( autoInit?: boolean | undefined, workflowAccess?: 'none' | 'organization' | 'user', ) { - // eslint-disable-next-line testing-library/no-await-sync-queries const user = await client.rest.users.getByUsername({ username: owner, }); @@ -90,49 +89,35 @@ export async function createGithubRepoWithCollaboratorsAndTopics( await validateAccessTeam(client, access); } + const baseRepoParams = { + allow_auto_merge: allowAutoMerge, + allow_merge_commit: allowMergeCommit, + allow_rebase_merge: allowRebaseMerge, + allow_squash_merge: allowSquashMerge, + allow_update_branch: allowUpdateBranch, + auto_init: autoInit, + delete_branch_on_merge: deleteBranchOnMerge, + description, + has_issues: hasIssues, + has_projects: hasProjects, + has_wiki: hasWiki, + homepage, + name: repo, + private: repoVisibility === 'private', + squash_merge_commit_message: squashMergeCommitMessage, + squash_merge_commit_title: squashMergeCommitTitle, + }; const repoCreationPromise = user.data.type === 'Organization' ? client.rest.repos.createInOrg({ - name: repo, - org: owner, - private: repoVisibility === 'private', - // @ts-ignore https://github.com/octokit/types.ts/issues/522 - visibility: repoVisibility, - description: description, - delete_branch_on_merge: deleteBranchOnMerge, - allow_merge_commit: allowMergeCommit, - allow_squash_merge: allowSquashMerge, - squash_merge_commit_title: squashMergeCommitTitle, - squash_merge_commit_message: squashMergeCommitMessage, - allow_rebase_merge: allowRebaseMerge, - allow_auto_merge: allowAutoMerge, - allow_update_branch: allowUpdateBranch, - homepage: homepage, - has_projects: hasProjects, - has_wiki: hasWiki, - has_issues: hasIssues, - auto_init: autoInit, + ...baseRepoParams, // Custom properties only available on org repos custom_properties: customProperties, + org: owner, + // @ts-ignore https://github.com/octokit/types.ts/issues/522 + visibility: repoVisibility, }) - : client.rest.repos.createForAuthenticatedUser({ - name: repo, - private: repoVisibility === 'private', - description: description, - delete_branch_on_merge: deleteBranchOnMerge, - allow_merge_commit: allowMergeCommit, - allow_squash_merge: allowSquashMerge, - squash_merge_commit_title: squashMergeCommitTitle, - squash_merge_commit_message: squashMergeCommitMessage, - allow_rebase_merge: allowRebaseMerge, - allow_auto_merge: allowAutoMerge, - allow_update_branch: allowUpdateBranch, - homepage: homepage, - has_projects: hasProjects, - has_wiki: hasWiki, - has_issues: hasIssues, - auto_init: autoInit, - }); + : client.rest.repos.createForAuthenticatedUser(baseRepoParams); let newRepo; @@ -291,7 +276,7 @@ export async function initRepoPushAndProtect( sourcePath: string | undefined, defaultBranch: string, protectDefaultBranch: boolean, - protectEnforceAdmins: boolean, + enforceAdmins: boolean, owner: string, client: Octokit, repo: string, @@ -365,10 +350,10 @@ export async function initRepoPushAndProtect( requireBranchesToBeUpToDate, requiredConversationResolution, requireLastPushApproval, - enforceAdmins: protectEnforceAdmins, - dismissStaleReviews: dismissStaleReviews, - requiredCommitSigning: requiredCommitSigning, - requiredLinearHistory: requiredLinearHistory, + enforceAdmins, + dismissStaleReviews, + requiredCommitSigning, + requiredLinearHistory, }); } catch (e) { assertError(e);