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}" -ge 10000 ] && BODY+=$'\n... (troncato)'
|
||||
|
||||
read -r -d '' PROMPT << 'PROMPT_EOF' || true
|
||||
Sei un sistema di triage automatico per repository software.
|
||||
|
||||
Analizza la seguente issue e classificala con UNA delle label disponibili:
|
||||
- "bug": malfunzionamento, errore, crash, anomalia, comportamento inaspettato
|
||||
- "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..."}
|
||||
|
||||
Titolo: ${{ inputs.issue-title }}
|
||||
Corpo:
|
||||
$BODY
|
||||
PROMPT_EOF
|
||||
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." \
|
||||
"Analizza la seguente issue e classificala con UNA delle label disponibili:" \
|
||||
'- "bug": malfunzionamento, errore, crash, anomalia, comportamento inaspettato' \
|
||||
'- "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..."}' \
|
||||
"Titolo" "${{ inputs.issue-title }}" \
|
||||
"Corpo" "$BODY"
|
||||
|
||||
OUTFILE="$GITHUB_WORKSPACE/opencode-triage.txt"
|
||||
opencode run "$PROMPT" "${MODEL_ARG[@]}" --dangerously-skip-permissions 2>&1 | tee "$OUTFILE"
|
||||
|
||||
RESPONSE=$(cat "$OUTFILE")
|
||||
|
||||
# Estrai JSON dalla risposta; opencode produce JSON su una riga separata
|
||||
JSON=$(echo "$RESPONSE" | jq -R 'fromjson? | select(.label and .comment)' 2>/dev/null | head -1)
|
||||
# Estrai la riga JSON dalla risposta (salta banner ANSI)
|
||||
JSON_LINE=$(grep -E '^\{"label":"(bug|richiesta)","comment":' "$OUTFILE" | head -1)
|
||||
if [ -n "$JSON_LINE" ]; then
|
||||
JSON=$(echo "$JSON_LINE" | jq -c . 2>/dev/null)
|
||||
fi
|
||||
|
||||
if [ -z "$JSON" ] || ! echo "$JSON" | jq empty 2>/dev/null; then
|
||||
echo "WARN: Impossibile estrarre JSON valido, default a richiesta"
|
||||
|
||||
Reference in New Issue
Block a user