Skip to content

Commit 25ebf69

Browse files
committed
fix an internal error
Team has negative ID while Users has positive. We need to use TeamReviewRequest for teams and ReviewRequest for a individual user. Also, we have to validate the permissions before send out the notification
1 parent d8d66b5 commit 25ebf69

File tree

1 file changed

+23
-34
lines changed

1 file changed

+23
-34
lines changed

services/pull/pull.go

Lines changed: 23 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -117,38 +117,6 @@ func NewPullRequest(ctx context.Context, repo *repo_model.Repository, issue *iss
117117
assigneeCommentMap[assigneeID] = comment
118118
}
119119

120-
for _, reviewerID := range reviewerIDs {
121-
// negative reviewIDs represent team requests
122-
if reviewerID < 0 {
123-
team, err := organization.GetTeamByID(ctx, -reviewerID)
124-
if err != nil {
125-
return err
126-
}
127-
err = issue_service.IsValidTeamReviewRequest(ctx, team, issue.Poster, true, issue)
128-
if err != nil {
129-
return err
130-
}
131-
_, err = issue_service.TeamReviewRequest(ctx, issue, issue.Poster, team, true)
132-
if err != nil {
133-
return err
134-
}
135-
continue
136-
}
137-
138-
reviewer, err := user_model.GetUserByID(ctx, reviewerID)
139-
if err != nil {
140-
return err
141-
}
142-
permDoer, err := access_model.GetUserRepoPermission(ctx, issue.Repo, issue.Poster)
143-
if err != nil {
144-
return err
145-
}
146-
err = issue_service.IsValidReviewRequest(ctx, reviewer, issue.Poster, true, issue, &permDoer)
147-
if err != nil {
148-
return err
149-
}
150-
}
151-
152120
pr.Issue = issue
153121
issue.PullRequest = pr
154122

@@ -232,11 +200,32 @@ func NewPullRequest(ctx context.Context, repo *repo_model.Repository, issue *iss
232200
}
233201

234202
for _, reviewerID := range reviewerIDs {
203+
// negative reviewIDs represent team requests
204+
if reviewerID < 0 {
205+
team, err := organization.GetTeamByID(ctx, -reviewerID)
206+
if err != nil {
207+
return err
208+
}
209+
err = issue_service.IsValidTeamReviewRequest(ctx, team, issue.Poster, true, issue)
210+
if err != nil {
211+
return err
212+
}
213+
_, err = issue_service.TeamReviewRequest(ctx, issue, issue.Poster, team, true)
214+
if err != nil {
215+
return err
216+
}
217+
continue
218+
}
219+
235220
reviewer, err := user_model.GetUserByID(ctx, reviewerID)
236221
if err != nil {
237-
return ErrDependenciesLeft
222+
return err
223+
}
224+
permDoer, err := access_model.GetUserRepoPermission(ctx, issue.Repo, issue.Poster)
225+
if err != nil {
226+
return err
238227
}
239-
_, err = issue_service.ReviewRequest(ctx, issue, issue.Poster, reviewer, true)
228+
err = issue_service.IsValidReviewRequest(ctx, reviewer, issue.Poster, true, issue, &permDoer)
240229
if err != nil {
241230
return err
242231
}

0 commit comments

Comments
 (0)