mirror of
https://github.com/anthropics/claude-code-action.git
synced 2026-01-25 16:24:12 +08:00
feat: add base_branch input to specify source branch for new Claude branches
- Add base_branch input parameter to action.yml allowing users to specify which branch to use as source - Update setupBranch function to accept and use the base branch parameter - Defaults to repository default branch if no base branch is specified - Addresses issue #62 for better branch control Co-authored-by: ashwin-ant <ashwin-ant@users.noreply.github.com>
This commit is contained in:
@@ -62,7 +62,8 @@ async function run() {
|
||||
});
|
||||
|
||||
// Step 8: Setup branch
|
||||
const branchInfo = await setupBranch(octokit, githubData, context);
|
||||
const baseBranch = process.env.BASE_BRANCH;
|
||||
const branchInfo = await setupBranch(octokit, githubData, context, baseBranch);
|
||||
|
||||
// Step 9: Update initial comment with branch link (only for issues that created a new branch)
|
||||
if (branchInfo.claudeBranch) {
|
||||
|
||||
@@ -23,6 +23,7 @@ export async function setupBranch(
|
||||
octokits: Octokits,
|
||||
githubData: FetchDataResult,
|
||||
context: ParsedGitHubContext,
|
||||
baseBranch?: string,
|
||||
): Promise<BranchInfo> {
|
||||
const { owner, repo } = context.repository;
|
||||
const entityNumber = context.entityNumber;
|
||||
@@ -34,6 +35,9 @@ export async function setupBranch(
|
||||
repo,
|
||||
});
|
||||
const defaultBranch = repoResponse.data.default_branch;
|
||||
|
||||
// Use the provided base branch or fall back to default branch
|
||||
const sourceBranch = baseBranch || defaultBranch;
|
||||
|
||||
if (isPR) {
|
||||
const prData = githubData.contextData as GitHubPullRequest;
|
||||
@@ -67,7 +71,7 @@ export async function setupBranch(
|
||||
|
||||
// Creating a new branch for either an issue or closed/merged PR
|
||||
const entityType = isPR ? "pr" : "issue";
|
||||
console.log(`Creating new branch for ${entityType} #${entityNumber}...`);
|
||||
console.log(`Creating new branch for ${entityType} #${entityNumber} from source branch: ${sourceBranch}...`);
|
||||
|
||||
const timestamp = new Date()
|
||||
.toISOString()
|
||||
@@ -79,14 +83,14 @@ export async function setupBranch(
|
||||
const newBranch = `claude/${entityType}-${entityNumber}-${timestamp}`;
|
||||
|
||||
try {
|
||||
// Get the SHA of the default branch
|
||||
const defaultBranchRef = await octokits.rest.git.getRef({
|
||||
// Get the SHA of the source branch
|
||||
const sourceBranchRef = await octokits.rest.git.getRef({
|
||||
owner,
|
||||
repo,
|
||||
ref: `heads/${defaultBranch}`,
|
||||
ref: `heads/${sourceBranch}`,
|
||||
});
|
||||
|
||||
const currentSHA = defaultBranchRef.data.object.sha;
|
||||
const currentSHA = sourceBranchRef.data.object.sha;
|
||||
|
||||
console.log(`Current SHA: ${currentSHA}`);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user