summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authortechknowlogick <techknowlogick@gitea.io>2020-10-24 01:02:36 -0400
committerGitHub <noreply@github.com>2020-10-24 13:02:36 +0800
commite177728a823ce5974a101994c3f687a579ed8ca4 (patch)
tree958f96336740a50820949455ee8334758d37143e /models
parent074f7abd95adbab524696ed9609ea3ee85948bf4 (diff)
downloadgitea-e177728a823ce5974a101994c3f687a579ed8ca4.tar.gz
gitea-e177728a823ce5974a101994c3f687a579ed8ca4.zip
Store task errors following migrations and display them (#13246) (#13287)
* 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> Co-authored-by: zeripath <art27@cantab.net>
Diffstat (limited to 'models')
-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