Class UrlCascadeResolver

java.lang.Object
network.ike.workspace.cascade.UrlCascadeResolver
All Implemented Interfaces:
CascadeAssembler.CascadeResolver

public final class UrlCascadeResolver extends Object implements CascadeAssembler.CascadeResolver
A CascadeAssembler.CascadeResolver that resolves cascade members from their git url rather than local sibling checkouts (IKE-Network/ike-issues#429).

CascadeAssembler stitches the release cascade from each member's per-project release-cascade.yaml. The sibling-checkout resolver assumes every member is a directory alongside the repo the goal runs in — true on a developer workstation, false on a CI agent that has only one repo checked out. This resolver closes that gap: it shallow-clones each member from its edge's url and reads src/main/cascade/release-cascade.yaml from the clone.

Clones land in a caller-supplied directory — one subdirectory per member, named by the edge's repo. A member already cloned there is refreshed with git pull --ff-only rather than re-cloned. The resolver is host-agnostic: it passes the url to git clone verbatim.

  • Constructor Details

    • UrlCascadeResolver

      public UrlCascadeResolver(Path cloneDir)
      Creates a resolver that clones into cloneDir and logs nothing.
      Parameters:
      cloneDir - the directory shallow clones are placed under
    • UrlCascadeResolver

      public UrlCascadeResolver(Path cloneDir, Consumer<String> log)
      Creates a resolver that clones into cloneDir and reports progress through log.
      Parameters:
      cloneDir - the directory shallow clones are placed under
      log - sink for one progress line per member resolved
  • Method Details