feat(agent-queue): report PR state (open/merged) on the run

This commit is contained in:
saravanakumardb1 2026-05-31 13:56:43 -07:00
parent 09b16c4b19
commit c2dbbaf188
3 changed files with 9 additions and 5 deletions

View File

@ -981,10 +981,12 @@ run_worker() {
[[ -n "$_prtitle" ]] || _prtitle="agent-queue job $job"
_prurl=$(_fleet_pr_open "$pr_dir" "$pr_base" "$pr_jid" "$_prtitle" "$logf") || _prurl=""
if [[ -n "$_prurl" ]]; then
{ echo "pr_url=$_prurl"; echo "pr_branch=aq/job/$pr_jid"; } >> "$metaf"
{ echo "pr_url=$_prurl"; echo "pr_branch=aq/job/$pr_jid"; echo "pr_state=open"; } >> "$metaf"
echo "PR opened: $_prurl" >> "$logf"
# Opt-in auto-merge (job autoMerge flag): squash-merge the PR now.
[[ "$pr_automerge" == "true" ]] && _fleet_pr_merge "$pr_dir" "$_prurl" "$logf"
if [[ "$pr_automerge" == "true" ]] && _fleet_pr_merge "$pr_dir" "$_prurl" "$logf"; then
echo "pr_state=merged" >> "$metaf"
fi
if fleet_enabled && _fleet_is_job "$job"; then fleet_report_insights "$job" testing; fi
fi
fi

View File

@ -307,13 +307,15 @@ fleet_report_insights() {
[[ "$turns" =~ ^[0-9]+$ ]] && ins+=",\"turns\":$turns"
[[ "$tools" =~ ^[0-9]+$ ]] && ins+=",\"toolCalls\":$tools"
[[ "$est" == "true" || "$est" == "1" ]] && ins+=",\"estimated\":true"
local pr_url pr_branch
local pr_url pr_branch pr_state
pr_url=$(_meta_val "$metaf" pr_url); pr_branch=$(_meta_val "$metaf" pr_branch)
pr_state=$(_meta_val "$metaf" pr_state)
local body="{\"leaseEpoch\":${epoch:-0}"
[[ -n "$ins" ]] && body+=",\"insights\":{${ins#,}}"
[[ -n "$result" ]] && body+=",\"result\":\"$(_json_escape "$result")\""
[[ -n "$pr_url" ]] && body+=",\"prUrl\":\"$(_json_escape "$pr_url")\""
[[ -n "$pr_branch" ]] && body+=",\"branch\":\"$(_json_escape "$pr_branch")\""
[[ -n "$pr_state" ]] && body+=",\"prState\":\"$(_json_escape "$pr_state")\""
body+="}"
_fleet_call POST "/fleet/jobs/$jid/lease/release" "$body"
return 0

View File

@ -891,8 +891,8 @@ if git -C "$prbare" rev-parse --verify aq/job/fjob_pr >/dev/null 2>&1 \
&& grep -q 'pr merge' "$tmp/gh-calls.log" 2>/dev/null \
&& git -C "$prbare" ls-tree -r aq/job/fjob_pr --name-only 2>/dev/null | grep -qx 'PR_CHANGE.md' \
&& ! git -C "$prbare" ls-tree -r aq/job/fjob_pr --name-only 2>/dev/null | grep -qx '.aq_pr.md' \
&& grep -q '/fleet/jobs/fjob_pr/lease/release :: .*"prUrl":"https://github.com/test/repo/pull/7"' "$AQ_FSTUB_CALLS"; then
pass "fleet PR mode: authored title + verify gate + auto-merge (gh pr merge) + prUrl reported"
&& grep -q '/fleet/jobs/fjob_pr/lease/release :: .*"prUrl":"https://github.com/test/repo/pull/7".*"prState":"merged"' "$AQ_FSTUB_CALLS"; then
pass "fleet PR mode: authored title + verify gate + auto-merge + prUrl/prState=merged reported"
else
echo "gh-calls: $(cat "$tmp/gh-calls.log" 2>/dev/null)" >&2
echo "tree: $(git -C "$prbare" ls-tree -r aq/job/fjob_pr --name-only 2>/dev/null | tr '\n' ' ')" >&2