Some checks failed
		
		
	
	Docs CI / lint-and-preview (push) Has been cancelled
				
			- Created SignerEndpointsTests to validate the SignDsse and VerifyReferrers endpoints. - Implemented StubBearerAuthenticationDefaults and StubBearerAuthenticationHandler for token-based authentication. - Developed ConcelierExporterClient for managing Trivy DB settings and export operations. - Added TrivyDbSettingsPageComponent for UI interactions with Trivy DB settings, including form handling and export triggering. - Implemented styles and HTML structure for Trivy DB settings page. - Created NotifySmokeCheck tool for validating Redis event streams and Notify deliveries.
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| namespace StellaOps.Excititor.Core;
 | |
| 
 | |
| public sealed record VexConsensusHold
 | |
| {
 | |
|     public VexConsensusHold(
 | |
|         string vulnerabilityId,
 | |
|         string productKey,
 | |
|         VexConsensus candidate,
 | |
|         DateTimeOffset requestedAt,
 | |
|         DateTimeOffset eligibleAt,
 | |
|         string reason)
 | |
|     {
 | |
|         if (string.IsNullOrWhiteSpace(vulnerabilityId))
 | |
|         {
 | |
|             throw new ArgumentException("Vulnerability id must be provided.", nameof(vulnerabilityId));
 | |
|         }
 | |
| 
 | |
|         if (string.IsNullOrWhiteSpace(productKey))
 | |
|         {
 | |
|             throw new ArgumentException("Product key must be provided.", nameof(productKey));
 | |
|         }
 | |
| 
 | |
|         if (eligibleAt < requestedAt)
 | |
|         {
 | |
|             throw new ArgumentOutOfRangeException(nameof(eligibleAt), "EligibleAt cannot be earlier than RequestedAt.");
 | |
|         }
 | |
| 
 | |
|         VulnerabilityId = vulnerabilityId.Trim();
 | |
|         ProductKey = productKey.Trim();
 | |
|         Candidate = candidate ?? throw new ArgumentNullException(nameof(candidate));
 | |
|         RequestedAt = requestedAt;
 | |
|         EligibleAt = eligibleAt;
 | |
|         Reason = string.IsNullOrWhiteSpace(reason) ? "unspecified" : reason.Trim();
 | |
|     }
 | |
| 
 | |
|     public string VulnerabilityId { get; }
 | |
| 
 | |
|     public string ProductKey { get; }
 | |
| 
 | |
|     public VexConsensus Candidate { get; }
 | |
| 
 | |
|     public DateTimeOffset RequestedAt { get; }
 | |
| 
 | |
|     public DateTimeOffset EligibleAt { get; }
 | |
| 
 | |
|     public string Reason { get; }
 | |
| }
 |