Add merge files files to GetCommitFileStatus (#20515)
Hi, We'd like to add merge files files to GetCommitFileStatus fucntions so API returns the list of all the files associated to a merged pull request commit, like GitHub API does. The list of affectedFiles for an API commit is fetched from toCommit() function in routers/api/v1/repo/commits.go, and API was returning no file in case of a pull request with no conflict, or just files associated to the confict resolution, but NOT the full list of merged files. This would lead to situations where a CI polling a repo for changes could miss some file changes due to API returning an empty / partial list in case of such merged pull requests. (Hope this makes sense :) ) NOTE: I'd like to add a unittest in integrations/api_repo_git_commits_test.go but failed to understand how to add my own test bare repo so I can make a test on a merged pull request commit to check for affectedFiles. Is there a merged pull request in there that I could use maybe? Could someone please direct me to the relevant ressources with informations on how to do that please? Thanks for your time, Laurent. --------- Co-authored-by: Thomas Desveaux <desveaux.thomas@gmail.com>
This commit is contained in:
		
							parent
							
								
									86ee5b4b1b
								
							
						
					
					
						commit
						b21b63c61a
					
				| 
						 | 
				
			
			@ -495,7 +495,7 @@ func GetCommitFileStatus(ctx context.Context, repoPath, commitID string) (*Commi
 | 
			
		|||
	}()
 | 
			
		||||
 | 
			
		||||
	stderr := new(bytes.Buffer)
 | 
			
		||||
	err := NewCommand(ctx, "log", "--name-status", "-c", "--pretty=format:", "--parents", "--no-renames", "-z", "-1").AddDynamicArguments(commitID).Run(&RunOpts{
 | 
			
		||||
	err := NewCommand(ctx, "log", "--name-status", "-m", "--pretty=format:", "--first-parent", "--no-renames", "-z", "-1").AddDynamicArguments(commitID).Run(&RunOpts{
 | 
			
		||||
		Dir:    repoPath,
 | 
			
		||||
		Stdout: w,
 | 
			
		||||
		Stderr: stderr,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -255,3 +255,26 @@ func TestParseCommitFileStatus(t *testing.T) {
 | 
			
		|||
		assert.Equal(t, kase.modified, fileStatus.Modified)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestGetCommitFileStatusMerges(t *testing.T) {
 | 
			
		||||
	bareRepo1Path := filepath.Join(testReposDir, "repo6_merge")
 | 
			
		||||
 | 
			
		||||
	commitFileStatus, err := GetCommitFileStatus(DefaultContext, bareRepo1Path, "022f4ce6214973e018f02bf363bf8a2e3691f699")
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
 | 
			
		||||
	expected := CommitFileStatus{
 | 
			
		||||
		[]string{
 | 
			
		||||
			"add_file.txt",
 | 
			
		||||
		},
 | 
			
		||||
		[]string{
 | 
			
		||||
			"to_remove.txt",
 | 
			
		||||
		},
 | 
			
		||||
		[]string{
 | 
			
		||||
			"to_modify.txt",
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	assert.Equal(t, commitFileStatus.Added, expected.Added)
 | 
			
		||||
	assert.Equal(t, commitFileStatus.Removed, expected.Removed)
 | 
			
		||||
	assert.Equal(t, commitFileStatus.Modified, expected.Modified)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
ref: refs/heads/main
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
x<01>ÍM
 | 
			
		||||
1†a×=Eö‚$µÍLAÄ«ô'Á‡‘iæþR½€›g÷~_ÝÖu1 ˜N¶‹@mZ)g<>2…D‘j™Š*_“fŒÌs¥4ïòaÏm“np>—Áˆç€Ì>!œÑ#ºú½1ù;p]ìxÿæuyIwÑN4Ã
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
x█нM
 | 
			
		||||
б0├aв9еЛ≥ЭM2 БU Ф╛∙=©т╦yv/╪С╤╝к гН0:@╠Р$╠│Uя╛╚.≈[й>╚ ■l⌠▀IлsЙxР╘З8'T╞╟R╧д╓S,╙╠$x.
ж И=n[╖│в═СНuГ╢s!+9╟┬ВBGvлfЧm
Э≤▌uШ─зr┤ЫЪа>╝
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
xŤÎM
 | 
			
		||||
1@a×=Eö‚¤?iń*mšÁÇ‘™xOŕćŰ=x˛.Ëlŕ™O¶©R˘Z80ŠÄ\[í*Ú%µb
 | 
			
		||||
<EFBFBD>&qď¶éË –IŠŽČšÔç<C394>ť
 | 
			
		||||
7ęĚÔ‹F쨜ĽwícŹuÓÝŕzx?¸ÜŔçš0ç
 | 
			
		||||
ś1 :ům™ţ¸6LóSÝŔí>&
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
022f4ce6214973e018f02bf363bf8a2e3691f699
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
ae4b035e7c4afbc000576cee3f713ea0c2f1e1e2
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
d1792641396ff7630d35fbb0b74b86b0c71bca77
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
38ec3e0cdc88bde01014bda4a5dd9fc835f41439
 | 
			
		||||
		Loading…
	
		Reference in New Issue