chore(runner): remove client secret and add UUID in runner

Signed-off-by: Bo-Yi.Wu <appleboy.tw@gmail.com>
This commit is contained in:
Bo-Yi.Wu
2022-10-15 20:03:33 +08:00
committed by Jason Song
parent bf5e3dc302
commit e08495af09
9 changed files with 122 additions and 167 deletions

View File

@ -1,22 +1,19 @@
package client
import (
"context"
"crypto/tls"
"net"
"net/http"
"time"
"gitea.com/gitea/act_runner/core"
"gitea.com/gitea/proto-go/ping/v1/pingv1connect"
"gitea.com/gitea/proto-go/runner/v1/runnerv1connect"
"github.com/bufbuild/connect-go"
"golang.org/x/net/http2"
)
// New returns a new runner client.
func New(endpoint, secret string, opts ...Option) *HTTPClient {
func New(endpoint string, opts ...Option) *HTTPClient {
cfg := &config{}
// Loop through each option
@ -25,15 +22,6 @@ func New(endpoint, secret string, opts ...Option) *HTTPClient {
opt.apply(cfg)
}
interceptor := connect.UnaryInterceptorFunc(func(next connect.UnaryFunc) connect.UnaryFunc {
return func(ctx context.Context, req connect.AnyRequest) (connect.AnyResponse, error) {
req.Header().Set(core.UUIDHeader, secret)
return next(ctx, req)
}
})
cfg.opts = append(cfg.opts, connect.WithInterceptors(interceptor))
if cfg.httpClient == nil {
cfg.httpClient = &http.Client{
Timeout: 1 * time.Minute,

View File

@ -1,8 +1,11 @@
package client
import (
"context"
"net/http"
"gitea.com/gitea/act_runner/core"
"github.com/bufbuild/connect-go"
)
@ -56,3 +59,21 @@ func WithGRPCWeb(c bool) Option {
cfg.opts = append(cfg.opts, connect.WithGRPCWeb())
})
}
// WithUUIDHeader add runner uuid in header
func WithUUIDHeader(uuid string) Option {
return OptionFunc(func(cfg *config) {
if uuid == "" {
return
}
cfg.opts = append(
cfg.opts,
connect.WithInterceptors(connect.UnaryInterceptorFunc(func(next connect.UnaryFunc) connect.UnaryFunc {
return func(ctx context.Context, req connect.AnyRequest) (connect.AnyResponse, error) {
req.Header().Set(core.UUIDHeader, uuid)
return next(ctx, req)
}
})),
)
})
}