Documentation ¶
Overview ¶
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 `KnownProtocols`) 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.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var DefaultProtocols = map[string]ServiceFromURLFunc{ "http": func(s string) common.GitUploadPackService { return http.NewGitUploadPackService(s) }, "https": func(s string) common.GitUploadPackService { return http.NewGitUploadPackService(s) }, "ssh": func(s string) common.GitUploadPackService { return ssh.NewGitUploadPackService(s) }, }
DefaultProtocols are the protocols supported by default. Wrapping is needed because you can not cast a function that returns an implementation of an interface to a function that returns the interface.
var KnownProtocols = make(map[string]ServiceFromURLFunc, len(DefaultProtocols))
KnownProtocols holds the current set of known protocols. Initially it gets its contents from `DefaultProtocols`. See `InstallProtocol` below to add or modify this variable.
Functions ¶
func InstallProtocol ¶
func InstallProtocol(scheme string, serviceFn ServiceFromURLFunc)
InstallProtocol adds or modifies an existing protocol.
func NewGitUploadPackService ¶
func NewGitUploadPackService(repoURL string) (common.GitUploadPackService, error)
NewGitUploadPackService returns the appropiate upload pack service among of the set of known protocols: HTTP, SSH. See `InstallProtocol` to add or modify protocols.
Types ¶
type ServiceFromURLFunc ¶
type ServiceFromURLFunc func(url string) common.GitUploadPackService
ServiceFromURLFunc defines a service returning function for a given URL.