Clarify evaluation progress PR label (#1082)

* Clarify evaluation progress label

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d35e7696-f69c-4898-ad3e-c75fb02b993d

* Distinguish queued and running evaluations

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d35e7696-f69c-4898-ad3e-c75fb02b993d

---------

Copilot-Session: d35e7696-f69c-4898-ad3e-c75fb02b993d
This commit is contained in:
Amaury Levé
2026-08-27 16:41:18 +02:00
committed by GitHub
parent 26caf0ecab
commit f6f2751abd
2 changed files with 13 additions and 3 deletions
+9 -1
View File
@@ -35,6 +35,7 @@ BOT_LOGIN="github-actions[bot]"
MERGE_APPROVERS_TEAM="@dotnet/skills-merge-approvers"
STATE_LABELS=(
"pr-state/evals-in-progress"
"pr-state/ready-for-eval"
"waiting-on-review"
"ready-to-merge"
@@ -339,8 +340,10 @@ if [ -z "$STATE" ]; then
else
STATE="in-review"
fi
elif [ "$EVAL_STATE" = "pending" ] && eval_run_exists_for_head; then
STATE="evals-in-progress"
else
# eval has not succeeded yet
# No evaluation is running for this head, or the last one failed.
STATE="ready-for-eval"
fi
fi
@@ -357,6 +360,7 @@ case "$STATE" in
: ;; # do not reconcile labels for skip/scan-only states
needs-author-attention) reconcile_state_label "waiting-on-author" ;;
ready-for-eval) reconcile_state_label "pr-state/ready-for-eval" ;;
evals-in-progress) reconcile_state_label "pr-state/evals-in-progress" ;;
ready-for-review) reconcile_state_label "waiting-on-review" ;;
ready-for-merge) reconcile_state_label "ready-to-merge" ;;
in-review) reconcile_state_label "pr-state/in-review" ;;
@@ -409,6 +413,7 @@ do_eval_trigger() {
if gh workflow run evaluation.yml --repo "$REPO" \
-f pr_number="$PR_NUMBER" \
-f head_sha="$HEAD_SHA_SHORT" >/dev/null; then
reconcile_state_label "pr-state/evals-in-progress"
log "eval-trigger: dispatched evaluation.yml for PR #$PR_NUMBER @ $HEAD_SHA_SHORT"
summary " - action: eval-trigger (dispatched evaluation.yml)"
else
@@ -539,6 +544,9 @@ case "$STATE" in
ready-for-eval)
do_eval_trigger
;;
evals-in-progress)
log "no action for state=evals-in-progress"
;;
ready-for-review|ready-for-merge)
do_maintainer_ping
;;
+4 -2
View File
@@ -73,7 +73,8 @@ Order of evaluation; first match wins:
| 4 | eval == success && `APPROVED` | `ready-for-merge` | `ready-to-merge` | maintainer-ping/C |
| 5 | eval == success && `REVIEW_REQUIRED`/none | `ready-for-review` | `waiting-on-review` | maintainer-ping/A |
| 6 | eval == success && other decision | `in-review` | `pr-state/in-review` | reconcile only |
| 7 | otherwise | `ready-for-eval` | `pr-state/ready-for-eval` | eval-trigger |
| 7 | eval == pending && run exists for head | `evals-in-progress` | `pr-state/evals-in-progress` | reconcile only |
| 8 | otherwise | `ready-for-eval` | `pr-state/ready-for-eval` | eval-trigger |
Trusted = `OWNER` / `MEMBER` / `COLLABORATOR`. Bots are short-circuited as trusted.
@@ -99,7 +100,8 @@ State labels (exactly one is reconciled at a time). Where the existing label
taxonomy already covered a state, the workflow reuses it rather than introducing
a duplicate `pr-state/*` name:
- `pr-state/ready-for-eval` *(new)*
- `pr-state/ready-for-eval` *(existing — queued, missing, or failed evaluation)*
- `pr-state/evals-in-progress` *(new — evaluation pending for the current head)*
- `waiting-on-review` *(existing — reused for `ready-for-review`)*
- `ready-to-merge` *(existing — reused for `ready-for-merge`)*
- `waiting-on-author` *(existing — reused for `needs-author-attention`)*