mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Remove the duplicated function GetTags (#35375)
This PR removes the GetTags function from the git module and keeps only GetTagInfos. All previous usages of GetTags have been replaced with database-based tag functions. --------- Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
		| @@ -282,11 +282,8 @@ func (opts FindReleasesOptions) ToOrders() string { | |||||||
|  |  | ||||||
| // GetTagNamesByRepoID returns a list of release tag names of repository. | // GetTagNamesByRepoID returns a list of release tag names of repository. | ||||||
| func GetTagNamesByRepoID(ctx context.Context, repoID int64) ([]string, error) { | func GetTagNamesByRepoID(ctx context.Context, repoID int64) ([]string, error) { | ||||||
| 	listOptions := db.ListOptions{ |  | ||||||
| 		ListAll: true, |  | ||||||
| 	} |  | ||||||
| 	opts := FindReleasesOptions{ | 	opts := FindReleasesOptions{ | ||||||
| 		ListOptions:   listOptions, | 		ListOptions:   db.ListOptionsAll, | ||||||
| 		IncludeDrafts: true, | 		IncludeDrafts: true, | ||||||
| 		IncludeTags:   true, | 		IncludeTags:   true, | ||||||
| 		HasSha1:       optional.Some(true), | 		HasSha1:       optional.Some(true), | ||||||
|   | |||||||
| @@ -7,8 +7,6 @@ | |||||||
| package git | package git | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"strings" |  | ||||||
|  |  | ||||||
| 	"code.gitea.io/gitea/modules/log" | 	"code.gitea.io/gitea/modules/log" | ||||||
|  |  | ||||||
| 	"github.com/go-git/go-git/v5/plumbing" | 	"github.com/go-git/go-git/v5/plumbing" | ||||||
| @@ -20,40 +18,6 @@ func (repo *Repository) IsTagExist(name string) bool { | |||||||
| 	return err == nil | 	return err == nil | ||||||
| } | } | ||||||
|  |  | ||||||
| // GetTags returns all tags of the repository. |  | ||||||
| // returning at most limit tags, or all if limit is 0. |  | ||||||
| func (repo *Repository) GetTags(skip, limit int) ([]string, error) { |  | ||||||
| 	var tagNames []string |  | ||||||
|  |  | ||||||
| 	tags, err := repo.gogitRepo.Tags() |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	_ = tags.ForEach(func(tag *plumbing.Reference) error { |  | ||||||
| 		tagNames = append(tagNames, strings.TrimPrefix(tag.Name().String(), TagPrefix)) |  | ||||||
| 		return nil |  | ||||||
| 	}) |  | ||||||
|  |  | ||||||
| 	// Reverse order |  | ||||||
| 	for i := 0; i < len(tagNames)/2; i++ { |  | ||||||
| 		j := len(tagNames) - i - 1 |  | ||||||
| 		tagNames[i], tagNames[j] = tagNames[j], tagNames[i] |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// since we have to reverse order we can paginate only afterwards |  | ||||||
| 	if len(tagNames) < skip { |  | ||||||
| 		tagNames = []string{} |  | ||||||
| 	} else { |  | ||||||
| 		tagNames = tagNames[skip:] |  | ||||||
| 	} |  | ||||||
| 	if limit != 0 && len(tagNames) > limit { |  | ||||||
| 		tagNames = tagNames[:limit] |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return tagNames, nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // GetTagType gets the type of the tag, either commit (simple) or tag (annotated) | // GetTagType gets the type of the tag, either commit (simple) or tag (annotated) | ||||||
| func (repo *Repository) GetTagType(id ObjectID) (string, error) { | func (repo *Repository) GetTagType(id ObjectID) (string, error) { | ||||||
| 	// Get tag type | 	// Get tag type | ||||||
|   | |||||||
| @@ -22,13 +22,6 @@ func (repo *Repository) IsTagExist(name string) bool { | |||||||
| 	return repo.IsReferenceExist(TagPrefix + name) | 	return repo.IsReferenceExist(TagPrefix + name) | ||||||
| } | } | ||||||
|  |  | ||||||
| // GetTags returns all tags of the repository. |  | ||||||
| // returning at most limit tags, or all if limit is 0. |  | ||||||
| func (repo *Repository) GetTags(skip, limit int) (tags []string, err error) { |  | ||||||
| 	tags, _, err = callShowRef(repo.Ctx, repo.Path, TagPrefix, TrustedCmdArgs{TagPrefix, "--sort=-taggerdate"}, skip, limit) |  | ||||||
| 	return tags, err |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // GetTagType gets the type of the tag, either commit (simple) or tag (annotated) | // GetTagType gets the type of the tag, either commit (simple) or tag (annotated) | ||||||
| func (repo *Repository) GetTagType(id ObjectID) (string, error) { | func (repo *Repository) GetTagType(id ObjectID) (string, error) { | ||||||
| 	wr, rd, cancel, err := repo.CatFileBatchCheck(repo.Ctx) | 	wr, rd, cancel, err := repo.CatFileBatchCheck(repo.Ctx) | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ import ( | |||||||
| 	"github.com/stretchr/testify/require" | 	"github.com/stretchr/testify/require" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TestRepository_GetTags(t *testing.T) { | func TestRepository_GetTagInfos(t *testing.T) { | ||||||
| 	bareRepo1Path := filepath.Join(testReposDir, "repo1_bare") | 	bareRepo1Path := filepath.Join(testReposDir, "repo1_bare") | ||||||
| 	bareRepo1, err := OpenRepository(t.Context(), bareRepo1Path) | 	bareRepo1, err := OpenRepository(t.Context(), bareRepo1Path) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|   | |||||||
| @@ -707,12 +707,6 @@ func PrepareCompareDiff( | |||||||
| } | } | ||||||
|  |  | ||||||
| func getBranchesAndTagsForRepo(ctx gocontext.Context, repo *repo_model.Repository) (branches, tags []string, err error) { | func getBranchesAndTagsForRepo(ctx gocontext.Context, repo *repo_model.Repository) (branches, tags []string, err error) { | ||||||
| 	gitRepo, err := gitrepo.OpenRepository(ctx, repo) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, nil, err |  | ||||||
| 	} |  | ||||||
| 	defer gitRepo.Close() |  | ||||||
|  |  | ||||||
| 	branches, err = git_model.FindBranchNames(ctx, git_model.FindBranchOptions{ | 	branches, err = git_model.FindBranchNames(ctx, git_model.FindBranchOptions{ | ||||||
| 		RepoID:          repo.ID, | 		RepoID:          repo.ID, | ||||||
| 		ListOptions:     db.ListOptionsAll, | 		ListOptions:     db.ListOptionsAll, | ||||||
| @@ -721,7 +715,7 @@ func getBranchesAndTagsForRepo(ctx gocontext.Context, repo *repo_model.Repositor | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, nil, err | 		return nil, nil, err | ||||||
| 	} | 	} | ||||||
| 	tags, err = gitRepo.GetTags(0, 0) | 	tags, err = repo_model.GetTagNamesByRepoID(ctx, repo.ID) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, nil, err | 		return nil, nil, err | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user