Fix: usa printf invece di heredoc, estrae JSON con grep -E
This commit is contained in:
@@ -87,29 +87,24 @@ runs:
|
|||||||
BODY="$(echo "${{ inputs.issue-body }}" | head -c 10000)"
|
BODY="$(echo "${{ inputs.issue-body }}" | head -c 10000)"
|
||||||
[ "${#BODY}" -ge 10000 ] && BODY+=$'\n... (troncato)'
|
[ "${#BODY}" -ge 10000 ] && BODY+=$'\n... (troncato)'
|
||||||
|
|
||||||
read -r -d '' PROMPT << 'PROMPT_EOF' || true
|
printf -v PROMPT '%s\n\n%s\n\n%s\n\n%s\n\n%s\n\n%s\n\n%s: %s\n%s:\n%s' \
|
||||||
Sei un sistema di triage automatico per repository software.
|
"Sei un sistema di triage automatico per repository software." \
|
||||||
|
"Analizza la seguente issue e classificala con UNA delle label disponibili:" \
|
||||||
Analizza la seguente issue e classificala con UNA delle label disponibili:
|
'- "bug": malfunzionamento, errore, crash, anomalia, comportamento inaspettato' \
|
||||||
- "bug": malfunzionamento, errore, crash, anomalia, comportamento inaspettato
|
'- "richiesta": nuova funzionalità, miglioramento, refactoring, ottimizzazione, o dubbio' \
|
||||||
- "richiesta": nuova funzionalità, miglioramento, refactoring, ottimizzazione, o dubbio
|
'Rispondi ESCLUSIVAMENTE con un JSON valido su una singola riga, senza nessun altro testo:' \
|
||||||
|
'{"label":"bug","comment":"Breve analisi in italiano..."}' \
|
||||||
Rispondi ESCLUSIVAMENTE con un JSON valido su una singola riga, senza nessun altro testo:
|
"Titolo" "${{ inputs.issue-title }}" \
|
||||||
|
"Corpo" "$BODY"
|
||||||
{"label":"bug","comment":"Breve analisi in italiano..."}
|
|
||||||
|
|
||||||
Titolo: ${{ inputs.issue-title }}
|
|
||||||
Corpo:
|
|
||||||
$BODY
|
|
||||||
PROMPT_EOF
|
|
||||||
|
|
||||||
OUTFILE="$GITHUB_WORKSPACE/opencode-triage.txt"
|
OUTFILE="$GITHUB_WORKSPACE/opencode-triage.txt"
|
||||||
opencode run "$PROMPT" "${MODEL_ARG[@]}" --dangerously-skip-permissions 2>&1 | tee "$OUTFILE"
|
opencode run "$PROMPT" "${MODEL_ARG[@]}" --dangerously-skip-permissions 2>&1 | tee "$OUTFILE"
|
||||||
|
|
||||||
RESPONSE=$(cat "$OUTFILE")
|
# Estrai la riga JSON dalla risposta (salta banner ANSI)
|
||||||
|
JSON_LINE=$(grep -E '^\{"label":"(bug|richiesta)","comment":' "$OUTFILE" | head -1)
|
||||||
# Estrai JSON dalla risposta; opencode produce JSON su una riga separata
|
if [ -n "$JSON_LINE" ]; then
|
||||||
JSON=$(echo "$RESPONSE" | jq -R 'fromjson? | select(.label and .comment)' 2>/dev/null | head -1)
|
JSON=$(echo "$JSON_LINE" | jq -c . 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "$JSON" ] || ! echo "$JSON" | jq empty 2>/dev/null; then
|
if [ -z "$JSON" ] || ! echo "$JSON" | jq empty 2>/dev/null; then
|
||||||
echo "WARN: Impossibile estrarre JSON valido, default a richiesta"
|
echo "WARN: Impossibile estrarre JSON valido, default a richiesta"
|
||||||
|
|||||||
Reference in New Issue
Block a user