mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	API endpoint for changing/creating/deleting multiple files (#24887)
This PR creates an API endpoint for creating/updating/deleting multiple files in one API call similar to the solution provided by [GitLab](https://docs.gitlab.com/ee/api/commits.html#create-a-commit-with-multiple-files-and-actions). To archive this, the CreateOrUpdateRepoFile and DeleteRepoFIle functions in files service are unified into one function supporting multiple files and actions. Resolves #14619
This commit is contained in:
		@@ -367,22 +367,30 @@ func TestConflictChecking(t *testing.T) {
 | 
			
		||||
		assert.NotEmpty(t, baseRepo)
 | 
			
		||||
 | 
			
		||||
		// create a commit on new branch.
 | 
			
		||||
		_, err = files_service.CreateOrUpdateRepoFile(git.DefaultContext, baseRepo, user, &files_service.UpdateRepoFileOptions{
 | 
			
		||||
			TreePath:  "important_file",
 | 
			
		||||
		_, err = files_service.ChangeRepoFiles(git.DefaultContext, baseRepo, user, &files_service.ChangeRepoFilesOptions{
 | 
			
		||||
			Files: []*files_service.ChangeRepoFile{
 | 
			
		||||
				{
 | 
			
		||||
					Operation: "create",
 | 
			
		||||
					TreePath:  "important_file",
 | 
			
		||||
					Content:   "Just a non-important file",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			Message:   "Add a important file",
 | 
			
		||||
			Content:   "Just a non-important file",
 | 
			
		||||
			IsNewFile: true,
 | 
			
		||||
			OldBranch: "main",
 | 
			
		||||
			NewBranch: "important-secrets",
 | 
			
		||||
		})
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
 | 
			
		||||
		// create a commit on main branch.
 | 
			
		||||
		_, err = files_service.CreateOrUpdateRepoFile(git.DefaultContext, baseRepo, user, &files_service.UpdateRepoFileOptions{
 | 
			
		||||
			TreePath:  "important_file",
 | 
			
		||||
		_, err = files_service.ChangeRepoFiles(git.DefaultContext, baseRepo, user, &files_service.ChangeRepoFilesOptions{
 | 
			
		||||
			Files: []*files_service.ChangeRepoFile{
 | 
			
		||||
				{
 | 
			
		||||
					Operation: "create",
 | 
			
		||||
					TreePath:  "important_file",
 | 
			
		||||
					Content:   "Not the same content :P",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			Message:   "Add a important file",
 | 
			
		||||
			Content:   "Not the same content :P",
 | 
			
		||||
			IsNewFile: true,
 | 
			
		||||
			OldBranch: "main",
 | 
			
		||||
			NewBranch: "main",
 | 
			
		||||
		})
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user