{"anyOf":[{"$comment":"config","properties":{"actions":{"$comment":"Specifies which actions to run.","items":{"$comment":"actions","properties":{"on":{"$comment":"Event that triggers this action","const":"push"},"run":{"$comment":"Name of the nix app to run as an action.","type":"string"},"sandboxType":{"$comment":"What sandbox type. If you want to use the 'SharedResources' type, get in touch with us.","oneOf":[{"const":"fast-startup"},{"const":"shared-resources"}]},"withRepoContents":{"$comment":"Whether the action should run with access to the entire repo. If false (default), only the closure of the action is available.","type":"boolean"}},"required":["on","run"],"type":"object"},"type":"array"},"builds":{"$comment":"Specifies what should be built. Everything in the `include` section, minus everything in the `exclude` section, is built.","oneOf":[{"$comment":"builds","properties":{"branch":{"$comment":"What (optional) branch this build section is enabled for.","type":"string"},"exclude":{"$comment":"What builds to exclude. This is a list of *attribute matchers*, of the form `x.y.z` or `x.y`. For example, `packages.x86_64-linux.*`, or `*.*`. Two-place matchers only match two-place matchers, and three-place matchers only match three-place matchers. '*' is the wildcard. This is applied *after* the 'include'. Thus, if something matches both the 'include' and the 'exclude', it will be excluded.","items":{"type":"string"},"type":"array"},"include":{"$comment":"What builds to include. This is a list of *attribute matchers*, of the form `x.y.z` or `x.y`. For example, `packages.x86_64-linux.*`, or `*.*`. Two-place matchers only match two-place matchers, and three-place matchers only match three-place matchers. '*' is the wildcard.","items":{"type":"string"},"type":"array"}},"type":"object"},{"items":{"$comment":"builds","properties":{"branch":{"$comment":"What (optional) branch this build section is enabled for.","type":"string"},"exclude":{"$comment":"What builds to exclude. This is a list of *attribute matchers*, of the form `x.y.z` or `x.y`. For example, `packages.x86_64-linux.*`, or `*.*`. Two-place matchers only match two-place matchers, and three-place matchers only match three-place matchers. '*' is the wildcard. This is applied *after* the 'include'. Thus, if something matches both the 'include' and the 'exclude', it will be excluded.","items":{"type":"string"},"type":"array"},"include":{"$comment":"What builds to include. This is a list of *attribute matchers*, of the form `x.y.z` or `x.y`. For example, `packages.x86_64-linux.*`, or `*.*`. Two-place matchers only match two-place matchers, and three-place matchers only match three-place matchers. '*' is the wildcard.","items":{"type":"string"},"type":"array"}},"type":"object"},"type":"array"}]},"flakeDir":{"$comment":"The directory containing your flake.nix relative from the repo root (if not in the repo root).","type":"string"},"fodChecks":{"$comment":"Whether FOD checks are enabled for the repo. See https://garnix.io/docs/fod-checks for more information.","type":"boolean"},"incrementalizeBuilds":{"$comment":"Whether to override the `garnix-incrementalize` flake input to point to an parent built commit. This allows incremental builds. See our https://garnix.io/docs for more information.","oneOf":[{"type":"boolean"},{"$comment":"ExcludesBranches","properties":{"excludeBranches":{"$comment":"What branches *not* to incrementalize","items":{"type":"string"},"type":"array"}},"required":["excludeBranches"],"type":"object"}]},"modules":{"$comment":"Specifies which actions to run.\nmodules","properties":{"publish":{"$comment":"Whether to publish modules from this repository.","type":"boolean"}},"type":"object"},"servers":{"$comment":"Specifies what servers to deploy.","items":{"$comment":"servers","properties":{"configuration":{"$comment":"What attribute to deploy (e.g.: 'myServer' for 'nixosConfigurations.myServer')","type":"string"},"deployment":{"$comment":"When to deploy a new server, or redeploy an existing one\ndeployment","oneOf":[{"allOf":[{"type":"object"},{"properties":{"type":{"const":"on-pull-request"}},"required":["type"],"type":"object"}],"type":"object"},{"properties":{"branch":{"$comment":"What git branch to deploy from","type":"string"},"isPrimary":{"$comment":"If this deploy should also be reachable at «repo-name».«org-name».garnix.me","type":"boolean"},"machine":{"$comment":"What server tier to deploy","type":"string"},"type":{"const":"on-branch"}},"required":["type","branch"],"type":"object"}],"type":"object"}},"required":["deployment","configuration"],"type":"object"},"type":"array"}},"type":"object"},{"type":"null"}]}