diff --git a/gitea/client.go b/gitea/client.go index 52f86ff..22f0eed 100644 --- a/gitea/client.go +++ b/gitea/client.go @@ -68,7 +68,7 @@ func NewClient(url string, options ...ClientOption) (*Client, error) { } } if err := client.checkServerVersionGreaterThanOrEqual(version1_11_0); err != nil { - if errors.As(err, &ErrUnknownVersion{}) { + if errors.Is(err, &ErrUnknownVersion{}) { return client, err } return nil, err diff --git a/gitea/version.go b/gitea/version.go index 95e84bc..e8df511 100644 --- a/gitea/version.go +++ b/gitea/version.go @@ -81,6 +81,12 @@ func (e ErrUnknownVersion) Error() string { return fmt.Sprintf("unknown version: %s", e.raw) } +func (_ ErrUnknownVersion) Is(target error) bool { + _, ok1 := target.(*ErrUnknownVersion) + _, ok2 := target.(ErrUnknownVersion) + return ok1 || ok2 +} + // checkServerVersionGreaterThanOrEqual is the canonical way in the SDK to check for versions for API compatibility reasons func (c *Client) checkServerVersionGreaterThanOrEqual(v *version.Version) error { if c.ignoreVersion { @@ -111,7 +117,7 @@ func (c *Client) loadServerVersion() (err error) { if strings.TrimSpace(raw) != "" { // Version was something, just not recognized c.serverVersion = version1_11_0 - err = ErrUnknownVersion{raw: raw} + err = &ErrUnknownVersion{raw: raw} } return }