* Inital routes to git refs api * Git refs API implementation * Update swagger * Fix copyright * Make swagger happy add basic test * Fix test * Fix test again :)
53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
package file
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"gopkg.in/src-d/go-git.v4/plumbing/transport"
|
|
"gopkg.in/src-d/go-git.v4/plumbing/transport/internal/common"
|
|
"gopkg.in/src-d/go-git.v4/plumbing/transport/server"
|
|
"gopkg.in/src-d/go-git.v4/utils/ioutil"
|
|
)
|
|
|
|
// ServeUploadPack serves a git-upload-pack request using standard output, input
|
|
// and error. This is meant to be used when implementing a git-upload-pack
|
|
// command.
|
|
func ServeUploadPack(path string) error {
|
|
ep, err := transport.NewEndpoint(path)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// TODO: define and implement a server-side AuthMethod
|
|
s, err := server.DefaultServer.NewUploadPackSession(ep, nil)
|
|
if err != nil {
|
|
return fmt.Errorf("error creating session: %s", err)
|
|
}
|
|
|
|
return common.ServeUploadPack(srvCmd, s)
|
|
}
|
|
|
|
// ServeReceivePack serves a git-receive-pack request using standard output,
|
|
// input and error. This is meant to be used when implementing a
|
|
// git-receive-pack command.
|
|
func ServeReceivePack(path string) error {
|
|
ep, err := transport.NewEndpoint(path)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// TODO: define and implement a server-side AuthMethod
|
|
s, err := server.DefaultServer.NewReceivePackSession(ep, nil)
|
|
if err != nil {
|
|
return fmt.Errorf("error creating session: %s", err)
|
|
}
|
|
|
|
return common.ServeReceivePack(srvCmd, s)
|
|
}
|
|
|
|
var srvCmd = common.ServerCommand{
|
|
Stdin: os.Stdin,
|
|
Stdout: ioutil.WriteNopCloser(os.Stdout),
|
|
Stderr: os.Stderr,
|
|
}
|