mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-04-13 11:50:28 +02:00
This has the advantage that it still works when the user has configured aliases using the insteadOf feature [1]. [1] https://git-scm.com/docs/git-config/2.42.0#Documentation/git-config.txt-urlltbasegtinsteadOf)
52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package helpers
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/commands/hosting_service"
|
|
)
|
|
|
|
// 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 *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(commitSha string) (string, error) {
|
|
mgr, err := self.getHostingServiceMgr()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return mgr.GetCommitURL(commitSha)
|
|
}
|
|
|
|
// 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
|
|
}
|