0
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-06-02 15:04:46 +02:00

Merge 17404153056bc9b1b02a692f453f1bdaef626979 into 0cec4b84e2e2385d33cd19351f8a9e098a29ecc2

This commit is contained in:
Philip Peterson 2025-05-28 14:12:55 -04:00 committed by GitHub
commit 7f3af4045b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 20 additions and 26 deletions

View File

@ -203,7 +203,7 @@ func Migrate(ctx *context.APIContext) {
}
if repo != nil {
if errDelete := repo_service.DeleteRepositoryDirectly(ctx, ctx.Doer, repo.ID); errDelete != nil {
if errDelete := repo_service.DeleteRepositoryDirectly(ctx, repo.ID); errDelete != nil {
log.Error("DeleteRepository: %v", errDelete)
}
}

View File

@ -7,7 +7,6 @@ import (
"context"
"code.gitea.io/gitea/models/db"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/storage"
repo_service "code.gitea.io/gitea/services/repository"
@ -39,7 +38,6 @@ func deleteOrphanedRepos(ctx context.Context) (int64, error) {
batchSize := db.MaxBatchInsertSize("repository")
e := db.GetEngine(ctx)
var deleted int64
adminUser := &user_model.User{IsAdmin: true}
for {
select {
@ -60,7 +58,7 @@ func deleteOrphanedRepos(ctx context.Context) (int64, error) {
}
for _, id := range ids {
if err := repo_service.DeleteRepositoryDirectly(ctx, adminUser, id, true); err != nil {
if err := repo_service.DeleteRepositoryDirectly(ctx, id, true); err != nil {
return deleted, err
}
deleted++

View File

@ -281,7 +281,7 @@ func TestIncludesAllRepositoriesTeams(t *testing.T) {
}
// Remove repo and check teams repositories.
assert.NoError(t, repo_service.DeleteRepositoryDirectly(db.DefaultContext, user, repoIDs[0]), "DeleteRepository")
assert.NoError(t, repo_service.DeleteRepositoryDirectly(db.DefaultContext, repoIDs[0]), "DeleteRepository")
teamRepos[0] = repoIDs[1:]
teamRepos[1] = repoIDs[1:]
teamRepos[3] = repoIDs[1:3]
@ -293,7 +293,7 @@ func TestIncludesAllRepositoriesTeams(t *testing.T) {
// Wipe created items.
for i, rid := range repoIDs {
if i > 0 { // first repo already deleted.
assert.NoError(t, repo_service.DeleteRepositoryDirectly(db.DefaultContext, user, rid), "DeleteRepository %d", i)
assert.NoError(t, repo_service.DeleteRepositoryDirectly(db.DefaultContext, rid), "DeleteRepository %d", i)
}
}
assert.NoError(t, DeleteOrganization(db.DefaultContext, org, false), "DeleteOrganization")

View File

@ -162,7 +162,7 @@ func DeleteMissingRepositories(ctx context.Context, doer *user_model.User) error
default:
}
log.Trace("Deleting %d/%d...", repo.OwnerID, repo.ID)
if err := DeleteRepositoryDirectly(ctx, doer, repo.ID); err != nil {
if err := DeleteRepositoryDirectly(ctx, repo.ID); err != nil {
log.Error("Failed to DeleteRepository %-v: Error: %v", repo, err)
if err2 := system_model.CreateRepositoryNotice("Failed to DeleteRepository %s [%d]: Error: %v", repo.FullName(), repo.ID, err); err2 != nil {
log.Error("CreateRepositoryNotice: %v", err)

View File

@ -259,7 +259,7 @@ func CreateRepositoryDirectly(ctx context.Context, doer, owner *user_model.User,
defer func() {
if err != nil {
// we can not use the ctx because it maybe canceled or timeout
cleanupRepository(doer, repo.ID)
cleanupRepository(repo.ID)
}
}()
@ -454,8 +454,8 @@ func createRepositoryInDB(ctx context.Context, doer, u *user_model.User, repo *r
return nil
}
func cleanupRepository(doer *user_model.User, repoID int64) {
if errDelete := DeleteRepositoryDirectly(db.DefaultContext, doer, repoID); errDelete != nil {
func cleanupRepository(repoID int64) {
if errDelete := DeleteRepositoryDirectly(db.DefaultContext, repoID); errDelete != nil {
log.Error("cleanupRepository failed: %v", errDelete)
// add system notice
if err := system_model.CreateRepositoryNotice("DeleteRepositoryDirectly failed when cleanup repository: %v", errDelete); err != nil {

View File

@ -35,7 +35,7 @@ func TestCreateRepositoryDirectly(t *testing.T) {
unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerName: user2.Name, Name: createdRepo.Name})
err = DeleteRepositoryDirectly(db.DefaultContext, user2, createdRepo.ID)
err = DeleteRepositoryDirectly(db.DefaultContext, createdRepo.ID)
assert.NoError(t, err)
// a failed creating because some mock data

View File

@ -48,7 +48,7 @@ func deleteDBRepository(ctx context.Context, repoID int64) error {
// DeleteRepository deletes a repository for a user or organization.
// make sure if you call this func to close open sessions (sqlite will otherwise get a deadlock)
func DeleteRepositoryDirectly(ctx context.Context, doer *user_model.User, repoID int64, ignoreOrgTeams ...bool) error {
func DeleteRepositoryDirectly(ctx context.Context, repoID int64, ignoreOrgTeams ...bool) error {
ctx, committer, err := db.TxContext(ctx)
if err != nil {
return err
@ -390,7 +390,7 @@ func DeleteOwnerRepositoriesDirectly(ctx context.Context, owner *user_model.User
break
}
for _, repo := range repos {
if err := DeleteRepositoryDirectly(ctx, owner, repo.ID); err != nil {
if err := DeleteRepositoryDirectly(ctx, repo.ID); err != nil {
return fmt.Errorf("unable to delete repository %s for %s[%d]. Error: %w", repo.Name, owner.Name, owner.ID, err)
}
}

View File

@ -124,7 +124,7 @@ func ForkRepository(ctx context.Context, doer, owner *user_model.User, opts Fork
defer func() {
if err != nil {
// we can not use the ctx because it maybe canceled or timeout
cleanupRepository(doer, repo.ID)
cleanupRepository(repo.ID)
}
}()

View File

@ -68,7 +68,7 @@ func TestForkRepositoryCleanup(t *testing.T) {
assert.NoError(t, err)
assert.True(t, exist)
err = DeleteRepositoryDirectly(db.DefaultContext, user2, fork.ID)
err = DeleteRepositoryDirectly(db.DefaultContext, fork.ID)
assert.NoError(t, err)
// a failed creating because some mock data

View File

@ -69,7 +69,7 @@ func DeleteRepository(ctx context.Context, doer *user_model.User, repo *repo_mod
notify_service.DeleteRepository(ctx, doer, repo)
}
return DeleteRepositoryDirectly(ctx, doer, repo.ID)
return DeleteRepositoryDirectly(ctx, repo.ID)
}
// PushCreateRepo creates a repository when a new repository is pushed to an appropriate namespace

View File

@ -102,7 +102,7 @@ func GenerateRepository(ctx context.Context, doer, owner *user_model.User, templ
defer func() {
if err != nil {
// we can not use the ctx because it maybe canceled or timeout
cleanupRepository(doer, generateRepo.ID)
cleanupRepository(generateRepo.ID)
}
}()

View File

@ -586,7 +586,7 @@ func TestAPIRepoTransfer(t *testing.T) {
// cleanup
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: apiRepo.ID})
_ = repo_service.DeleteRepositoryDirectly(db.DefaultContext, user, repo.ID)
_ = repo_service.DeleteRepositoryDirectly(db.DefaultContext, repo.ID)
}
func transfer(t *testing.T) *repo_model.Repository {

View File

@ -50,9 +50,7 @@ func testEphemeralActionsRunnerDeletionByRepository(t *testing.T) {
task := unittest.AssertExistsAndLoadBean(t, &actions_model.ActionTask{ID: 52})
assert.Equal(t, actions_model.StatusRunning, task.Status)
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
err = repo_service.DeleteRepositoryDirectly(t.Context(), user, task.RepoID, true)
err = repo_service.DeleteRepositoryDirectly(t.Context(), task.RepoID, true)
assert.NoError(t, err)
_, err = actions_model.GetRunnerByID(t.Context(), 34350)

View File

@ -191,7 +191,7 @@ func runTestGitPush(t *testing.T, u *url.URL, gitOperation func(t *testing.T, gi
assert.Equal(t, commitID, branch.CommitID)
}
require.NoError(t, repo_service.DeleteRepositoryDirectly(db.DefaultContext, user, repo.ID))
require.NoError(t, repo_service.DeleteRepositoryDirectly(db.DefaultContext, repo.ID))
}
func TestPushPullRefs(t *testing.T) {

View File

@ -13,7 +13,6 @@ import (
issues_model "code.gitea.io/gitea/models/issues"
repo_model "code.gitea.io/gitea/models/repo"
"code.gitea.io/gitea/models/unittest"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/test"
repo_service "code.gitea.io/gitea/services/repository"
"code.gitea.io/gitea/tests"
@ -76,10 +75,9 @@ func TestPullCompare(t *testing.T) {
assert.Positive(t, editButtonCount, "Expected to find a button to edit a file in the PR diff view but there were none")
repoForked := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerName: "user1", Name: "repo1"})
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
// delete the head repository and revisit the PR diff view
err := repo_service.DeleteRepositoryDirectly(db.DefaultContext, user2, repoForked.ID)
err := repo_service.DeleteRepositoryDirectly(db.DefaultContext, repoForked.ID)
assert.NoError(t, err)
req = NewRequest(t, "GET", prFilesURL)

View File

@ -523,7 +523,7 @@ func TestGenerateRepository(t *testing.T) {
unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerName: user2.Name, Name: generatedRepo.Name})
err = repo_service.DeleteRepositoryDirectly(db.DefaultContext, user2, generatedRepo.ID)
err = repo_service.DeleteRepositoryDirectly(db.DefaultContext, generatedRepo.ID)
assert.NoError(t, err)
// a failed creating because some mock data