mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-04-19 17:02:18 +03:00
I can only guess here: maybe they were added to more clearly document the public interface of the classes? If so, I don't think that works. Developers who are not familiar with the convention will just add a new public method to the class without updating the interface.
47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package helpers
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/commands/hosting_service"
|
|
)
|
|
|
|
// this helper just wraps our hosting_service package
|
|
|
|
type HostHelper struct {
|
|
c *HelperCommon
|
|
}
|
|
|
|
func NewHostHelper(
|
|
c *HelperCommon,
|
|
) *HostHelper {
|
|
return &HostHelper{
|
|
c: c,
|
|
}
|
|
}
|
|
|
|
func (self *HostHelper) GetPullRequestURL(from string, to string) (string, error) {
|
|
mgr, err := self.getHostingServiceMgr()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return mgr.GetPullRequestURL(from, to)
|
|
}
|
|
|
|
func (self *HostHelper) GetCommitURL(commitHash string) (string, error) {
|
|
mgr, err := self.getHostingServiceMgr()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return mgr.GetCommitURL(commitHash)
|
|
}
|
|
|
|
// getting this on every request rather than storing it in state in case our remoteURL changes
|
|
// from one invocation to the next.
|
|
func (self *HostHelper) getHostingServiceMgr() (*hosting_service.HostingServiceMgr, error) {
|
|
remoteUrl, err := self.c.Git().Remote.GetRemoteURL("origin")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
configServices := self.c.UserConfig().Services
|
|
return hosting_service.NewHostingServiceMgr(self.c.Log, self.c.Tr, remoteUrl, configServices), nil
|
|
}
|