Aggiunge azioni opencode-prompt e install-opencode (#1)
Aggiunge due nuove action composite: ### `install-opencode` Verifica i prerequisiti (node/npm) e installa opencode-ai globalmente. Input opzionale `version` per fissare una versione specifica. ### `opencode-prompt` Esegue opencode con un prompt sul codice del repository. - Input: `prompt` (req), `api-key` (req), `api-provider`, `model`, `agent`, `working-directory` - Output: `result` con la risposta di opencode - Salva copia in `opencode-output.txt` nel workspace Reviewed-on: #1 Co-authored-by: alberto <a.nuti@live.it> Co-committed-by: alberto <a.nuti@live.it>
This commit is contained in:
64
opencode-prompt/action.yml
Normal file
64
opencode-prompt/action.yml
Normal file
@@ -0,0 +1,64 @@
|
||||
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"
|
||||
Reference in New Issue
Block a user