aboutsummaryrefslogtreecommitdiffstats
path: root/routers/private/actions.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2023-09-27 13:37:48 +0800
committerGitHub <noreply@github.com>2023-09-27 05:37:48 +0000
commit3b2da7e4aeed8e2d070b9ce5c66282b16eeb87f1 (patch)
tree577f6a18be7953ca684444c90d9c0873f805fc14 /routers/private/actions.go
parentee27b94b2c84f6604cb0428d6c2a5611161aac14 (diff)
downloadgitea-3b2da7e4aeed8e2d070b9ce5c66282b16eeb87f1.tar.gz
gitea-3b2da7e4aeed8e2d070b9ce5c66282b16eeb87f1.zip
Redefine the meaning of column is_active to make Actions Registration Token generation easier (#27143)
Partially Fix #25041 This PR redefined the meaning of column `is_active` in table `action_runner_token`. Before this PR, `is_active` means whether it has been used by any runner. If it's true, other runner cannot use it to register again. In this PR, `is_active` means whether it's validated to be used to register runner. And if it's true, then it can be used to register runners until it become false. When creating a new `is_active` register token, any previous tokens will be set `is_active` to false.
Diffstat (limited to 'routers/private/actions.go')
-rw-r--r--routers/private/actions.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/routers/private/actions.go b/routers/private/actions.go
index 2403b9c41a..74515256da 100644
--- a/routers/private/actions.go
+++ b/routers/private/actions.go
@@ -41,8 +41,8 @@ func GenerateActionsRunnerToken(ctx *context.PrivateContext) {
})
}
- token, err := actions_model.GetUnactivatedRunnerToken(ctx, owner, repo)
- if errors.Is(err, util.ErrNotExist) {
+ token, err := actions_model.GetLastestRunnerToken(ctx, owner, repo)
+ if errors.Is(err, util.ErrNotExist) || (token != nil && !token.IsActive) {
token, err = actions_model.NewRunnerToken(ctx, owner, repo)
if err != nil {
err := fmt.Sprintf("error while creating runner token: %v", err)