mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-10-27 08:02:39 +00:00
* fix: keep a fork's own auto-pull settings when applying settings.yaml The settings.yaml on a fork branch carries the parent's git_sync, so a pull into a fork failed with "Auto-pull cannot be configured on a fork workspace". The fork now keeps its own auto_pull and fork_open_prs and a throwaway fork drops promotion repos, matching fork creation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: show the parent's git sync side in a fork's settings document A fork's settings.yaml is the parent's file, so exporting the fork's own git_sync (auto-pull off, no fork PRs, no promotion repos) and merging the fork back would turn off the parent's auto-pull. The fork's document now states the parent's values for the parts the parent owns, and applying one keeps the fork's own: the two are inverses, so a round trip is a no-op. Repos the fork does not carry are no longer added. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: drop promotion repos on non-dev forks and keep the fork's repo order A dev workspace detached from dev keeps its promotion repo, which the validator refuses on a non-dev fork, so its pull still failed. And a fork whose own repo came before a shared one saw its document reorder the repos, so re-applying it was a change. The apply now drops promotion repos unless the fork is a dev workspace and emits repos in the fork's own order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: apply only a fork's synced git sync keys from settings.yaml Taking the parent's repo entry and restoring a few fork-owned fields let every unlisted field flow from the parent: a dev workspace lost its promotion mode, and a malformed repository list emptied the fork. The fork now starts from its own git_sync and takes only the item filters (settings, exclude_types_override, group_by_folder) of the repos it carries; the document is the parent's block with those keys from the fork. The parent's block is folded down the ancestor chain, so a fork of a dev workspace shows the root's auto-pull too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: sync a fork's legacy git sync filters and drop its stale promotion repos Repos without their own settings filter by the workspace-level include/exclude lists, which a fork now takes from settings.yaml while it stores them. A non-dev fork's apply drops the promotion repos it kept from a dev designation, so the write passes the save's check. An unset and a null key no longer count as a difference, so settings.yaml is not rewritten over the two spellings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: copy the filters a repo syncs by between a fork and settings.yaml A fork on per-repo settings applying a file still on workspace-level filters lost its repo settings and gained none, so it synced nothing. The copy now goes between each side's effective filters, the repo's settings with the workspace-level lists they fall back to filled in, so either layout maps onto the other. The workspace-level keys are no longer synced separately, and a null git_sync leaves them alone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: sync a fork's filters only between per-repo settings on both sides The workspace-level filter layout reads an empty or missing per-repo list as "use the workspace's", so it cannot state some filters the per-repo layout can, and every mapping between the two widened or emptied a fork's filters on some round trip. Filters now cross only when neither the fork nor the file uses workspace-level filters; otherwise the fork keeps its own and its document keeps the parent's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix: detect the legacy git sync layout by its fallback filters only exclude_path and extra_include_path are read only beside a fallback include_path, and the save leaves them behind once every repo has migrated, so they no longer mark a workspace as legacy. Rewraps the comment on the synced keys to say when settings crosses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Windmill API
The API server, exposing functionality to other components and the frontend
This crate exposes both a library as well as a binary target.