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 e56c94a5b0..a3befa0dfe 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts @@ -233,6 +233,7 @@ export function createPublishGithubAction(options: { owner, client, repoName: newRepo.name, + logger: ctx.logger, }); } catch (e) { throw new Error( diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts index 2647284698..d859d97dc3 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/github.ts @@ -109,6 +109,7 @@ export class GithubPublisher implements PublisherBase { owner, client, repoName: name, + logger, }); } catch (e) { throw new Error(`Failed to add branch protection to '${name}', ${e}`); diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/publish/helpers.ts b/plugins/scaffolder-backend/src/scaffolder/stages/publish/helpers.ts index d373189ec6..59d288eedc 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/publish/helpers.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/publish/helpers.ts @@ -73,12 +73,14 @@ type BranchProtectionOptions = { client: Octokit; owner: string; repoName: string; + logger: Logger; }; export const enableBranchProtectionOnDefaultRepoBranch = async ({ repoName, client, owner, + logger, }: BranchProtectionOptions): Promise => { const tryOnce = () => { return client.repos.updateBranchProtection({ @@ -105,6 +107,17 @@ export const enableBranchProtectionOnDefaultRepoBranch = async ({ try { await tryOnce(); } catch (e) { + if ( + e.message.includes( + 'Upgrade to GitHub Pro or make this repository public to enable this feature', + ) + ) { + logger.warn( + 'Branch protection was not enabled as it requires GitHub Pro for private repositories', + ); + return; + } + if (!e.message.includes('Branch not found')) { throw e; }