1 Star 0 Fork 0

timesp/go-git

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
common.go 1.60 KB
一键复制 编辑 原始数据 按行查看 历史
Máximo Cuadros 提交于 9年前 . doc packages
// Package clients includes the implementation for diferent transport protocols
//
// go-git needs the packfile and the refs of the repo. The
// `NewGitUploadPackService` function returns an object that allows to
// download them.
//
// go-git supports HTTP and SSH (see `Protocols`) for downloading the packfile
// and the refs, but you can also install your own protocols (see
// `InstallProtocol` below).
//
// Each protocol has its own implementation of
// `NewGitUploadPackService`, but you should generally not use them
// directly, use this package's `NewGitUploadPackService` instead.
package clients
import (
"fmt"
"gopkg.in/src-d/go-git.v4/clients/common"
"gopkg.in/src-d/go-git.v4/clients/http"
"gopkg.in/src-d/go-git.v4/clients/ssh"
)
type GitUploadPackServiceFactory func(common.Endpoint) common.GitUploadPackService
// Protocols are the protocols supported by default.
var Protocols = map[string]GitUploadPackServiceFactory{
"http": http.NewGitUploadPackService,
"https": http.NewGitUploadPackService,
"ssh": ssh.NewGitUploadPackService,
}
// InstallProtocol adds or modifies an existing protocol.
func InstallProtocol(scheme string, f GitUploadPackServiceFactory) {
Protocols[scheme] = f
}
// NewGitUploadPackService returns the appropriate upload pack service
// among of the set of known protocols: HTTP, SSH. See `InstallProtocol`
// to add or modify protocols.
func NewGitUploadPackService(endpoint common.Endpoint) (common.GitUploadPackService, error) {
f, ok := Protocols[endpoint.Scheme]
if !ok {
return nil, fmt.Errorf("unsupported scheme %q", endpoint.Scheme)
}
return f(endpoint), nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/timesp/go-git.git
git@gitee.com:timesp/go-git.git
timesp
go-git
go-git
v4.0.0-rc3

搜索帮助