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

如何获取 go 包的实际存储库 url

如何获取 go 包的实际存储库 url

Go
千巷猫影 2022-06-21 10:17:30
例如,我们可以使用go get k8s.io/client-go安装 go 包,但有没有办法找出源代码 URL 实际上是https://github.com/kubernetes/client-go?因为如果我直接访问 k8s.io/client-go 会显示 404。在这个例子中,go 客户端如何确定源代码在哪里?
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

命令 go:远程导入路径:


某些导入路径还描述了如何使用修订控制系统获取包的源代码。


<meta>...对于托管在其他服务器上的代码,导入路径可以使用版本控制类型进行限定,或者 go 工具可以通过 https/http 动态获取导入路径,并从HTML 中的标记中发现代码所在的位置。


...如果导入路径不是已知的代码托管站点并且还缺少版本控制限定符,则 go 工具会尝试通过 https/http 获取导入并在文档的 HTML 中查找标记<head>。


元标记具有以下形式:

<meta name="go-import" content="import-prefix vcs repo-root">


import-prefix 是存储库根目录对应的导入路径。它必须是使用“go get”获取的包的前缀或完全匹配。如果不完全匹配,则在前缀处发出另一个 http 请求以验证<meta>标签是否匹配。


例如,在您的情况下,该go工具将查询https://k8s.io/client-go?go-get=1. 自己检查:


curl https://k8s.io/client-go?go-get=1

回复:


<html><head>

    <meta name="go-import"

          content="k8s.io/client-go

                   git https://github.com/kubernetes/client-go">

    <meta name="go-source"

          content="k8s.io/client-go

                   https://github.com/kubernetes/client-go

                   https://github.com/kubernetes/client-go/tree/master{/dir}

                   https://github.com/kubernetes/client-go/blob/master{/dir}/{file}#L{line}">

</head></html>

如您所见,响应 HTML 文档清楚地表明该代码可在github.com/kubernetes/client-go.


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

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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