Author SHA1 Message Date
steve f468fe6245 Merge pull request 'fix(reusable): thread the dispatch pr_number as a workflow_call input' (#24) from fix/dispatch-pr-input into main
Build & push image / build-and-push (push) Successful in 3s
2026-07-16 03:34:29 +00:00
steveandClaude Fable 5 64d34bd33b fix(reusable): thread the dispatch pr_number as a workflow_call input
Gadfly review (reusable) / review (pull_request) Successful in 1s
Adversarial Review (Gadfly) / review (pull_request) Successful in 1s
Build & push image / build-and-push (pull_request) Successful in 3s
Gitea >= 1.27 does not propagate the caller's workflow_dispatch inputs
into a called workflow's github.event (same rework that changed
event_name), so a manual 'review PR #N' dispatch arrived with an empty
PR and died at the entrypoint's 'PR required' check. Accept pr_number as
an explicit workflow_call input and fold it into the PR env fallback
chain; caller stubs pass github.event.inputs.pr_number through.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-15 23:34:07 -04:00
steve d8580bc193 Merge pull request 'chore(reusable): replace the retired ragnaros endpoint with netherstorm' (#23) from chore/ragnaros-to-netherstorm into main
Build & push image / build-and-push (push) Successful in 18s
2026-07-16 03:32:18 +00:00
steveandClaude Fable 5 24d1ee1ebd chore(reusable): replace the retired ragnaros endpoint with netherstorm
Build & push image / build-and-push (pull_request) Successful in 3s
Gadfly review (reusable) / review (pull_request) Successful in 5s
Adversarial Review (Gadfly) / review (pull_request) Successful in 5s
GADFLY_ENDPOINT_RAGNAROS is empty in Gitea vars and no ragnaros/<model>
is in the pool; netherstorm is the live local GPU endpoint. Requested by
Steve.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-15 23:31:57 -04:00
steve 56392368dd Merge pull request 'chore(reusable): forward GADFLY_ENDPOINT_NETHERSTORM' (#22) from chore/forward-netherstorm-endpoint into main
Build & push image / build-and-push (push) Successful in 8s
2026-07-16 03:30:43 +00:00
steveandClaude Fable 5 4ff63d988a chore(reusable): forward GADFLY_ENDPOINT_NETHERSTORM
Gadfly review (reusable) / review (pull_request) Successful in 0s
Adversarial Review (Gadfly) / review (pull_request) Successful in 0s
Build & push image / build-and-push (pull_request) Successful in 26s
A reusable workflow can't enumerate arbitrary vars.GADFLY_ENDPOINT_*;
the netherstorm endpoint var was added after the forwarding list, so
every netherstorm/<model> reviewer failed with 'unknown provider:
netherstorm' — the correctly-formatted var never reached the container.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-15 23:30:17 -04:00
steve 256344d3e1 Merge pull request 'fix: handle Gitea 1.27's workflow_call event name in the trigger gate' (#21) from fix/gitea-127-workflow-call into main
Build & push image / build-and-push (push) Successful in 2m30s
2026-07-16 03:00:40 +00:00
+15 -8
View File
@@ -45,7 +45,7 @@ on:
# Owner-set user-scope variables (see README "Central config via variables"): # Owner-set user-scope variables (see README "Central config via variables"):
# GADFLY_DEFAULT_MODELS, GADFLY_DEFAULT_SPECIALISTS, # GADFLY_DEFAULT_MODELS, GADFLY_DEFAULT_SPECIALISTS,
# GADFLY_DEFAULT_PROVIDER_CONCURRENCY, GADFLY_DEFAULT_PROVIDER_LENS_CONCURRENCY, # 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), # An unset variable + no input → the image default (one model, default suite),
# so a public consumer with neither still gets a sane minimal review. # so a public consumer with neither still gets a sane minimal review.
inputs: inputs:
@@ -59,6 +59,11 @@ on:
max_steps: { type: string, default: "14" } # GADFLY_MAX_STEPS max_steps: { type: string, default: "14" } # GADFLY_MAX_STEPS
worker_model: { type: string, default: "" } # GADFLY_WORKER_MODEL worker_model: { type: string, default: "" } # GADFLY_WORKER_MODEL
allowed_users: { type: string, default: "" } # GADFLY_ALLOWED_USERS (consumer-specific; set in your stub) 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 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 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 inline_review: { type: string, default: "" } # GADFLY_INLINE_REVIEW — "" => on (post a COMMENT-state PR review with inline comments on changed lines); "0" => off
@@ -104,7 +109,7 @@ jobs:
# forwarding, since the auto token isn't a forwarded workflow_call secret. # forwarding, since the auto token isn't a forwarded workflow_call secret.
GITEA_TOKEN: ${{ github.token }} GITEA_TOKEN: ${{ github.token }}
EVENT_NAME: ${{ github.event_name }} 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 }} PR_BRANCH: ${{ github.head_ref }}
IS_DRAFT: ${{ github.event.pull_request.draft }} IS_DRAFT: ${{ github.event.pull_request.draft }}
COMMENT_BODY: ${{ github.event.comment.body }} COMMENT_BODY: ${{ github.event.comment.body }}
@@ -124,12 +129,14 @@ jobs:
# token, keep that one a secret instead. # token, keep that one a secret instead.
GADFLY_ENDPOINT_M1: ${{ vars.GADFLY_ENDPOINT_M1 }} GADFLY_ENDPOINT_M1: ${{ vars.GADFLY_ENDPOINT_M1 }}
GADFLY_ENDPOINT_M5: ${{ vars.GADFLY_ENDPOINT_M5 }} GADFLY_ENDPOINT_M5: ${{ vars.GADFLY_ENDPOINT_M5 }}
# ragnaros = the 4090 Ti via its llama-swap proxy. Defined in the user # netherstorm = the local GPU box via its llama-swap proxy. Defined in the
# var GADFLY_ENDPOINT_RAGNAROS (format "<provider>|<base-url>[|<key>]") # user var GADFLY_ENDPOINT_NETHERSTORM (format "<provider>|<base-url>[|<key>]",
# so the URL can change without editing this file; the matching model is # e.g. "llamaswap|https://llama-swap.netherstorm...") so the URL can change
# ragnaros/qwen3.6-27b in GADFLY_DEFAULT_MODELS. NB: use the un-hyphenated # without editing this file; the matching model is netherstorm/qwen3.6-27b in
# `llamaswap` provider spelling in the var — the pinned image needs it. # GADFLY_DEFAULT_MODELS. NB: use the un-hyphenated `llamaswap` provider
GADFLY_ENDPOINT_RAGNAROS: ${{ vars.GADFLY_ENDPOINT_RAGNAROS }} # 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) -------------------------------- # --- findings telemetry (optional) --------------------------------
GADFLY_FINDINGS_URL: ${{ secrets.GADFLY_FINDINGS_URL }} GADFLY_FINDINGS_URL: ${{ secrets.GADFLY_FINDINGS_URL }}
GADFLY_FINDINGS_TOKEN: ${{ secrets.GADFLY_FINDINGS_TOKEN }} GADFLY_FINDINGS_TOKEN: ${{ secrets.GADFLY_FINDINGS_TOKEN }}