* Fix some API bugs (#16184) * Repository object only count releases as releases (fix #16144) * EditOrg respect RepoAdminChangeTeamAccess option (fix #16013) * adjut to v1.14tags/v1.14.3
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, 2, repo.Releases) | |||||
assert.EqualValues(t, 1, 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) | ||||
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 { |
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"` | ||||
// 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"` | |||||
} | } |
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 | ||||
} | } |
// 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 | ||||
} | } | ||||