mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Add commits dropdown in PR files view and allow commit by commit review (#25528)
This PR adds a new dropdown to select a commit or a commit range (shift-click like github) of a Pull Request. After selection of a commit only the changes of this commit will be shown. When selecting a range of commits the diff of this range is shown. This allows to review a PR commit by commit or by viewing only commit ranges. The "Show changes since your last review" mechanism github uses is implemented, too. When reviewing a single commit or a commit range the "Viewed" functionality is disabled. ## Screenshots ### The commit dropdown  ### Selecting a commit range  ### Show changes of a single commit only  ### Show changes of a commit range  Fixes https://github.com/go-gitea/gitea/issues/20989 Fixes https://github.com/go-gitea/gitea/issues/19263 --------- Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: KN4CK3R <admin@oldschoolhack.me> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: delvh <dev.lh@web.de>
This commit is contained in:
		@@ -356,7 +356,7 @@ func TestSearchIssues(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
	session := loginUser(t, "user2")
 | 
			
		||||
 | 
			
		||||
	expectedIssueCount := 16 // from the fixtures
 | 
			
		||||
	expectedIssueCount := 17 // from the fixtures
 | 
			
		||||
	if expectedIssueCount > setting.UI.IssuePagingNum {
 | 
			
		||||
		expectedIssueCount = setting.UI.IssuePagingNum
 | 
			
		||||
	}
 | 
			
		||||
@@ -377,7 +377,7 @@ func TestSearchIssues(t *testing.T) {
 | 
			
		||||
	req = NewRequest(t, "GET", link.String())
 | 
			
		||||
	resp = session.MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
	DecodeJSON(t, resp, &apiIssues)
 | 
			
		||||
	assert.Len(t, apiIssues, 9)
 | 
			
		||||
	assert.Len(t, apiIssues, 10)
 | 
			
		||||
	query.Del("since")
 | 
			
		||||
	query.Del("before")
 | 
			
		||||
 | 
			
		||||
@@ -393,15 +393,15 @@ func TestSearchIssues(t *testing.T) {
 | 
			
		||||
	req = NewRequest(t, "GET", link.String())
 | 
			
		||||
	resp = session.MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
	DecodeJSON(t, resp, &apiIssues)
 | 
			
		||||
	assert.EqualValues(t, "18", resp.Header().Get("X-Total-Count"))
 | 
			
		||||
	assert.Len(t, apiIssues, 18)
 | 
			
		||||
	assert.EqualValues(t, "19", resp.Header().Get("X-Total-Count"))
 | 
			
		||||
	assert.Len(t, apiIssues, 19)
 | 
			
		||||
 | 
			
		||||
	query.Add("limit", "5")
 | 
			
		||||
	link.RawQuery = query.Encode()
 | 
			
		||||
	req = NewRequest(t, "GET", link.String())
 | 
			
		||||
	resp = session.MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
	DecodeJSON(t, resp, &apiIssues)
 | 
			
		||||
	assert.EqualValues(t, "18", resp.Header().Get("X-Total-Count"))
 | 
			
		||||
	assert.EqualValues(t, "19", resp.Header().Get("X-Total-Count"))
 | 
			
		||||
	assert.Len(t, apiIssues, 5)
 | 
			
		||||
 | 
			
		||||
	query = url.Values{"assigned": {"true"}, "state": {"all"}}
 | 
			
		||||
@@ -430,7 +430,7 @@ func TestSearchIssues(t *testing.T) {
 | 
			
		||||
	req = NewRequest(t, "GET", link.String())
 | 
			
		||||
	resp = session.MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
	DecodeJSON(t, resp, &apiIssues)
 | 
			
		||||
	assert.Len(t, apiIssues, 7)
 | 
			
		||||
	assert.Len(t, apiIssues, 8)
 | 
			
		||||
 | 
			
		||||
	query = url.Values{"owner": {"user3"}} // organization
 | 
			
		||||
	link.RawQuery = query.Encode()
 | 
			
		||||
@@ -450,7 +450,7 @@ func TestSearchIssues(t *testing.T) {
 | 
			
		||||
func TestSearchIssuesWithLabels(t *testing.T) {
 | 
			
		||||
	defer tests.PrepareTestEnv(t)()
 | 
			
		||||
 | 
			
		||||
	expectedIssueCount := 16 // from the fixtures
 | 
			
		||||
	expectedIssueCount := 17 // from the fixtures
 | 
			
		||||
	if expectedIssueCount > setting.UI.IssuePagingNum {
 | 
			
		||||
		expectedIssueCount = setting.UI.IssuePagingNum
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user