summaryrefslogtreecommitdiffstats
path: root/models/task.go
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2020-10-24 00:46:35 +0100
committerGitHub <noreply@github.com>2020-10-23 19:46:35 -0400
commitf40a2a4404e3eabf5e28ae43e1f395bb13176307 (patch)
treee4c0ece7b11704eba0e9e60cb10158dbb5399db8 /models/task.go
parent9b11c3e32037a77e53551127d26dbf54139aa2fc (diff)
downloadgitea-f40a2a4404e3eabf5e28ae43e1f395bb13176307.tar.gz
gitea-f40a2a4404e3eabf5e28ae43e1f395bb13176307.zip
Store task errors following migrations and display them (#13246)
* Store task errors following migrations and display them When migrate tasks fail store the error in the task table and ensure that they show on the status page. Fix #13242 Signed-off-by: Andrew Thornton <art27@cantab.net> * Update web_src/js/index.js * Hide the failed first Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'models/task.go')
-rw-r--r--models/task.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/models/task.go b/models/task.go
index 43cb2d4d9a..b86314b449 100644
--- a/models/task.go
+++ b/models/task.go
@@ -147,6 +147,27 @@ func GetMigratingTask(repoID int64) (*Task, error) {
return &task, nil
}
+// GetMigratingTaskByID returns the migrating task by repo's id
+func GetMigratingTaskByID(id, doerID int64) (*Task, *migration.MigrateOptions, error) {
+ var task = Task{
+ ID: id,
+ DoerID: doerID,
+ Type: structs.TaskTypeMigrateRepo,
+ }
+ has, err := x.Get(&task)
+ if err != nil {
+ return nil, nil, err
+ } else if !has {
+ return nil, nil, ErrTaskDoesNotExist{id, 0, task.Type}
+ }
+
+ var opts migration.MigrateOptions
+ if err := json.Unmarshal([]byte(task.PayloadContent), &opts); err != nil {
+ return nil, nil, err
+ }
+ return &task, &opts, nil
+}
+
// FindTaskOptions find all tasks
type FindTaskOptions struct {
Status int