diff --git a/models/actions/runner.go b/models/actions/runner.go index f1638eb0baa9..bf703c444b68 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 e8ad6358261c..2c192e9790a6 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 eb09477bdb00..451fd0ca97af 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 a70e9cc3d37a..ef47b6679fdb 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 4d56523587bc..57cdae446966 100644 --- a/templates/user/settings/actions.tmpl +++ b/templates/user/settings/actions.tmpl @@ -2,6 +2,8 @@