mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 05:25:15 +01:00 
			
		
		
		
	Follow up the "editor" refactor, use the same approach to simplify code, and fix some docs & comments --------- Signed-off-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: delvh <dev.lh@web.de>
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2021 The Gitea Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package repo
 | 
						|
 | 
						|
import (
 | 
						|
	"net/http"
 | 
						|
 | 
						|
	api "code.gitea.io/gitea/modules/structs"
 | 
						|
	"code.gitea.io/gitea/modules/util"
 | 
						|
	"code.gitea.io/gitea/services/context"
 | 
						|
	"code.gitea.io/gitea/services/repository/files"
 | 
						|
)
 | 
						|
 | 
						|
// ApplyDiffPatch handles API call for applying a patch
 | 
						|
func ApplyDiffPatch(ctx *context.APIContext) {
 | 
						|
	// swagger:operation POST /repos/{owner}/{repo}/diffpatch repository repoApplyDiffPatch
 | 
						|
	// ---
 | 
						|
	// summary: Apply diff patch to repository
 | 
						|
	// consumes:
 | 
						|
	// - application/json
 | 
						|
	// produces:
 | 
						|
	// - application/json
 | 
						|
	// parameters:
 | 
						|
	// - name: owner
 | 
						|
	//   in: path
 | 
						|
	//   description: owner of the repo
 | 
						|
	//   type: string
 | 
						|
	//   required: true
 | 
						|
	// - name: repo
 | 
						|
	//   in: path
 | 
						|
	//   description: name of the repo
 | 
						|
	//   type: string
 | 
						|
	//   required: true
 | 
						|
	// - name: body
 | 
						|
	//   in: body
 | 
						|
	//   required: true
 | 
						|
	//   schema:
 | 
						|
	//     "$ref": "#/definitions/UpdateFileOptions"
 | 
						|
	// responses:
 | 
						|
	//   "200":
 | 
						|
	//     "$ref": "#/responses/FileResponse"
 | 
						|
	//   "404":
 | 
						|
	//     "$ref": "#/responses/notFound"
 | 
						|
	//   "423":
 | 
						|
	//     "$ref": "#/responses/repoArchivedError"
 | 
						|
	apiOpts, changeRepoFileOpts := getAPIChangeRepoFileOptions[*api.ApplyDiffPatchFileOptions](ctx)
 | 
						|
	opts := &files.ApplyDiffPatchOptions{
 | 
						|
		Content: apiOpts.Content,
 | 
						|
		Message: util.IfZero(apiOpts.Message, "apply-patch"),
 | 
						|
 | 
						|
		OldBranch: changeRepoFileOpts.OldBranch,
 | 
						|
		NewBranch: changeRepoFileOpts.NewBranch,
 | 
						|
		Committer: changeRepoFileOpts.Committer,
 | 
						|
		Author:    changeRepoFileOpts.Author,
 | 
						|
		Dates:     changeRepoFileOpts.Dates,
 | 
						|
		Signoff:   changeRepoFileOpts.Signoff,
 | 
						|
	}
 | 
						|
 | 
						|
	fileResponse, err := files.ApplyDiffPatch(ctx, ctx.Repo.Repository, ctx.Doer, opts)
 | 
						|
	if err != nil {
 | 
						|
		handleChangeRepoFilesError(ctx, err)
 | 
						|
	} else {
 | 
						|
		ctx.JSON(http.StatusCreated, fileResponse)
 | 
						|
	}
 | 
						|
}
 |