diff options
author | Paulo Gomes <pjbgf@linux.com> | 2023-05-03 08:39:07 +0100 |
---|---|---|
committer | Paulo Gomes <pjbgf@linux.com> | 2023-05-03 08:39:07 +0100 |
commit | 19b39e150071832541f2cdcb669446a8609f57e7 (patch) | |
tree | 86f0f043a8176a790c132d2862f8f3f4565c398e /_examples | |
parent | 0542a302c2be7ed7de276411f7e20b87309734b9 (diff) | |
download | go-git-19b39e150071832541f2cdcb669446a8609f57e7.tar.gz |
git: Add support to ls-remote with peeled references. Fixes #749
A new PeelingOption field was introduced into ListOptions. The new options
include the default (and backwards compatible) IgnorePeeled. Plus another
two variations which either only returns peeled references (OnlyPeeled), or
append peeled references to the list (AppendPeeled).
The ls-remote example was updated to align with upstream, in which peeled
references are appended to the results by default.
A new ErrEmptyUrls error is now returned when List or ListContext do not
receive a URL to work with, to improve overall execution flow.
Signed-off-by: Paulo Gomes <pjbgf@linux.com>
Diffstat (limited to '_examples')
-rw-r--r-- | _examples/ls-remote/main.go | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/_examples/ls-remote/main.go b/_examples/ls-remote/main.go index af038d6..e49e8c9 100644 --- a/_examples/ls-remote/main.go +++ b/_examples/ls-remote/main.go @@ -2,25 +2,35 @@ package main import ( "log" + "os" "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/config" "github.com/go-git/go-git/v5/storage/memory" + + . "github.com/go-git/go-git/v5/_examples" ) // Retrieve remote tags without cloning repository func main() { + CheckArgs("<url>") + url := os.Args[1] + + Info("git ls-remote --tags %s", url) // Create the remote with repository URL rem := git.NewRemote(memory.NewStorage(), &config.RemoteConfig{ Name: "origin", - URLs: []string{"https://github.com/Zenika/MARCEL"}, + URLs: []string{url}, }) log.Print("Fetching tags...") // We can then use every Remote functions to retrieve wanted information - refs, err := rem.List(&git.ListOptions{}) + refs, err := rem.List(&git.ListOptions{ + // Returns all references, including peeled references. + PeelingOption: git.AppendPeeled, + }) if err != nil { log.Fatal(err) } |