mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 19:38:23 +00:00 
			
		
		
		
	* Fix release counter on API repository info (#10968) * correct Pull Count to v1.11 Fixtures
This commit is contained in:
		| @@ -209,13 +209,31 @@ func getRepo(t *testing.T, repoID int64) *models.Repository { | |||||||
| func TestAPIViewRepo(t *testing.T) { | func TestAPIViewRepo(t *testing.T) { | ||||||
| 	defer prepareTestEnv(t)() | 	defer prepareTestEnv(t)() | ||||||
|  |  | ||||||
|  | 	var repo api.Repository | ||||||
|  |  | ||||||
| 	req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1") | 	req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1") | ||||||
| 	resp := MakeRequest(t, req, http.StatusOK) | 	resp := MakeRequest(t, req, http.StatusOK) | ||||||
|  |  | ||||||
| 	var repo api.Repository |  | ||||||
| 	DecodeJSON(t, resp, &repo) | 	DecodeJSON(t, resp, &repo) | ||||||
| 	assert.EqualValues(t, 1, repo.ID) | 	assert.EqualValues(t, 1, repo.ID) | ||||||
| 	assert.EqualValues(t, "repo1", repo.Name) | 	assert.EqualValues(t, "repo1", repo.Name) | ||||||
|  | 	assert.EqualValues(t, 1, repo.Releases) | ||||||
|  | 	assert.EqualValues(t, 1, repo.OpenIssues) | ||||||
|  | 	assert.EqualValues(t, 2, 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) { | func TestAPIOrgRepos(t *testing.T) { | ||||||
|   | |||||||
| @@ -173,7 +173,6 @@ type Repository struct { | |||||||
| 	NumMilestones       int `xorm:"NOT NULL DEFAULT 0"` | 	NumMilestones       int `xorm:"NOT NULL DEFAULT 0"` | ||||||
| 	NumClosedMilestones int `xorm:"NOT NULL DEFAULT 0"` | 	NumClosedMilestones int `xorm:"NOT NULL DEFAULT 0"` | ||||||
| 	NumOpenMilestones   int `xorm:"-"` | 	NumOpenMilestones   int `xorm:"-"` | ||||||
| 	NumReleases         int `xorm:"-"` |  | ||||||
|  |  | ||||||
| 	IsPrivate  bool `xorm:"INDEX"` | 	IsPrivate  bool `xorm:"INDEX"` | ||||||
| 	IsEmpty    bool `xorm:"INDEX"` | 	IsEmpty    bool `xorm:"INDEX"` | ||||||
| @@ -364,6 +363,8 @@ func (repo *Repository) innerAPIFormat(e Engine, mode AccessMode, isParent bool) | |||||||
| 		allowSquash = config.AllowSquash | 		allowSquash = config.AllowSquash | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	numReleases, _ := GetReleaseCountByRepoID(repo.ID, FindReleasesOptions{IncludeDrafts: false, IncludeTags: true}) | ||||||
|  |  | ||||||
| 	return &api.Repository{ | 	return &api.Repository{ | ||||||
| 		ID:                        repo.ID, | 		ID:                        repo.ID, | ||||||
| 		Owner:                     repo.Owner.APIFormat(), | 		Owner:                     repo.Owner.APIFormat(), | ||||||
| @@ -387,7 +388,7 @@ func (repo *Repository) innerAPIFormat(e Engine, mode AccessMode, isParent bool) | |||||||
| 		Watchers:                  repo.NumWatches, | 		Watchers:                  repo.NumWatches, | ||||||
| 		OpenIssues:                repo.NumOpenIssues, | 		OpenIssues:                repo.NumOpenIssues, | ||||||
| 		OpenPulls:                 repo.NumOpenPulls, | 		OpenPulls:                 repo.NumOpenPulls, | ||||||
| 		Releases:                  repo.NumReleases, | 		Releases:                  int(numReleases), | ||||||
| 		DefaultBranch:             repo.DefaultBranch, | 		DefaultBranch:             repo.DefaultBranch, | ||||||
| 		Created:                   repo.CreatedUnix.AsTime(), | 		Created:                   repo.CreatedUnix.AsTime(), | ||||||
| 		Updated:                   repo.UpdatedUnix.AsTime(), | 		Updated:                   repo.UpdatedUnix.AsTime(), | ||||||
|   | |||||||
| @@ -396,7 +396,7 @@ func RepoAssignment() macaron.Handler { | |||||||
| 			ctx.Data["RepoExternalIssuesLink"] = unit.ExternalTrackerConfig().ExternalTrackerURL | 			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, | 			IncludeDrafts: false, | ||||||
| 			IncludeTags:   true, | 			IncludeTags:   true, | ||||||
| 		}) | 		}) | ||||||
| @@ -404,7 +404,6 @@ func RepoAssignment() macaron.Handler { | |||||||
| 			ctx.ServerError("GetReleaseCountByRepoID", err) | 			ctx.ServerError("GetReleaseCountByRepoID", err) | ||||||
| 			return | 			return | ||||||
| 		} | 		} | ||||||
| 		ctx.Repo.Repository.NumReleases = int(count) |  | ||||||
|  |  | ||||||
| 		ctx.Data["Title"] = owner.Name + "/" + repo.Name | 		ctx.Data["Title"] = owner.Name + "/" + repo.Name | ||||||
| 		ctx.Data["Repository"] = repo | 		ctx.Data["Repository"] = repo | ||||||
|   | |||||||
| @@ -86,7 +86,7 @@ | |||||||
|  |  | ||||||
| 				{{if and (.Permission.CanRead $.UnitTypeReleases) (not .IsEmptyRepo) }} | 				{{if and (.Permission.CanRead $.UnitTypeReleases) (not .IsEmptyRepo) }} | ||||||
| 				<a class="{{if .PageIsReleaseList}}active{{end}} item" href="{{.RepoLink}}/releases"> | 				<a class="{{if .PageIsReleaseList}}active{{end}} item" href="{{.RepoLink}}/releases"> | ||||||
| 					<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> | 					<i class="octicon octicon-tag"></i> {{.i18n.Tr "repo.releases"}} <span class="ui {{if not .NumReleases}}gray{{else}}blue{{end}} small label">{{.NumReleases}}</span> | ||||||
| 				</a> | 				</a> | ||||||
| 				{{end}} | 				{{end}} | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user