go - 获取 GitHub 存储库的组织
问题描述
我正在尝试列出用户的存储库并使用go-github获取他们所属的组织。
这些存储库属于一个组织,但组织值似乎是nil
.
代码:
import "github.com/google/go-github/v37/github"
func GetClient(token) *GitHub {
ctx := context.Background()
ts := oauth2.StaticTokenSource(
&oauth2.Token{AccessToken: token},
)
tc := oauth2.NewClient(ctx, ts)
client := github.NewClient(tc)
return client
}
func main() {
client := GetClient("TOKEN")
repos, _, err := client.Repositories.List(context.TODO(), "", nil)
if err != nil {
log.Fatal(err)
}
for _, repo := range repos {
println(*repo.Name)
org := repo.GetOrganization()
println(org)
println(repo.Organization)
}
}
输出:
api
0x0
0x0
api-inserter
0x0
0x0
bbprograms
0x0
0x0
console-api
0x0
0x0
console-spa
我知道这些回购是用户所属组织的一部分。
解决方案
您可以直接调用 API:
package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
r, err := http.Get("https://api.github.com/users/bradfitz/orgs")
if err != nil {
panic(err)
}
defer r.Body.Close()
var orgs []struct{Login string}
json.NewDecoder(r.Body).Decode(&orgs)
fmt.Printf("%+v\n", orgs) // [{Login:djabberd} {Login:camlistore} {Login:tailscale}]
}
推荐阅读
- blazor - Blazor PWA 与桌面服务交互?
- javascript - 得到这个 TypeError: is_valid() missing 1 required positional argument: 'self'
- python - 使用 DPKT python 检查数据包是否包含以太网层或原始 IP 数据包
- sql - 获取行值作为列标题
- templates - GitHub:Template 和 Fork 概念有什么区别以及何时使用?
- php - Composer 在没有明确原因的情况下更新失败
- r - 如何解决solve.default(H,g [!fixed])中的mlogit错误:系统在计算上是奇异的:倒数条件数= 3.03549e-18?
- android - BottomSheetBehavior Android 中所有状态详解
- asp.net - Blazor WebAssembly:不支持提供的 ContentType;
- python - 如何使用 Python 中的请求发布带有列表的字典?