|
|
|
@@ -45,7 +45,7 @@ on:
|
|
|
|
|
# Owner-set user-scope variables (see README "Central config via variables"):
|
|
|
|
|
# GADFLY_DEFAULT_MODELS, GADFLY_DEFAULT_SPECIALISTS,
|
|
|
|
|
# GADFLY_DEFAULT_PROVIDER_CONCURRENCY, GADFLY_DEFAULT_PROVIDER_LENS_CONCURRENCY,
|
|
|
|
|
# GADFLY_ENDPOINT_RAGNAROS (the 4090 Ti endpoint).
|
|
|
|
|
# GADFLY_ENDPOINT_NETHERSTORM (the local GPU box endpoint).
|
|
|
|
|
# An unset variable + no input → the image default (one model, default suite),
|
|
|
|
|
# so a public consumer with neither still gets a sane minimal review.
|
|
|
|
|
inputs:
|
|
|
|
@@ -59,6 +59,11 @@ on:
|
|
|
|
|
max_steps: { type: string, default: "14" } # GADFLY_MAX_STEPS
|
|
|
|
|
worker_model: { type: string, default: "" } # GADFLY_WORKER_MODEL
|
|
|
|
|
allowed_users: { type: string, default: "" } # GADFLY_ALLOWED_USERS (consumer-specific; set in your stub)
|
|
|
|
|
# Gitea >= 1.27 does not propagate the CALLER's workflow_dispatch inputs into a
|
|
|
|
|
# called workflow's github.event, so a manual "review PR #N" dispatch arrived
|
|
|
|
|
# here with an empty PR and died at the entrypoint's "PR required" check. The
|
|
|
|
|
# caller stub must thread it explicitly: `pr_number: ${{ github.event.inputs.pr_number }}`.
|
|
|
|
|
pr_number: { type: string, default: "" }
|
|
|
|
|
trigger_phrase: { type: string, default: "" } # GADFLY_TRIGGER_PHRASE
|
|
|
|
|
consolidate: { type: string, default: "" } # GADFLY_CONSOLIDATE — "" => auto (one consensus comment for >=2 models); "0" => one comment per model
|
|
|
|
|
inline_review: { type: string, default: "" } # GADFLY_INLINE_REVIEW — "" => on (post a COMMENT-state PR review with inline comments on changed lines); "0" => off
|
|
|
|
@@ -94,7 +99,7 @@ jobs:
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
timeout-minutes: ${{ inputs.timeout_minutes }}
|
|
|
|
|
steps:
|
|
|
|
|
- uses: docker://gitea.stevedudenhoeffer.com/steve/gadfly:sha-3095ebf
|
|
|
|
|
- uses: docker://gitea.stevedudenhoeffer.com/steve/gadfly:sha-ed9e946
|
|
|
|
|
env:
|
|
|
|
|
# --- event context (from the CALLER's github.*) -------------------
|
|
|
|
|
GITEA_API: ${{ github.server_url }}/api/v1/repos/${{ github.repository }}
|
|
|
|
@@ -104,7 +109,7 @@ jobs:
|
|
|
|
|
# forwarding, since the auto token isn't a forwarded workflow_call secret.
|
|
|
|
|
GITEA_TOKEN: ${{ github.token }}
|
|
|
|
|
EVENT_NAME: ${{ github.event_name }}
|
|
|
|
|
PR: ${{ github.event.pull_request.number || github.event.issue.number || github.event.inputs.pr_number }}
|
|
|
|
|
PR: ${{ github.event.pull_request.number || github.event.issue.number || github.event.inputs.pr_number || inputs.pr_number }}
|
|
|
|
|
PR_BRANCH: ${{ github.head_ref }}
|
|
|
|
|
IS_DRAFT: ${{ github.event.pull_request.draft }}
|
|
|
|
|
COMMENT_BODY: ${{ github.event.comment.body }}
|
|
|
|
@@ -124,12 +129,14 @@ jobs:
|
|
|
|
|
# token, keep that one a secret instead.
|
|
|
|
|
GADFLY_ENDPOINT_M1: ${{ vars.GADFLY_ENDPOINT_M1 }}
|
|
|
|
|
GADFLY_ENDPOINT_M5: ${{ vars.GADFLY_ENDPOINT_M5 }}
|
|
|
|
|
# ragnaros = the 4090 Ti via its llama-swap proxy. Defined in the user
|
|
|
|
|
# var GADFLY_ENDPOINT_RAGNAROS (format "<provider>|<base-url>[|<key>]")
|
|
|
|
|
# so the URL can change without editing this file; the matching model is
|
|
|
|
|
# ragnaros/qwen3.6-27b in GADFLY_DEFAULT_MODELS. NB: use the un-hyphenated
|
|
|
|
|
# `llamaswap` provider spelling in the var — the pinned image needs it.
|
|
|
|
|
GADFLY_ENDPOINT_RAGNAROS: ${{ vars.GADFLY_ENDPOINT_RAGNAROS }}
|
|
|
|
|
# netherstorm = the local GPU box via its llama-swap proxy. Defined in the
|
|
|
|
|
# user var GADFLY_ENDPOINT_NETHERSTORM (format "<provider>|<base-url>[|<key>]",
|
|
|
|
|
# e.g. "llamaswap|https://llama-swap.netherstorm...") so the URL can change
|
|
|
|
|
# without editing this file; the matching model is netherstorm/qwen3.6-27b in
|
|
|
|
|
# GADFLY_DEFAULT_MODELS. NB: use the un-hyphenated `llamaswap` provider
|
|
|
|
|
# spelling in the var — the pinned image needs it. Without this line the var
|
|
|
|
|
# is silently dropped at the workflow_call boundary ('unknown provider').
|
|
|
|
|
GADFLY_ENDPOINT_NETHERSTORM: ${{ vars.GADFLY_ENDPOINT_NETHERSTORM }}
|
|
|
|
|
# --- findings telemetry (optional) --------------------------------
|
|
|
|
|
GADFLY_FINDINGS_URL: ${{ secrets.GADFLY_FINDINGS_URL }}
|
|
|
|
|
GADFLY_FINDINGS_TOKEN: ${{ secrets.GADFLY_FINDINGS_TOKEN }}
|
|
|
|
|