From bf5e3dc302e195dbe0b65688f5a642c372af0411 Mon Sep 17 00:00:00 2001 From: "Bo-Yi.Wu" Date: Sat, 15 Oct 2022 16:40:35 +0800 Subject: [PATCH] chore(runner): add runner uuid in http header. Signed-off-by: Bo-Yi.Wu --- client/http.go | 3 ++- config/config.go | 18 +++++++++++++++++- core/runner.go | 2 ++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/client/http.go b/client/http.go index 77a1911..88a7126 100644 --- a/client/http.go +++ b/client/http.go @@ -7,6 +7,7 @@ import ( "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" @@ -26,7 +27,7 @@ func New(endpoint, secret string, opts ...Option) *HTTPClient { interceptor := connect.UnaryInterceptorFunc(func(next connect.UnaryFunc) connect.UnaryFunc { return func(ctx context.Context, req connect.AnyRequest) (connect.AnyResponse, error) { - req.Header().Set("X-Runner-Token", secret) + req.Header().Set(core.UUIDHeader, secret) return next(ctx, req) } }) diff --git a/config/config.go b/config/config.go index 1e97a88..4a200fa 100644 --- a/config/config.go +++ b/config/config.go @@ -1,10 +1,14 @@ package config import ( + "encoding/json" "fmt" + "io" "os" "runtime" + "gitea.com/gitea/act_runner/core" + "github.com/appleboy/com/file" "github.com/joho/godotenv" "github.com/kelseyhightower/envconfig" ) @@ -52,7 +56,19 @@ func FromEnviron() (Config, error) { return cfg, err } - cfg.Client.Secret = cfg.Runner.Token + // check runner config exist + if file.IsFile(cfg.Runner.File) { + jsonFile, _ := os.Open(cfg.Runner.File) + defer jsonFile.Close() + byteValue, _ := io.ReadAll(jsonFile) + var runner core.Runner + if err := json.Unmarshal(byteValue, &runner); err != nil { + return cfg, err + } + if runner.UUID != "" { + cfg.Client.Secret = runner.UUID + } + } // runner config if cfg.Runner.Environ == nil { diff --git a/core/runner.go b/core/runner.go index 0ea6559..d4ca3b7 100644 --- a/core/runner.go +++ b/core/runner.go @@ -1,5 +1,7 @@ package core +const UUIDHeader = "x-runner-uuid" + // Runner struct type Runner struct { ID int64 `json:"id"`