Support "merge upstream branch" (Sync fork) (#32741)

Add basic "sync fork" support (GitHub-like)

<details>

![image](https://github.com/user-attachments/assets/e71473f4-4518-48c7-b9e2-fedfcd564fc3)

</details>
This commit is contained in:
wxiaoguang 2024-12-07 05:10:35 +08:00 committed by GitHub
parent 5a75160c92
commit 513da407f4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 328 additions and 141 deletions

View file

@ -223,7 +223,7 @@ func Push(ctx context.Context, repoPath string, opts PushOptions) error {
if err != nil {
if strings.Contains(stderr, "non-fast-forward") {
return &ErrPushOutOfDate{StdOut: stdout, StdErr: stderr, Err: err}
} else if strings.Contains(stderr, "! [remote rejected]") {
} else if strings.Contains(stderr, "! [remote rejected]") || strings.Contains(stderr, "! [rejected]") {
err := &ErrPushRejected{StdOut: stdout, StdErr: stderr, Err: err}
err.GenerateMessage()
return err