如何获得'给定一个未知代码托管域名网站的工作?

时间:2016-03-22 17:42:28

标签: go

让我们举个例子。以下命令将执行:

go get robpike.io/ivy

这将获取$ GOPATH / src下的存储库内容。太好了!

现在,它是如何运作的?

首先,robpike.io/ivy使用HTTP重定向回复:

HTTP/1.1 302 Found

<a href="http://godoc.org/robpike.io/ivy">Found</a>

go help importpath阅读,我了解到:

  

如果导入路径不是已知的代码托管站点,也缺少   版本控制限定符,go工具尝试获取导入   通过https / http并在文档的HTML

中查找标记

但是,使用以下方法在重定向页面的内容中查找元标记:

curl -D --raw https://godoc.org/robpike.io/ivy | grep go-import

什么都不返回。

进一步阅读:

  

repo-root是包含a的版本控制系统的根   scheme并且不包含.vcs限定符。

     

例如,

     

import&#34; example.org/pkg/foo"

     

将导致以下请求:

     

https://example.org/pkg/foo?go-get=1(首选)

     

http://example.org/pkg/foo?go-get=1(后备,仅限-insecure)

再次:

curl -D --raw https://robpike.io/ivy?go-get=1

什么都不返回。

所以问题是:我怎样才能和Rob Pike先生做同样的事情并使用go get命令使用我自己的网站?

2 个答案:

答案 0 :(得分:2)

命令curl -D --raw 'https://robpike.io/ivy?go-get=1'返回包含标记

的HTML文档
<meta name="go-import" content="robpike.io/ivy git https://github.com/robpike/ivy.git">

go get命令使用此元标记来解析实际git存储库的虚荣导入路径。你也可以这样做。

答案 1 :(得分:2)

您输入的最后一个命令会返回数据。当我在终端中运行curl -D --raw https://robpike.io/ivy\?go-get\=1时,我收到以下数据:

<meta name="go-import" content="robpike.io/toy git https://github.com/robpike/toy.git"><meta name="go-import" content="robpike.io/cmd/translate git https://github.com/robpike/translate.git"><meta name="go-import" content="robpike.io/cmd/freq git https://github.com/robpike/freq.git"><meta name="go-import" content="robpike.io/cmd/hira git https://github.com/robpike/hira.git"><meta name="go-import" content="robpike.io/cmd/kana git https://github.com/robpike/kana.git"><meta name="go-import" content="robpike.io/cmd/kata git https://github.com/robpike/kata.git"><meta name="go-import" content="robpike.io/nihongo git https://github.com/robpike/nihongo.git"><meta name="go-import" content="robpike.io/cmd/typo git https://github.com/robpike/typo.git"><meta name="go-import" content="robpike.io/filter git https://github.com/robpike/filter.git"><meta name="go-import" content="robpike.io/cmd/unicode git https://github.com/robpike/unicode.git"><meta name="go-import" content="robpike.io/cmd/doc git https://github.com/robpike/doc.git"><meta name="go-import" content="robpike.io/cmd/scrub git https://github.com/robpike/scrub.git"><meta name="go-import" content="robpike.io/cmd/strings git https://github.com/robpike/strings.git"><meta name="go-import" content="robpike.io/ivy git https://github.com/robpike/ivy.git"><meta name="go-import" content="robpike.io/cmd/now git https://github.com/robpike/now.git">

Ths允许go get命令解析git存储库的虚荣路径。