From 28a89e360f720c5ca7fb71319beb2519adad5972 Mon Sep 17 00:00:00 2001 From: HesterG Date: Wed, 31 May 2023 09:39:54 +0800 Subject: [PATCH] Add user level action runners (#24995) Used similar logic to organization. Screen Shot 2023-05-30 at 10 18 06 Screen Shot 2023-05-30 at 10 31 18 --- models/actions/runner.go | 6 +++++- routers/web/repo/setting/runners.go | 16 +++++++++++++++- .../web/user/setting/{secrets.go => runner.go} | 2 +- routers/web/web.go | 1 + templates/user/settings/actions.tmpl | 2 ++ templates/user/settings/navbar.tmpl | 3 +++ templates/user/settings/runner_edit.tmpl | 5 +++++ 7 files changed, 32 insertions(+), 3 deletions(-) rename routers/web/user/setting/{secrets.go => runner.go} (80%) create mode 100644 templates/user/settings/runner_edit.tmpl diff --git a/models/actions/runner.go b/models/actions/runner.go index f1638eb0ba..bf703c444b 100644 --- a/models/actions/runner.go +++ b/models/actions/runner.go @@ -69,7 +69,11 @@ func (r *ActionRunner) BelongsToOwnerType() types.OwnerType { return types.OwnerTypeRepository } if r.OwnerID != 0 { - return types.OwnerTypeOrganization + if r.Owner.Type == user_model.UserTypeOrganization { + return types.OwnerTypeOrganization + } else if r.Owner.Type == user_model.UserTypeIndividual { + return types.OwnerTypeIndividual + } } return types.OwnerTypeSystemGlobal } diff --git a/routers/web/repo/setting/runners.go b/routers/web/repo/setting/runners.go index e8ad635826..2c192e9790 100644 --- a/routers/web/repo/setting/runners.go +++ b/routers/web/repo/setting/runners.go @@ -21,9 +21,11 @@ const ( tplRepoRunners base.TplName = "repo/settings/actions" tplOrgRunners base.TplName = "org/settings/actions" tplAdminRunners base.TplName = "admin/actions" + tplUserRunners base.TplName = "user/settings/actions" tplRepoRunnerEdit base.TplName = "repo/settings/runner_edit" tplOrgRunnerEdit base.TplName = "org/settings/runners_edit" tplAdminRunnerEdit base.TplName = "admin/runners/edit" + tplUserRunnerEdit base.TplName = "user/settings/runner_edit" ) type runnersCtx struct { @@ -32,6 +34,7 @@ type runnersCtx struct { IsRepo bool IsOrg bool IsAdmin bool + IsUser bool RunnersTemplate base.TplName RunnerEditTemplate base.TplName RedirectLink string @@ -71,6 +74,17 @@ func getRunnersCtx(ctx *context.Context) (*runnersCtx, error) { }, nil } + if ctx.Data["PageIsUserSettings"] == true { + return &runnersCtx{ + OwnerID: ctx.Doer.ID, + RepoID: 0, + IsUser: true, + RunnersTemplate: tplUserRunners, + RunnerEditTemplate: tplUserRunnerEdit, + RedirectLink: setting.AppSubURL + "/user/settings/actions/runners/", + }, nil + } + return nil, errors.New("unable to set Runners context") } @@ -102,7 +116,7 @@ func Runners(ctx *context.Context) { if rCtx.IsRepo { opts.RepoID = rCtx.RepoID opts.WithAvailable = true - } else if rCtx.IsOrg { + } else if rCtx.IsOrg || rCtx.IsUser { opts.OwnerID = rCtx.OwnerID opts.WithAvailable = true } diff --git a/routers/web/user/setting/secrets.go b/routers/web/user/setting/runner.go similarity index 80% rename from routers/web/user/setting/secrets.go rename to routers/web/user/setting/runner.go index eb09477bdb..451fd0ca97 100644 --- a/routers/web/user/setting/secrets.go +++ b/routers/web/user/setting/runner.go @@ -9,5 +9,5 @@ import ( ) func RedirectToDefaultSetting(ctx *context.Context) { - ctx.Redirect(setting.AppSubURL + "/user/settings/actions/secrets") + ctx.Redirect(setting.AppSubURL + "/user/settings/actions/runners") } diff --git a/routers/web/web.go b/routers/web/web.go index a70e9cc3d3..ef47b6679f 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -492,6 +492,7 @@ func registerRoutes(m *web.Route) { m.Group("/actions", func() { m.Get("", user_setting.RedirectToDefaultSetting) + addSettingsRunnersRoutes() addSettingsSecretsRoutes() }, actions.MustEnableActions) diff --git a/templates/user/settings/actions.tmpl b/templates/user/settings/actions.tmpl index 4d56523587..57cdae4469 100644 --- a/templates/user/settings/actions.tmpl +++ b/templates/user/settings/actions.tmpl @@ -2,6 +2,8 @@
{{if eq .PageType "secrets"}} {{template "shared/secrets/add_list" .}} + {{else if eq .PageType "runners"}} + {{template "shared/actions/runner_list" .}} {{end}}
diff --git a/templates/user/settings/navbar.tmpl b/templates/user/settings/navbar.tmpl index b79308419b..26f4982029 100644 --- a/templates/user/settings/navbar.tmpl +++ b/templates/user/settings/navbar.tmpl @@ -23,6 +23,9 @@
{{.locale.Tr "actions.actions"}}