2015-06-10 2 views
0

Я очень новичок в Go и у меня проблемы с выпуском всех выпусков для данного репо с использованием go-github api.Распечатайте выпуски репозитория с go-github

Я адаптирую свой код от example in the project здесь.

Это код, который у меня есть до сих пор.

package main 

import (
    "fmt" 
    "github.com/google/go-github/github" 
    "golang.org/x/oauth2" 
) 

func main() { 

// authentication 
ts := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: "XXX"}) 
tc := oauth2.NewClient(oauth2.NoContext, ts) 

client := github.NewClient(tc) 

// list all releases for single repo 
fmt.Println("Releases for repo") 
opt := &github.ListOptions{Page: 2, PerPage: 10} 
releases, _, err := client.Repositories.ListReleases("hashicorp", "terraform", opt) 

if err != nil { 
    fmt.Printf("error: %v\n", err) 
} else { 
    for _, release := range releases { 
     fmt.Printf("%v\n", release) 
    } 
} 

Это работает и работает нормально (по крайней мере, никаких ошибок), но когда я его запускаю, код ничего не возвращает. У меня такое чувство, что я пропустил что-то простое, но застрял, почесывая голову.

ответ

2

Из GitHub documentation on the list releases API:

Это возвращает список выпусков, который не включает в себя регулярные теги Git, которые не были связаны с выпуском. Чтобы получить список тегов Git, используйте Repository Tags API.

Поскольку указанный вами репозиторий содержит только теги, а не релизы, ничего не возвращается.

Изменение ListReleases к ListTags дает результат, похожий на следующее:

Releases for repo 
{0xc2081e1a10 github.Commit{SHA:"d8292227960eab405863ffbc5d13cc85839aa2db", URL:"https://api.github.com/repos/hashicorp/terraform/commits/d8292227960eab405863ffbc5d13cc85839aa2db"} 0xc2081e1a50 0xc2081e1a60} 
{0xc2081e1c40 github.Commit{SHA:"4ed2c8d956d2eae83a2a3750290711ce7fa1ec76", URL:"https://api.github.com/repos/hashicorp/terraform/commits/4ed2c8d956d2eae83a2a3750290711ce7fa1ec76"} 0xc2081e1c60 0xc2081e1c70} 
{0xc2081e1ca0 github.Commit{SHA:"33e11f0eba1b634849784151b29f69314bfae827", URL:"https://api.github.com/repos/hashicorp/terraform/commits/33e11f0eba1b634849784151b29f69314bfae827"} 0xc2081e1cb0 0xc2081e1cc0} 
{0xc2081e1cf0 github.Commit{SHA:"8175d7f82134d378234a407e529853da681af07e", URL:"https://api.github.com/repos/hashicorp/terraform/commits/8175d7f82134d378234a407e529853da681af07e"} 0xc2081e1d10 0xc2081e1d20} 
{0xc2081e1d50 github.Commit{SHA:"166efa1ba0c7aa2fb5a7230f787c8499c765786e", URL:"https://api.github.com/repos/hashicorp/terraform/commits/166efa1ba0c7aa2fb5a7230f787c8499c765786e"} 0xc2081e1d60 0xc2081e1d70} 
{0xc2081e1da0 github.Commit{SHA:"1894e985557f010a4bca873c5b10bedb1cd7de5d", URL:"https://api.github.com/repos/hashicorp/terraform/commits/1894e985557f010a4bca873c5b10bedb1cd7de5d"} 0xc2081e1dc0 0xc2081e1dd0} 
{0xc2081e1e00 github.Commit{SHA:"0bc0c03fece07c4f21ee5195743116a4d418f234", URL:"https://api.github.com/repos/hashicorp/terraform/commits/0bc0c03fece07c4f21ee5195743116a4d418f234"} 0xc2081e1e10 0xc2081e1e20} 
{0xc2081e1e50 github.Commit{SHA:"4e11ed4327fa638a4c2587489a8660c69beb4047", URL:"https://api.github.com/repos/hashicorp/terraform/commits/4e11ed4327fa638a4c2587489a8660c69beb4047"} 0xc2081e1e70 0xc2081e1e80} 
{0xc2081e1eb0 github.Commit{SHA:"a4cf3fec1c8341041f41897ea84781e6be9b1dad", URL:"https://api.github.com/repos/hashicorp/terraform/commits/a4cf3fec1c8341041f41897ea84781e6be9b1dad"} 0xc2081e1ec0 0xc2081e1ed0} 
{0xc2081e1f00 github.Commit{SHA:"146d081b65aba3e0f183d6e4b26f3e794fabaebf", URL:"https://api.github.com/repos/hashicorp/terraform/commits/146d081b65aba3e0f183d6e4b26f3e794fabaebf"} 0xc2081e1f20 0xc2081e1f30}