@ -55,40 +55,57 @@ func (ref *Reference) Commit() (*Commit, error) {
// ShortName returns the short name of the reference
func ( ref * Reference ) ShortName ( ) string {
if ref == nil {
return ""
}
if strings . HasPrefix ( ref . Name , BranchPrefix ) {
return strings . TrimPrefix ( ref . Name , BranchPrefix )
return RefName ( ref . Name ) . ShortName ( )
}
// RefGroup returns the group type of the reference
func ( ref * Reference ) RefGroup ( ) string {
return RefName ( ref . Name ) . RefGroup ( )
}
// RefName represents a git reference name
type RefName string
func ( ref RefName ) IsBranch ( ) bool {
return strings . HasPrefix ( string ( ref ) , BranchPrefix )
}
func ( ref RefName ) IsTag ( ) bool {
return strings . HasPrefix ( string ( ref ) , TagPrefix )
}
// ShortName returns the short name of the reference name
func ( ref RefName ) ShortName ( ) string {
refName := string ( ref )
if strings . HasPrefix ( refName , BranchPrefix ) {
return strings . TrimPrefix ( refName , BranchPrefix )
}
if strings . HasPrefix ( ref . Name , TagPrefix ) {
return strings . TrimPrefix ( ref . Name , TagPrefix )
if strings . HasPrefix ( ref Name, TagPrefix ) {
return strings . TrimPrefix ( ref Name, TagPrefix )
}
if strings . HasPrefix ( ref . Name , RemotePrefix ) {
return strings . TrimPrefix ( ref . Name , RemotePrefix )
if strings . HasPrefix ( ref Name, RemotePrefix ) {
return strings . TrimPrefix ( ref Name, RemotePrefix )
}
if strings . HasPrefix ( ref . Name , PullPrefix ) && strings . IndexByte ( ref . Name [ pullLen : ] , '/' ) > - 1 {
return ref . Name [ pullLen : strings . IndexByte ( ref . Name [ pullLen : ] , '/' ) + pullLen ]
if strings . HasPrefix ( ref Name, PullPrefix ) && strings . IndexByte ( ref Name[ pullLen : ] , '/' ) > - 1 {
return ref Name[ pullLen : strings . IndexByte ( ref Name[ pullLen : ] , '/' ) + pullLen ]
}
return ref . Name
return ref Name
}
// RefGroup returns the group type of the reference
func ( ref * Reference ) RefGroup ( ) string {
if ref == nil {
return ""
}
if strings . HasPrefix ( ref . Name , BranchPrefix ) {
func ( ref RefName ) RefGroup ( ) string {
refName := string ( ref )
if strings . HasPrefix ( refName , BranchPrefix ) {
return "heads"
}
if strings . HasPrefix ( ref . Name, TagPrefix ) {
if strings . HasPrefix ( ref Name, TagPrefix ) {
return "tags"
}
if strings . HasPrefix ( ref . Name, RemotePrefix ) {
if strings . HasPrefix ( ref Name, RemotePrefix ) {
return "remotes"
}
if strings . HasPrefix ( ref . Name, PullPrefix ) && strings . IndexByte ( ref . Name[ pullLen : ] , '/' ) > - 1 {
if strings . HasPrefix ( ref Name, PullPrefix ) && strings . IndexByte ( ref Name[ pullLen : ] , '/' ) > - 1 {
return "pull"
}
return ""