aboutsummaryrefslogtreecommitdiffstats
path: root/routers/api/actions
diff options
context:
space:
mode:
authorsillyguodong <33891828+sillyguodong@users.noreply.github.com>2023-03-20 10:19:40 +0800
committerGitHub <noreply@github.com>2023-03-19 22:19:40 -0400
commit371520d7ab5c018c380f8f7981a8be7d40a01f72 (patch)
tree084dd96049824c148aee3139a48e627d0281f37b /routers/api/actions
parentaf3711100a7dc73e8c2482667bbccdcd049e25e0 (diff)
downloadgitea-371520d7ab5c018c380f8f7981a8be7d40a01f72.tar.gz
gitea-371520d7ab5c018c380f8f7981a8be7d40a01f72.zip
Display the version of runner in the runner list (#23490)
Close: #23489 ### Change 1. Add version column to action_runner table. 2. Read the runner version from the request header, and update it in DB. 3. Display version in runner list ### Screenshot ![image](https://user-images.githubusercontent.com/33891828/225220990-98bc0158-4403-4e6c-9805-31bbbc65a802.png)
Diffstat (limited to 'routers/api/actions')
-rw-r--r--routers/api/actions/runner/interceptor.go17
1 files changed, 15 insertions, 2 deletions
diff --git a/routers/api/actions/runner/interceptor.go b/routers/api/actions/runner/interceptor.go
index 8c0bd86ecb..d97b78f851 100644
--- a/routers/api/actions/runner/interceptor.go
+++ b/routers/api/actions/runner/interceptor.go
@@ -21,8 +21,11 @@ import (
)
const (
- uuidHeaderKey = "x-runner-uuid"
- tokenHeaderKey = "x-runner-token"
+ uuidHeaderKey = "x-runner-uuid"
+ tokenHeaderKey = "x-runner-token"
+ versionHeaderKey = "x-runner-version"
+
+ versionUnknown = "Unknown"
)
var withRunner = connect.WithInterceptors(connect.UnaryInterceptorFunc(func(unaryFunc connect.UnaryFunc) connect.UnaryFunc {
@@ -33,6 +36,12 @@ var withRunner = connect.WithInterceptors(connect.UnaryInterceptorFunc(func(unar
}
uuid := request.Header().Get(uuidHeaderKey)
token := request.Header().Get(tokenHeaderKey)
+ version := request.Header().Get(versionHeaderKey)
+ if util.IsEmptyString(version) {
+ version = versionUnknown
+ }
+ version, _ = util.SplitStringAtByteN(version, 64)
+
runner, err := actions_model.GetRunnerByUUID(ctx, uuid)
if err != nil {
if errors.Is(err, util.ErrNotExist) {
@@ -45,6 +54,10 @@ var withRunner = connect.WithInterceptors(connect.UnaryInterceptorFunc(func(unar
}
cols := []string{"last_online"}
+ if runner.Version != version {
+ runner.Version = version
+ cols = append(cols, "version")
+ }
runner.LastOnline = timeutil.TimeStampNow()
if methodName == "UpdateTask" || methodName == "UpdateLog" {
runner.LastActive = timeutil.TimeStampNow()