forked from src-d/go-git
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
42 lines (33 loc) · 851 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package main
import (
"log"
"gopkg.in/src-d/go-git.v4"
"gopkg.in/src-d/go-git.v4/config"
"gopkg.in/src-d/go-git.v4/storage/memory"
)
// Retrieve remote tags without cloning repository
func main() {
// Create the remote with repository URL
rem := git.NewRemote(memory.NewStorage(), &config.RemoteConfig{
Name: "origin",
URLs: []string{"https://github.com/Zenika/MARCEL"},
})
log.Print("Fetching tags...")
// We can then use every Remote functions to retrieve wanted information
refs, err := rem.List(&git.ListOptions{})
if err != nil {
log.Fatal(err)
}
// Filters the references list and only keeps tags
var tags []string
for _, ref := range refs {
if ref.Name().IsTag() {
tags = append(tags, ref.Name().Short())
}
}
if len(tags) == 0 {
log.Println("No tags!")
return
}
log.Printf("Tags found: %v", tags)
}