diff options
author | sillyguodong <33891828+sillyguodong@users.noreply.github.com> | 2023-03-20 10:19:40 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-19 22:19:40 -0400 |
commit | 371520d7ab5c018c380f8f7981a8be7d40a01f72 (patch) | |
tree | 084dd96049824c148aee3139a48e627d0281f37b /routers/api/actions | |
parent | af3711100a7dc73e8c2482667bbccdcd049e25e0 (diff) | |
download | gitea-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.go | 17 |
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() |