You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gitea/models/issues
sillyguodong 3dc2724d36
Fix cannot reopen after pushing commits to a closed PR (#23189) (#23322)
Backport: #23189
Close: #22784

1. On GH, we can reopen a PR which was closed before after pushing
commits. After reopening PR, we can see the commits that were pushed
after closing PR in the time line. So the case of
[issue](https://github.com/go-gitea/gitea/issues/22784) is a bug which
needs to be fixed.

2. After closing a PR and pushing commits, `headBranchSha` is not equal
to `sha`(which is the last commit ID string of reference). If the
judgement exists, the button of reopen will not display. So, skip the
judgement if the status of PR is closed.


![image](https://user-images.githubusercontent.com/33891828/222037529-651fccf9-0bba-433e-b2f0-79c17e0cc812.png)

3. Even if PR is already close, we should still insert comment record
into DB when we push commits.
So we should still call  function `CreatePushPullComment()`.


067b0c2664/services/pull/pull.go (L260-L282)
So, I add a switch(`includeClosed`) to the
`GetUnmergedPullRequestsByHeadInfo` func to control whether the status
of PR must be open. In this case, by setting `includeClosed` to `true`,
we can query the closed PR.


![image](https://user-images.githubusercontent.com/33891828/222621045-bb80987c-10c5-4eac-aa0c-1fb9c6aefb51.png)

4. In the loop of comments, I use the`latestCloseCommentID` variable to
record the last occurrence of the close comment.
In the go template, if the status of PR is closed, the comments whose
type is `CommentTypePullRequestPush(29)` after `latestCloseCommentID`
won't be rendered.


![image](https://user-images.githubusercontent.com/33891828/222058913-c91cf3e3-819b-40c5-8015-654b31eeccff.png)
e.g.
1). The initial status of the PR is opened.


![image](https://user-images.githubusercontent.com/33891828/222453617-33c5093e-f712-4cd6-8489-9f87e2075869.png)
2). Then I click the button of `Close`. PR is closed now.


![image](https://user-images.githubusercontent.com/33891828/222453694-25c588a9-c121-4897-9ae5-0b13cf33d20b.png)
3). I try to push a commit to this PR, even though its current status is
closed.


![image](https://user-images.githubusercontent.com/33891828/222453916-361678fb-7321-410d-9e37-5a26e8095638.png)
But in comments list, this commit do not display.This is as expected :)


![image](https://user-images.githubusercontent.com/33891828/222454169-7617a791-78d2-404e-be5e-77d555f93313.png)
4). Click the `Reopen` button, the commit which is pushed after closing
PR display now.


![image](https://user-images.githubusercontent.com/33891828/222454533-897893b6-b96e-4701-b5cb-b1800f382b8f.png)
2 years ago
..
assignees.go Replace all instances of fmt.Errorf(%v) with fmt.Errorf(%w) (#21551) 2 years ago
assignees_test.go Refactor AssertExistsAndLoadBean to use generics (#20797) 3 years ago
comment.go some refactor about code comments(#20821) (#22707) 2 years ago
comment_code.go some refactor about code comments(#20821) (#22707) 2 years ago
comment_list.go Add generic set type (#21408) 2 years ago
comment_test.go Refactor AssertExistsAndLoadBean to use generics (#20797) 3 years ago
content_history.go Make every not exist error unwrappable to a fs.ErrNotExist (#20891) 2 years ago
content_history_test.go Move issues related files into models/issues (#19931) 3 years ago
dependency.go Make every not exist error unwrappable to a fs.ErrNotExist (#20891) 2 years ago
dependency_test.go Move issues related files into models/issues (#19931) 3 years ago
issue.go fix incorrect role labels for migrated issues and comments (#22914) (#22923) 2 years ago
issue_index.go Refactor GetNextResourceIndex to make it work properly with transaction (#21469) 2 years ago
issue_list.go Replace all instances of fmt.Errorf(%v) with fmt.Errorf(%w) (#21551) 2 years ago
issue_list_test.go Refactor AssertExistsAndLoadBean to use generics (#20797) 3 years ago
issue_lock.go Move issues related files into models/issues (#19931) 3 years ago
issue_project.go Fix missed sort bug (#20996) 3 years ago
issue_test.go Refactor AssertExistsAndLoadBean to use generics (#20797) 3 years ago
issue_user.go Replace all instances of fmt.Errorf(%v) with fmt.Errorf(%w) (#21551) 2 years ago
issue_user_test.go Refactor AssertExistsAndLoadBean to use generics (#20797) 3 years ago
issue_watch.go Add more linters to improve code readability (#19989) 3 years ago
issue_watch_test.go Refactor AssertExistsAndLoadBean to use generics (#20797) 3 years ago
issue_xref.go Replace all instances of fmt.Errorf(%v) with fmt.Errorf(%w) (#21551) 2 years ago
issue_xref_test.go Refactor GetNextResourceIndex to make it work properly with transaction (#21469) 2 years ago
label.go Fix DBConsistency checks on MSSQL (#23132) (#23133) 2 years ago
label_test.go Refactor AssertExistsAndLoadBean to use generics (#20797) 3 years ago
main_test.go Move tests as seperate sub packages to reduce duplicated file names (#19951) 3 years ago
milestone.go Make every not exist error unwrappable to a fs.ErrNotExist (#20891) 2 years ago
milestone_test.go Refactor AssertExistsAndLoadBean to use generics (#20797) 3 years ago
pull.go Improve trace logging for pulls and processes (#22633) (#22812) 2 years ago
pull_list.go Fix cannot reopen after pushing commits to a closed PR (#23189) (#23322) 2 years ago
pull_test.go Fix cannot reopen after pushing commits to a closed PR (#23189) (#23322) 2 years ago
reaction.go Replace all instances of fmt.Errorf(%v) with fmt.Errorf(%w) (#21551) 2 years ago
reaction_test.go Refactor AssertExistsAndLoadBean to use generics (#20797) 3 years ago
review.go some refactor about code comments(#20821) (#22707) 2 years ago
review_test.go Restore previous official review when an official review is deleted (#22449) (#22460) 2 years ago
stopwatch.go Make every not exist error unwrappable to a fs.ErrNotExist (#20891) 2 years ago
stopwatch_test.go Refactor AssertExistsAndLoadBean to use generics (#20797) 3 years ago
tracked_time.go Use GhostUser if needed for TrackedTimes (#22021) (#22029) 2 years ago
tracked_time_test.go Refactor AssertExistsAndLoadBean to use generics (#20797) 3 years ago