65 lines
1.9 KiB
YAML
65 lines
1.9 KiB
YAML
name: OpenCode Prompt
|
|
description: Esegue un prompt opencode sul codice del repository.
|
|
|
|
inputs:
|
|
prompt:
|
|
description: Il prompt da passare a opencode.
|
|
required: true
|
|
api-key:
|
|
description: API key per il provider opencode.
|
|
required: true
|
|
api-provider:
|
|
description: Nome del provider (default: opencode-go).
|
|
required: false
|
|
default: "opencode-go"
|
|
model:
|
|
description: Modello AI (formato provider/model).
|
|
required: false
|
|
default: ""
|
|
agent:
|
|
description: Agente opencode da utilizzare.
|
|
required: false
|
|
default: ""
|
|
working-directory:
|
|
description: Directory di lavoro per opencode. Se vuoto, usa la radice del repo.
|
|
required: false
|
|
default: ""
|
|
|
|
outputs:
|
|
result:
|
|
description: Output prodotto da opencode.
|
|
value: ${{ steps.esegui.outputs.result }}
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Configura autenticazione opencode
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
mkdir -p ~/.local/share/opencode
|
|
jq -n \
|
|
--arg provider "${{ inputs.api-provider }}" \
|
|
--arg key "${{ inputs.api-key }}" \
|
|
'{($provider): {type: "api", key: $key}}' > ~/.local/share/opencode/auth.json
|
|
chmod 600 ~/.local/share/opencode/auth.json
|
|
|
|
- name: Esegui opencode
|
|
id: esegui
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
WD="${{ inputs.working-directory }}"
|
|
[ -z "$WD" ] && WD="$GITHUB_WORKSPACE"
|
|
cd "$WD"
|
|
EXTRA_ARGS=()
|
|
[ -n "${{ inputs.model }}" ] && EXTRA_ARGS+=(--model "${{ inputs.model }}")
|
|
[ -n "${{ inputs.agent }}" ] && EXTRA_ARGS+=(--agent "${{ inputs.agent }}")
|
|
opencode run "${{ inputs.prompt }}" "${EXTRA_ARGS[@]}" --dangerously-skip-permissions 2>&1 | tee "$GITHUB_WORKSPACE/opencode-output.txt"
|
|
RESULT=$(cat "$GITHUB_WORKSPACE/opencode-output.txt")
|
|
{
|
|
echo "result<<EOF"
|
|
echo "$RESULT"
|
|
echo "EOF"
|
|
} >> "$GITHUB_OUTPUT"
|