File tree Expand file tree Collapse file tree 2 files changed +32
-3
lines changed Expand file tree Collapse file tree 2 files changed +32
-3
lines changed Original file line number Diff line number Diff line change @@ -1781,6 +1781,12 @@ func UpdateRepository(repo *Repository, visibilityChanged bool) (err error) {
17811781 return sess .Commit ()
17821782}
17831783
1784+ // UpdateRepositoryStatus updates a repository's status
1785+ func UpdateRepositoryStatus (repoID int64 , status RepositoryStatus ) error {
1786+ _ , err := x .Exec ("UPDATE repository SET status = ? WHERE id = ?" , status , repoID )
1787+ return err
1788+ }
1789+
17841790// UpdateRepositoryUpdatedTime updates a repository's updated time
17851791func UpdateRepositoryUpdatedTime (repoID int64 , updateTime time.Time ) error {
17861792 _ , err := x .Exec ("UPDATE repository SET updated_unix = ? WHERE id = ?" , updateTime .Unix (), repoID )
Original file line number Diff line number Diff line change 66package repo
77
88import (
9+ "bytes"
10+ "errors"
911 "fmt"
1012 "net/http"
1113 "net/url"
@@ -431,10 +433,31 @@ func Migrate(ctx *context.APIContext, form auth.MigrateRepoForm) {
431433 opts .Releases = false
432434 }
433435
434- repo , err := migrations .MigrateRepository (ctx .User , ctxUser .Name , opts )
435- if err == nil {
436- notification .NotifyCreateRepository (ctx .User , ctxUser , repo )
436+ var repo * models.Repository
437+ defer func () {
438+ if e := recover (); e != nil {
439+ var buf bytes.Buffer
440+ fmt .Fprintf (& buf , "Handler crashed with error: %v" , log .Stack (2 ))
441+ err = errors .New (buf .String ())
442+ }
443+
444+ if err == nil {
445+ repo .Status = models .RepositoryReady
446+ if err := models .UpdateRepositoryStatus (repo .ID , repo .Status ); err == nil {
447+ notification .NotifyMigrateRepository (ctx .User , ctxUser , repo )
448+ return
449+ }
450+ }
437451
452+ if repo != nil {
453+ if errDelete := models .DeleteRepository (ctx .User , ctxUser .ID , repo .ID ); errDelete != nil {
454+ log .Error ("DeleteRepository: %v" , errDelete )
455+ }
456+ }
457+ }()
458+
459+ repo , err = migrations .MigrateRepository (ctx .User , ctxUser .Name , opts )
460+ if err == nil {
438461 log .Trace ("Repository migrated: %s/%s" , ctxUser .Name , form .RepoName )
439462 ctx .JSON (201 , repo .APIFormat (models .AccessModeAdmin ))
440463 return
You can’t perform that action at this time.
0 commit comments