Skip to content

Commit b7af30b

Browse files
committed
feat: add configurable base branch for Version PRs
- Add version-pr-base input to allow targeting non-default branches - Falls back to repository default branch if not specified - Useful for monorepos or projects using develop/next branches Fixes: Version PR always targeted default branch with no override
1 parent 2ac5d4c commit b7af30b

7 files changed

Lines changed: 14 additions & 4 deletions

File tree

action.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ inputs:
3232
description: 'Branch name for Version Contracts PR'
3333
required: false
3434
default: 'contractual/version-contracts'
35+
version-pr-base:
36+
description: 'Base branch for Version Contracts PR (defaults to repository default branch)'
37+
required: false
3538
pre-release-tag:
3639
description: 'Pre-release tag (e.g., "alpha", "beta", "rc") - creates versions like 2.0.0-beta.0'
3740
required: false

dist/index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130424,7 +130424,7 @@ function hasStagedChanges() {
130424130424
__name(hasStagedChanges, "hasStagedChanges");
130425130425
async function createOrUpdateVersionPR(octokit, context3, options) {
130426130426
const { owner, repo } = context3.repo;
130427-
const baseBranch = getDefaultBranch(context3);
130427+
const baseBranch = options.baseBranch || getDefaultBranch(context3);
130428130428
core3.debug(`Base branch: ${baseBranch}, Version branch: ${options.branch}`);
130429130429
await ensureBranchExists(octokit, owner, repo, options.branch, baseBranch);
130430130430
git2(`fetch origin ${options.branch}`);
@@ -131525,7 +131525,8 @@ async function handleVersioning(octokit, context3, config, changesets, inputs) {
131525131525
const prUrl = await createOrUpdateVersionPR(octokit, context3, {
131526131526
branch: inputs.versionPrBranch,
131527131527
title: inputs.versionPrTitle,
131528-
body: prBody
131528+
body: prBody,
131529+
baseBranch: inputs.versionPrBase
131529131530
});
131530131531
core5.setOutput("version-pr-url", prUrl);
131531131532
core5.info(`Version Contracts PR: ${prUrl}`);
@@ -131703,6 +131704,7 @@ function getInputs() {
131703131704
autoChangeset: core6.getInput("auto-changeset") === "true",
131704131705
versionPrTitle: core6.getInput("version-pr-title") || "Version Contracts",
131705131706
versionPrBranch: core6.getInput("version-pr-branch") || "contractual/version-contracts",
131707+
versionPrBase: core6.getInput("version-pr-base") || void 0,
131706131708
preReleaseTag: core6.getInput("pre-release-tag") || void 0,
131707131709
createReleases: core6.getInput("create-releases") !== "false",
131708131710
tagPrefix: tagPrefixInput,

dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/github/pull-requests.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export async function createOrUpdateVersionPR(
4646
options: VersionPROptions
4747
): Promise<string> {
4848
const { owner, repo } = context.repo;
49-
const baseBranch = getDefaultBranch(context);
49+
const baseBranch = options.baseBranch || getDefaultBranch(context);
5050

5151
core.debug(`Base branch: ${baseBranch}, Version branch: ${options.branch}`);
5252

src/main.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ function getInputs(): ActionInputs {
3232
autoChangeset: core.getInput('auto-changeset') === 'true',
3333
versionPrTitle: core.getInput('version-pr-title') || 'Version Contracts',
3434
versionPrBranch: core.getInput('version-pr-branch') || 'contractual/version-contracts',
35+
versionPrBase: core.getInput('version-pr-base') || undefined,
3536
preReleaseTag: core.getInput('pre-release-tag') || undefined,
3637
createReleases: core.getInput('create-releases') !== 'false',
3738
tagPrefix: tagPrefixInput as TagPrefix,

src/modes/release.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ async function handleVersioning(
166166
branch: inputs.versionPrBranch,
167167
title: inputs.versionPrTitle,
168168
body: prBody,
169+
baseBranch: inputs.versionPrBase,
169170
});
170171

171172
core.setOutput('version-pr-url', prUrl);

src/types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ export interface VersionPROptions {
7474
title: string;
7575
/** PR body markdown */
7676
body: string;
77+
/** Base branch to target (optional, defaults to repository default branch) */
78+
baseBranch?: string;
7779
}
7880

7981
/**
@@ -102,6 +104,7 @@ export interface ActionInputs {
102104
autoChangeset: boolean;
103105
versionPrTitle: string;
104106
versionPrBranch: string;
107+
versionPrBase?: string;
105108
preReleaseTag?: string;
106109
createReleases: boolean;
107110
tagPrefix: TagPrefix;

0 commit comments

Comments
 (0)