Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gitea-runner for openSUSE:Factory checked in at 2026-11-02 16:41:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gitea-runner (Old) and /work/SRC/openSUSE:Factory/.gitea-runner.new.1255 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gitea-runner" Mon Nov 2 16:41:00 2026 rev:9 rq:1394459 version:5.3.0 Changes: -------- --- /work/SRC/openSUSE:Factory/gitea-runner/gitea-runner.changes 2026-10-28 17:49:10.985680337 +0100 +++ /work/SRC/openSUSE:Factory/.gitea-runner.new.1255/gitea-runner.changes 2026-11-02 16:41:36.021331445 +0100 @@ -1,0 +2,12 @@ +Mon Nov 2 13:11:40 UTC 2026 - Elisei Roca <[email protected]> + +- Update to version 5.3.0: + * fix(dind): double-fork in s6-notifyoncheck to eliminate zombie processes (#1364) + * enhance(kubernetes): fetch job pod copies from the runner over the pod network (#1354) + * fix(exec): load local reusable workflows from disk with --no-skip-checkout (#1362) + * enhance(cache): scope cache entries by ref like GitHub (#1361) + * enhance: add GITEA_* aliases for built-in workflow environment variables (#1358) + * fix: scope the action identity to the step executing an action (#1359) + * fix: stop the docker proxy probe from leaking its container (#1357) + +------------------------------------------------------------------- Old: ---- runner-5.2.4.tar.gz New: ---- runner-5.3.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gitea-runner.spec ++++++ --- /var/tmp/diff_new_pack.ZRUJve/_old 2026-11-02 16:41:37.535394609 +0100 +++ /var/tmp/diff_new_pack.ZRUJve/_new 2026-11-02 16:41:37.537394692 +0100 @@ -17,7 +17,7 @@ Name: gitea-runner -Version: 5.2.4 +Version: 5.3.0 Release: 0 Summary: Gitea Runner for Gitea Actions License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.ZRUJve/_old 2026-11-02 16:41:37.578396403 +0100 +++ /var/tmp/diff_new_pack.ZRUJve/_new 2026-11-02 16:41:37.582396570 +0100 @@ -5,7 +5,7 @@ <param name="exclude">.git</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> - <param name="revision">v5.2.4</param> + <param name="revision">v5.3.0</param> <param name="changesgenerate">enable</param> </service> <service name="recompress" mode="manual"> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.ZRUJve/_old 2026-11-02 16:41:37.609397696 +0100 +++ /var/tmp/diff_new_pack.ZRUJve/_new 2026-11-02 16:41:37.612397821 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://gitea.com/gitea/runner.git</param> - <param name="changesrevision">ffd80101a317d6c3ef922dfb4856b629b3d60064</param></service></servicedata> + <param name="changesrevision">6e42621b4ad33e77bd20c1ba8bdf1ba2dd96011a</param></service></servicedata> (No newline at EOF) ++++++ runner-5.2.4.tar.gz -> runner-5.3.0.tar.gz ++++++ ++++ 4298 lines of diff (skipped) ++++++ vendor.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/connectrpc.com/connect/v2/connect.go new/vendor/connectrpc.com/connect/v2/connect.go --- old/vendor/connectrpc.com/connect/v2/connect.go 2026-10-28 07:00:51.000000000 +0100 +++ new/vendor/connectrpc.com/connect/v2/connect.go 2026-11-02 09:16:42.000000000 +0100 @@ -38,7 +38,7 @@ ) // Version is the semantic version of the connect module. -const Version = "2.0.1" +const Version = "2.0.2" // Well-known codec names. const ( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/connectrpc.com/connect/v2/connecthttp/compression.go new/vendor/connectrpc.com/connect/v2/connecthttp/compression.go --- old/vendor/connectrpc.com/connect/v2/connecthttp/compression.go 2026-10-28 07:00:51.000000000 +0100 +++ new/vendor/connectrpc.com/connect/v2/connecthttp/compression.go 2026-11-02 09:16:42.000000000 +0100 @@ -55,11 +55,7 @@ return connect.Errorf(connect.CodeInvalidArgument, "decompress: %s", err).WithCause(err) } if readMaxBytes > 0 && bytesRead > readMaxBytes { - discardedBytes, err := io.Copy(io.Discard, decompressor) - if err != nil { - return connect.Errorf(connect.CodeResourceExhausted, "message is larger than configured max %d - unable to determine message size: %s", readMaxBytes, err).WithCause(err) - } - return connect.Errorf(connect.CodeResourceExhausted, "message size %d is larger than configured max %d", bytesRead+discardedBytes, readMaxBytes) + return connect.Errorf(connect.CodeResourceExhausted, "message is larger than configured max %d", readMaxBytes) } return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/connectrpc.com/connect/v2/connecthttp/connecthttp.go new/vendor/connectrpc.com/connect/v2/connecthttp/connecthttp.go --- old/vendor/connectrpc.com/connect/v2/connecthttp/connecthttp.go 2026-10-28 07:00:51.000000000 +0100 +++ new/vendor/connectrpc.com/connect/v2/connecthttp/connecthttp.go 2026-11-02 09:16:42.000000000 +0100 @@ -27,6 +27,7 @@ "slices" "strings" "sync" + "sync/atomic" "connectrpc.com/connect/v2" "connectrpc.com/connect/v2/connectgzip" @@ -41,14 +42,11 @@ } // ClientInfo is the HTTP metadata for a client RPC, carried on -// [connect.CallInfo.TransportInfo]. -// -// Request-side accessors are safe to read once the first Send (or Receive) -// returns, response-side accessors once the first Receive returns. Reading -// them earlier on a streaming RPC races the transport's dispatch goroutine. +// [connect.CallInfo.TransportInfo]. Its methods are safe for concurrent use. +// They return zero values until the request is sent or the response arrives. type ClientInfo struct { - request *http.Request - response *http.Response + request atomic.Pointer[http.Request] + response atomic.Pointer[clientResponseInfo] } // ClientInfoForContext returns the [*ClientInfo] carried on the client-side @@ -68,47 +66,66 @@ // HTTPMethod is the HTTP method of the dispatched request, "POST" by // default, "GET" when [WithHTTPGet] upgrades a side-effect-free unary call. func (c *ClientInfo) HTTPMethod() string { - if c == nil || c.request == nil { + request := c.loadRequest() + if request == nil { return "" } - return c.request.Method + return request.Method } // RequestURL is the URL the transport dispatched to. Returned by // value, so callers may inspect or modify their copy without // affecting the live request. func (c *ClientInfo) RequestURL() url.URL { - if c == nil || c.request == nil || c.request.URL == nil { + request := c.loadRequest() + if request == nil || request.URL == nil { return url.URL{} } - return *c.request.URL + return *request.URL } // ResponseStatus is the HTTP status code returned by the server. Zero // before the response arrives. func (c *ClientInfo) ResponseStatus() int { - if c == nil || c.response == nil { + response := c.loadResponse() + if response == nil { return 0 } - return c.response.StatusCode + return response.status } // ResponseProto is the HTTP protocol version reported on the // response, e.g. "HTTP/2.0". Empty before the response arrives. func (c *ClientInfo) ResponseProto() string { - if c == nil || c.response == nil { + response := c.loadResponse() + if response == nil { return "" } - return c.response.Proto + return response.proto } // TLS is the TLS connection state for the response, or nil if the // transport was plain HTTP or the response has not yet arrived. func (c *ClientInfo) TLS() *tls.ConnectionState { - if c == nil || c.response == nil { + response := c.loadResponse() + if response == nil { + return nil + } + return response.tls +} + +func (c *ClientInfo) loadRequest() *http.Request { + if c == nil { return nil } - return c.response.TLS + return c.request.Load() +} + +func (c *ClientInfo) loadResponse() *clientResponseInfo { + if c == nil { + return nil + } + return c.response.Load() } // ServerInfo is the HTTP metadata for a server RPC, carried on @@ -289,6 +306,14 @@ }) } +// clientResponseInfo is the subset of the [http.Response] that [ClientInfo] +// exposes. +type clientResponseInfo struct { + status int + proto string + tls *tls.ConnectionState +} + type transport struct { httpClient HTTPClient options options @@ -339,10 +364,14 @@ info.Codec = sendCodecName info.RequestEncoding = encodingOrIdentity(opts.sendCompressor) conn.onRequestSend(func(request *http.Request) { - clientInfo.request = request + clientInfo.request.Store(request) }) conn.onResponseReceive(func(response *http.Response) { - clientInfo.response = response + clientInfo.response.Store(&clientResponseInfo{ + status: response.StatusCode, + proto: response.Proto, + tls: response.TLS, + }) }) if spec.StreamType == connect.StreamTypeUnary { return &connectUnaryClientStream{conn: conn, info: info, protoClient: protocolClient, streamType: spec.StreamType}, nil diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/connectrpc.com/connect/v2/connecthttp/protocol.go new/vendor/connectrpc.com/connect/v2/connecthttp/protocol.go --- old/vendor/connectrpc.com/connect/v2/connecthttp/protocol.go 2026-10-28 07:00:51.000000000 +0100 +++ new/vendor/connectrpc.com/connect/v2/connecthttp/protocol.go 2026-11-02 09:16:42.000000000 +0100 @@ -276,6 +276,15 @@ return strings.Join(accept, ", ") } +// addContentTypes adds the content type for codecName. JSON requests may +// also send "; charset=utf-8", so that variant is advertised too. +func addContentTypes(contentTypes map[string]struct{}, prefix, codecName string) { + contentTypes[canonicalizeContentType(prefix+codecName)] = struct{}{} + if codecName == connect.CodecNameJSON { + contentTypes[prefix+codecNameJSONCharsetUTF8] = struct{}{} + } +} + func sortedAllowMethodValue(handlers []protocolHandler) string { methods := make(map[string]struct{}) for _, handler := range handlers { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/connectrpc.com/connect/v2/connecthttp/protocol_connect.go new/vendor/connectrpc.com/connect/v2/connecthttp/protocol_connect.go --- old/vendor/connectrpc.com/connect/v2/connecthttp/protocol_connect.go 2026-10-28 07:00:51.000000000 +0100 +++ new/vendor/connectrpc.com/connect/v2/connecthttp/protocol_connect.go 2026-11-02 09:16:42.000000000 +0100 @@ -76,13 +76,13 @@ methods[http.MethodGet] = struct{}{} } + prefix := connectStreamingContentTypePrefix + if params.spec.StreamType == connect.StreamTypeUnary { + prefix = connectUnaryContentTypePrefix + } contentTypes := make(map[string]struct{}) for _, name := range params.Codecs.Names() { - if params.spec.StreamType == connect.StreamTypeUnary { - contentTypes[canonicalizeContentType(connectUnaryContentTypePrefix+name)] = struct{}{} - continue - } - contentTypes[canonicalizeContentType(connectStreamingContentTypePrefix+name)] = struct{}{} + addContentTypes(contentTypes, prefix, name) } return &connectHandler{ @@ -1197,12 +1197,7 @@ return connect.Errorf(connect.CodeUnknown, "read message: %s", err).WithCause(err) } if u.readMaxBytes > 0 && bytesRead > int64(u.readMaxBytes) { - // Attempt to read to end in order to allow connection re-use - discardedBytes, err := io.Copy(io.Discard, u.reader) - if err != nil { - return connect.Errorf(connect.CodeResourceExhausted, "message is larger than configured max %d - unable to determine message size: %s", u.readMaxBytes, err).WithCause(err) - } - return connect.Errorf(connect.CodeResourceExhausted, "message size %d is larger than configured max %d", bytesRead+discardedBytes, u.readMaxBytes) + return connect.Errorf(connect.CodeResourceExhausted, "message is larger than configured max %d", u.readMaxBytes) } compressedSize := 0 if data.Len() > 0 && u.compressionPool != nil { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/connectrpc.com/connect/v2/connecthttp/protocol_grpc.go new/vendor/connectrpc.com/connect/v2/connecthttp/protocol_grpc.go --- old/vendor/connectrpc.com/connect/v2/connecthttp/protocol_grpc.go 2026-10-28 07:00:51.000000000 +0100 +++ new/vendor/connectrpc.com/connect/v2/connecthttp/protocol_grpc.go 2026-11-02 09:16:42.000000000 +0100 @@ -96,7 +96,7 @@ } contentTypes := make(map[string]struct{}) for _, name := range params.Codecs.Names() { - contentTypes[canonicalizeContentType(prefix+name)] = struct{}{} + addContentTypes(contentTypes, prefix, name) } if params.Codecs.Get(connect.CodecNameProto) != nil { contentTypes[bare] = struct{}{} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/connectrpc.com/connect/v2/connecthttp/server_stream.go new/vendor/connectrpc.com/connect/v2/connecthttp/server_stream.go --- old/vendor/connectrpc.com/connect/v2/connecthttp/server_stream.go 2026-10-28 07:00:51.000000000 +0100 +++ new/vendor/connectrpc.com/connect/v2/connecthttp/server_stream.go 2026-11-02 09:16:42.000000000 +0100 @@ -76,7 +76,16 @@ return nil } -func (s *handlerStream) SendHeaders() error { return nil } +func (s *handlerStream) SendHeaders() error { + // Unary responses defer headers to Send or handler return. The Connect + // unary protocol encodes errors in the HTTP status, so flushing now would + // commit a 200 and hide a later handler error. + if s.unary || s.headerFlushed { + return nil + } + s.flushHeader() + return s.conn.Send(nil) +} func (s *handlerStream) Send(msg any) error { s.flushHeader() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/gitea.dev/actionslib/pkg/model/workflow.go new/vendor/gitea.dev/actionslib/pkg/model/workflow.go --- old/vendor/gitea.dev/actionslib/pkg/model/workflow.go 2026-10-28 07:00:51.000000000 +0100 +++ new/vendor/gitea.dev/actionslib/pkg/model/workflow.go 2026-11-02 09:16:42.000000000 +0100 @@ -699,11 +699,10 @@ // ParseActionUses parses a StepTypeUsesActionRemote `uses`, leaving the host to the consumer. func ParseActionUses(uses string) (*ActionUses, error) { if subPath, ok := strings.CutPrefix(uses, selfRepoPrefix); ok { - subPath = strings.TrimLeft(subPath, "/") - if subPath == "" || strings.Contains(subPath, "@") || path.Clean("/"+subPath) != "/"+subPath { + if strings.Contains(subPath, "@") || slices.Contains(strings.Split(subPath, "/"), "..") { return nil, fmt.Errorf("invalid action %q, expected $/{path} without a ref", uses) } - return &ActionUses{Kind: ActionUsesSelfRepo, Path: subPath}, nil + return &ActionUses{Kind: ActionUsesSelfRepo, Path: strings.TrimPrefix(path.Clean("/"+subPath), "/")}, nil } var parsed ActionUses rest := uses diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/bmatcuk/doublestar/v4/match.go new/vendor/github.com/bmatcuk/doublestar/v4/match.go --- old/vendor/github.com/bmatcuk/doublestar/v4/match.go 2026-10-28 07:00:51.000000000 +0100 +++ new/vendor/github.com/bmatcuk/doublestar/v4/match.go 2026-11-02 09:16:42.000000000 +0100 @@ -95,7 +95,7 @@ func doMatchWithSeparator(pattern, name string, separator rune, validate bool, caseInsensitive bool, doublestarPatternBacktrack, doublestarNameBacktrack, starPatternBacktrack, starNameBacktrack, patIdx, nameIdx int) (matched bool, err error) { patLen := len(pattern) nameLen := len(name) - startOfSegment := true + startOfSegment := patIdx == 0 || rune(pattern[patIdx-1]) == separator MATCH: for nameIdx < nameLen { if patIdx < patLen { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt --- old/vendor/modules.txt 2026-10-28 07:00:51.000000000 +0100 +++ new/vendor/modules.txt 2026-11-02 09:16:42.000000000 +0100 @@ -1,11 +1,11 @@ -# connectrpc.com/connect/v2 v2.0.1 +# connectrpc.com/connect/v2 v2.0.2 ## explicit; go 1.26.0 connectrpc.com/connect/v2 connectrpc.com/connect/v2/connectgzip connectrpc.com/connect/v2/connecthttp connectrpc.com/connect/v2/connectproto connectrpc.com/connect/v2/internal/bufferpool -# gitea.dev/actionslib v1.5.0 +# gitea.dev/actionslib v1.5.1 ## explicit; go 1.26.0 gitea.dev/actionslib/ping/v1 gitea.dev/actionslib/ping/v1/pingv1connect @@ -26,7 +26,7 @@ # github.com/beorn7/perks v1.0.1 ## explicit; go 1.11 github.com/beorn7/perks/quantile -# github.com/bmatcuk/doublestar/v4 v4.10.3 +# github.com/bmatcuk/doublestar/v4 v4.10.4 ## explicit; go 1.16 github.com/bmatcuk/doublestar/v4 # github.com/cespare/xxhash/v2 v2.3.0 @@ -250,7 +250,7 @@ go.yaml.in/yaml/v4/internal/libyaml go.yaml.in/yaml/v4/internal/plugin go.yaml.in/yaml/v4/plugin/limit -# golang.org/x/net v0.61.0 +# golang.org/x/net v0.62.0 ## explicit; go 1.26.0 golang.org/x/net/http/httpguts golang.org/x/net/http/httpproxy
