using System.Threading; using System.Threading.Tasks; namespace StellaOps.Interop.Tests; public sealed partial class InteropTestHarness { /// /// Attest SBOM using cosign. /// public async Task AttestWithCosignAsync( string sbomPath, string imageRef, CancellationToken ct = default) { EnsureToolsAvailable(); var result = await _toolManager.RunAsync( "cosign", $"attest --predicate {sbomPath} --type cyclonedx {imageRef} --yes", ct).ConfigureAwait(false); if (!result.Success) return AttestationResult.Failed(result.Error ?? "Cosign attestation failed"); return new AttestationResult(Success: true, ImageRef: imageRef); } }