save checkpoint: save features

This commit is contained in:
master
2026-02-12 10:27:23 +02:00
parent dca86e1248
commit 5bca406787
8837 changed files with 1796879 additions and 5294 deletions

View File

@@ -5,10 +5,10 @@
// -----------------------------------------------------------------------------
using System.Diagnostics;
using System.Text;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using StellaOps.BinaryIndex.Builders;
using StellaOps.BinaryIndex.Persistence.Repositories;
namespace StellaOps.BinaryIndex.Worker.Jobs;
@@ -153,7 +153,7 @@ public sealed class ReproducibleBuildJob : IReproducibleBuildJob
Options = new BuildOptions
{
Timeout = _options.BuildTimeout,
CacheIntermediates = true
KeepBuildArtifacts = true
}
};
@@ -194,7 +194,7 @@ public sealed class ReproducibleBuildJob : IReproducibleBuildJob
private async Task CreateClaimsAsync(
CveAttribution cve,
PatchDiffResult diff,
FunctionDiffResult diff,
BuildResult vulnerableBuild,
BuildResult patchedBuild,
CancellationToken ct)
@@ -212,7 +212,7 @@ public sealed class ReproducibleBuildJob : IReproducibleBuildJob
var claim = new FingerprintClaim
{
Id = Guid.NewGuid(),
FingerprintId = Guid.Parse(binary.BuildId), // Assuming BuildId is GUID-like
FingerprintId = ToDeterministicGuid(binary.BuildId),
CveId = cve.CveId,
Verdict = ClaimVerdict.Fixed,
Evidence = new FingerprintClaimEvidence
@@ -237,7 +237,7 @@ public sealed class ReproducibleBuildJob : IReproducibleBuildJob
var claim = new FingerprintClaim
{
Id = Guid.NewGuid(),
FingerprintId = Guid.Parse(binary.BuildId),
FingerprintId = ToDeterministicGuid(binary.BuildId),
CveId = cve.CveId,
Verdict = ClaimVerdict.Vulnerable,
Evidence = new FingerprintClaimEvidence
@@ -261,6 +261,19 @@ public sealed class ReproducibleBuildJob : IReproducibleBuildJob
"Created {Count} fingerprint claims for CVE {CveId}",
claims.Count, cve.CveId);
}
private static Guid ToDeterministicGuid(string buildId)
{
if (Guid.TryParse(buildId, out var parsed))
{
return parsed;
}
var hash = System.Security.Cryptography.SHA256.HashData(Encoding.UTF8.GetBytes(buildId));
Span<byte> guidBytes = stackalloc byte[16];
hash.AsSpan(0, 16).CopyTo(guidBytes);
return new Guid(guidBytes);
}
}
/// <summary>