Preserve candidate failures when initializing publication records

This commit is contained in:
2026-11-02 22:17:29 +00:00
parent da1839c6d2
commit 0d19a5546f
3 changed files with 72 additions and 6 deletions

View File

@@ -107,7 +107,7 @@ func Publish(ctx context.Context, request Request) (result Result, resultErr err
AdditionalChecks: request.AdditionalChecks,
Output: request.Output,
}
captured, err := candidate.Capture(ctx, checks)
captured, captureErr := candidate.Capture(ctx, checks)
result.RepositoryDir = captured.RepositoryDir
result.ModuleDir = captured.ModuleDir
result.ModulePath = captured.ModulePath
@@ -117,15 +117,16 @@ func Publish(ctx context.Context, request Request) (result Result, resultErr err
if captured.RepositoryDir != "" {
initialized = true
result.Evidence.RecordedAt = time.Now().UTC().Format(time.RFC3339Nano)
recordDir, repositoryRoot, err = resolveRecordDir(captured.RepositoryDir, request.RecordDir)
if err != nil {
result.RecordError = &RecoveryError{Kind: "record_write", cause: err}
var storageErr error
recordDir, repositoryRoot, storageErr = resolveRecordDir(captured.RepositoryDir, request.RecordDir)
if storageErr != nil {
result.RecordError = &RecoveryError{Kind: "record_write", cause: storageErr}
recordDir = ""
recorded = true
}
}
if err != nil {
return result, fmt.Errorf("capture release candidate: %w", err)
if captureErr != nil {
return result, fmt.Errorf("capture release candidate: %w", captureErr)
}
endpoint, err := git.Resolve(ctx, captured.RepositoryDir, remoteName)