Check expected publication push URL
This commit is contained in:
@@ -5,9 +5,10 @@ annotated source tag:
|
||||
|
||||
```go
|
||||
result, err := releasekit.Publish(ctx, releasekit.ReleaseRequest{
|
||||
RepositoryDir: "/work/project",
|
||||
Product: "Example",
|
||||
Version: "v1.2.3",
|
||||
RepositoryDir: "/work/project",
|
||||
Product: "Example",
|
||||
Version: "v1.2.3",
|
||||
ExpectedPushURL: "ssh://git.example/owner/example.git",
|
||||
Validation: releasekit.ValidationSpec{
|
||||
Go: releasekit.GoValidationSpec{Race: true, FullVet: true},
|
||||
},
|
||||
@@ -23,6 +24,12 @@ fmt.Println(result.Version, result.CandidateCommit, result.TagObject)
|
||||
|
||||
Publication captures a clean candidate on `main`, validates its committed
|
||||
release note, and checks the selected remote before running candidate checks.
|
||||
Set `ExpectedPushURL` to require the effective push destination to match an
|
||||
exact string. Git URL rewrites are resolved first, and the push URL is compared
|
||||
when fetch and push URLs differ. A mismatch fails preflight before Go validation,
|
||||
callbacks, or tag creation; detect it with
|
||||
`errors.Is(err, releasekit.ErrUnexpectedPushURL)`. `Check` ignores this
|
||||
publication-only field.
|
||||
It runs one `go test -mod=readonly -count=1 ./...` suite with the available
|
||||
compatible local Go toolchain. Set `Validation.Go.Race` to run that suite with
|
||||
`-race`. Set `Validation.Go.FullVet` to run `go vet -mod=readonly ./...` after
|
||||
|
||||
Reference in New Issue
Block a user