Skip to content

Commit 88c363f

Browse files
ethantkoeniglafriks
authored andcommitted
Fix repo-transfer-and-team-repo-count bug (#3241) (#3244)
1 parent f33cd3c commit 88c363f

File tree

2 files changed

+23
-14
lines changed

2 files changed

+23
-14
lines changed

models/repo.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1501,20 +1501,6 @@ func TransferOwnership(doer *User, newOwnerName string, repo *Repository) error
15011501

15021502
// Remove old team-repository relations.
15031503
if owner.IsOrganization() {
1504-
if err = owner.getTeams(sess); err != nil {
1505-
return fmt.Errorf("getTeams: %v", err)
1506-
}
1507-
for _, t := range owner.Teams {
1508-
if !t.hasRepository(sess, repo.ID) {
1509-
continue
1510-
}
1511-
1512-
t.NumRepos--
1513-
if _, err := sess.ID(t.ID).Cols("num_repos").Update(t); err != nil {
1514-
return fmt.Errorf("decrease team repository count '%d': %v", t.ID, err)
1515-
}
1516-
}
1517-
15181504
if err = owner.removeOrgRepo(sess, repo.ID); err != nil {
15191505
return fmt.Errorf("removeOrgRepo: %v", err)
15201506
}

models/repo_test.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,3 +153,26 @@ func TestRepoLocalCopyPath(t *testing.T) {
153153
setting.Repository.Local.LocalCopyPath = tempPath
154154
assert.Equal(t, expected, repo.LocalCopyPath())
155155
}
156+
157+
func TestTransferOwnership(t *testing.T) {
158+
assert.NoError(t, PrepareTestDatabase())
159+
160+
doer := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
161+
repo := AssertExistsAndLoadBean(t, &Repository{ID: 3}).(*Repository)
162+
repo.Owner = AssertExistsAndLoadBean(t, &User{ID: repo.OwnerID}).(*User)
163+
assert.NoError(t, TransferOwnership(doer, "user2", repo))
164+
165+
transferredRepo := AssertExistsAndLoadBean(t, &Repository{ID: 3}).(*Repository)
166+
assert.EqualValues(t, 2, transferredRepo.OwnerID)
167+
168+
assert.False(t, com.IsExist(RepoPath("user3", "repo3")))
169+
assert.True(t, com.IsExist(RepoPath("user2", "repo3")))
170+
AssertExistsAndLoadBean(t, &Action{
171+
OpType: ActionTransferRepo,
172+
ActUserID: 2,
173+
RepoID: 3,
174+
Content: "user3/repo3",
175+
})
176+
177+
CheckConsistencyFor(t, &Repository{}, &User{}, &Team{})
178+
}

0 commit comments

Comments
 (0)