GitHub

Provides a simple way to list references from a remote git repository over HTTP, without needing a full git client or a checkout of the remote repository.

Example:

package main
import (
	"fmt"
	"github.com/csmith/gitrefs"
)
func main() {
	refs, err := gitrefs.Fetch("https://github.com/csmith/gitrefs")
	if err != nil {
		panic(err)
	}
	for r := range refs {
		fmt.Printf("Ref %s at commit %s\n", r, refs[r])
	}
}

A utility method to retrieve only the latest semver tag is included:

package main
import (
	"fmt"
	"github.com/csmith/gitrefs"
)
func main() {
	tag, hash, err := gitrefs.LatestTag("https://github.com/csmith/gitrefs")
	if err != nil {
		panic(err)
	}
	fmt.Printf("Latest tag is %s at commit %s\n", tag, hash)
}

Protocol docs:

Read the original on github.com ↗