Complete shared validation foundation

This commit is contained in:
2026-10-07 18:41:29 +00:00
parent 89c5b2c1fd
commit f53354be5f
4 changed files with 39 additions and 23 deletions

View File

@@ -42,14 +42,7 @@ type ReleaseRequest struct {
// branch, HEAD, worktree, index, and local tag state. Success establishes local
// candidate evidence only; it does not establish remote availability.
func Check(ctx context.Context, request ReleaseRequest) (Candidate, error) {
checked, err := candidate.Check(ctx, candidate.Request{
RepositoryDir: request.RepositoryDir,
Product: request.Product,
Version: request.Version,
AdditionalChecks: candidateChecks(request.AdditionalChecks),
AfterValidate: internalbuild.CandidateCallback(internalBuildSpec(request.Build), request.Output),
Output: request.Output,
})
checked, err := candidate.Check(ctx, candidateRequest(request))
if err != nil {
return Candidate{}, convertValidationError(err)
}
@@ -60,6 +53,17 @@ func Check(ctx context.Context, request ReleaseRequest) (Candidate, error) {
}, nil
}
func candidateRequest(request ReleaseRequest) candidate.Request {
return candidate.Request{
RepositoryDir: request.RepositoryDir,
Product: request.Product,
Version: request.Version,
AdditionalChecks: candidateChecks(request.AdditionalChecks),
AfterValidate: internalbuild.CandidateCallback(internalBuildSpec(request.Build), request.Output),
Output: request.Output,
}
}
func candidateChecks(checks func(context.Context, Candidate) error) func(context.Context, candidate.Candidate) error {
if checks == nil {
return nil