Skip to content

PR dashboard: Fix PR author when Renovate#18458

Merged
trask merged 8 commits into
open-telemetry:mainfrom
trask:dashboard-pr-author
Apr 30, 2026
Merged

PR dashboard: Fix PR author when Renovate#18458
trask merged 8 commits into
open-telemetry:mainfrom
trask:dashboard-pr-author

Conversation

@trask

@trask trask commented Apr 30, 2026

Copy link
Copy Markdown
Member

Only need to look up delegator for Copilot

Also, stop passing CI status into LLM, since it seems to use that as an indication of "waiting on external" when CI is inflight

The PR dashboard's delegator lookup was applied to any bot author. For Renovate/Dependabot PRs, the first commit's committer is web-flow (GitHub's web-UI signer), which slipped past the bot filters and was wrongly surfaced as the human author.

Scope the lookup to Copilot SWE-agent authors only, where there is actually a human delegator to find.
@trask trask requested a review from a team as a code owner April 30, 2026 20:37
trask added 2 commits April 30, 2026 13:50
CI status and merge-conflict status are already shown deterministically in dedicated columns. Including them in the LLM context tempted the model to bucket fresh PRs with pending CI as 'external' (waiting on something out of band) instead of 'approver' (waiting for review).

Strip CI checks summary, mergeable/mergeStateStatus, and the related pre-computed signals from the rendered context. Tighten the prompt to clarify that 'external' requires explicit conversational evidence of a cross-repo dependency.
Knowing whether CI is currently failing helps the model route renovate-style PRs whose checks have broken (e.g. an upstream tool release) into the 'external' bucket. But surfacing pending vs failing vs passing as a tri-state was tempting the model to bucket fresh PRs with pending CI as 'external'.

Compromise: emit a single 'CI failing: yes/no' line, with pending treated as not-failing.
trask added 2 commits April 30, 2026 14:01
PRs can still be reviewed and approved while CI is failing, so CI failure on its own should not shift the bucket. Treat the boolean only as weak supporting evidence; the conversation drives the decision.
Renovate-style PRs whose CI breaks because of an upstream tool release legitimately belong in 'external'. The previous wording forbade CI failure as a signal for both author and external; loosen to forbid only the author shift.
@trask trask enabled auto-merge (squash) April 30, 2026 21:05
trask added 3 commits April 30, 2026 14:18
The previous prompt's guidelines were under-specified, so the model ran on intuition: when an approver had left review questions and the author hadn't replied (open-telemetry#16390), it picked 'approver' instead of 'author'.

Restate the rules as an ordered first-match decision tree (external > author-owes-response > approver-default), with explicit edge cases: an approver *commit* does not put the ball in the author's court, and an approver comment linking to an upstream issue should bucket as external.
Pulling main into a PR branch (e.g. trask clicking 'Update branch' on open-telemetry#18090) was being recorded as the latest substantive event, masking earlier unanswered approver questions. Filter such commits out of the substantive timeline so the author still owes a response.
Replace the substring-based 'Merge branch base into ...' filter with a check on the commit's parents array (>=2 parents = merge). The list endpoint returns parents per commit detail, which we already fetch in parallel for diffs. This catches merges with non-default subject lines and squash-merges from feature branches.
@trask trask merged commit 8e4a5bc into open-telemetry:main Apr 30, 2026
92 checks passed
@trask trask deleted the dashboard-pr-author branch April 30, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants