refactor: clean up git repo and model migration packages (#38564)

enable the golangci depguard lint rule: deny "models" and its sub
packages in "modelmigration" package.
This commit is contained in:
wxiaoguang
2026-07-23 01:22:26 +00:00
committed by GitHub
parent fa64b4627a
commit 1acf93d854
43 changed files with 243 additions and 167 deletions
+3 -2
View File
@@ -18,6 +18,7 @@ import (
user_model "gitea.dev/models/user"
"gitea.dev/modules/git"
"gitea.dev/modules/git/gitcmd"
"gitea.dev/modules/git/gitrepo"
"gitea.dev/modules/log"
base "gitea.dev/modules/migration"
"gitea.dev/modules/repository"
@@ -161,7 +162,7 @@ func (g *RepositoryDumper) CreateRepo(ctx context.Context, repo *base.Repository
return fmt.Errorf("clone code: %w", err)
}
repoLocal := gitcmd.RepositoryUnmanaged(repoAbsPath)
repoLocal := gitrepo.RepositoryUnmanaged(repoAbsPath)
if err := git.WriteCommitGraph(ctx, repoLocal); err != nil {
return err
}
@@ -176,7 +177,7 @@ func (g *RepositoryDumper) CreateRepo(ctx context.Context, repo *base.Repository
if err := os.MkdirAll(wikiAbsPath, os.ModePerm); err != nil {
return fmt.Errorf("failed to create %s: %w", wikiAbsPath, err)
}
wikiLocal := gitcmd.RepositoryUnmanaged(wikiAbsPath)
wikiLocal := gitrepo.RepositoryUnmanaged(wikiAbsPath)
if err := git.Clone(ctx, wikiRemotePath, wikiAbsPath, git.CloneRepoOptions{
Mirror: true,
Quiet: true,
+2 -1
View File
@@ -17,6 +17,7 @@ import (
user_model "gitea.dev/models/user"
"gitea.dev/modules/container"
"gitea.dev/modules/git"
"gitea.dev/modules/git/gitrepo"
"gitea.dev/modules/glob"
"gitea.dev/modules/graceful"
"gitea.dev/modules/log"
@@ -213,7 +214,7 @@ func DeleteUnadoptedRepository(ctx context.Context, doer, u *user_model.User, re
return err
}
codeRepo := repo_model.CodeRepoByName(u.Name, repoName)
codeRepo := gitrepo.CodeRepoByName(u.Name, repoName)
exist, err := git.IsRepositoryExist(ctx, codeRepo)
if err != nil {
log.Error("Unable to check if repo %s/%s exists. Error: %v", u.Name, repoName, err)
+2 -1
View File
@@ -19,6 +19,7 @@ import (
"gitea.dev/models/unit"
user_model "gitea.dev/models/user"
git2 "gitea.dev/modules/git"
"gitea.dev/modules/git/gitrepo"
"gitea.dev/modules/graceful"
issue_indexer "gitea.dev/modules/indexer/issues"
"gitea.dev/modules/log"
@@ -331,7 +332,7 @@ func CheckCreateRepository(ctx context.Context, doer, owner *user_model.User, na
} else if has {
return repo_model.ErrRepoAlreadyExist{Uname: owner.Name, Name: name}
}
repo := repo_model.CodeRepoByName(owner.Name, name)
repo := gitrepo.CodeRepoByName(owner.Name, name)
isExist, err := git2.IsRepositoryExist(ctx, repo)
if err != nil {
log.Error("Unable to check if repo %s/%s exists, error: %v", owner.Name, name, err)
+12 -11
View File
@@ -18,6 +18,7 @@ import (
repo_model "gitea.dev/models/repo"
user_model "gitea.dev/models/user"
"gitea.dev/modules/git"
"gitea.dev/modules/git/gitrepo"
"gitea.dev/modules/globallock"
"gitea.dev/modules/log"
"gitea.dev/modules/util"
@@ -94,7 +95,7 @@ func isRepositoryModelOrDirExist(ctx context.Context, u *user_model.User, repoNa
if err != nil {
return false, err
}
repo := repo_model.CodeRepoByName(u.Name, repoName)
repo := gitrepo.CodeRepoByName(u.Name, repoName)
isExist, err := git.IsRepositoryExist(ctx, repo)
return has || isExist, err
}
@@ -117,16 +118,16 @@ func transferOwnership(ctx context.Context, doer *user_model.User, newOwnerName
if repoRenamed {
// revert the rename
from := repo_model.CodeRepoByName(newOwnerName, repo.Name)
to := repo_model.CodeRepoByName(oldOwnerName, repo.Name)
from := gitrepo.CodeRepoByName(newOwnerName, repo.Name)
to := gitrepo.CodeRepoByName(oldOwnerName, repo.Name)
if err := git.RenameRepository(ctx, from, to); err != nil {
log.Error("Unable to revert repository %s/%s to %s/%s: %v", newOwnerName, repo.Name, oldOwnerName, repo.Name, err)
}
}
if wikiRenamed {
from := repo_model.WikiRepoByName(newOwnerName, repo.Name)
to := repo_model.WikiRepoByName(oldOwnerName, repo.Name)
from := gitrepo.WikiRepoByName(newOwnerName, repo.Name)
to := gitrepo.WikiRepoByName(oldOwnerName, repo.Name)
if err := git.RenameRepository(ctx, from, to); err != nil {
log.Error("Unable to revert wiki repository %s/%s to %s/%s: %v", newOwnerName, repo.Name, oldOwnerName, repo.Name, err)
}
@@ -303,20 +304,20 @@ func transferOwnership(ctx context.Context, doer *user_model.User, newOwnerName
}
// Rename remote repository to new path and delete local copy.
oldCodeRepo := repo_model.CodeRepoByName(oldOwner.Name, repo.Name)
newCodeRepo := repo_model.CodeRepoByName(newOwner.Name, repo.Name)
oldCodeRepo := gitrepo.CodeRepoByName(oldOwner.Name, repo.Name)
newCodeRepo := gitrepo.CodeRepoByName(newOwner.Name, repo.Name)
if err := git.RenameRepository(ctx, oldCodeRepo, newCodeRepo); err != nil {
return fmt.Errorf("rename repository directory: %w", err)
}
repoRenamed = true
// Rename remote wiki repository to new path and delete local copy.
oldWikiRepo := repo_model.WikiRepoByName(oldOwner.Name, repo.Name)
oldWikiRepo := gitrepo.WikiRepoByName(oldOwner.Name, repo.Name)
if isExist, err := git.IsRepositoryExist(ctx, oldWikiRepo); err != nil {
log.Error("Unable to check if wiki of repo %s/%s exists. Error: %v", oldOwner.Name, repo.Name, err)
return err
} else if isExist {
newWikiRepo := repo_model.WikiRepoByName(newOwner.Name, repo.Name)
newWikiRepo := gitrepo.WikiRepoByName(newOwner.Name, repo.Name)
if err := git.RenameRepository(ctx, oldWikiRepo, newWikiRepo); err != nil {
return fmt.Errorf("rename repository wiki: %w", err)
}
@@ -376,13 +377,13 @@ func changeRepositoryName(ctx context.Context, repo *repo_model.Repository, newR
}
}
newCodeRepo := repo_model.CodeRepoByName(repo.OwnerName, newRepoName)
newCodeRepo := gitrepo.CodeRepoByName(repo.OwnerName, newRepoName)
if err = git.RenameRepository(ctx, repo, newCodeRepo); err != nil {
return fmt.Errorf("rename repository directory: %w", err)
}
if HasWiki(ctx, repo) {
newWikiRepo := repo_model.WikiRepoByName(repo.OwnerName, newRepoName)
newWikiRepo := gitrepo.WikiRepoByName(repo.OwnerName, newRepoName)
if err = git.RenameRepository(ctx, repo.WikiStorageRepo(), newWikiRepo); err != nil {
return fmt.Errorf("rename repository wiki: %w", err)
}