登录
首页 >  Golang >  Go问答

获取 Git 用户名和存储库列表:使用 Golang 从令牌访问

来源:stackoverflow

时间:2024-03-05 13:27:27 264浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《获取 Git 用户名和存储库列表:使用 Golang 从令牌访问》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我想根据 oauth 令牌提取 git 存储库列表。 我想为 github / gitlab & bitbucket 编写通用代码。

最有可能的是,首先我可能需要从令牌中提取用户名,然后我需要提取列表..就像 Github 文档建议的那样。

https://docs.github.com/en/rest/reference/users#get-the-authenticated-user https://api.github.com/users//repos

但是,这只会对我的 github 有帮助。 我研究过 https://pkg.go.dev/github.com/go-git/go-git/v5#Repository 因为它适用于所有 git 平台。但是,我找不到存储库列表功能(基于 oauth 令牌)

最好的方法是什么? 提前致谢!


正确答案


没有标准统一的方法来获取此信息。当您使用 Git 时,您需要向其提供用于与服务器通信的身份验证凭据,而该服务器(无论是 GitHub、GitLab、Bitbucket、您自己的 Apache 实例还是其他服务器)要么接受它,要么拒绝它。不要求凭据提供比这更多的功能。

对于 GitHub,您可以使用 API 来获取该信息,只要它是 OAuth 令牌或 PAT 并且具有 user 范围。 GitHub 有其他类型的令牌,可用于克隆,但不能用于 API,当然,任何缺少 user 范围的令牌都不起作用。我应该指出,对于 GitHub 的令牌,用户名没有嵌入到令牌中(如 they've documented on their blog),因此您确实必须使用 API。

GitLab 可能还有一个 API 可供您使用,但不会有一种方法可以与所有存储库一起使用,并且可能无法从令牌类型确定要使用哪个域。例如,github.com 和 GitHub Enterprise Server(本地选项)将颁发看起来相同的令牌,但当然这些令牌只能在颁发它们的系统上使用。

终于介绍完啦!小伙伴们,这篇关于《获取 Git 用户名和存储库列表:使用 Golang 从令牌访问》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>