// `NewGitUploadPackService`, but you should generally not use them // directly, use this package's `NewGitUploadPackService` instead. package clients import ( "fmt" "net/url" "gopkg.in/src-d/go-git.v2/clients/common" "gopkg.in/src-d/go-git.v2/clients/http" "gopkg.in/src-d/go-git.v2/clients/ssh" ) // DefaultProtocols are the protocols supported by default. var DefaultProtocols = map[string]common.GitUploadPackService{ "http": http.NewGitUploadPackService(), "https": http.NewGitUploadPackService(), "ssh": ssh.NewGitUploadPackService(), } // KnownProtocols holds the current set of known protocols. Initially // it gets its contents from `DefaultProtocols`. See `InstallProtocol` // below to add or modify this variable. var KnownProtocols = make(map[string]common.GitUploadPackService, len(DefaultProtocols)) func init() { for k, v := range DefaultProtocols { InstallProtocol(k, v) } }
"gopkg.in/src-d/go-git.v2/clients/common" "gopkg.in/src-d/go-git.v2/clients/http" "gopkg.in/src-d/go-git.v2/clients/ssh" ) // ServiceFromURLFunc defines a service returning function for a given // URL. type ServiceFromURLFunc func(url string) common.GitUploadPackService // 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 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) }, } // KnownProtocols holds the current set of known protocols. Initially // it gets its contents from `DefaultProtocols`. See `InstallProtocol` // below to add or modify this variable. var KnownProtocols = make(map[string]ServiceFromURLFunc, len(DefaultProtocols)) func init() { for k, v := range DefaultProtocols { KnownProtocols[k] = v } }