1
0
mirror of https://gitea.com/jolheiser/sip synced 2024-11-23 04:12:00 +01:00
sip/modules/git/git.go
John Olheiser bb773780df Update Beaver and fix bugs (#6)
Fix CI test

Fix origin names in PR create

Add aliases for new issue/PR and fix issues search

Update beaver and squash some bugs

Signed-off-by: jolheiser <john.olheiser@gmail.com>

Co-authored-by: jolheiser <john.olheiser@gmail.com>
Reviewed-on: https://gitea.com/jolheiser/sip/pulls/6
2020-02-27 02:53:11 +00:00

51 lines
1.1 KiB
Go

package git
import (
"os/exec"
"strings"
)
// GetRepo returns a repositories parts
func GetRepo(remoteName string) ([]string, error) {
cmd := exec.Command("git", "remote", "get-url", remoteName)
out, err := cmd.Output()
if err != nil {
return nil, err
}
remote := strings.TrimSpace(string(out))
// SSH
if strings.Contains(remote, "@") {
remote = remote[strings.Index(remote, "@")+1:]
parts := strings.Split(remote, ":")
domain := "https://" + parts[0]
ownerRepo := strings.Split(parts[1], "/")
return []string{domain, ownerRepo[0], strings.TrimSuffix(ownerRepo[1], ".git")}, nil
}
// HTTP(S)
parts := strings.Split(remote, "/")
domain := parts[:len(parts)-2]
ownerRepo := parts[len(parts)-2:]
return []string{strings.Join(domain, "/"), ownerRepo[0], strings.TrimSuffix(ownerRepo[1], ".git")}, nil
}
// Branches returns current branch
func Branch() string {
cmd := exec.Command("git", "branch", "--list", "--no-color")
out, err := cmd.Output()
if err != nil {
return ""
}
for _, line := range strings.Split(string(out), "\n") {
line = strings.TrimSpace(line)
if strings.HasPrefix(line, "*") {
return line[2:]
}
}
return ""
}