mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +00:00 
			
		
		
		
	Move repository model into models/repo (#17933)
* Some refactors related repository model * Move more methods out of repository * Move repository into models/repo * Fix test * Fix test * some improvements * Remove unnecessary function
This commit is contained in:
		| @@ -13,7 +13,7 @@ import ( | ||||
| 	"strings" | ||||
| 	"time" | ||||
|  | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| 	"code.gitea.io/gitea/modules/analyze" | ||||
| 	"code.gitea.io/gitea/modules/charset" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| @@ -181,7 +181,7 @@ func NewBleveIndexer(indexDir string) (*BleveIndexer, bool, error) { | ||||
| } | ||||
|  | ||||
| func (b *BleveIndexer) addUpdate(batchWriter git.WriteCloserError, batchReader *bufio.Reader, commitSha string, | ||||
| 	update fileUpdate, repo *models.Repository, batch *gitea_bleve.FlushingBatch) error { | ||||
| 	update fileUpdate, repo *repo_model.Repository, batch *gitea_bleve.FlushingBatch) error { | ||||
| 	// Ignore vendored files in code search | ||||
| 	if setting.Indexer.ExcludeVendored && analyze.IsVendor(update.Filename) { | ||||
| 		return nil | ||||
| @@ -234,7 +234,7 @@ func (b *BleveIndexer) addUpdate(batchWriter git.WriteCloserError, batchReader * | ||||
| 	}) | ||||
| } | ||||
|  | ||||
| func (b *BleveIndexer) addDelete(filename string, repo *models.Repository, batch *gitea_bleve.FlushingBatch) error { | ||||
| func (b *BleveIndexer) addDelete(filename string, repo *repo_model.Repository, batch *gitea_bleve.FlushingBatch) error { | ||||
| 	id := filenameIndexerID(repo.ID, filename) | ||||
| 	return batch.Delete(id) | ||||
| } | ||||
| @@ -271,7 +271,7 @@ func (b *BleveIndexer) Close() { | ||||
| } | ||||
|  | ||||
| // Index indexes the data | ||||
| func (b *BleveIndexer) Index(repo *models.Repository, sha string, changes *repoChanges) error { | ||||
| func (b *BleveIndexer) Index(repo *repo_model.Repository, sha string, changes *repoChanges) error { | ||||
| 	batch := gitea_bleve.NewFlushingBatch(b.indexer, maxBatchSize) | ||||
| 	if len(changes.Updates) > 0 { | ||||
|  | ||||
|   | ||||
| @@ -13,7 +13,7 @@ import ( | ||||
| 	"strings" | ||||
| 	"time" | ||||
|  | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| 	"code.gitea.io/gitea/modules/analyze" | ||||
| 	"code.gitea.io/gitea/modules/charset" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| @@ -177,7 +177,7 @@ func (b *ElasticSearchIndexer) init() (bool, error) { | ||||
| 	return exists, nil | ||||
| } | ||||
|  | ||||
| func (b *ElasticSearchIndexer) addUpdate(batchWriter git.WriteCloserError, batchReader *bufio.Reader, sha string, update fileUpdate, repo *models.Repository) ([]elastic.BulkableRequest, error) { | ||||
| func (b *ElasticSearchIndexer) addUpdate(batchWriter git.WriteCloserError, batchReader *bufio.Reader, sha string, update fileUpdate, repo *repo_model.Repository) ([]elastic.BulkableRequest, error) { | ||||
| 	// Ignore vendored files in code search | ||||
| 	if setting.Indexer.ExcludeVendored && analyze.IsVendor(update.Filename) { | ||||
| 		return nil, nil | ||||
| @@ -236,7 +236,7 @@ func (b *ElasticSearchIndexer) addUpdate(batchWriter git.WriteCloserError, batch | ||||
| 	}, nil | ||||
| } | ||||
|  | ||||
| func (b *ElasticSearchIndexer) addDelete(filename string, repo *models.Repository) elastic.BulkableRequest { | ||||
| func (b *ElasticSearchIndexer) addDelete(filename string, repo *repo_model.Repository) elastic.BulkableRequest { | ||||
| 	id := filenameIndexerID(repo.ID, filename) | ||||
| 	return elastic.NewBulkDeleteRequest(). | ||||
| 		Index(b.indexerAliasName). | ||||
| @@ -244,7 +244,7 @@ func (b *ElasticSearchIndexer) addDelete(filename string, repo *models.Repositor | ||||
| } | ||||
|  | ||||
| // Index will save the index data | ||||
| func (b *ElasticSearchIndexer) Index(repo *models.Repository, sha string, changes *repoChanges) error { | ||||
| func (b *ElasticSearchIndexer) Index(repo *repo_model.Repository, sha string, changes *repoChanges) error { | ||||
| 	reqs := make([]elastic.BulkableRequest, 0) | ||||
| 	if len(changes.Updates) > 0 { | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ import ( | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
|  | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
| @@ -27,7 +27,7 @@ type repoChanges struct { | ||||
| 	RemovedFilenames []string | ||||
| } | ||||
|  | ||||
| func getDefaultBranchSha(repo *models.Repository) (string, error) { | ||||
| func getDefaultBranchSha(repo *repo_model.Repository) (string, error) { | ||||
| 	stdout, err := git.NewCommand("show-ref", "-s", git.BranchPrefix+repo.DefaultBranch).RunInDir(repo.RepoPath()) | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| @@ -36,8 +36,8 @@ func getDefaultBranchSha(repo *models.Repository) (string, error) { | ||||
| } | ||||
|  | ||||
| // getRepoChanges returns changes to repo since last indexer update | ||||
| func getRepoChanges(repo *models.Repository, revision string) (*repoChanges, error) { | ||||
| 	status, err := repo.GetIndexerStatus(models.RepoIndexerTypeCode) | ||||
| func getRepoChanges(repo *repo_model.Repository, revision string) (*repoChanges, error) { | ||||
| 	status, err := repo_model.GetIndexerStatus(repo, repo_model.RepoIndexerTypeCode) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| @@ -89,7 +89,7 @@ func parseGitLsTreeOutput(stdout []byte) ([]fileUpdate, error) { | ||||
| } | ||||
|  | ||||
| // genesisChanges get changes to add repo to the indexer for the first time | ||||
| func genesisChanges(repo *models.Repository, revision string) (*repoChanges, error) { | ||||
| func genesisChanges(repo *repo_model.Repository, revision string) (*repoChanges, error) { | ||||
| 	var changes repoChanges | ||||
| 	stdout, err := git.NewCommand("ls-tree", "--full-tree", "-l", "-r", revision). | ||||
| 		RunInDirBytes(repo.RepoPath()) | ||||
| @@ -101,7 +101,7 @@ func genesisChanges(repo *models.Repository, revision string) (*repoChanges, err | ||||
| } | ||||
|  | ||||
| // nonGenesisChanges get changes since the previous indexer update | ||||
| func nonGenesisChanges(repo *models.Repository, revision string) (*repoChanges, error) { | ||||
| func nonGenesisChanges(repo *repo_model.Repository, revision string) (*repoChanges, error) { | ||||
| 	diffCmd := git.NewCommand("diff", "--name-status", | ||||
| 		repo.CodeIndexerStatus.CommitSha, revision) | ||||
| 	stdout, err := diffCmd.RunInDir(repo.RepoPath()) | ||||
|   | ||||
| @@ -11,8 +11,8 @@ import ( | ||||
| 	"strings" | ||||
| 	"time" | ||||
|  | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| 	"code.gitea.io/gitea/modules/graceful" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| 	"code.gitea.io/gitea/modules/queue" | ||||
| @@ -42,7 +42,7 @@ type SearchResultLanguages struct { | ||||
|  | ||||
| // Indexer defines an interface to index and search code contents | ||||
| type Indexer interface { | ||||
| 	Index(repo *models.Repository, sha string, changes *repoChanges) error | ||||
| 	Index(repo *repo_model.Repository, sha string, changes *repoChanges) error | ||||
| 	Delete(repoID int64) error | ||||
| 	Search(repoIDs []int64, language, keyword string, page, pageSize int, isMatch bool) (int64, []*SearchResult, []*SearchResultLanguages, error) | ||||
| 	Close() | ||||
| @@ -83,8 +83,8 @@ var ( | ||||
| ) | ||||
|  | ||||
| func index(indexer Indexer, repoID int64) error { | ||||
| 	repo, err := models.GetRepositoryByID(repoID) | ||||
| 	if models.IsErrRepoNotExist(err) { | ||||
| 	repo, err := repo_model.GetRepositoryByID(repoID) | ||||
| 	if repo_model.IsErrRepoNotExist(err) { | ||||
| 		return indexer.Delete(repoID) | ||||
| 	} | ||||
| 	if err != nil { | ||||
| @@ -106,7 +106,7 @@ func index(indexer Indexer, repoID int64) error { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	return repo.UpdateIndexerStatus(models.RepoIndexerTypeCode, sha) | ||||
| 	return repo_model.UpdateIndexerStatus(repo, repo_model.RepoIndexerTypeCode, sha) | ||||
| } | ||||
|  | ||||
| // Init initialize the repo indexer | ||||
| @@ -256,7 +256,7 @@ func Init() { | ||||
| } | ||||
|  | ||||
| // UpdateRepoIndexer update a repository's entries in the indexer | ||||
| func UpdateRepoIndexer(repo *models.Repository) { | ||||
| func UpdateRepoIndexer(repo *repo_model.Repository) { | ||||
| 	indexData := &IndexerData{RepoID: repo.ID} | ||||
| 	if err := indexerQueue.Push(indexData); err != nil { | ||||
| 		log.Error("Update repo index data %v failed: %v", indexData, err) | ||||
| @@ -297,7 +297,7 @@ func populateRepoIndexer(ctx context.Context) { | ||||
| 			return | ||||
| 		default: | ||||
| 		} | ||||
| 		ids, err := models.GetUnindexedRepos(models.RepoIndexerTypeCode, maxRepoID, 0, 50) | ||||
| 		ids, err := repo_model.GetUnindexedRepos(repo_model.RepoIndexerTypeCode, maxRepoID, 0, 50) | ||||
| 		if err != nil { | ||||
| 			log.Error("populateRepoIndexer: %v", err) | ||||
| 			return | ||||
|   | ||||
| @@ -8,6 +8,7 @@ import ( | ||||
| 	"path/filepath" | ||||
| 	"testing" | ||||
|  | ||||
| 	_ "code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/models/unittest" | ||||
|  | ||||
| 	"github.com/stretchr/testify/assert" | ||||
|   | ||||
| @@ -8,7 +8,7 @@ import ( | ||||
| 	"fmt" | ||||
| 	"sync" | ||||
|  | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| @@ -57,7 +57,7 @@ func (w *wrappedIndexer) get() (Indexer, error) { | ||||
| 	return w.internal, nil | ||||
| } | ||||
|  | ||||
| func (w *wrappedIndexer) Index(repo *models.Repository, sha string, changes *repoChanges) error { | ||||
| func (w *wrappedIndexer) Index(repo *repo_model.Repository, sha string, changes *repoChanges) error { | ||||
| 	indexer, err := w.get() | ||||
| 	if err != nil { | ||||
| 		return err | ||||
|   | ||||
		Reference in New Issue
	
	Block a user