Когда я импортирую пакет в приложение go (используя модули и vscode с плагином golang):
import (
cors "goa.design/plugins/cors/dsl"
)
go автоматически получает пакет.
Откуда он знает, где его взять?
Я полагал, что он просто извлекает исходники с github.com, но репозиторий для этого проекта указан в названии https://github.com/goadesign/goa no ..
И если я изменю импорт на:
import (
cors "goa.design/plugins/v3/cors/dsl"
)
Он извлекает пакет v3. Я бы с удовольствием RTFM, но не уверен, какой FM мне нужно читать.
Кстати: это мой второй день на go, так что это волшебство для меня.
А подробности по версиям модуля: golang.org/cmd/go/…
Примечание для себя: перейдите на тщеславные URL-адреса

Это просто, проверьте это:
$> curl https://goa.design/plugins/cors/dsl
<!DOCTYPE html>
<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en-us">
<head>
<meta http-equiv = "content-type" content = "text/html; charset=utf-8">
<meta name = "go-import" content = "goa.design/plugins git https://github.com/goadesign/plugins">
<meta name = "go-source" content = "goa.design/plugins _ https://github.com/goadesign/plugins/tree/master/{/dir} https://github.com/goadesign/plugins/blob/master{/dir}/{file}#L{line}">
Ключ здесь находится в теге с именем «go-import». Когда go get запрашивает https://goa.design/..., он обращается к этому файлу HTML и знает, что "goa.design/...." должен быть получен с помощью git из https://github.com/goadesign/плагины.
Вот хороший статья