mirror of
https://github.com/jesseduffield/lazygit.git
synced 2024-12-14 11:23:09 +02:00
47 lines
1.4 KiB
Go
47 lines
1.4 KiB
Go
package helpers
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/commands"
|
|
"github.com/jesseduffield/lazygit/pkg/commands/hosting_service"
|
|
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
|
)
|
|
|
|
// this helper just wraps our hosting_service package
|
|
|
|
type IHostHelper interface {
|
|
GetPullRequestURL(from string, to string) (string, error)
|
|
GetCommitURL(commitSha string) (string, error)
|
|
}
|
|
|
|
type HostHelper struct {
|
|
c *types.HelperCommon
|
|
git *commands.GitCommand
|
|
}
|
|
|
|
func NewHostHelper(
|
|
c *types.HelperCommon,
|
|
git *commands.GitCommand,
|
|
) *HostHelper {
|
|
return &HostHelper{
|
|
c: c,
|
|
git: git,
|
|
}
|
|
}
|
|
|
|
func (self *HostHelper) GetPullRequestURL(from string, to string) (string, error) {
|
|
return self.getHostingServiceMgr().GetPullRequestURL(from, to)
|
|
}
|
|
|
|
func (self *HostHelper) GetCommitURL(commitSha string) (string, error) {
|
|
return self.getHostingServiceMgr().GetCommitURL(commitSha)
|
|
}
|
|
|
|
// getting this on every request rather than storing it in state in case our remoteURL changes
|
|
// from one invocation to the next. Note however that we're currently caching config
|
|
// results so we might want to invalidate the cache here if it becomes a problem.
|
|
func (self *HostHelper) getHostingServiceMgr() *hosting_service.HostingServiceMgr {
|
|
remoteUrl := self.git.Config.GetRemoteURL()
|
|
configServices := self.c.UserConfig.Services
|
|
return hosting_service.NewHostingServiceMgr(self.c.Log, self.c.Tr, remoteUrl, configServices)
|
|
}
|