Browse Source
Fix some API bugs (#16184)
* Repository object only count releases as releases (fix #16144)
* EditOrg respect RepoAdminChangeTeamAccess option (fix #16013)
master
6543
1 year ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with
13 additions and
5 deletions
-
integrations/api_repo_test.go
-
modules/convert/repository.go
-
modules/structs/org.go
-
routers/api/v1/org/org.go
-
routers/api/v1/utils/utils.go
|
|
@ -223,7 +223,7 @@ func TestAPIViewRepo(t *testing.T) { |
|
|
|
DecodeJSON(t, resp, &repo) |
|
|
|
assert.EqualValues(t, 1, repo.ID) |
|
|
|
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, 3, repo.OpenPulls) |
|
|
|
|
|
|
|
|
|
@ -91,7 +91,7 @@ func innerToRepo(repo *models.Repository, mode models.AccessMode, isParent bool) |
|
|
|
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 := "" |
|
|
|
if repo.IsMirror { |
|
|
|
|
|
@ -31,6 +31,8 @@ type CreateOrgOption struct { |
|
|
|
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
|
|
|
|
type EditOrgOption struct { |
|
|
|
FullName string `json:"full_name"` |
|
|
@ -40,5 +42,5 @@ type EditOrgOption struct { |
|
|
|
// possible values are `public`, `limited` or `private`
|
|
|
|
// enum: 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 != "" { |
|
|
|
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) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
@ -55,7 +55,7 @@ func parseTime(value string) (int64, error) { |
|
|
|
// prepareQueryArg unescape and trim a query arg
|
|
|
|
func prepareQueryArg(ctx *context.APIContext, name string) (value string, err error) { |
|
|
|
value, err = url.PathUnescape(ctx.Query(name)) |
|
|
|
value = strings.Trim(value, " ") |
|
|
|
value = strings.TrimSpace(value) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|