45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
|
// Copyright 2020 The Gitea Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a MIT-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package gitea
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
// CronTask represents a Cron task
|
||
|
type CronTask struct {
|
||
|
Name string `json:"name"`
|
||
|
Schedule string `json:"schedule"`
|
||
|
Next time.Time `json:"next"`
|
||
|
Prev time.Time `json:"prev"`
|
||
|
ExecTimes int64 `json:"exec_times"`
|
||
|
}
|
||
|
|
||
|
// ListCronTaskOptions list options for ListCronTasks
|
||
|
type ListCronTaskOptions struct {
|
||
|
ListOptions
|
||
|
}
|
||
|
|
||
|
// ListCronTasks list available cron tasks
|
||
|
func (c *Client) ListCronTasks(opt ListCronTaskOptions) ([]*CronTask, *Response, error) {
|
||
|
if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
|
||
|
return nil, nil, err
|
||
|
}
|
||
|
opt.setDefaults()
|
||
|
ct := make([]*CronTask, 0, opt.PageSize)
|
||
|
resp, err := c.getParsedResponse("GET", fmt.Sprintf("/admin/cron?%s", opt.getURLQuery().Encode()), jsonHeader, nil, &ct)
|
||
|
return ct, resp, err
|
||
|
}
|
||
|
|
||
|
// RunCronTasks run a cron task
|
||
|
func (c *Client) RunCronTasks(task string) (*Response, error) {
|
||
|
if err := c.CheckServerVersionConstraint(">=1.13.0"); err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
_, resp, err := c.getResponse("POST", fmt.Sprintf("/admin/cron/%s", task), jsonHeader, nil)
|
||
|
return resp, err
|
||
|
}
|