如何使用go-github获取golang / go的版本

时间:2015-12-05 02:56:33

标签: go github-api

学习Go并尝试使用go-github获取golang / go的发布列表。

这是我的代码:

package main

import (
    "github.com/google/go-github/github"
    "fmt"
)


func main() {
    client := github.NewClient(nil)

    opt := &github.ListOptions{Page: 2, PerPage: 10}
    releases, rsp, err := client.Repositories.ListReleases("golang", "go", opt)

    if err != nil {
        fmt.Println(err)
    }

    fmt.Printf("\n%+v\n", releases)
    fmt.Printf("\n%+v\n", rsp)

}

当我运行它时,发布列表为空(如下所示):

[]

github.Rate{Limit:60, Remaining:59, Reset:github.Timestamp{2015-12-05 14:47:55 +1100 AEDT}}

我不知道自己做错了什么。

1 个答案:

答案 0 :(得分:2)

修改

仔细看看Go存储库,这些版本实际上只是标签而不是Github版本,这就是它返回空数组的原因。试试这个:

// https://api.github.com/repos/jp9000/obs-studio/releases
releases, rsp, err := client.Repositories.ListReleases("jp9000", "obs-studio", opt)

这应该正确返回jp9000的obs-studio存储库的所有版本。

原始答案:

查看文档,代码看起来不错,但这可能是Github的API的一个问题。例如,如果你转到https://api.github.com/repos/golang/go/releases,你会得到一个空数组,但如果你使用https://api.github.com/repos/golang/go/tags搜索标签,它会毫无问题地列出所有任务。

如果你去https://api.github.com/repos/golang/go/releases/1,你会得到一个404.我从Github开发者的页面中获取了这些地址:https://developer.github.com/v3/repos/releases/#list-releases-for-a-repository