Skip to content

Commit 0c4be64

Browse files
authored
[Backport] Fix release counter on API repository info (#10968) (#10996)
* Fix release counter on API repository info (#10968) * correct Pull Count to v1.11 Fixtures
1 parent c34ad62 commit 0c4be64

File tree

4 files changed

+25
-7
lines changed

4 files changed

+25
-7
lines changed

integrations/api_repo_test.go

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,13 +209,31 @@ func getRepo(t *testing.T, repoID int64) *models.Repository {
209209
func TestAPIViewRepo(t *testing.T) {
210210
defer prepareTestEnv(t)()
211211

212+
var repo api.Repository
213+
212214
req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1")
213215
resp := MakeRequest(t, req, http.StatusOK)
214-
215-
var repo api.Repository
216216
DecodeJSON(t, resp, &repo)
217217
assert.EqualValues(t, 1, repo.ID)
218218
assert.EqualValues(t, "repo1", repo.Name)
219+
assert.EqualValues(t, 1, repo.Releases)
220+
assert.EqualValues(t, 1, repo.OpenIssues)
221+
assert.EqualValues(t, 2, repo.OpenPulls)
222+
223+
req = NewRequest(t, "GET", "/api/v1/repos/user12/repo10")
224+
resp = MakeRequest(t, req, http.StatusOK)
225+
DecodeJSON(t, resp, &repo)
226+
assert.EqualValues(t, 10, repo.ID)
227+
assert.EqualValues(t, "repo10", repo.Name)
228+
assert.EqualValues(t, 1, repo.OpenPulls)
229+
assert.EqualValues(t, 1, repo.Forks)
230+
231+
req = NewRequest(t, "GET", "/api/v1/repos/user5/repo4")
232+
resp = MakeRequest(t, req, http.StatusOK)
233+
DecodeJSON(t, resp, &repo)
234+
assert.EqualValues(t, 4, repo.ID)
235+
assert.EqualValues(t, "repo4", repo.Name)
236+
assert.EqualValues(t, 1, repo.Stars)
219237
}
220238

221239
func TestAPIOrgRepos(t *testing.T) {

models/repo.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ type Repository struct {
173173
NumMilestones int `xorm:"NOT NULL DEFAULT 0"`
174174
NumClosedMilestones int `xorm:"NOT NULL DEFAULT 0"`
175175
NumOpenMilestones int `xorm:"-"`
176-
NumReleases int `xorm:"-"`
177176

178177
IsPrivate bool `xorm:"INDEX"`
179178
IsEmpty bool `xorm:"INDEX"`
@@ -364,6 +363,8 @@ func (repo *Repository) innerAPIFormat(e Engine, mode AccessMode, isParent bool)
364363
allowSquash = config.AllowSquash
365364
}
366365

366+
numReleases, _ := GetReleaseCountByRepoID(repo.ID, FindReleasesOptions{IncludeDrafts: false, IncludeTags: true})
367+
367368
return &api.Repository{
368369
ID: repo.ID,
369370
Owner: repo.Owner.APIFormat(),
@@ -387,7 +388,7 @@ func (repo *Repository) innerAPIFormat(e Engine, mode AccessMode, isParent bool)
387388
Watchers: repo.NumWatches,
388389
OpenIssues: repo.NumOpenIssues,
389390
OpenPulls: repo.NumOpenPulls,
390-
Releases: repo.NumReleases,
391+
Releases: int(numReleases),
391392
DefaultBranch: repo.DefaultBranch,
392393
Created: repo.CreatedUnix.AsTime(),
393394
Updated: repo.UpdatedUnix.AsTime(),

modules/context/repo.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -396,15 +396,14 @@ func RepoAssignment() macaron.Handler {
396396
ctx.Data["RepoExternalIssuesLink"] = unit.ExternalTrackerConfig().ExternalTrackerURL
397397
}
398398

399-
count, err := models.GetReleaseCountByRepoID(ctx.Repo.Repository.ID, models.FindReleasesOptions{
399+
ctx.Data["NumReleases"], err = models.GetReleaseCountByRepoID(ctx.Repo.Repository.ID, models.FindReleasesOptions{
400400
IncludeDrafts: false,
401401
IncludeTags: true,
402402
})
403403
if err != nil {
404404
ctx.ServerError("GetReleaseCountByRepoID", err)
405405
return
406406
}
407-
ctx.Repo.Repository.NumReleases = int(count)
408407

409408
ctx.Data["Title"] = owner.Name + "/" + repo.Name
410409
ctx.Data["Repository"] = repo

templates/repo/header.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686

8787
{{if and (.Permission.CanRead $.UnitTypeReleases) (not .IsEmptyRepo) }}
8888
<a class="{{if .PageIsReleaseList}}active{{end}} item" href="{{.RepoLink}}/releases">
89-
<i class="octicon octicon-tag"></i> {{.i18n.Tr "repo.releases"}} <span class="ui {{if not .Repository.NumReleases}}gray{{else}}blue{{end}} small label">{{.Repository.NumReleases}}</span>
89+
<i class="octicon octicon-tag"></i> {{.i18n.Tr "repo.releases"}} <span class="ui {{if not .NumReleases}}gray{{else}}blue{{end}} small label">{{.NumReleases}}</span>
9090
</a>
9191
{{end}}
9292

0 commit comments

Comments
 (0)