Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/bin/choir/uds_server.mbt
Original file line number Diff line number Diff line change
Expand Up @@ -3604,6 +3604,10 @@ async test "heartbeat tick loop triggers automerge sweep path via process_poller
}
let capture = async fn(cmd : @workspace.Command) -> (Int, String) {
@async.sleep(0)
if cmd.program == "git" &&
cmd.args == ["symbolic-ref", "--short", "refs/remotes/origin/HEAD"] {
return (0, "origin/main\n")
}
let repo_view_json =
#|{"owner":{"login":"brickfrog"},"name":"choir"}
if (
Expand Down
7 changes: 6 additions & 1 deletion src/server/handler_automerge.mbt
Original file line number Diff line number Diff line change
Expand Up @@ -396,10 +396,14 @@ pub async fn maybe_trigger_automerge_for_pending_event(
)
None => []
}
let default_branch = @tools.detect_default_branch_with_capture(
let default_branch_result = @tools.detect_default_branch_result_with_capture(
state.config.project_dir,
capture,
)
let default_branch = match default_branch_result {
Ok(branch) => branch
Err(_) => "main"
}
let audit_receipt_state = @tools.audit_receipt_advisory_state_for_tracked_pr(
state.config.project_dir,
tracked.parent_branch,
Expand All @@ -409,6 +413,7 @@ pub async fn maybe_trigger_automerge_for_pending_event(
capture,
read_file,
path_exists,
default_branch_result=Some(default_branch_result),
)
let decision = @poller.merge_policy_decision_for_tracked_pr(
tracked,
Expand Down
41 changes: 34 additions & 7 deletions src/server/handler_poll_delivery.mbt
Original file line number Diff line number Diff line change
Expand Up @@ -2329,10 +2329,14 @@ async fn ServerState::refresh_tracked_pr_audit_receipt_states(
if tracked_prs.length() == 0 {
return
}
let default_branch = @tools.detect_default_branch_with_capture(
let default_branch_result = @tools.detect_default_branch_result_with_capture(
self.config.project_dir,
capture,
)
let default_branch = match default_branch_result {
Ok(branch) => branch
Err(_) => "main"
}
self.cached_default_branch = default_branch
for tracked in tracked_prs {
match self.poller.get(tracked.pr_number) {
Expand All @@ -2346,6 +2350,7 @@ async fn ServerState::refresh_tracked_pr_audit_receipt_states(
capture,
read_file,
path_exists,
default_branch_result=Some(default_branch_result),
)
self.poller.restore({ ..current, audit_receipt_state, })
}
Expand Down Expand Up @@ -2430,10 +2435,20 @@ async fn deliver_pending_poll_events(
if retried_events.length() > 0 {
state.request_goal_judge_tick()
}
let default_branch = if pending_events.length() > 0 {
@tools.detect_default_branch_with_capture(state.config.project_dir, capture)
let default_branch_result = if pending_events.length() > 0 {
Some(
@tools.detect_default_branch_result_with_capture(
state.config.project_dir,
capture,
),
)
} else {
""
None
}
let default_branch = match default_branch_result {
Some(Ok(branch)) => branch
Some(Err(_)) => "main"
None => ""
}
for i = 0; i < pending_events.length(); i = i + 1 {
let event = pending_events[i]
Expand Down Expand Up @@ -2507,6 +2522,7 @@ async fn deliver_pending_poll_events(
capture,
audit_receipt_read,
audit_receipt_exists,
default_branch_result~,
)
}
None => @types.AuditReceiptState::NotRequired
Expand Down Expand Up @@ -2847,10 +2863,20 @@ async fn ServerState::sweep_tracked_prs_for_automerge(
for tracked in self.poller.tracked.values() {
tracked_prs.push(tracked)
}
let default_branch = if tracked_prs.length() > 0 {
@tools.detect_default_branch_with_capture(self.config.project_dir, capture)
let default_branch_result = if tracked_prs.length() > 0 {
Some(
@tools.detect_default_branch_result_with_capture(
self.config.project_dir,
capture,
),
)
} else {
""
None
}
let default_branch = match default_branch_result {
Some(Ok(branch)) => branch
Some(Err(_)) => "main"
None => ""
}
for tracked in tracked_prs {
let current = match self.poller.get(tracked.pr_number) {
Expand Down Expand Up @@ -2879,6 +2905,7 @@ async fn ServerState::sweep_tracked_prs_for_automerge(
capture,
read_file,
path_exists,
default_branch_result~,
)
let gate_ready = @poller.tl_tracked_pr_merge_gate_snapshot_ready(
current,
Expand Down
Loading
Loading