mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 19:45:25 +01:00 
			
		
		
		
	Move PushUpdate dependency from models to repofiles (#6763)
* remove push_update * move models.PushUpdate to repofiles.PushUpdate
This commit is contained in:
		
							parent
							
								
									b1be6fd31f
								
							
						
					
					
						commit
						d93e6232e8
					
				| @ -263,10 +263,6 @@ func pushUpdate(opts PushUpdateOptions) (repo *Repository, err error) { | ||||
| 		commits = ListToPushCommits(l) | ||||
| 	} | ||||
| 
 | ||||
| 	if opts.RefFullName == git.BranchPrefix+repo.DefaultBranch { | ||||
| 		UpdateRepoIndexer(repo) | ||||
| 	} | ||||
| 
 | ||||
| 	if err := CommitRepoAction(CommitRepoActionOptions{ | ||||
| 		PusherName:  opts.PusherName, | ||||
| 		RepoOwnerID: owner.ID, | ||||
|  | ||||
| @ -183,7 +183,8 @@ func DeleteRepoFile(repo *models.Repository, doer *models.User, opts *DeleteRepo | ||||
| 	if err = repo.GetOwner(); err != nil { | ||||
| 		return nil, fmt.Errorf("GetOwner: %v", err) | ||||
| 	} | ||||
| 	err = models.PushUpdate( | ||||
| 	err = PushUpdate( | ||||
| 		repo, | ||||
| 		opts.NewBranch, | ||||
| 		models.PushUpdateOptions{ | ||||
| 			PusherID:     doer.ID, | ||||
| @ -199,8 +200,6 @@ func DeleteRepoFile(repo *models.Repository, doer *models.User, opts *DeleteRepo | ||||
| 		return nil, fmt.Errorf("PushUpdate: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	// FIXME: Should we UpdateRepoIndexer(repo) here? | ||||
| 
 | ||||
| 	file, err := GetFileResponseFromCommit(repo, commit, opts.NewBranch, treePath) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
|  | ||||
| @ -394,7 +394,8 @@ func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *Up | ||||
| 	if err = repo.GetOwner(); err != nil { | ||||
| 		return nil, fmt.Errorf("GetOwner: %v", err) | ||||
| 	} | ||||
| 	err = models.PushUpdate( | ||||
| 	err = PushUpdate( | ||||
| 		repo, | ||||
| 		opts.NewBranch, | ||||
| 		models.PushUpdateOptions{ | ||||
| 			PusherID:     doer.ID, | ||||
| @ -409,7 +410,6 @@ func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *Up | ||||
| 	if err != nil { | ||||
| 		return nil, fmt.Errorf("PushUpdate: %v", err) | ||||
| 	} | ||||
| 	models.UpdateRepoIndexer(repo) | ||||
| 
 | ||||
| 	commit, err = t.GetCommit(commitHash) | ||||
| 	if err != nil { | ||||
| @ -422,3 +422,17 @@ func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *Up | ||||
| 	} | ||||
| 	return file, nil | ||||
| } | ||||
| 
 | ||||
| // PushUpdate must be called for any push actions in order to | ||||
| // generates necessary push action history feeds and other operations | ||||
| func PushUpdate(repo *models.Repository, branch string, opts models.PushUpdateOptions) error { | ||||
| 	err := models.PushUpdate(branch, opts) | ||||
| 	if err != nil { | ||||
| 		return fmt.Errorf("PushUpdate: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if opts.RefFullName == git.BranchPrefix+repo.DefaultBranch { | ||||
| 		models.UpdateRepoIndexer(repo) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| @ -188,7 +188,8 @@ func UploadRepoFiles(repo *models.Repository, doer *models.User, opts *UploadRep | ||||
| 	if err = repo.GetOwner(); err != nil { | ||||
| 		return fmt.Errorf("GetOwner: %v", err) | ||||
| 	} | ||||
| 	err = models.PushUpdate( | ||||
| 	err = PushUpdate( | ||||
| 		repo, | ||||
| 		opts.NewBranch, | ||||
| 		models.PushUpdateOptions{ | ||||
| 			PusherID:     doer.ID, | ||||
| @ -203,7 +204,6 @@ func UploadRepoFiles(repo *models.Repository, doer *models.User, opts *UploadRep | ||||
| 	if err != nil { | ||||
| 		return fmt.Errorf("PushUpdate: %v", err) | ||||
| 	} | ||||
| 	// FIXME: Should we models.UpdateRepoIndexer(repo) here? | ||||
| 
 | ||||
| 	return models.DeleteUploads(uploads...) | ||||
| } | ||||
|  | ||||
| @ -15,6 +15,7 @@ import ( | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| 	"code.gitea.io/gitea/modules/private" | ||||
| 	"code.gitea.io/gitea/modules/repofiles" | ||||
| 	"code.gitea.io/gitea/modules/util" | ||||
| 
 | ||||
| 	macaron "gopkg.in/macaron.v1" | ||||
| @ -117,7 +118,15 @@ func HookPostReceive(ctx *macaron.Context) { | ||||
| 	// or other less-standard refs spaces are ignored since there | ||||
| 	// may be a very large number of them). | ||||
| 	if strings.HasPrefix(refFullName, git.BranchPrefix) || strings.HasPrefix(refFullName, git.TagPrefix) { | ||||
| 		if err := models.PushUpdate(branch, models.PushUpdateOptions{ | ||||
| 		repo, err := models.GetRepositoryByOwnerAndName(ownerName, repoName) | ||||
| 		if err != nil { | ||||
| 			log.Error("Failed to get repository: %s/%s Error: %v", ownerName, repoName, err) | ||||
| 			ctx.JSON(http.StatusInternalServerError, map[string]interface{}{ | ||||
| 				"err": fmt.Sprintf("Failed to get repository: %s/%s Error: %v", ownerName, repoName, err), | ||||
| 			}) | ||||
| 			return | ||||
| 		} | ||||
| 		if err := repofiles.PushUpdate(repo, branch, models.PushUpdateOptions{ | ||||
| 			RefFullName:  refFullName, | ||||
| 			OldCommitID:  oldCommitID, | ||||
| 			NewCommitID:  newCommitID, | ||||
|  | ||||
							
								
								
									
										56
									
								
								routers/private/push_update.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								routers/private/push_update.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,56 @@ | ||||
| // Copyright 2017 The Gitea Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
| 
 | ||||
| package private | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| 	"strings" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| 	"code.gitea.io/gitea/modules/repofiles" | ||||
| 
 | ||||
| 	macaron "gopkg.in/macaron.v1" | ||||
| ) | ||||
| 
 | ||||
| // PushUpdate update public key updates | ||||
| func PushUpdate(ctx *macaron.Context) { | ||||
| 	var opt models.PushUpdateOptions | ||||
| 	if err := json.NewDecoder(ctx.Req.Request.Body).Decode(&opt); err != nil { | ||||
| 		ctx.JSON(500, map[string]interface{}{ | ||||
| 			"err": err.Error(), | ||||
| 		}) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	branch := strings.TrimPrefix(opt.RefFullName, git.BranchPrefix) | ||||
| 	if len(branch) == 0 || opt.PusherID <= 0 { | ||||
| 		ctx.Error(404) | ||||
| 		log.Trace("PushUpdate: branch or secret is empty, or pusher ID is not valid") | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	repo, err := models.GetRepositoryByOwnerAndName(opt.RepoUserName, opt.RepoName) | ||||
| 	if err != nil { | ||||
| 		ctx.JSON(500, map[string]interface{}{ | ||||
| 			"err": err.Error(), | ||||
| 		}) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	err = repofiles.PushUpdate(repo, branch, opt) | ||||
| 	if err != nil { | ||||
| 		if models.IsErrUserNotExist(err) { | ||||
| 			ctx.Error(404) | ||||
| 		} else { | ||||
| 			ctx.JSON(500, map[string]interface{}{ | ||||
| 				"err": err.Error(), | ||||
| 			}) | ||||
| 		} | ||||
| 		return | ||||
| 	} | ||||
| 	ctx.Status(202) | ||||
| } | ||||
| @ -131,15 +131,18 @@ func deleteBranch(ctx *context.Context, branchName string) error { | ||||
| 	} | ||||
| 
 | ||||
| 	// Don't return error below this | ||||
| 	if err := models.PushUpdate(branchName, models.PushUpdateOptions{ | ||||
| 		RefFullName:  git.BranchPrefix + branchName, | ||||
| 		OldCommitID:  commit.ID.String(), | ||||
| 		NewCommitID:  git.EmptySHA, | ||||
| 		PusherID:     ctx.User.ID, | ||||
| 		PusherName:   ctx.User.Name, | ||||
| 		RepoUserName: ctx.Repo.Owner.Name, | ||||
| 		RepoName:     ctx.Repo.Repository.Name, | ||||
| 	}); err != nil { | ||||
| 	if err := repofiles.PushUpdate( | ||||
| 		ctx.Repo.Repository, | ||||
| 		branchName, | ||||
| 		models.PushUpdateOptions{ | ||||
| 			RefFullName:  git.BranchPrefix + branchName, | ||||
| 			OldCommitID:  commit.ID.String(), | ||||
| 			NewCommitID:  git.EmptySHA, | ||||
| 			PusherID:     ctx.User.ID, | ||||
| 			PusherName:   ctx.User.Name, | ||||
| 			RepoUserName: ctx.Repo.Owner.Name, | ||||
| 			RepoName:     ctx.Repo.Repository.Name, | ||||
| 		}); err != nil { | ||||
| 		log.Error("Update: %v", err) | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user