save progress
This commit is contained in:
@@ -585,6 +585,42 @@ internal sealed class InMemoryLayerSbomService : ILayerSbomService
|
||||
// Not implemented for tests
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public Task<byte[]?> GetComposedSbomAsync(
|
||||
ScanId scanId,
|
||||
string format,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
// Return the first matching layer SBOM for testing purposes
|
||||
var key = _layerSboms.Keys.FirstOrDefault(k => k.ScanId == scanId.Value && k.Format == format);
|
||||
if (key != default && _layerSboms.TryGetValue(key, out var sbom))
|
||||
{
|
||||
return Task.FromResult<byte[]?>(sbom);
|
||||
}
|
||||
return Task.FromResult<byte[]?>(null);
|
||||
}
|
||||
|
||||
public Task<IReadOnlyList<SbomLayerFragment>?> GetLayerFragmentsAsync(
|
||||
ScanId scanId,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (!_scans.TryGetValue(scanId.Value, out var scanData))
|
||||
{
|
||||
return Task.FromResult<IReadOnlyList<SbomLayerFragment>?>(null);
|
||||
}
|
||||
|
||||
var fragments = scanData.Layers
|
||||
.OrderBy(l => l.Order)
|
||||
.Select(l => new SbomLayerFragment
|
||||
{
|
||||
LayerDigest = l.LayerDigest,
|
||||
Order = l.Order,
|
||||
ComponentPurls = new List<string> { $"pkg:test/layer{l.Order}@1.0.0" }
|
||||
})
|
||||
.ToList();
|
||||
|
||||
return Task.FromResult<IReadOnlyList<SbomLayerFragment>?>(fragments);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user