mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 10:56:10 +01: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:
		| @@ -11,18 +11,22 @@ import ( | ||||
| 	files_service "code.gitea.io/gitea/services/repository/files" | ||||
| ) | ||||
|  | ||||
| func createFileInBranch(user *user_model.User, repo *repo_model.Repository, treePath, branchName, content string) (*api.FileResponse, error) { | ||||
| 	opts := &files_service.UpdateRepoFileOptions{ | ||||
| func createFileInBranch(user *user_model.User, repo *repo_model.Repository, treePath, branchName, content string) (*api.FilesResponse, error) { | ||||
| 	opts := &files_service.ChangeRepoFilesOptions{ | ||||
| 		Files: []*files_service.ChangeRepoFile{ | ||||
| 			{ | ||||
| 				Operation: "create", | ||||
| 				TreePath:  treePath, | ||||
| 				Content:   content, | ||||
| 			}, | ||||
| 		}, | ||||
| 		OldBranch: branchName, | ||||
| 		TreePath:  treePath, | ||||
| 		Content:   content, | ||||
| 		IsNewFile: true, | ||||
| 		Author:    nil, | ||||
| 		Committer: nil, | ||||
| 	} | ||||
| 	return files_service.CreateOrUpdateRepoFile(git.DefaultContext, repo, user, opts) | ||||
| 	return files_service.ChangeRepoFiles(git.DefaultContext, repo, user, opts) | ||||
| } | ||||
|  | ||||
| func createFile(user *user_model.User, repo *repo_model.Repository, treePath string) (*api.FileResponse, error) { | ||||
| func createFile(user *user_model.User, repo *repo_model.Repository, treePath string) (*api.FilesResponse, error) { | ||||
| 	return createFileInBranch(user, repo, treePath, repo.DefaultBranch, "This is a NEW file") | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user