Skip to content
Clone

refactor: read default branch from KenShell in pulls

repos no longer stores the default branch, so pull request creation and
post-merge cleanup ask KenShell for it instead of reading a local column.
Fall back to an empty name when the lookup fails, which keeps the branch
comparison conservative.
ZhenYi committed
parent 23b64ff commit b71a6f6 Browse files

3 files changed

+15 −6

File tree 3
Modified lib/service/pulls/src/services/approvals.rs View lib/service/pulls/src/services/approvals.rs
@@ -118,7 +118,7 @@
118118 ) -> Result<MergeGateDto, PullError> {
119119 let policy = self
120120 .git
121 .merge_requirements(ctx.model.id, &pull.base_branch, caller)
121 .merge_requirements(ctx, &pull.base_branch, caller)
122122 .await?;
123123 let outdated = summary.commits_behind > 0;
124124 let Some(policy) = policy else {
Modified lib/service/pulls/src/services/merge.rs View lib/service/pulls/src/services/merge.rs
@@ -143,8 +143,14 @@
143143 .apply_merge_outcome(&current, caller, result.new_sha.clone(), squash_sha, method)
144144 .await?;
145145
146 let default_branch = self
147 .git
148 .baby(&ctx)
149 .get_default_branch()
150 .await
151 .unwrap_or_default();
146152 if cmd.delete_branch_after_merge.unwrap_or(false)
147 && merged.head_branch != ctx.model.default_branch
153 && merged.head_branch != default_branch
148154 && let Err(error) = self
149155 .git
150156 .delete_branch(&ctx, merged.head_branch.clone(), false)
Modified lib/service/pulls/src/services/pulls.rs View lib/service/pulls/src/services/pulls.rs
@@ -314,10 +314,13 @@
314314 }
315315 self.actors.allow_pull(caller).await?;
316316
317 let base_branch = cmd
318 .base_branch
319 .clone()
320 .unwrap_or_else(|| ctx.model.default_branch.clone());
317 let fallback_base = self
318 .git
319 .baby(&ctx)
320 .get_default_branch()
321 .await
322 .unwrap_or_default();
323 let base_branch = cmd.base_branch.clone().unwrap_or(fallback_base);
321324 if base_branch == cmd.head_branch {
322325 return Err(PullError::BadRequest(
323326 "head and base branch must differ".to_string(),