fix: detect UpstreamError with errors.As in isNetworkError
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful

The stale-on-error path used a bare type assertion, which fails if the
UpstreamError is ever wrapped. Use errors.As so wrapping is handled.

Refs #68
This commit is contained in:
2026-07-02 00:27:43 +10:00
parent 8d9bc1c422
commit b125630a86
+3 -4
View File
@@ -5,6 +5,7 @@ import (
"crypto/sha256" "crypto/sha256"
"encoding/hex" "encoding/hex"
"encoding/json" "encoding/json"
"errors"
"fmt" "fmt"
"io" "io"
"log/slog" "log/slog"
@@ -431,8 +432,6 @@ func (e *UpstreamError) Error() string { return fmt.Sprintf("upstream error: %v"
func (e *UpstreamError) Unwrap() error { return e.Err } func (e *UpstreamError) Unwrap() error { return e.Err }
func isNetworkError(err error) bool { func isNetworkError(err error) bool {
if _, ok := err.(*UpstreamError); ok { var ue *UpstreamError
return true return errors.As(err, &ue)
}
return false
} }