Merge pull request '[GITEA] POST /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/comments (squash) do not implicitly create a review' (#2169) from earl-warren/forgejo:wip-api-review into forgejo-dependency
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/2169 Reviewed-by: Loïc Dachary <dachary@noreply.codeberg.org>
This commit is contained in:
commit
66a2d07ed2
|
@ -331,22 +331,14 @@ func CreatePullReviewComment(ctx *context.APIContext) {
|
|||
line = opts.OldLineNum * -1
|
||||
}
|
||||
|
||||
comment, err := pull_service.CreateCodeComment(ctx,
|
||||
comment, err := pull_service.CreateCodeCommentKnownReviewID(ctx,
|
||||
ctx.Doer,
|
||||
ctx.Repo.GitRepo,
|
||||
pr.Issue.Repo,
|
||||
pr.Issue,
|
||||
line,
|
||||
opts.Body,
|
||||
opts.Path,
|
||||
// as of e522e774cae2240279fc48c349fc513c9d3353ee
|
||||
// isPending is not needed because review.ID is always available
|
||||
// and does not need to be discovered implicitly
|
||||
false,
|
||||
line,
|
||||
review.ID,
|
||||
// as of e522e774cae2240279fc48c349fc513c9d3353ee
|
||||
// latestCommitID is not needed because it is only used to
|
||||
// create a new review in case it does not already exist
|
||||
"",
|
||||
)
|
||||
if err != nil {
|
||||
ctx.InternalServerError(err)
|
||||
|
|
|
@ -95,7 +95,7 @@ func CreateCodeComment(ctx context.Context, doer *user_model.User, gitRepo *git.
|
|||
return nil, err
|
||||
}
|
||||
|
||||
comment, err := createCodeComment(ctx,
|
||||
comment, err := CreateCodeCommentKnownReviewID(ctx,
|
||||
doer,
|
||||
issue.Repo,
|
||||
issue,
|
||||
|
@ -135,7 +135,7 @@ func CreateCodeComment(ctx context.Context, doer *user_model.User, gitRepo *git.
|
|||
}
|
||||
}
|
||||
|
||||
comment, err := createCodeComment(ctx,
|
||||
comment, err := CreateCodeCommentKnownReviewID(ctx,
|
||||
doer,
|
||||
issue.Repo,
|
||||
issue,
|
||||
|
@ -161,7 +161,7 @@ func CreateCodeComment(ctx context.Context, doer *user_model.User, gitRepo *git.
|
|||
}
|
||||
|
||||
// createCodeComment creates a plain code comment at the specified line / path
|
||||
func createCodeComment(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, issue *issues_model.Issue, content, treePath string, line, reviewID int64) (*issues_model.Comment, error) {
|
||||
func CreateCodeCommentKnownReviewID(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, issue *issues_model.Issue, content, treePath string, line, reviewID int64) (*issues_model.Comment, error) {
|
||||
var commitID, patch string
|
||||
if err := issue.LoadPullRequest(ctx); err != nil {
|
||||
return nil, fmt.Errorf("LoadPullRequest: %w", err)
|
||||
|
|
|
@ -45,7 +45,6 @@ func TestAPIPullReviewCreateDeleteComment(t *testing.T) {
|
|||
t.Run("Event_"+string(event), func(t *testing.T) {
|
||||
path := "README.md"
|
||||
var review api.PullReview
|
||||
existingCommentBody := "existing comment body"
|
||||
var reviewLine int64 = 1
|
||||
|
||||
// cleanup
|
||||
|
@ -76,18 +75,11 @@ func TestAPIPullReviewCreateDeleteComment(t *testing.T) {
|
|||
req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/pulls/%d/reviews", repo.FullName(), pullIssue.Index), &api.CreatePullReviewOptions{
|
||||
Body: "body1",
|
||||
Event: event,
|
||||
Comments: []api.CreatePullReviewComment{
|
||||
{
|
||||
Path: path,
|
||||
Body: existingCommentBody,
|
||||
OldLineNum: reviewLine,
|
||||
},
|
||||
},
|
||||
}).AddTokenAuth(token)
|
||||
resp := MakeRequest(t, req, http.StatusOK)
|
||||
DecodeJSON(t, resp, &review)
|
||||
require.EqualValues(t, string(event), review.State)
|
||||
require.EqualValues(t, 1, review.CodeCommentsCount)
|
||||
require.EqualValues(t, 0, review.CodeCommentsCount)
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -100,17 +92,6 @@ func TestAPIPullReviewCreateDeleteComment(t *testing.T) {
|
|||
}
|
||||
requireReviewCount(1)
|
||||
|
||||
{
|
||||
req := NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/pulls/%d/reviews/%d/comments", repo.FullName(), pullIssue.Index, review.ID).
|
||||
AddTokenAuth(token)
|
||||
resp := MakeRequest(t, req, http.StatusOK)
|
||||
var reviewComments []*api.PullReviewComment
|
||||
DecodeJSON(t, resp, &reviewComments)
|
||||
require.Len(t, reviewComments, 1)
|
||||
assert.EqualValues(t, username, reviewComments[0].Poster.UserName)
|
||||
assert.EqualValues(t, existingCommentBody, reviewComments[0].Body)
|
||||
}
|
||||
|
||||
newCommentBody := "first new line"
|
||||
var reviewComment api.PullReviewComment
|
||||
|
||||
|
|
Loading…
Reference in New Issue