SiteContext.java

package network.ike.plugin.reconcile;

import org.apache.maven.api.plugin.Log;

import java.io.File;

/**
 * Context handed to each {@link SiteReconciler} for {@code detect} and
 * {@code apply}. Bundles the per-repo identity (git root, artifact id,
 * project version), org-site coordinates, user-supplied flags, and a
 * logger.
 *
 * <p>Parallels {@code network.ike.plugin.ws.reconcile.WorkspaceContext}
 * but at the per-repo scope rather than the workspace-wide scope. The
 * two are intentionally kept separate — see {@link SiteReconciler} for
 * the rationale.
 *
 * @param gitRoot           the git root of the project whose site is being reconciled
 * @param projectId         the project's Maven artifact id
 * @param projectVersion    the current POM version (SNAPSHOT stripped where relevant)
 * @param projectName       the human-readable project name (POM {@code <name>}) or null
 * @param projectDescription the project description (POM {@code <description>}) or null
 * @param projectSiteUrl    the canonical site URL (e.g. https://ike.network/ike-tooling/)
 * @param githubUrl         the project's GitHub repository URL
 * @param srcRepoUrl        git URL of the org-site SOURCE repo
 * @param srcBranch         branch in the org-site source repo
 * @param pubRepoUrl        git URL of the org-site PUBLISH repo
 * @param pubBranch         branch in the org-site publish repo
 * @param options           user-supplied flag values
 * @param log               Maven logger for reconciler output
 */
public record SiteContext(
        File gitRoot,
        String projectId,
        String projectVersion,
        String projectName,
        String projectDescription,
        String projectSiteUrl,
        String githubUrl,
        String srcRepoUrl,
        String srcBranch,
        String pubRepoUrl,
        String pubBranch,
        SiteReconcilerOptions options,
        Log log) {
}