mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Fix release counter on API repository info (#10968)
Use the same mechanism as the webpage for calculating the release count Fix #10946
This commit is contained in:
		| @@ -209,13 +209,31 @@ func getRepo(t *testing.T, repoID int64) *models.Repository { | ||||
| func TestAPIViewRepo(t *testing.T) { | ||||
| 	defer prepareTestEnv(t)() | ||||
|  | ||||
| 	var repo api.Repository | ||||
|  | ||||
| 	req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1") | ||||
| 	resp := MakeRequest(t, req, http.StatusOK) | ||||
|  | ||||
| 	var repo api.Repository | ||||
| 	DecodeJSON(t, resp, &repo) | ||||
| 	assert.EqualValues(t, 1, repo.ID) | ||||
| 	assert.EqualValues(t, "repo1", repo.Name) | ||||
| 	assert.EqualValues(t, 1, repo.Releases) | ||||
| 	assert.EqualValues(t, 1, repo.OpenIssues) | ||||
| 	assert.EqualValues(t, 3, repo.OpenPulls) | ||||
|  | ||||
| 	req = NewRequest(t, "GET", "/api/v1/repos/user12/repo10") | ||||
| 	resp = MakeRequest(t, req, http.StatusOK) | ||||
| 	DecodeJSON(t, resp, &repo) | ||||
| 	assert.EqualValues(t, 10, repo.ID) | ||||
| 	assert.EqualValues(t, "repo10", repo.Name) | ||||
| 	assert.EqualValues(t, 1, repo.OpenPulls) | ||||
| 	assert.EqualValues(t, 1, repo.Forks) | ||||
|  | ||||
| 	req = NewRequest(t, "GET", "/api/v1/repos/user5/repo4") | ||||
| 	resp = MakeRequest(t, req, http.StatusOK) | ||||
| 	DecodeJSON(t, resp, &repo) | ||||
| 	assert.EqualValues(t, 4, repo.ID) | ||||
| 	assert.EqualValues(t, "repo4", repo.Name) | ||||
| 	assert.EqualValues(t, 1, repo.Stars) | ||||
| } | ||||
|  | ||||
| func TestAPIOrgRepos(t *testing.T) { | ||||
|   | ||||
| @@ -166,7 +166,6 @@ type Repository struct { | ||||
| 	NumMilestones       int `xorm:"NOT NULL DEFAULT 0"` | ||||
| 	NumClosedMilestones int `xorm:"NOT NULL DEFAULT 0"` | ||||
| 	NumOpenMilestones   int `xorm:"-"` | ||||
| 	NumReleases         int `xorm:"-"` | ||||
|  | ||||
| 	IsPrivate  bool `xorm:"INDEX"` | ||||
| 	IsEmpty    bool `xorm:"INDEX"` | ||||
| @@ -353,6 +352,8 @@ func (repo *Repository) innerAPIFormat(e Engine, mode AccessMode, isParent bool) | ||||
|  | ||||
| 	repo.mustOwner(e) | ||||
|  | ||||
| 	numReleases, _ := GetReleaseCountByRepoID(repo.ID, FindReleasesOptions{IncludeDrafts: false, IncludeTags: true}) | ||||
|  | ||||
| 	return &api.Repository{ | ||||
| 		ID:                        repo.ID, | ||||
| 		Owner:                     repo.Owner.APIFormat(), | ||||
| @@ -376,7 +377,7 @@ func (repo *Repository) innerAPIFormat(e Engine, mode AccessMode, isParent bool) | ||||
| 		Watchers:                  repo.NumWatches, | ||||
| 		OpenIssues:                repo.NumOpenIssues, | ||||
| 		OpenPulls:                 repo.NumOpenPulls, | ||||
| 		Releases:                  repo.NumReleases, | ||||
| 		Releases:                  int(numReleases), | ||||
| 		DefaultBranch:             repo.DefaultBranch, | ||||
| 		Created:                   repo.CreatedUnix.AsTime(), | ||||
| 		Updated:                   repo.UpdatedUnix.AsTime(), | ||||
|   | ||||
| @@ -439,7 +439,7 @@ func RepoAssignment() macaron.Handler { | ||||
| 			ctx.Data["RepoExternalIssuesLink"] = unit.ExternalTrackerConfig().ExternalTrackerURL | ||||
| 		} | ||||
|  | ||||
| 		count, err := models.GetReleaseCountByRepoID(ctx.Repo.Repository.ID, models.FindReleasesOptions{ | ||||
| 		ctx.Data["NumReleases"], err = models.GetReleaseCountByRepoID(ctx.Repo.Repository.ID, models.FindReleasesOptions{ | ||||
| 			IncludeDrafts: false, | ||||
| 			IncludeTags:   true, | ||||
| 		}) | ||||
| @@ -447,7 +447,6 @@ func RepoAssignment() macaron.Handler { | ||||
| 			ctx.ServerError("GetReleaseCountByRepoID", err) | ||||
| 			return | ||||
| 		} | ||||
| 		ctx.Repo.Repository.NumReleases = int(count) | ||||
|  | ||||
| 		ctx.Data["Title"] = owner.Name + "/" + repo.Name | ||||
| 		ctx.Data["Repository"] = repo | ||||
|   | ||||
| @@ -117,7 +117,7 @@ | ||||
|  | ||||
| 				{{if and (.Permission.CanRead $.UnitTypeReleases) (not .IsEmptyRepo) }} | ||||
| 				<a class="{{if .PageIsReleaseList}}active{{end}} item" href="{{.RepoLink}}/releases"> | ||||
| 					{{svg "octicon-tag" 16}} {{.i18n.Tr "repo.releases"}} <span class="ui {{if not .Repository.NumReleases}}gray{{else}}blue{{end}} small label">{{.Repository.NumReleases}}</span> | ||||
| 					{{svg "octicon-tag" 16}} {{.i18n.Tr "repo.releases"}} <span class="ui {{if not .NumReleases}}gray{{else}}blue{{end}} small label">{{.NumReleases}}</span> | ||||
| 				</a> | ||||
| 				{{end}} | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user