@backstage/plugin-scaffolder-backend-module-github 0.8.2-next.0 → 0.8.2-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @backstage/plugin-scaffolder-backend-module-github
2
2
 
3
+ ## 0.8.2-next.1
4
+
5
+ ### Patch Changes
6
+
7
+ - a22cce0: Fixed bug in the `customProperties` type which was preventing it being used to set a list of values against a key (e.g. for multi-select fields)
8
+
3
9
  ## 0.8.2-next.0
4
10
 
5
11
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.cjs.js","sources":["../../src/actions/helpers.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Config } from '@backstage/config';\nimport { assertError, NotFoundError } from '@backstage/errors';\nimport { Octokit } from 'octokit';\n\nimport {\n getRepoSourceDirectory,\n initRepoAndPush,\n} from '@backstage/plugin-scaffolder-node';\n\nimport Sodium from 'libsodium-wrappers';\nimport {\n enableBranchProtectionOnDefaultRepoBranch,\n entityRefToName,\n} from './gitHelpers';\nimport { LoggerService } from '@backstage/backend-plugin-api';\n\nexport async function createGithubRepoWithCollaboratorsAndTopics(\n client: Octokit,\n repo: string,\n owner: string,\n repoVisibility: 'private' | 'internal' | 'public' | undefined,\n description: string | undefined,\n homepage: string | undefined,\n deleteBranchOnMerge: boolean,\n allowMergeCommit: boolean,\n allowSquashMerge: boolean,\n squashMergeCommitTitle: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE' | undefined,\n squashMergeCommitMessage: 'PR_BODY' | 'COMMIT_MESSAGES' | 'BLANK' | undefined,\n allowRebaseMerge: boolean,\n allowAutoMerge: boolean,\n allowUpdateBranch: boolean,\n access: string | undefined,\n collaborators:\n | (\n | {\n user: string;\n access: string;\n }\n | {\n team: string;\n access: string;\n }\n | {\n /** @deprecated This field is deprecated in favor of team */\n username: string;\n access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage';\n }\n )[]\n | undefined,\n hasProjects: boolean | undefined,\n hasWiki: boolean | undefined,\n hasIssues: boolean | undefined,\n topics: string[] | undefined,\n repoVariables: { [key: string]: string } | undefined,\n secrets: { [key: string]: string } | undefined,\n oidcCustomization:\n | {\n useDefault: boolean;\n includeClaimKeys?: string[];\n }\n | undefined,\n customProperties: { [key: string]: string } | undefined,\n subscribe: boolean | undefined,\n logger: LoggerService,\n) {\n // eslint-disable-next-line testing-library/no-await-sync-queries\n const user = await client.rest.users.getByUsername({\n username: owner,\n });\n\n if (access?.startsWith(`${owner}/`)) {\n await validateAccessTeam(client, access);\n }\n\n const repoCreationPromise =\n user.data.type === 'Organization'\n ? client.rest.repos.createInOrg({\n name: repo,\n org: owner,\n private: repoVisibility === 'private',\n // @ts-ignore https://github.com/octokit/types.ts/issues/522\n visibility: repoVisibility,\n description: description,\n delete_branch_on_merge: deleteBranchOnMerge,\n allow_merge_commit: allowMergeCommit,\n allow_squash_merge: allowSquashMerge,\n squash_merge_commit_title: squashMergeCommitTitle,\n squash_merge_commit_message: squashMergeCommitMessage,\n allow_rebase_merge: allowRebaseMerge,\n allow_auto_merge: allowAutoMerge,\n allow_update_branch: allowUpdateBranch,\n homepage: homepage,\n has_projects: hasProjects,\n has_wiki: hasWiki,\n has_issues: hasIssues,\n // Custom properties only available on org repos\n custom_properties: customProperties,\n })\n : client.rest.repos.createForAuthenticatedUser({\n name: repo,\n private: repoVisibility === 'private',\n description: description,\n delete_branch_on_merge: deleteBranchOnMerge,\n allow_merge_commit: allowMergeCommit,\n allow_squash_merge: allowSquashMerge,\n squash_merge_commit_title: squashMergeCommitTitle,\n squash_merge_commit_message: squashMergeCommitMessage,\n allow_rebase_merge: allowRebaseMerge,\n allow_auto_merge: allowAutoMerge,\n allow_update_branch: allowUpdateBranch,\n homepage: homepage,\n has_projects: hasProjects,\n has_wiki: hasWiki,\n has_issues: hasIssues,\n });\n\n let newRepo;\n\n try {\n newRepo = (await repoCreationPromise).data;\n } catch (e) {\n assertError(e);\n if (e.message === 'Resource not accessible by integration') {\n logger.warn(\n `The GitHub app or token provided may not have the required permissions to create the ${user.data.type} repository ${owner}/${repo}.`,\n );\n }\n throw new Error(\n `Failed to create the ${user.data.type} repository ${owner}/${repo}, ${e.message}`,\n );\n }\n\n if (access?.startsWith(`${owner}/`)) {\n const [, team] = access.split('/');\n await client.rest.teams.addOrUpdateRepoPermissionsInOrg({\n org: owner,\n team_slug: team,\n owner,\n repo,\n permission: 'admin',\n });\n // No need to add access if it's the person who owns the personal account\n } else if (access && access !== owner) {\n await client.rest.repos.addCollaborator({\n owner,\n repo,\n username: access,\n permission: 'admin',\n });\n }\n\n if (collaborators) {\n for (const collaborator of collaborators) {\n try {\n if ('user' in collaborator) {\n await client.rest.repos.addCollaborator({\n owner,\n repo,\n username: entityRefToName(collaborator.user),\n permission: collaborator.access,\n });\n } else if ('team' in collaborator) {\n await client.rest.teams.addOrUpdateRepoPermissionsInOrg({\n org: owner,\n team_slug: entityRefToName(collaborator.team),\n owner,\n repo,\n permission: collaborator.access,\n });\n }\n } catch (e) {\n assertError(e);\n const name = extractCollaboratorName(collaborator);\n logger.warn(\n `Skipping ${collaborator.access} access for ${name}, ${e.message}`,\n );\n }\n }\n }\n\n if (topics) {\n try {\n await client.rest.repos.replaceAllTopics({\n owner,\n repo,\n names: topics.map(t => t.toLowerCase()),\n });\n } catch (e) {\n assertError(e);\n logger.warn(`Skipping topics ${topics.join(' ')}, ${e.message}`);\n }\n }\n\n for (const [key, value] of Object.entries(repoVariables ?? {})) {\n await client.rest.actions.createRepoVariable({\n owner,\n repo,\n name: key,\n value: value,\n });\n }\n\n if (secrets) {\n const publicKeyResponse = await client.rest.actions.getRepoPublicKey({\n owner,\n repo,\n });\n\n await Sodium.ready;\n const binaryKey = Sodium.from_base64(\n publicKeyResponse.data.key,\n Sodium.base64_variants.ORIGINAL,\n );\n for (const [key, value] of Object.entries(secrets)) {\n const binarySecret = Sodium.from_string(value);\n const encryptedBinarySecret = Sodium.crypto_box_seal(\n binarySecret,\n binaryKey,\n );\n const encryptedBase64Secret = Sodium.to_base64(\n encryptedBinarySecret,\n Sodium.base64_variants.ORIGINAL,\n );\n\n await client.rest.actions.createOrUpdateRepoSecret({\n owner,\n repo,\n secret_name: key,\n encrypted_value: encryptedBase64Secret,\n key_id: publicKeyResponse.data.key_id,\n });\n }\n }\n\n if (oidcCustomization) {\n await client.request(\n 'PUT /repos/{owner}/{repo}/actions/oidc/customization/sub',\n {\n owner,\n repo,\n use_default: oidcCustomization.useDefault,\n include_claim_keys: oidcCustomization.includeClaimKeys,\n },\n );\n }\n\n if (subscribe) {\n await client.rest.activity.setRepoSubscription({\n subscribed: true,\n ignored: false,\n owner,\n repo,\n });\n }\n\n return newRepo;\n}\n\nexport async function initRepoPushAndProtect(\n remoteUrl: string,\n password: string,\n workspacePath: string,\n sourcePath: string | undefined,\n defaultBranch: string,\n protectDefaultBranch: boolean,\n protectEnforceAdmins: boolean,\n owner: string,\n client: Octokit,\n repo: string,\n requireCodeOwnerReviews: boolean,\n bypassPullRequestAllowances:\n | {\n users?: string[];\n teams?: string[];\n apps?: string[];\n }\n | undefined,\n requiredApprovingReviewCount: number,\n restrictions:\n | {\n users: string[];\n teams: string[];\n apps?: string[];\n }\n | undefined,\n requiredStatusCheckContexts: string[],\n requireBranchesToBeUpToDate: boolean,\n requiredConversationResolution: boolean,\n requireLastPushApproval: boolean,\n config: Config,\n logger: any,\n gitCommitMessage?: string,\n gitAuthorName?: string,\n gitAuthorEmail?: string,\n dismissStaleReviews?: boolean,\n requiredCommitSigning?: boolean,\n requiredLinearHistory?: boolean,\n): Promise<{ commitHash: string }> {\n const gitAuthorInfo = {\n name: gitAuthorName\n ? gitAuthorName\n : config.getOptionalString('scaffolder.defaultAuthor.name'),\n email: gitAuthorEmail\n ? gitAuthorEmail\n : config.getOptionalString('scaffolder.defaultAuthor.email'),\n };\n\n const commitMessage =\n getGitCommitMessage(gitCommitMessage, config) || 'initial commit';\n\n const commitResult = await initRepoAndPush({\n dir: getRepoSourceDirectory(workspacePath, sourcePath),\n remoteUrl,\n defaultBranch,\n auth: {\n username: 'x-access-token',\n password,\n },\n logger,\n commitMessage,\n gitAuthorInfo,\n });\n\n if (protectDefaultBranch) {\n try {\n await enableBranchProtectionOnDefaultRepoBranch({\n owner,\n client,\n repoName: repo,\n logger,\n defaultBranch,\n bypassPullRequestAllowances,\n requiredApprovingReviewCount,\n restrictions,\n requireCodeOwnerReviews,\n requiredStatusCheckContexts,\n requireBranchesToBeUpToDate,\n requiredConversationResolution,\n requireLastPushApproval,\n enforceAdmins: protectEnforceAdmins,\n dismissStaleReviews: dismissStaleReviews,\n requiredCommitSigning: requiredCommitSigning,\n requiredLinearHistory: requiredLinearHistory,\n });\n } catch (e) {\n assertError(e);\n logger.warn(\n `Skipping: default branch protection on '${repo}', ${e.message}`,\n );\n }\n }\n\n return { commitHash: commitResult.commitHash };\n}\n\nfunction extractCollaboratorName(\n collaborator: { user: string } | { team: string } | { username: string },\n) {\n if ('username' in collaborator) return collaborator.username;\n if ('user' in collaborator) return collaborator.user;\n return collaborator.team;\n}\n\nasync function validateAccessTeam(client: Octokit, access: string) {\n const [org, team_slug] = access.split('/');\n try {\n // Below rule disabled because of a 'getByName' check for a different library\n // incorrectly triggers here.\n // eslint-disable-next-line testing-library/no-await-sync-queries\n await client.rest.teams.getByName({\n org,\n team_slug,\n });\n } catch (e) {\n if (e.response.data.message === 'Not Found') {\n const message = `Received 'Not Found' from the API; one of org:\n ${org} or team: ${team_slug} was not found within GitHub.`;\n throw new NotFoundError(message);\n }\n }\n}\n\nexport function getGitCommitMessage(\n gitCommitMessage: string | undefined,\n config: Config,\n): string | undefined {\n return gitCommitMessage\n ? gitCommitMessage\n : config.getOptionalString('scaffolder.defaultCommitMessage');\n}\n"],"names":["assertError","entityRefToName","Sodium","initRepoAndPush","getRepoSourceDirectory","enableBranchProtectionOnDefaultRepoBranch","NotFoundError"],"mappings":";;;;;;;;;;;AAgCsB,eAAA,0CAAA,CACpB,MACA,EAAA,IAAA,EACA,KACA,EAAA,cAAA,EACA,WACA,EAAA,QAAA,EACA,mBACA,EAAA,gBAAA,EACA,gBACA,EAAA,sBAAA,EACA,wBACA,EAAA,gBAAA,EACA,gBACA,iBACA,EAAA,MAAA,EACA,aAiBA,EAAA,WAAA,EACA,OACA,EAAA,SAAA,EACA,MACA,EAAA,aAAA,EACA,OACA,EAAA,iBAAA,EAMA,gBACA,EAAA,SAAA,EACA,MACA,EAAA;AAEA,EAAA,MAAM,IAAO,GAAA,MAAM,MAAO,CAAA,IAAA,CAAK,MAAM,aAAc,CAAA;AAAA,IACjD,QAAU,EAAA;AAAA,GACX,CAAA;AAED,EAAA,IAAI,MAAQ,EAAA,UAAA,CAAW,CAAG,EAAA,KAAK,GAAG,CAAG,EAAA;AACnC,IAAM,MAAA,kBAAA,CAAmB,QAAQ,MAAM,CAAA;AAAA;AAGzC,EAAM,MAAA,mBAAA,GACJ,KAAK,IAAK,CAAA,IAAA,KAAS,iBACf,MAAO,CAAA,IAAA,CAAK,MAAM,WAAY,CAAA;AAAA,IAC5B,IAAM,EAAA,IAAA;AAAA,IACN,GAAK,EAAA,KAAA;AAAA,IACL,SAAS,cAAmB,KAAA,SAAA;AAAA;AAAA,IAE5B,UAAY,EAAA,cAAA;AAAA,IACZ,WAAA;AAAA,IACA,sBAAwB,EAAA,mBAAA;AAAA,IACxB,kBAAoB,EAAA,gBAAA;AAAA,IACpB,kBAAoB,EAAA,gBAAA;AAAA,IACpB,yBAA2B,EAAA,sBAAA;AAAA,IAC3B,2BAA6B,EAAA,wBAAA;AAAA,IAC7B,kBAAoB,EAAA,gBAAA;AAAA,IACpB,gBAAkB,EAAA,cAAA;AAAA,IAClB,mBAAqB,EAAA,iBAAA;AAAA,IACrB,QAAA;AAAA,IACA,YAAc,EAAA,WAAA;AAAA,IACd,QAAU,EAAA,OAAA;AAAA,IACV,UAAY,EAAA,SAAA;AAAA;AAAA,IAEZ,iBAAmB,EAAA;AAAA,GACpB,CAAA,GACD,MAAO,CAAA,IAAA,CAAK,MAAM,0BAA2B,CAAA;AAAA,IAC3C,IAAM,EAAA,IAAA;AAAA,IACN,SAAS,cAAmB,KAAA,SAAA;AAAA,IAC5B,WAAA;AAAA,IACA,sBAAwB,EAAA,mBAAA;AAAA,IACxB,kBAAoB,EAAA,gBAAA;AAAA,IACpB,kBAAoB,EAAA,gBAAA;AAAA,IACpB,yBAA2B,EAAA,sBAAA;AAAA,IAC3B,2BAA6B,EAAA,wBAAA;AAAA,IAC7B,kBAAoB,EAAA,gBAAA;AAAA,IACpB,gBAAkB,EAAA,cAAA;AAAA,IAClB,mBAAqB,EAAA,iBAAA;AAAA,IACrB,QAAA;AAAA,IACA,YAAc,EAAA,WAAA;AAAA,IACd,QAAU,EAAA,OAAA;AAAA,IACV,UAAY,EAAA;AAAA,GACb,CAAA;AAEP,EAAI,IAAA,OAAA;AAEJ,EAAI,IAAA;AACF,IAAA,OAAA,GAAA,CAAW,MAAM,mBAAqB,EAAA,IAAA;AAAA,WAC/B,CAAG,EAAA;AACV,IAAAA,kBAAA,CAAY,CAAC,CAAA;AACb,IAAI,IAAA,CAAA,CAAE,YAAY,wCAA0C,EAAA;AAC1D,MAAO,MAAA,CAAA,IAAA;AAAA,QACL,wFAAwF,IAAK,CAAA,IAAA,CAAK,IAAI,CAAe,YAAA,EAAA,KAAK,IAAI,IAAI,CAAA,CAAA;AAAA,OACpI;AAAA;AAEF,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,qBAAA,EAAwB,IAAK,CAAA,IAAA,CAAK,IAAI,CAAA,YAAA,EAAe,KAAK,CAAI,CAAA,EAAA,IAAI,CAAK,EAAA,EAAA,CAAA,CAAE,OAAO,CAAA;AAAA,KAClF;AAAA;AAGF,EAAA,IAAI,MAAQ,EAAA,UAAA,CAAW,CAAG,EAAA,KAAK,GAAG,CAAG,EAAA;AACnC,IAAA,MAAM,GAAG,IAAI,CAAI,GAAA,MAAA,CAAO,MAAM,GAAG,CAAA;AACjC,IAAM,MAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,+BAAgC,CAAA;AAAA,MACtD,GAAK,EAAA,KAAA;AAAA,MACL,SAAW,EAAA,IAAA;AAAA,MACX,KAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAY,EAAA;AAAA,KACb,CAAA;AAAA,GAEH,MAAA,IAAW,MAAU,IAAA,MAAA,KAAW,KAAO,EAAA;AACrC,IAAM,MAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,eAAgB,CAAA;AAAA,MACtC,KAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAU,EAAA,MAAA;AAAA,MACV,UAAY,EAAA;AAAA,KACb,CAAA;AAAA;AAGH,EAAA,IAAI,aAAe,EAAA;AACjB,IAAA,KAAA,MAAW,gBAAgB,aAAe,EAAA;AACxC,MAAI,IAAA;AACF,QAAA,IAAI,UAAU,YAAc,EAAA;AAC1B,UAAM,MAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,eAAgB,CAAA;AAAA,YACtC,KAAA;AAAA,YACA,IAAA;AAAA,YACA,QAAA,EAAUC,0BAAgB,CAAA,YAAA,CAAa,IAAI,CAAA;AAAA,YAC3C,YAAY,YAAa,CAAA;AAAA,WAC1B,CAAA;AAAA,SACH,MAAA,IAAW,UAAU,YAAc,EAAA;AACjC,UAAM,MAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,+BAAgC,CAAA;AAAA,YACtD,GAAK,EAAA,KAAA;AAAA,YACL,SAAA,EAAWA,0BAAgB,CAAA,YAAA,CAAa,IAAI,CAAA;AAAA,YAC5C,KAAA;AAAA,YACA,IAAA;AAAA,YACA,YAAY,YAAa,CAAA;AAAA,WAC1B,CAAA;AAAA;AACH,eACO,CAAG,EAAA;AACV,QAAAD,kBAAA,CAAY,CAAC,CAAA;AACb,QAAM,MAAA,IAAA,GAAO,wBAAwB,YAAY,CAAA;AACjD,QAAO,MAAA,CAAA,IAAA;AAAA,UACL,YAAY,YAAa,CAAA,MAAM,eAAe,IAAI,CAAA,EAAA,EAAK,EAAE,OAAO,CAAA;AAAA,SAClE;AAAA;AACF;AACF;AAGF,EAAA,IAAI,MAAQ,EAAA;AACV,IAAI,IAAA;AACF,MAAM,MAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,gBAAiB,CAAA;AAAA,QACvC,KAAA;AAAA,QACA,IAAA;AAAA,QACA,OAAO,MAAO,CAAA,GAAA,CAAI,CAAK,CAAA,KAAA,CAAA,CAAE,aAAa;AAAA,OACvC,CAAA;AAAA,aACM,CAAG,EAAA;AACV,MAAAA,kBAAA,CAAY,CAAC,CAAA;AACb,MAAO,MAAA,CAAA,IAAA,CAAK,mBAAmB,MAAO,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,EAAA,EAAK,CAAE,CAAA,OAAO,CAAE,CAAA,CAAA;AAAA;AACjE;AAGF,EAAW,KAAA,MAAA,CAAC,KAAK,KAAK,CAAA,IAAK,OAAO,OAAQ,CAAA,aAAA,IAAiB,EAAE,CAAG,EAAA;AAC9D,IAAM,MAAA,MAAA,CAAO,IAAK,CAAA,OAAA,CAAQ,kBAAmB,CAAA;AAAA,MAC3C,KAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAM,EAAA,GAAA;AAAA,MACN;AAAA,KACD,CAAA;AAAA;AAGH,EAAA,IAAI,OAAS,EAAA;AACX,IAAA,MAAM,iBAAoB,GAAA,MAAM,MAAO,CAAA,IAAA,CAAK,QAAQ,gBAAiB,CAAA;AAAA,MACnE,KAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAME,uBAAO,CAAA,KAAA;AACb,IAAA,MAAM,YAAYA,uBAAO,CAAA,WAAA;AAAA,MACvB,kBAAkB,IAAK,CAAA,GAAA;AAAA,MACvBA,wBAAO,eAAgB,CAAA;AAAA,KACzB;AACA,IAAA,KAAA,MAAW,CAAC,GAAK,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQ,OAAO,CAAG,EAAA;AAClD,MAAM,MAAA,YAAA,GAAeA,uBAAO,CAAA,WAAA,CAAY,KAAK,CAAA;AAC7C,MAAA,MAAM,wBAAwBA,uBAAO,CAAA,eAAA;AAAA,QACnC,YAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,MAAM,wBAAwBA,uBAAO,CAAA,SAAA;AAAA,QACnC,qBAAA;AAAA,QACAA,wBAAO,eAAgB,CAAA;AAAA,OACzB;AAEA,MAAM,MAAA,MAAA,CAAO,IAAK,CAAA,OAAA,CAAQ,wBAAyB,CAAA;AAAA,QACjD,KAAA;AAAA,QACA,IAAA;AAAA,QACA,WAAa,EAAA,GAAA;AAAA,QACb,eAAiB,EAAA,qBAAA;AAAA,QACjB,MAAA,EAAQ,kBAAkB,IAAK,CAAA;AAAA,OAChC,CAAA;AAAA;AACH;AAGF,EAAA,IAAI,iBAAmB,EAAA;AACrB,IAAA,MAAM,MAAO,CAAA,OAAA;AAAA,MACX,0DAAA;AAAA,MACA;AAAA,QACE,KAAA;AAAA,QACA,IAAA;AAAA,QACA,aAAa,iBAAkB,CAAA,UAAA;AAAA,QAC/B,oBAAoB,iBAAkB,CAAA;AAAA;AACxC,KACF;AAAA;AAGF,EAAA,IAAI,SAAW,EAAA;AACb,IAAM,MAAA,MAAA,CAAO,IAAK,CAAA,QAAA,CAAS,mBAAoB,CAAA;AAAA,MAC7C,UAAY,EAAA,IAAA;AAAA,MACZ,OAAS,EAAA,KAAA;AAAA,MACT,KAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA;AAGH,EAAO,OAAA,OAAA;AACT;AAEsB,eAAA,sBAAA,CACpB,SACA,EAAA,QAAA,EACA,aACA,EAAA,UAAA,EACA,aACA,EAAA,oBAAA,EACA,oBACA,EAAA,KAAA,EACA,MACA,EAAA,IAAA,EACA,uBACA,EAAA,2BAAA,EAOA,8BACA,YAOA,EAAA,2BAAA,EACA,2BACA,EAAA,8BAAA,EACA,uBACA,EAAA,MAAA,EACA,MACA,EAAA,gBAAA,EACA,aACA,EAAA,cAAA,EACA,mBACA,EAAA,qBAAA,EACA,qBACiC,EAAA;AACjC,EAAA,MAAM,aAAgB,GAAA;AAAA,IACpB,IAAM,EAAA,aAAA,GACF,aACA,GAAA,MAAA,CAAO,kBAAkB,+BAA+B,CAAA;AAAA,IAC5D,KAAO,EAAA,cAAA,GACH,cACA,GAAA,MAAA,CAAO,kBAAkB,gCAAgC;AAAA,GAC/D;AAEA,EAAA,MAAM,aACJ,GAAA,mBAAA,CAAoB,gBAAkB,EAAA,MAAM,CAAK,IAAA,gBAAA;AAEnD,EAAM,MAAA,YAAA,GAAe,MAAMC,oCAAgB,CAAA;AAAA,IACzC,GAAA,EAAKC,2CAAuB,CAAA,aAAA,EAAe,UAAU,CAAA;AAAA,IACrD,SAAA;AAAA,IACA,aAAA;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,QAAU,EAAA,gBAAA;AAAA,MACV;AAAA,KACF;AAAA,IACA,MAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,IAAI,oBAAsB,EAAA;AACxB,IAAI,IAAA;AACF,MAAA,MAAMC,oDAA0C,CAAA;AAAA,QAC9C,KAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAU,EAAA,IAAA;AAAA,QACV,MAAA;AAAA,QACA,aAAA;AAAA,QACA,2BAAA;AAAA,QACA,4BAAA;AAAA,QACA,YAAA;AAAA,QACA,uBAAA;AAAA,QACA,2BAAA;AAAA,QACA,2BAAA;AAAA,QACA,8BAAA;AAAA,QACA,uBAAA;AAAA,QACA,aAAe,EAAA,oBAAA;AAAA,QACf,mBAAA;AAAA,QACA,qBAAA;AAAA,QACA;AAAA,OACD,CAAA;AAAA,aACM,CAAG,EAAA;AACV,MAAAL,kBAAA,CAAY,CAAC,CAAA;AACb,MAAO,MAAA,CAAA,IAAA;AAAA,QACL,CAA2C,wCAAA,EAAA,IAAI,CAAM,GAAA,EAAA,CAAA,CAAE,OAAO,CAAA;AAAA,OAChE;AAAA;AACF;AAGF,EAAO,OAAA,EAAE,UAAY,EAAA,YAAA,CAAa,UAAW,EAAA;AAC/C;AAEA,SAAS,wBACP,YACA,EAAA;AACA,EAAI,IAAA,UAAA,IAAc,YAAc,EAAA,OAAO,YAAa,CAAA,QAAA;AACpD,EAAI,IAAA,MAAA,IAAU,YAAc,EAAA,OAAO,YAAa,CAAA,IAAA;AAChD,EAAA,OAAO,YAAa,CAAA,IAAA;AACtB;AAEA,eAAe,kBAAA,CAAmB,QAAiB,MAAgB,EAAA;AACjE,EAAA,MAAM,CAAC,GAAK,EAAA,SAAS,CAAI,GAAA,MAAA,CAAO,MAAM,GAAG,CAAA;AACzC,EAAI,IAAA;AAIF,IAAM,MAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,SAAU,CAAA;AAAA,MAChC,GAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,WACM,CAAG,EAAA;AACV,IAAA,IAAI,CAAE,CAAA,QAAA,CAAS,IAAK,CAAA,OAAA,KAAY,WAAa,EAAA;AAC3C,MAAA,MAAM,OAAU,GAAA,CAAA;AAAA,QACZ,EAAA,GAAG,aAAa,SAAS,CAAA,6BAAA,CAAA;AAC7B,MAAM,MAAA,IAAIM,qBAAc,OAAO,CAAA;AAAA;AACjC;AAEJ;AAEgB,SAAA,mBAAA,CACd,kBACA,MACoB,EAAA;AACpB,EAAA,OAAO,gBACH,GAAA,gBAAA,GACA,MAAO,CAAA,iBAAA,CAAkB,iCAAiC,CAAA;AAChE;;;;;;"}
1
+ {"version":3,"file":"helpers.cjs.js","sources":["../../src/actions/helpers.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Config } from '@backstage/config';\nimport { assertError, NotFoundError } from '@backstage/errors';\nimport { Octokit } from 'octokit';\n\nimport {\n getRepoSourceDirectory,\n initRepoAndPush,\n} from '@backstage/plugin-scaffolder-node';\n\nimport Sodium from 'libsodium-wrappers';\nimport {\n enableBranchProtectionOnDefaultRepoBranch,\n entityRefToName,\n} from './gitHelpers';\nimport { LoggerService } from '@backstage/backend-plugin-api';\n\nexport async function createGithubRepoWithCollaboratorsAndTopics(\n client: Octokit,\n repo: string,\n owner: string,\n repoVisibility: 'private' | 'internal' | 'public' | undefined,\n description: string | undefined,\n homepage: string | undefined,\n deleteBranchOnMerge: boolean,\n allowMergeCommit: boolean,\n allowSquashMerge: boolean,\n squashMergeCommitTitle: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE' | undefined,\n squashMergeCommitMessage: 'PR_BODY' | 'COMMIT_MESSAGES' | 'BLANK' | undefined,\n allowRebaseMerge: boolean,\n allowAutoMerge: boolean,\n allowUpdateBranch: boolean,\n access: string | undefined,\n collaborators:\n | (\n | {\n user: string;\n access: string;\n }\n | {\n team: string;\n access: string;\n }\n | {\n /** @deprecated This field is deprecated in favor of team */\n username: string;\n access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage';\n }\n )[]\n | undefined,\n hasProjects: boolean | undefined,\n hasWiki: boolean | undefined,\n hasIssues: boolean | undefined,\n topics: string[] | undefined,\n repoVariables: { [key: string]: string } | undefined,\n secrets: { [key: string]: string } | undefined,\n oidcCustomization:\n | {\n useDefault: boolean;\n includeClaimKeys?: string[];\n }\n | undefined,\n customProperties: { [key: string]: string | string[] } | undefined,\n subscribe: boolean | undefined,\n logger: LoggerService,\n) {\n // eslint-disable-next-line testing-library/no-await-sync-queries\n const user = await client.rest.users.getByUsername({\n username: owner,\n });\n\n if (access?.startsWith(`${owner}/`)) {\n await validateAccessTeam(client, access);\n }\n\n const repoCreationPromise =\n user.data.type === 'Organization'\n ? client.rest.repos.createInOrg({\n name: repo,\n org: owner,\n private: repoVisibility === 'private',\n // @ts-ignore https://github.com/octokit/types.ts/issues/522\n visibility: repoVisibility,\n description: description,\n delete_branch_on_merge: deleteBranchOnMerge,\n allow_merge_commit: allowMergeCommit,\n allow_squash_merge: allowSquashMerge,\n squash_merge_commit_title: squashMergeCommitTitle,\n squash_merge_commit_message: squashMergeCommitMessage,\n allow_rebase_merge: allowRebaseMerge,\n allow_auto_merge: allowAutoMerge,\n allow_update_branch: allowUpdateBranch,\n homepage: homepage,\n has_projects: hasProjects,\n has_wiki: hasWiki,\n has_issues: hasIssues,\n // Custom properties only available on org repos\n custom_properties: customProperties,\n })\n : client.rest.repos.createForAuthenticatedUser({\n name: repo,\n private: repoVisibility === 'private',\n description: description,\n delete_branch_on_merge: deleteBranchOnMerge,\n allow_merge_commit: allowMergeCommit,\n allow_squash_merge: allowSquashMerge,\n squash_merge_commit_title: squashMergeCommitTitle,\n squash_merge_commit_message: squashMergeCommitMessage,\n allow_rebase_merge: allowRebaseMerge,\n allow_auto_merge: allowAutoMerge,\n allow_update_branch: allowUpdateBranch,\n homepage: homepage,\n has_projects: hasProjects,\n has_wiki: hasWiki,\n has_issues: hasIssues,\n });\n\n let newRepo;\n\n try {\n newRepo = (await repoCreationPromise).data;\n } catch (e) {\n assertError(e);\n if (e.message === 'Resource not accessible by integration') {\n logger.warn(\n `The GitHub app or token provided may not have the required permissions to create the ${user.data.type} repository ${owner}/${repo}.`,\n );\n }\n throw new Error(\n `Failed to create the ${user.data.type} repository ${owner}/${repo}, ${e.message}`,\n );\n }\n\n if (access?.startsWith(`${owner}/`)) {\n const [, team] = access.split('/');\n await client.rest.teams.addOrUpdateRepoPermissionsInOrg({\n org: owner,\n team_slug: team,\n owner,\n repo,\n permission: 'admin',\n });\n // No need to add access if it's the person who owns the personal account\n } else if (access && access !== owner) {\n await client.rest.repos.addCollaborator({\n owner,\n repo,\n username: access,\n permission: 'admin',\n });\n }\n\n if (collaborators) {\n for (const collaborator of collaborators) {\n try {\n if ('user' in collaborator) {\n await client.rest.repos.addCollaborator({\n owner,\n repo,\n username: entityRefToName(collaborator.user),\n permission: collaborator.access,\n });\n } else if ('team' in collaborator) {\n await client.rest.teams.addOrUpdateRepoPermissionsInOrg({\n org: owner,\n team_slug: entityRefToName(collaborator.team),\n owner,\n repo,\n permission: collaborator.access,\n });\n }\n } catch (e) {\n assertError(e);\n const name = extractCollaboratorName(collaborator);\n logger.warn(\n `Skipping ${collaborator.access} access for ${name}, ${e.message}`,\n );\n }\n }\n }\n\n if (topics) {\n try {\n await client.rest.repos.replaceAllTopics({\n owner,\n repo,\n names: topics.map(t => t.toLowerCase()),\n });\n } catch (e) {\n assertError(e);\n logger.warn(`Skipping topics ${topics.join(' ')}, ${e.message}`);\n }\n }\n\n for (const [key, value] of Object.entries(repoVariables ?? {})) {\n await client.rest.actions.createRepoVariable({\n owner,\n repo,\n name: key,\n value: value,\n });\n }\n\n if (secrets) {\n const publicKeyResponse = await client.rest.actions.getRepoPublicKey({\n owner,\n repo,\n });\n\n await Sodium.ready;\n const binaryKey = Sodium.from_base64(\n publicKeyResponse.data.key,\n Sodium.base64_variants.ORIGINAL,\n );\n for (const [key, value] of Object.entries(secrets)) {\n const binarySecret = Sodium.from_string(value);\n const encryptedBinarySecret = Sodium.crypto_box_seal(\n binarySecret,\n binaryKey,\n );\n const encryptedBase64Secret = Sodium.to_base64(\n encryptedBinarySecret,\n Sodium.base64_variants.ORIGINAL,\n );\n\n await client.rest.actions.createOrUpdateRepoSecret({\n owner,\n repo,\n secret_name: key,\n encrypted_value: encryptedBase64Secret,\n key_id: publicKeyResponse.data.key_id,\n });\n }\n }\n\n if (oidcCustomization) {\n await client.request(\n 'PUT /repos/{owner}/{repo}/actions/oidc/customization/sub',\n {\n owner,\n repo,\n use_default: oidcCustomization.useDefault,\n include_claim_keys: oidcCustomization.includeClaimKeys,\n },\n );\n }\n\n if (subscribe) {\n await client.rest.activity.setRepoSubscription({\n subscribed: true,\n ignored: false,\n owner,\n repo,\n });\n }\n\n return newRepo;\n}\n\nexport async function initRepoPushAndProtect(\n remoteUrl: string,\n password: string,\n workspacePath: string,\n sourcePath: string | undefined,\n defaultBranch: string,\n protectDefaultBranch: boolean,\n protectEnforceAdmins: boolean,\n owner: string,\n client: Octokit,\n repo: string,\n requireCodeOwnerReviews: boolean,\n bypassPullRequestAllowances:\n | {\n users?: string[];\n teams?: string[];\n apps?: string[];\n }\n | undefined,\n requiredApprovingReviewCount: number,\n restrictions:\n | {\n users: string[];\n teams: string[];\n apps?: string[];\n }\n | undefined,\n requiredStatusCheckContexts: string[],\n requireBranchesToBeUpToDate: boolean,\n requiredConversationResolution: boolean,\n requireLastPushApproval: boolean,\n config: Config,\n logger: any,\n gitCommitMessage?: string,\n gitAuthorName?: string,\n gitAuthorEmail?: string,\n dismissStaleReviews?: boolean,\n requiredCommitSigning?: boolean,\n requiredLinearHistory?: boolean,\n): Promise<{ commitHash: string }> {\n const gitAuthorInfo = {\n name: gitAuthorName\n ? gitAuthorName\n : config.getOptionalString('scaffolder.defaultAuthor.name'),\n email: gitAuthorEmail\n ? gitAuthorEmail\n : config.getOptionalString('scaffolder.defaultAuthor.email'),\n };\n\n const commitMessage =\n getGitCommitMessage(gitCommitMessage, config) || 'initial commit';\n\n const commitResult = await initRepoAndPush({\n dir: getRepoSourceDirectory(workspacePath, sourcePath),\n remoteUrl,\n defaultBranch,\n auth: {\n username: 'x-access-token',\n password,\n },\n logger,\n commitMessage,\n gitAuthorInfo,\n });\n\n if (protectDefaultBranch) {\n try {\n await enableBranchProtectionOnDefaultRepoBranch({\n owner,\n client,\n repoName: repo,\n logger,\n defaultBranch,\n bypassPullRequestAllowances,\n requiredApprovingReviewCount,\n restrictions,\n requireCodeOwnerReviews,\n requiredStatusCheckContexts,\n requireBranchesToBeUpToDate,\n requiredConversationResolution,\n requireLastPushApproval,\n enforceAdmins: protectEnforceAdmins,\n dismissStaleReviews: dismissStaleReviews,\n requiredCommitSigning: requiredCommitSigning,\n requiredLinearHistory: requiredLinearHistory,\n });\n } catch (e) {\n assertError(e);\n logger.warn(\n `Skipping: default branch protection on '${repo}', ${e.message}`,\n );\n }\n }\n\n return { commitHash: commitResult.commitHash };\n}\n\nfunction extractCollaboratorName(\n collaborator: { user: string } | { team: string } | { username: string },\n) {\n if ('username' in collaborator) return collaborator.username;\n if ('user' in collaborator) return collaborator.user;\n return collaborator.team;\n}\n\nasync function validateAccessTeam(client: Octokit, access: string) {\n const [org, team_slug] = access.split('/');\n try {\n // Below rule disabled because of a 'getByName' check for a different library\n // incorrectly triggers here.\n // eslint-disable-next-line testing-library/no-await-sync-queries\n await client.rest.teams.getByName({\n org,\n team_slug,\n });\n } catch (e) {\n if (e.response.data.message === 'Not Found') {\n const message = `Received 'Not Found' from the API; one of org:\n ${org} or team: ${team_slug} was not found within GitHub.`;\n throw new NotFoundError(message);\n }\n }\n}\n\nexport function getGitCommitMessage(\n gitCommitMessage: string | undefined,\n config: Config,\n): string | undefined {\n return gitCommitMessage\n ? gitCommitMessage\n : config.getOptionalString('scaffolder.defaultCommitMessage');\n}\n"],"names":["assertError","entityRefToName","Sodium","initRepoAndPush","getRepoSourceDirectory","enableBranchProtectionOnDefaultRepoBranch","NotFoundError"],"mappings":"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"}
@@ -164,8 +164,8 @@ const oidcCustomization = (z) => z.object(
164
164
  description: `OIDC customization template attached to the repository.`
165
165
  }
166
166
  ).optional();
167
- const customProperties = (z) => z.record(z.string(), {
168
- description: "Custom properties to be added to the repository (note, this only works for organization repositories)"
167
+ const customProperties = (z) => z.record(z.union([z.string(), z.array(z.string())]), {
168
+ description: "Custom properties to be added to the repository (note, this only works for organization repositories). All values must be strings"
169
169
  }).optional();
170
170
  const subscribe = (z) => z.boolean({
171
171
  description: `Subscribe to the repository. The default value is 'false'`
@@ -1 +1 @@
1
- {"version":3,"file":"inputProperties.cjs.js","sources":["../../src/actions/inputProperties.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { z as zod } from 'zod';\n\nconst repoUrl = (z: typeof zod) =>\n z.string({\n description:\n 'Accepts the format `github.com?repo=reponame&owner=owner` where `reponame` is the new repository name and `owner` is an organization or username',\n });\n\nconst description = (z: typeof zod) =>\n z\n .string({\n description: 'Repository Description',\n })\n .optional();\n\nconst homepage = (z: typeof zod) =>\n z\n .string({\n description: 'Repository Homepage',\n })\n .optional();\n\nconst access = (z: typeof zod) =>\n z\n .string({\n description:\n 'Sets an admin collaborator on the repository. Can either be a user reference different from `owner` in `repoUrl` or team reference, eg. `org/team-name`',\n })\n .optional();\n\nconst requireCodeOwnerReviews = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Require an approved review in PR including files with a designated Code Owner',\n })\n .optional();\n\nconst dismissStaleReviews = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'New reviewable commits pushed to a matching branch will dismiss pull request review approvals.',\n })\n .optional();\n\nconst requiredStatusCheckContexts = (z: typeof zod) =>\n z\n .array(z.string(), {\n description:\n 'The list of status checks to require in order to merge into this branch',\n })\n .optional();\n\nconst requireBranchesToBeUpToDate = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Require branches to be up to date before merging. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst requiredConversationResolution = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Requires all conversations on code to be resolved before a pull request can be merged into this branch',\n })\n .optional();\n\nconst requireLastPushApproval = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Whether the most recent push to a PR must be approved by someone other than the person who pushed it. The default value is `false`',\n })\n .default(false)\n .optional();\n\nconst repoVisibility = (z: typeof zod) =>\n z\n .enum(['private', 'public', 'internal'], {\n description: 'Repository Visibility',\n })\n .optional();\n\nconst deleteBranchOnMerge = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Delete the branch after merging the PR. The default value is `false`',\n })\n .default(false)\n .optional();\n\nconst gitAuthorName = (z: typeof zod) =>\n z\n .string({\n description:\n 'Sets the default author name for the commit. The default value is `Scaffolder`',\n })\n .default('Scaffolder')\n .optional();\n\nconst gitAuthorEmail = (z: typeof zod) =>\n z\n .string({\n description: `Sets the default author email for the commit.`,\n })\n .optional();\n\nconst allowMergeCommit = (z: typeof zod) =>\n z\n .boolean({\n description: 'Allow merge commits. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst allowSquashMerge = (z: typeof zod) =>\n z\n .boolean({\n description: 'Allow squash merges. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst allowUpdateBranch = (z: typeof zod) =>\n z\n .boolean({\n description: 'Allow branch to be updated. The default value is `false`',\n })\n .default(false)\n .optional();\n\nconst squashMergeCommitTitle = (z: typeof zod) =>\n z\n .enum(['PR_TITLE', 'COMMIT_OR_PR_TITLE'], {\n description:\n 'Sets the default value for a squash merge commit title. The default value is `COMMIT_OR_PR_TITLE`',\n })\n .default('COMMIT_OR_PR_TITLE')\n .optional();\n\nconst squashMergeCommitMessage = (z: typeof zod) =>\n z\n .enum(['PR_BODY', 'COMMIT_MESSAGES', 'BLANK'], {\n description:\n 'Sets the default value for a squash merge commit message. The default value is `COMMIT_MESSAGES`',\n })\n .default('COMMIT_MESSAGES')\n .optional();\n\nconst allowRebaseMerge = (z: typeof zod) =>\n z\n .boolean({\n description: 'Allow rebase merges. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst allowAutoMerge = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Allow individual PRs to merge automatically when all merge requirements are met. The default value is `false`',\n })\n .default(false)\n .optional();\n\nconst collaborators = (z: typeof zod) =>\n z\n .array(\n z.union([\n z.object({\n access: z.string({\n description: 'The type of access for the user',\n }),\n user: z.string({\n description:\n 'The name of the user that will be added as a collaborator',\n }),\n }),\n z.object({\n access: z.string({\n description: 'The type of access for the team',\n }),\n team: z.string({\n description:\n 'The name of the team that will be added as a collaborator',\n }),\n }),\n ]),\n {\n description: 'Provide additional users or teams with permissions',\n },\n )\n .optional();\n\nconst hasProjects = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Enable projects for the repository. The default value is `true` unless the organization has disabled repository projects',\n })\n .optional();\n\nconst hasWiki = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Enable the wiki for the repository. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst hasIssues = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Enable issues for the repository. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst token = (z: typeof zod) =>\n z\n .string({\n description: 'The token to use for authorization to GitHub',\n })\n .optional();\n\nconst topics = (z: typeof zod) =>\n z\n .array(z.string(), {\n description: 'Adds topics to the repository',\n })\n .optional();\n\nconst defaultBranch = (z: typeof zod) =>\n z\n .string({\n description: `Sets the default branch on the repository. The default value is 'master'`,\n })\n .default('master')\n .optional();\n\nconst protectDefaultBranch = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Protect the default branch after creating the repository. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst protectEnforceAdmins = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Enforce admins to adhere to default branch protection. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst bypassPullRequestAllowances = (z: typeof zod) =>\n z\n .object(\n {\n apps: z.array(z.string()).optional(),\n users: z.array(z.string()).optional(),\n teams: z.array(z.string()).optional(),\n },\n {\n description:\n 'Allow specific users, teams, or apps to bypass pull request requirements.',\n },\n )\n .optional();\n\nconst gitCommitMessage = (z: typeof zod) =>\n z\n .string({\n description:\n 'Sets the commit message on the repository. The default value is `initial commit`',\n })\n .default('initial commit')\n .optional();\n\nconst sourcePath = (z: typeof zod) =>\n z\n .string({\n description:\n 'Path within the workspace that will be used as the repository root. If omitted, the entire workspace will be published as the repository.',\n })\n .optional();\n\nconst requiredApprovingReviewCount = (z: typeof zod) =>\n z\n .number({\n description:\n 'Specify the number of reviewers required to approve pull requests. Use a number between `1` and `6` or `0` to not require reviewers. Defaults to `1`.',\n })\n .optional();\n\nconst restrictions = (z: typeof zod) =>\n z\n .object(\n {\n apps: z.array(z.string()).optional(),\n users: z.array(z.string()),\n teams: z.array(z.string()),\n },\n {\n description:\n 'Restrict who can push to the protected branch. User, app, and team restrictions are only available for organization-owned repositories.',\n },\n )\n .optional();\n\nconst requiredCommitSigning = (z: typeof zod) =>\n z\n .boolean({\n description: `Require commit signing so that you must sign commits on this branch.`,\n })\n .optional();\n\nconst requiredLinearHistory = (z: typeof zod) =>\n z\n .boolean({\n description: `Prevent merge commits from being pushed to matching branches.`,\n })\n .optional();\n\nconst repoVariables = (z: typeof zod) =>\n z\n .record(z.string(), {\n description: 'Variables attached to the repository',\n })\n .optional();\n\nconst secrets = (z: typeof zod) =>\n z\n .record(z.string(), {\n description: 'Secrets attached to the repository',\n })\n .optional();\n\nconst oidcCustomization = (z: typeof zod) =>\n z\n .object(\n {\n useDefault: z\n .boolean({\n description: `Whether to use the default template or not. If true, includeClaimKeys must not be set.`,\n })\n .default(true),\n includeClaimKeys: z\n .array(z.string(), {\n description: `Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.`,\n })\n .optional(),\n },\n {\n description: `OIDC customization template attached to the repository.`,\n },\n )\n .optional();\n\nconst customProperties = (z: typeof zod) =>\n z\n .record(z.string(), {\n description:\n 'Custom properties to be added to the repository (note, this only works for organization repositories)',\n })\n .optional();\n\nconst subscribe = (z: typeof zod) =>\n z\n .boolean({\n description: `Subscribe to the repository. The default value is 'false'`,\n })\n .optional();\n\nconst branch = (z: typeof zod) =>\n z\n .string({\n description: `The branch to protect. Defaults to the repository's default branch`,\n })\n .optional();\n\nexport {\n repoUrl,\n description,\n homepage,\n access,\n requireCodeOwnerReviews,\n dismissStaleReviews,\n requiredStatusCheckContexts,\n requireBranchesToBeUpToDate,\n requiredConversationResolution,\n requireLastPushApproval,\n repoVisibility,\n deleteBranchOnMerge,\n gitAuthorName,\n gitAuthorEmail,\n allowMergeCommit,\n allowSquashMerge,\n allowUpdateBranch,\n squashMergeCommitTitle,\n squashMergeCommitMessage,\n allowRebaseMerge,\n allowAutoMerge,\n collaborators,\n hasProjects,\n hasWiki,\n hasIssues,\n token,\n topics,\n defaultBranch,\n gitCommitMessage,\n sourcePath,\n repoVariables,\n secrets,\n oidcCustomization,\n customProperties,\n subscribe,\n requiredApprovingReviewCount,\n restrictions,\n requiredCommitSigning,\n requiredLinearHistory,\n protectDefaultBranch,\n protectEnforceAdmins,\n bypassPullRequestAllowances,\n branch,\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inputProperties.cjs.js","sources":["../../src/actions/inputProperties.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { z as zod } from 'zod';\n\nconst repoUrl = (z: typeof zod) =>\n z.string({\n description:\n 'Accepts the format `github.com?repo=reponame&owner=owner` where `reponame` is the new repository name and `owner` is an organization or username',\n });\n\nconst description = (z: typeof zod) =>\n z\n .string({\n description: 'Repository Description',\n })\n .optional();\n\nconst homepage = (z: typeof zod) =>\n z\n .string({\n description: 'Repository Homepage',\n })\n .optional();\n\nconst access = (z: typeof zod) =>\n z\n .string({\n description:\n 'Sets an admin collaborator on the repository. Can either be a user reference different from `owner` in `repoUrl` or team reference, eg. `org/team-name`',\n })\n .optional();\n\nconst requireCodeOwnerReviews = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Require an approved review in PR including files with a designated Code Owner',\n })\n .optional();\n\nconst dismissStaleReviews = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'New reviewable commits pushed to a matching branch will dismiss pull request review approvals.',\n })\n .optional();\n\nconst requiredStatusCheckContexts = (z: typeof zod) =>\n z\n .array(z.string(), {\n description:\n 'The list of status checks to require in order to merge into this branch',\n })\n .optional();\n\nconst requireBranchesToBeUpToDate = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Require branches to be up to date before merging. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst requiredConversationResolution = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Requires all conversations on code to be resolved before a pull request can be merged into this branch',\n })\n .optional();\n\nconst requireLastPushApproval = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Whether the most recent push to a PR must be approved by someone other than the person who pushed it. The default value is `false`',\n })\n .default(false)\n .optional();\n\nconst repoVisibility = (z: typeof zod) =>\n z\n .enum(['private', 'public', 'internal'], {\n description: 'Repository Visibility',\n })\n .optional();\n\nconst deleteBranchOnMerge = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Delete the branch after merging the PR. The default value is `false`',\n })\n .default(false)\n .optional();\n\nconst gitAuthorName = (z: typeof zod) =>\n z\n .string({\n description:\n 'Sets the default author name for the commit. The default value is `Scaffolder`',\n })\n .default('Scaffolder')\n .optional();\n\nconst gitAuthorEmail = (z: typeof zod) =>\n z\n .string({\n description: `Sets the default author email for the commit.`,\n })\n .optional();\n\nconst allowMergeCommit = (z: typeof zod) =>\n z\n .boolean({\n description: 'Allow merge commits. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst allowSquashMerge = (z: typeof zod) =>\n z\n .boolean({\n description: 'Allow squash merges. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst allowUpdateBranch = (z: typeof zod) =>\n z\n .boolean({\n description: 'Allow branch to be updated. The default value is `false`',\n })\n .default(false)\n .optional();\n\nconst squashMergeCommitTitle = (z: typeof zod) =>\n z\n .enum(['PR_TITLE', 'COMMIT_OR_PR_TITLE'], {\n description:\n 'Sets the default value for a squash merge commit title. The default value is `COMMIT_OR_PR_TITLE`',\n })\n .default('COMMIT_OR_PR_TITLE')\n .optional();\n\nconst squashMergeCommitMessage = (z: typeof zod) =>\n z\n .enum(['PR_BODY', 'COMMIT_MESSAGES', 'BLANK'], {\n description:\n 'Sets the default value for a squash merge commit message. The default value is `COMMIT_MESSAGES`',\n })\n .default('COMMIT_MESSAGES')\n .optional();\n\nconst allowRebaseMerge = (z: typeof zod) =>\n z\n .boolean({\n description: 'Allow rebase merges. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst allowAutoMerge = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Allow individual PRs to merge automatically when all merge requirements are met. The default value is `false`',\n })\n .default(false)\n .optional();\n\nconst collaborators = (z: typeof zod) =>\n z\n .array(\n z.union([\n z.object({\n access: z.string({\n description: 'The type of access for the user',\n }),\n user: z.string({\n description:\n 'The name of the user that will be added as a collaborator',\n }),\n }),\n z.object({\n access: z.string({\n description: 'The type of access for the team',\n }),\n team: z.string({\n description:\n 'The name of the team that will be added as a collaborator',\n }),\n }),\n ]),\n {\n description: 'Provide additional users or teams with permissions',\n },\n )\n .optional();\n\nconst hasProjects = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Enable projects for the repository. The default value is `true` unless the organization has disabled repository projects',\n })\n .optional();\n\nconst hasWiki = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Enable the wiki for the repository. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst hasIssues = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Enable issues for the repository. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst token = (z: typeof zod) =>\n z\n .string({\n description: 'The token to use for authorization to GitHub',\n })\n .optional();\n\nconst topics = (z: typeof zod) =>\n z\n .array(z.string(), {\n description: 'Adds topics to the repository',\n })\n .optional();\n\nconst defaultBranch = (z: typeof zod) =>\n z\n .string({\n description: `Sets the default branch on the repository. The default value is 'master'`,\n })\n .default('master')\n .optional();\n\nconst protectDefaultBranch = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Protect the default branch after creating the repository. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst protectEnforceAdmins = (z: typeof zod) =>\n z\n .boolean({\n description:\n 'Enforce admins to adhere to default branch protection. The default value is `true`',\n })\n .default(true)\n .optional();\n\nconst bypassPullRequestAllowances = (z: typeof zod) =>\n z\n .object(\n {\n apps: z.array(z.string()).optional(),\n users: z.array(z.string()).optional(),\n teams: z.array(z.string()).optional(),\n },\n {\n description:\n 'Allow specific users, teams, or apps to bypass pull request requirements.',\n },\n )\n .optional();\n\nconst gitCommitMessage = (z: typeof zod) =>\n z\n .string({\n description:\n 'Sets the commit message on the repository. The default value is `initial commit`',\n })\n .default('initial commit')\n .optional();\n\nconst sourcePath = (z: typeof zod) =>\n z\n .string({\n description:\n 'Path within the workspace that will be used as the repository root. If omitted, the entire workspace will be published as the repository.',\n })\n .optional();\n\nconst requiredApprovingReviewCount = (z: typeof zod) =>\n z\n .number({\n description:\n 'Specify the number of reviewers required to approve pull requests. Use a number between `1` and `6` or `0` to not require reviewers. Defaults to `1`.',\n })\n .optional();\n\nconst restrictions = (z: typeof zod) =>\n z\n .object(\n {\n apps: z.array(z.string()).optional(),\n users: z.array(z.string()),\n teams: z.array(z.string()),\n },\n {\n description:\n 'Restrict who can push to the protected branch. User, app, and team restrictions are only available for organization-owned repositories.',\n },\n )\n .optional();\n\nconst requiredCommitSigning = (z: typeof zod) =>\n z\n .boolean({\n description: `Require commit signing so that you must sign commits on this branch.`,\n })\n .optional();\n\nconst requiredLinearHistory = (z: typeof zod) =>\n z\n .boolean({\n description: `Prevent merge commits from being pushed to matching branches.`,\n })\n .optional();\n\nconst repoVariables = (z: typeof zod) =>\n z\n .record(z.string(), {\n description: 'Variables attached to the repository',\n })\n .optional();\n\nconst secrets = (z: typeof zod) =>\n z\n .record(z.string(), {\n description: 'Secrets attached to the repository',\n })\n .optional();\n\nconst oidcCustomization = (z: typeof zod) =>\n z\n .object(\n {\n useDefault: z\n .boolean({\n description: `Whether to use the default template or not. If true, includeClaimKeys must not be set.`,\n })\n .default(true),\n includeClaimKeys: z\n .array(z.string(), {\n description: `Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.`,\n })\n .optional(),\n },\n {\n description: `OIDC customization template attached to the repository.`,\n },\n )\n .optional();\n\nconst customProperties = (z: typeof zod) =>\n z\n .record(z.union([z.string(), z.array(z.string())]), {\n description:\n 'Custom properties to be added to the repository (note, this only works for organization repositories). All values must be strings',\n })\n .optional();\n\nconst subscribe = (z: typeof zod) =>\n z\n .boolean({\n description: `Subscribe to the repository. The default value is 'false'`,\n })\n .optional();\n\nconst branch = (z: typeof zod) =>\n z\n .string({\n description: `The branch to protect. Defaults to the repository's default branch`,\n })\n .optional();\n\nexport {\n repoUrl,\n description,\n homepage,\n access,\n requireCodeOwnerReviews,\n dismissStaleReviews,\n requiredStatusCheckContexts,\n requireBranchesToBeUpToDate,\n requiredConversationResolution,\n requireLastPushApproval,\n repoVisibility,\n deleteBranchOnMerge,\n gitAuthorName,\n gitAuthorEmail,\n allowMergeCommit,\n allowSquashMerge,\n allowUpdateBranch,\n squashMergeCommitTitle,\n squashMergeCommitMessage,\n allowRebaseMerge,\n allowAutoMerge,\n collaborators,\n hasProjects,\n hasWiki,\n hasIssues,\n token,\n topics,\n defaultBranch,\n gitCommitMessage,\n sourcePath,\n repoVariables,\n secrets,\n oidcCustomization,\n customProperties,\n subscribe,\n requiredApprovingReviewCount,\n restrictions,\n requiredCommitSigning,\n requiredLinearHistory,\n protectDefaultBranch,\n protectEnforceAdmins,\n bypassPullRequestAllowances,\n branch,\n};\n"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -97,7 +97,7 @@ declare function createGithubRepoCreateAction(options: {
97
97
  } | undefined;
98
98
  requiredCommitSigning?: boolean | undefined;
99
99
  requiredLinearHistory?: boolean | undefined;
100
- customProperties?: Record<string, string> | undefined;
100
+ customProperties?: Record<string, string | string[]> | undefined;
101
101
  subscribe?: boolean | undefined;
102
102
  }, {
103
103
  remoteUrl: string;
@@ -353,7 +353,7 @@ declare function createPublishGithubAction(options: {
353
353
  } | undefined;
354
354
  requiredCommitSigning?: boolean | undefined;
355
355
  requiredLinearHistory?: boolean | undefined;
356
- customProperties?: Record<string, string> | undefined;
356
+ customProperties?: Record<string, string | string[]> | undefined;
357
357
  subscribe?: boolean | undefined;
358
358
  }, {
359
359
  remoteUrl: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-scaffolder-backend-module-github",
3
- "version": "0.8.2-next.0",
3
+ "version": "0.8.2-next.1",
4
4
  "description": "The github module for @backstage/plugin-scaffolder-backend",
5
5
  "backstage": {
6
6
  "role": "backend-plugin-module",
@@ -67,7 +67,7 @@
67
67
  },
68
68
  "devDependencies": {
69
69
  "@backstage/backend-test-utils": "1.7.1-next.0",
70
- "@backstage/cli": "0.33.2-next.0",
70
+ "@backstage/cli": "0.34.0-next.2",
71
71
  "@backstage/plugin-scaffolder-node-test-utils": "0.3.2-next.0",
72
72
  "@types/libsodium-wrappers": "^0.7.10",
73
73
  "fs-extra": "^11.2.0",