summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorGiteabot <teabot@gitea.io>2024-01-12 15:12:18 +0800
committerGitHub <noreply@github.com>2024-01-12 07:12:18 +0000
commit95901a99c0bbbde022afd9e9297c0ee14fc7e9a4 (patch)
tree922954dc8c147ecdb90c62db2403c435fc657d89 /services
parentcb33623bb6b0cf60417c4a1d84b8f42ef1714ea3 (diff)
downloadgitea-95901a99c0bbbde022afd9e9297c0ee14fc7e9a4.tar.gz
gitea-95901a99c0bbbde022afd9e9297c0ee14fc7e9a4.zip
Fix `convert.ToTeams` on empty input (#28426) (#28767)
Backport #28426 by @KN4CK3R Fixes #28420 Don't return `nil` if the input was empty. Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
Diffstat (limited to 'services')
-rw-r--r--services/convert/convert.go38
-rw-r--r--services/convert/pull_review.go14
2 files changed, 26 insertions, 26 deletions
diff --git a/services/convert/convert.go b/services/convert/convert.go
index fcb5dd572f..72ea0c233f 100644
--- a/services/convert/convert.go
+++ b/services/convert/convert.go
@@ -308,40 +308,38 @@ func ToTeam(ctx context.Context, team *organization.Team, loadOrg ...bool) (*api
// ToTeams convert models.Team list to api.Team list
func ToTeams(ctx context.Context, teams []*organization.Team, loadOrgs bool) ([]*api.Team, error) {
- if len(teams) == 0 || teams[0] == nil {
- return nil, nil
- }
-
cache := make(map[int64]*api.Organization)
- apiTeams := make([]*api.Team, len(teams))
- for i := range teams {
- if err := teams[i].LoadUnits(ctx); err != nil {
+ apiTeams := make([]*api.Team, 0, len(teams))
+ for _, t := range teams {
+ if err := t.LoadUnits(ctx); err != nil {
return nil, err
}
- apiTeams[i] = &api.Team{
- ID: teams[i].ID,
- Name: teams[i].Name,
- Description: teams[i].Description,
- IncludesAllRepositories: teams[i].IncludesAllRepositories,
- CanCreateOrgRepo: teams[i].CanCreateOrgRepo,
- Permission: teams[i].AccessMode.String(),
- Units: teams[i].GetUnitNames(),
- UnitsMap: teams[i].GetUnitsMap(),
+ apiTeam := &api.Team{
+ ID: t.ID,
+ Name: t.Name,
+ Description: t.Description,
+ IncludesAllRepositories: t.IncludesAllRepositories,
+ CanCreateOrgRepo: t.CanCreateOrgRepo,
+ Permission: t.AccessMode.String(),
+ Units: t.GetUnitNames(),
+ UnitsMap: t.GetUnitsMap(),
}
if loadOrgs {
- apiOrg, ok := cache[teams[i].OrgID]
+ apiOrg, ok := cache[t.OrgID]
if !ok {
- org, err := organization.GetOrgByID(ctx, teams[i].OrgID)
+ org, err := organization.GetOrgByID(ctx, t.OrgID)
if err != nil {
return nil, err
}
apiOrg = ToOrganization(ctx, org)
- cache[teams[i].OrgID] = apiOrg
+ cache[t.OrgID] = apiOrg
}
- apiTeams[i].Organization = apiOrg
+ apiTeam.Organization = apiOrg
}
+
+ apiTeams = append(apiTeams, apiTeam)
}
return apiTeams, nil
}
diff --git a/services/convert/pull_review.go b/services/convert/pull_review.go
index 0332606285..aa7ad68a47 100644
--- a/services/convert/pull_review.go
+++ b/services/convert/pull_review.go
@@ -21,15 +21,9 @@ func ToPullReview(ctx context.Context, r *issues_model.Review, doer *user_model.
r.Reviewer = user_model.NewGhostUser()
}
- apiTeam, err := ToTeam(ctx, r.ReviewerTeam)
- if err != nil {
- return nil, err
- }
-
result := &api.PullReview{
ID: r.ID,
Reviewer: ToUser(ctx, r.Reviewer, doer),
- ReviewerTeam: apiTeam,
State: api.ReviewStateUnknown,
Body: r.Content,
CommitID: r.CommitID,
@@ -43,6 +37,14 @@ func ToPullReview(ctx context.Context, r *issues_model.Review, doer *user_model.
HTMLPullURL: r.Issue.HTMLURL(),
}
+ if r.ReviewerTeam != nil {
+ var err error
+ result.ReviewerTeam, err = ToTeam(ctx, r.ReviewerTeam)
+ if err != nil {
+ return nil, err
+ }
+ }
+
switch r.Type {
case issues_model.ReviewTypeApprove:
result.State = api.ReviewStateApproved