mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Handle push rejection in branch and upload (#10854)
* Handle push rejections and push out-of-date in branch creation and file upload. * Remove the duplicated sanitize from services/pull/merge * Move the errors Err(Merge)PushOutOfDate and ErrPushRejected to modules/git * Handle errors better in the upload file dialogs Fix #10460 Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>
This commit is contained in:
		| @@ -255,7 +255,31 @@ func Push(repoPath string, opts PushOptions) error { | ||||
| 		cmd.AddArguments("-f") | ||||
| 	} | ||||
| 	cmd.AddArguments("--", opts.Remote, opts.Branch) | ||||
| 	_, err := cmd.RunInDirWithEnv(repoPath, opts.Env) | ||||
| 	var outbuf, errbuf strings.Builder | ||||
|  | ||||
| 	err := cmd.RunInDirTimeoutEnvPipeline(opts.Env, -1, repoPath, &outbuf, &errbuf) | ||||
| 	if err != nil { | ||||
| 		if strings.Contains(errbuf.String(), "non-fast-forward") { | ||||
| 			return &ErrPushOutOfDate{ | ||||
| 				StdOut: outbuf.String(), | ||||
| 				StdErr: errbuf.String(), | ||||
| 				Err:    err, | ||||
| 			} | ||||
| 		} else if strings.Contains(errbuf.String(), "! [remote rejected]") { | ||||
| 			err := &ErrPushRejected{ | ||||
| 				StdOut: outbuf.String(), | ||||
| 				StdErr: errbuf.String(), | ||||
| 				Err:    err, | ||||
| 			} | ||||
| 			err.GenerateMessage() | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if errbuf.Len() > 0 && err != nil { | ||||
| 		return fmt.Errorf("%v - %s", err, errbuf.String()) | ||||
| 	} | ||||
|  | ||||
| 	return err | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user