mirror of
https://github.com/go-gitea/gitea.git
synced 2026-09-08 22:13:26 +09:00
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:
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user