- Bug: chicken-egg-ci create-per-file-issues was aliased to shellcheck-only function. Added generic playbook_lint_per_file() that handles any linter output format. Renamed action to lint-per-file. - Bug: cascade-rebase fired retry-merge synchronously after async rebase. Removed retry-merge and re-approve from recipe — rebase settles, CI reruns, normal flow handles merge on subsequent cycle. - Warning: jq calls on PR data lacked || true under set -euo pipefail. Fixed. - Warning: playbook_rebase_pr and playbook_retrigger_ci incremented _PB_SUB_CREATED before confirming API success. Now check HTTP status code. - Warning: Python import tomllib fails on < 3.11. Added try/except fallback to tomli package. - Nit: failures_on_unchanged regex broadened to handle generic linter formats (file.sh:line:col patterns in addition to ShellCheck's "In file line N:"). - Info: match_recipe now logs Python stderr on error instead of silently falling back to generic recipe. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
16 lines
576 B
TOML
16 lines
576 B
TOML
# gardener/recipes/cascade-rebase.toml — PR outdated after main moved
|
|
#
|
|
# Trigger: PR mergeable=false (stale branch or dismissed approval)
|
|
# Playbook: rebase only — merge and re-approval happen on subsequent cycles
|
|
# after CI reruns on the rebased branch (rebase is async via Gitea API)
|
|
|
|
name = "cascade-rebase"
|
|
description = "PR outdated after main moved — mergeable=false or stale approval"
|
|
priority = 20
|
|
|
|
[trigger]
|
|
pr_mergeable = false
|
|
|
|
[[playbook]]
|
|
action = "rebase-pr"
|
|
description = "Rebase PR onto main (async — CI reruns, merge on next cycle)"
|