mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Fix some API bugs (#16184)
* Repository object only count releases as releases (fix #16144) * EditOrg respect RepoAdminChangeTeamAccess option (fix #16013)
This commit is contained in:
		| @@ -223,7 +223,7 @@ func TestAPIViewRepo(t *testing.T) { | |||||||
| 	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, 3, repo.Releases) | 	assert.EqualValues(t, 2, repo.Releases) | ||||||
| 	assert.EqualValues(t, 1, repo.OpenIssues) | 	assert.EqualValues(t, 1, repo.OpenIssues) | ||||||
| 	assert.EqualValues(t, 3, repo.OpenPulls) | 	assert.EqualValues(t, 3, repo.OpenPulls) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -91,7 +91,7 @@ func innerToRepo(repo *models.Repository, mode models.AccessMode, isParent bool) | |||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	numReleases, _ := models.GetReleaseCountByRepoID(repo.ID, models.FindReleasesOptions{IncludeDrafts: false, IncludeTags: true}) | 	numReleases, _ := models.GetReleaseCountByRepoID(repo.ID, models.FindReleasesOptions{IncludeDrafts: false, IncludeTags: false}) | ||||||
|  |  | ||||||
| 	mirrorInterval := "" | 	mirrorInterval := "" | ||||||
| 	if repo.IsMirror { | 	if repo.IsMirror { | ||||||
|   | |||||||
| @@ -31,6 +31,8 @@ type CreateOrgOption struct { | |||||||
| 	RepoAdminChangeTeamAccess bool   `json:"repo_admin_change_team_access"` | 	RepoAdminChangeTeamAccess bool   `json:"repo_admin_change_team_access"` | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // TODO: make EditOrgOption fields optional after https://gitea.com/go-chi/binding/pulls/5 got merged | ||||||
|  |  | ||||||
| // EditOrgOption options for editing an organization | // EditOrgOption options for editing an organization | ||||||
| type EditOrgOption struct { | type EditOrgOption struct { | ||||||
| 	FullName    string `json:"full_name"` | 	FullName    string `json:"full_name"` | ||||||
| @@ -40,5 +42,5 @@ type EditOrgOption struct { | |||||||
| 	// possible values are `public`, `limited` or `private` | 	// possible values are `public`, `limited` or `private` | ||||||
| 	// enum: public,limited,private | 	// enum: public,limited,private | ||||||
| 	Visibility                string `json:"visibility" binding:"In(,public,limited,private)"` | 	Visibility                string `json:"visibility" binding:"In(,public,limited,private)"` | ||||||
| 	RepoAdminChangeTeamAccess bool   `json:"repo_admin_change_team_access"` | 	RepoAdminChangeTeamAccess *bool  `json:"repo_admin_change_team_access"` | ||||||
| } | } | ||||||
|   | |||||||
| @@ -264,7 +264,13 @@ func Edit(ctx *context.APIContext) { | |||||||
| 	if form.Visibility != "" { | 	if form.Visibility != "" { | ||||||
| 		org.Visibility = api.VisibilityModes[form.Visibility] | 		org.Visibility = api.VisibilityModes[form.Visibility] | ||||||
| 	} | 	} | ||||||
| 	if err := models.UpdateUserCols(org, "full_name", "description", "website", "location", "visibility"); err != nil { | 	if form.RepoAdminChangeTeamAccess != nil { | ||||||
|  | 		org.RepoAdminChangeTeamAccess = *form.RepoAdminChangeTeamAccess | ||||||
|  | 	} | ||||||
|  | 	if err := models.UpdateUserCols(org, | ||||||
|  | 		"full_name", "description", "website", "location", | ||||||
|  | 		"visibility", "repo_admin_change_team_access", | ||||||
|  | 	); err != nil { | ||||||
| 		ctx.Error(http.StatusInternalServerError, "EditOrganization", err) | 		ctx.Error(http.StatusInternalServerError, "EditOrganization", err) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -55,7 +55,7 @@ func parseTime(value string) (int64, error) { | |||||||
| // prepareQueryArg unescape and trim a query arg | // prepareQueryArg unescape and trim a query arg | ||||||
| func prepareQueryArg(ctx *context.APIContext, name string) (value string, err error) { | func prepareQueryArg(ctx *context.APIContext, name string) (value string, err error) { | ||||||
| 	value, err = url.PathUnescape(ctx.Query(name)) | 	value, err = url.PathUnescape(ctx.Query(name)) | ||||||
| 	value = strings.Trim(value, " ") | 	value = strings.TrimSpace(value) | ||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user