当前位置: > > > > 有没有办法用 go-github 客户端验证 git sha 是否属于 git 分支?
来源:stackoverflow
2024-04-20 15:00:22
0浏览
收藏
一分耕耘,一分收获!既然打开了这篇文章《有没有办法用 go-github 客户端验证 git sha 是否属于 git 分支?》,就坚持看下去吧!文中内容包含等等知识点…希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!
问题内容
想使用 go GitHub 客户端来获取如下结果 git分支-r origin/<branch> --包含<sha>
正确答案
我似乎无法找到一个 api 端点来专门回答 sha 是否属于分支,因此您必须在分支内迭代提交。像这样的东西:
func main() { ctx := context.Background() sts := oauth2.StaticTokenSource( &oauth2.Token{AccessToken: "<token>"}, ) tc := oauth2.NewClient(ctx, sts) client := github.NewClient(tc) repoOwner := "<owner>" repoName := "<repo>" branchToSearch := "<branch>" shaToFind := "<sha>" resultsPerPage := 25 listOptions := github.ListOptions{PerPage: resultsPerPage} for { rc, resp, err := client.Repositories.ListCommits(ctx, repoOwner, repoName, &github.CommitsListOptions{ SHA: branchToSearch, ListOptions: listOptions, }, ) if err != nil { log.Panic(err) } for _, c := range rc { if *c.SHA == shaToFind { log.Printf("FOUND commit \"%s\" in the branch \"%s\"\n", shaToFind, branchToSearch) return } } if resp.NextPage == 0 { break } listOptions.Page = resp.NextPage } log.Printf("NOT FOUND commit \"%s\" in the branch \"%s\"\n", shaToFind, branchToSearch) }
今天关于《有没有办法用 go-github 客户端验证 git sha 是否属于 git 分支?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注公众号!