为了账号安全,请及时绑定邮箱和手机立即绑定

Golang - 从令牌中获取 Git 用户名和 repo 列表

Golang - 从令牌中获取 Git 用户名和 repo 列表

Go
萧十郎 2022-10-17 19:25:17
我想根据 oauth 令牌提取 git 存储库列表。我想为 github / gitlab & bitbucket 编写一个通用代码。最有可能的是,首先我可能需要从令牌中提取用户名,然后我需要提取列表。就像 Github 文档所建议的那样。https://docs.github.com/en/rest/reference/users#get-the-authenticated-user https://api.github.com/users/<username>/repos但是,这只会帮助我使用 github。我已经研究过,https://pkg.go.dev/github.com/go-git/go-git/v5#Repository 因为它适用于所有 git 平台。但是,我找不到回购列表功能(基于 oauth 令牌)最好的方法是什么?提前致谢 !
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

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

对于 GitHub,您可以使用 API 来获取该信息,前提是它是 OAuth 令牌或 PAT 并且它具有user范围。GitHub 有其他类型的令牌可用于无法用于 API 的克隆,当然任何缺少user范围的令牌都将不起作用。我应该指出,对于 GitHub 的令牌,用户名没有嵌入到令牌中(正如他们在博客上记录的那样),所以你确实必须使用 API。

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


查看完整回答
反对 回复 2022-10-17
  • 1 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号