Files
git.stella-ops.org/src/Scanner/StellaOps.Scanner.Worker/Processing/ScanJobContext.cs
2026-02-01 21:37:40 +02:00

43 lines
1.2 KiB
C#

using StellaOps.Scanner.Core.Contracts;
using System;
using System.Threading;
namespace StellaOps.Scanner.Worker.Processing;
public sealed class ScanJobContext
{
private const string ImageDigestMetadataKey = "image.digest";
public ScanJobContext(IScanJobLease lease, TimeProvider timeProvider, DateTimeOffset startUtc, CancellationToken cancellationToken)
{
Lease = lease ?? throw new ArgumentNullException(nameof(lease));
TimeProvider = timeProvider ?? throw new ArgumentNullException(nameof(timeProvider));
StartUtc = startUtc;
CancellationToken = cancellationToken;
Analysis = new ScanAnalysisStore();
}
public IScanJobLease Lease { get; }
public TimeProvider TimeProvider { get; }
public DateTimeOffset StartUtc { get; }
public CancellationToken CancellationToken { get; }
public string JobId => Lease.JobId;
public string ScanId => Lease.ScanId;
/// <summary>
/// Gets the OCI image digest from job metadata, if available.
/// </summary>
public string? ImageDigest =>
Lease.Metadata.TryGetValue(ImageDigestMetadataKey, out var digest) ? digest : null;
public string? ReplayBundlePath { get; set; }
public ScanAnalysisStore Analysis { get; }
}