* remove orgnization watch repositories * fix migration * fix typo and missing change * remove unused codetags/v1.21.12.1
| @@ -140,6 +140,8 @@ var migrations = []Migration{ | |||||
| NewMigration("remove duplicate unit types", removeDuplicateUnitTypes), | NewMigration("remove duplicate unit types", removeDuplicateUnitTypes), | ||||
| // v45 -> v46 | // v45 -> v46 | ||||
| NewMigration("remove index column from repo_unit table", removeIndexColumnFromRepoUnitTable), | NewMigration("remove index column from repo_unit table", removeIndexColumnFromRepoUnitTable), | ||||
| // v46 -> v47 | |||||
| NewMigration("remove organization watch repositories", removeOrganizationWatchRepo), | |||||
| } | } | ||||
| // Migrate database to current version | // Migrate database to current version | ||||
| @@ -0,0 +1,36 @@ | |||||
| // Copyright 2017 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 migrations | |||||
| import ( | |||||
| "github.com/go-xorm/xorm" | |||||
| ) | |||||
| func removeOrganizationWatchRepo(x *xorm.Engine) error { | |||||
| // UserType defines the user type | |||||
| type UserType int | |||||
| const ( | |||||
| // UserTypeIndividual defines an individual user | |||||
| UserTypeIndividual UserType = iota // Historic reason to make it starts at 0. | |||||
| // UserTypeOrganization defines an organization | |||||
| UserTypeOrganization | |||||
| ) | |||||
| sess := x.NewSession() | |||||
| defer sess.Close() | |||||
| if err := sess.Begin(); err != nil { | |||||
| return err | |||||
| } | |||||
| if _, err := sess.Exec("DELETE FROM watch WHERE id IN (SELECT watch.id FROM watch INNER JOIN user ON watch.user_id = user.id WHERE `user`.`type` = ?)", UserTypeOrganization); err != nil { | |||||
| return err | |||||
| } | |||||
| if _, err := sess.Exec("UPDATE `repository` SET num_watches = (SELECT count(*) FROM watch WHERE `repository`.`id` = watch.repo_id)"); err != nil { | |||||
| return err | |||||
| } | |||||
| return sess.Commit() | |||||
| } | |||||
| @@ -1295,7 +1295,7 @@ func createRepository(e *xorm.Session, doer, u *User, repo *Repository) (err err | |||||
| } | } | ||||
| } | } | ||||
| if err = watchRepo(e, u.ID, repo.ID, true); err != nil { | |||||
| if err = watchRepo(e, doer.ID, repo.ID, true); err != nil { | |||||
| return fmt.Errorf("watchRepo: %v", err) | return fmt.Errorf("watchRepo: %v", err) | ||||
| } else if err = newRepoAction(e, u, repo); err != nil { | } else if err = newRepoAction(e, u, repo); err != nil { | ||||
| return fmt.Errorf("newRepoAction: %v", err) | return fmt.Errorf("newRepoAction: %v", err) | ||||
| @@ -1480,7 +1480,7 @@ func TransferOwnership(doer *User, newOwnerName string, repo *Repository) error | |||||
| return fmt.Errorf("decrease old owner repository count: %v", err) | return fmt.Errorf("decrease old owner repository count: %v", err) | ||||
| } | } | ||||
| if err = watchRepo(sess, newOwner.ID, repo.ID, true); err != nil { | |||||
| if err = watchRepo(sess, doer.ID, repo.ID, true); err != nil { | |||||
| return fmt.Errorf("watchRepo: %v", err) | return fmt.Errorf("watchRepo: %v", err) | ||||
| } else if err = transferRepoAction(sess, doer, owner, repo); err != nil { | } else if err = transferRepoAction(sess, doer, owner, repo); err != nil { | ||||
| return fmt.Errorf("transferRepoAction: %v", err) | return fmt.Errorf("transferRepoAction: %v", err) | ||||