fix(framework/tools): self-review fixes from defect survey (#546)
Two defects an independent survey of the tooling surface found in the new helpers, fixed pre-gate: - lane-brief.sh: label filter used jq contains() (substring) — `-l security` wrongly matched label `domain/6-security`. Now exact-token match against tea's space-separated labels string. Verified live: `-l security` -> 0, `-l domain/6-security` -> the real holders. - ci-wait.sh: unknown owner silently defaulted to the `usc` Woodpecker instance (wrong credentials, wrong pipelines). Now fails hard requiring `-a <instance>`, matching lane-brief's FATAL-on-unresolved behavior. Verified: usc owner still infers and exits 0; unknown owner exits 2 with guidance. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kt2D8TsnDwhtzEAPijsNmR
This commit is contained in:
@@ -76,11 +76,14 @@ echo "LANE BRIEF — $filt · $ts (login=$LOGIN)"
|
|||||||
echo "(open issues only; closed are excluded by definition — that's the point)"
|
echo "(open issues only; closed are excluded by definition — that's the point)"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
# Label match is exact-token against tea's space-separated labels string (so -l
|
||||||
|
# "security" does NOT match label "domain/6-security"). Caveat: label names that
|
||||||
|
# themselves contain spaces aren't distinguishable in tea's string form.
|
||||||
printf '%s' "$ISSUES_JSON" | jq -r --arg ms "$MILESTONE" --arg lb "$LABEL" --arg prs "$PR_ISSUE_REFS" '
|
printf '%s' "$ISSUES_JSON" | jq -r --arg ms "$MILESTONE" --arg lb "$LABEL" --arg prs "$PR_ISSUE_REFS" '
|
||||||
($prs | split("\n") | map(select(length>0))) as $prrefs
|
($prs | split("\n") | map(select(length>0))) as $prrefs
|
||||||
| map(
|
| map(
|
||||||
select( ($ms=="" or .milestone==$ms)
|
select( ($ms=="" or .milestone==$ms)
|
||||||
and ($lb=="" or ((.labels//"") | contains($lb))) )
|
and ($lb=="" or ((.labels//"") | split(" ") | index($lb) != null)) )
|
||||||
| . + { assigned: ((.assignees//"")|length>0),
|
| . + { assigned: ((.assignees//"")|length>0),
|
||||||
haspr: (.index as $ix | ($prrefs | index($ix)) != null) }
|
haspr: (.index as $ix | ($prrefs | index($ix)) != null) }
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ if [[ -z "$INSTANCE" ]]; then
|
|||||||
case "${REPO%%/*}" in
|
case "${REPO%%/*}" in
|
||||||
usc|USC) INSTANCE=usc ;;
|
usc|USC) INSTANCE=usc ;;
|
||||||
mosaicstack|mosaic) INSTANCE=mosaic ;;
|
mosaicstack|mosaic) INSTANCE=mosaic ;;
|
||||||
*) INSTANCE=usc ;;
|
*) echo "FATAL: cannot infer Woodpecker instance for owner '${REPO%%/*}' — pass -a <instance>" >&2; exit 2 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user