repos / git-pr

a self-hosted git collaboration server
git clone https://github.com/picosh/git-pr.git

Eric Bower  ·  2026-02-24

mdw.go

 1package git
 2
 3import (
 4	"fmt"
 5
 6	"github.com/picosh/pico/pkg/pssh"
 7)
 8
 9func GitPatchRequestMiddleware(be *Backend, pr GitPatchRequest) pssh.SSHServerMiddleware {
10	return func(next pssh.SSHServerHandler) pssh.SSHServerHandler {
11		return func(sesh *pssh.SSHServerConnSession) error {
12			args := sesh.Command()
13			cli := NewCli(sesh, be, pr)
14			margs := append([]string{"git"}, args...)
15			be.Logger.Info("ssh args", "args", args)
16			err := cli.Run(margs)
17			if err != nil {
18				be.Logger.Error("error when running cli", "err", err)
19				sesh.Fatal(fmt.Errorf("err: %w", err))
20				_ = next(sesh)
21				return err
22			}
23
24			return nil
25		}
26	}
27}