forked from toolshed/abra
.gitea
cli
cmd
pkg
app
autocomplete
catalogue
client
compose
config
container
context
dns
git
branch.go
clone.go
commit.go
common.go
init.go
push.go
read.go
limit
lint
recipe
secret
server
ssh
upstream
web
scripts
tests
.drone.yml
.envrc.sample
.gitignore
.goreleaser.yml
Makefile
README.md
go.mod
go.sum
renovate.json
36 lines
681 B
Go
36 lines
681 B
Go
package git
|
|
|
|
import (
|
|
"github.com/go-git/go-git/v5"
|
|
"github.com/go-git/go-git/v5/plumbing"
|
|
)
|
|
|
|
// GetCurrentBranch retrieves the current branch of a repository
|
|
func GetCurrentBranch(repository *git.Repository) (string, error) {
|
|
branchRefs, err := repository.Branches()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
headRef, err := repository.Head()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
var currentBranchName string
|
|
err = branchRefs.ForEach(func(branchRef *plumbing.Reference) error {
|
|
if branchRef.Hash() == headRef.Hash() {
|
|
currentBranchName = branchRef.Name().String()
|
|
|
|
return nil
|
|
}
|
|
|
|
return nil
|
|
})
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return currentBranchName, nil
|
|
}
|