Вы можете использовать синтаксис ...
в поле pattern
функции Load()
.
Пример
Для модуля My Go требуется пакет github.com/hashicorp/go-multierror
:
module mymodule
require github.com/hashicorp/go-multierror v1.0.0
Итак, следующий код:
package main
import (
"fmt"
"golang.org/x/tools/go/packages"
)
func main() {
pkgs, err := packages.Load(nil, "github.com/hashicorp...")
if err == nil {
for _, pkg := range pkgs {
fmt.Println(pkg.ID)
}
}
}
возвращает все необходимые пакеты, начиная с github.com/hashicorp
(даже транзитивные):
github.com/hashicorp/errwrap
github.com/hashicorp/go-multierror
Обратите внимание, что вы также можете использовать ...
в любом месте вашего паттерна (...hashicorp...
, ...ha...corp...
, github.com/...
).