< Summary

Information
Class: Orchestrator.Commands.Observability.ExportExperimentAnalysis.PublishExperimentAnalysisSettings
Assembly: Orchestrator
File(s): /home/runner/work/KicktippAi/KicktippAi/src/Orchestrator/Commands/Observability/ExportExperimentAnalysis/PublishExperimentAnalysisSettings.cs
Line coverage
66%
Covered lines: 6
Uncovered lines: 3
Coverable lines: 9
Total lines: 53
Line coverage: 66.6%
Branch coverage
50%
Covered branches: 3
Total branches: 6
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor()100%11100%
Validate()50%9657.14%

File(s)

/home/runner/work/KicktippAi/KicktippAi/src/Orchestrator/Commands/Observability/ExportExperimentAnalysis/PublishExperimentAnalysisSettings.cs

#LineLine coverage
 1using System.ComponentModel;
 2using Spectre.Console;
 3using Spectre.Console.Cli;
 4
 5namespace Orchestrator.Commands.Observability.ExportExperimentAnalysis;
 6
 7public sealed class PublishExperimentAnalysisSettings : CommandSettings
 8{
 9    [CommandOption("--input")]
 10    [Description("Path to a normalized experiment analysis bundle JSON file")]
 111    public string InputPath { get; set; } = string.Empty;
 12
 13    [CommandOption("--experiment-name")]
 14    [Description("Optional stable experiment name to attach to all published runs")]
 15    public string? ExperimentName { get; set; }
 16
 17    [CommandOption("--run-name-suffix")]
 18    [Description("Suffix appended to source run names when creating beta UI aliases")]
 19    [DefaultValue("__experiments-beta")]
 120    public string RunNameSuffix { get; set; } = "__experiments-beta";
 21
 22    [CommandOption("--description")]
 23    [Description("Optional description for the published Langfuse dataset runs")]
 24    public string? Description { get; set; }
 25
 26    [CommandOption("--replace-runs")]
 27    [Description("Delete existing published alias runs before recreating them")]
 28    public bool ReplaceRuns { get; set; }
 29
 30    [CommandOption("--dry-run")]
 31    [Description("Print the runs that would be published without writing to Langfuse")]
 32    public bool DryRun { get; set; }
 33
 34    public override ValidationResult Validate()
 35    {
 136        if (string.IsNullOrWhiteSpace(InputPath))
 37        {
 038            return ValidationResult.Error("--input is required");
 39        }
 40
 141        if (!File.Exists(InputPath))
 42        {
 043            return ValidationResult.Error($"Input file does not exist: {InputPath}");
 44        }
 45
 146        if (string.IsNullOrWhiteSpace(RunNameSuffix))
 47        {
 048            return ValidationResult.Error("--run-name-suffix must be non-empty so existing dataset runs are not modified
 49        }
 50
 151        return ValidationResult.Success();
 52    }
 53}

Methods/Properties

.ctor()
Validate()