diff --git a/routers/web/repo/runners.go b/routers/web/repo/runners.go index f6bd497035..7a35533327 100644 --- a/routers/web/repo/runners.go +++ b/routers/web/repo/runners.go @@ -1,26 +1,63 @@ package repo import ( - "net/http" + "net/url" - "code.gitea.io/gitea/models/webhook" + bots_model "code.gitea.io/gitea/models/bots" + "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/modules/context" + "code.gitea.io/gitea/routers/common" +) + +const ( + tplRunners = "repo/settings/runners" + tplRunnerEdit = "repo/settings/runner_edit" ) // Runners render runners page func Runners(ctx *context.Context) { - ctx.Data["Title"] = ctx.Tr("repo.settings.hooks") - ctx.Data["PageIsSettingsHooks"] = true - ctx.Data["BaseLink"] = ctx.Repo.RepoLink + "/settings/hooks" - ctx.Data["BaseLinkNew"] = ctx.Repo.RepoLink + "/settings/hooks" - ctx.Data["Description"] = ctx.Tr("repo.settings.hooks_desc", "https://docs.gitea.io/en-us/webhooks/") + ctx.Data["Title"] = ctx.Tr("repo.settings.runners") + ctx.Data["PageIsSettingsRunners"] = true - ws, err := webhook.ListWebhooksByOpts(ctx, &webhook.ListWebhookOptions{RepoID: ctx.Repo.Repository.ID}) - if err != nil { - ctx.ServerError("GetWebhooksByRepoID", err) - return + page := ctx.FormInt("page") + if page <= 1 { + page = 1 } - ctx.Data["Webhooks"] = ws - ctx.HTML(http.StatusOK, tplHooks) + opts := bots_model.FindRunnerOptions{ + ListOptions: db.ListOptions{ + Page: page, + PageSize: 100, + }, + Sort: ctx.Req.URL.Query().Get("sort"), + Filter: ctx.Req.URL.Query().Get("q"), + WithDeleted: false, + RepoID: ctx.Repo.Repository.ID, + OwnerID: 0, + } + + common.RunnersList(ctx, tplRunners, opts) +} + +func RunnersEdit(ctx *context.Context) { + ctx.Data["Title"] = ctx.Tr("repo.settings.runners") + ctx.Data["PageIsSettingsRunners"] = true + + common.RunnerDetails(ctx, tplRunnerEdit, + ctx.ParamsInt64(":runnerid"), 0, ctx.Repo.Repository.ID, + ) +} + +func RunnersEditPost(ctx *context.Context) { + ctx.Data["Title"] = ctx.Tr("repo.settings.runners") + ctx.Data["PageIsSettingsRunners"] = true + common.RunnerDetailsEditPost(ctx, ctx.ParamsInt64(":runnerid"), + 0, ctx.Repo.Repository.ID, + ctx.Repo.RepoLink+"/settings/runners/"+url.PathEscape(ctx.Params(":runnerid"))) +} + +func ResetRunnerRegistrationToken(ctx *context.Context) { + common.RunnerResetRegistrationToken(ctx, + 0, ctx.Repo.Repository.ID, + ctx.Repo.RepoLink+"/settings/runners") } diff --git a/routers/web/web.go b/routers/web/web.go index 0dcb413b59..dc29528b52 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -967,6 +967,9 @@ func RegisterRoutes(m *web.Route) { m.Group("/runners", func() { m.Get("", repo.Runners) + m.Combo("/{runnerid}").Get(repo.RunnersEdit). + Post(bindIgnErr(forms.EditRunnerForm{}), repo.RunnersEditPost) + m.Get("/reset_registration_token", repo.ResetRunnerRegistrationToken) }) }, func(ctx *context.Context) { diff --git a/templates/repo/settings/runner_edit.tmpl b/templates/repo/settings/runner_edit.tmpl new file mode 100644 index 0000000000..8814ffb0c8 --- /dev/null +++ b/templates/repo/settings/runner_edit.tmpl @@ -0,0 +1,9 @@ +{{template "base/head" .}} +