Как мне использовать Go с частными репозиториями Bitbucket? - PullRequest
1 голос
/ 28 апреля 2020

Мы используем частные репозитории Bitbucket для управления нашими Go библиотеками. Используя конфигурацию insteadOf для git, как описано, например, в этом ответе Stackoverflow , мы получили рабочую сборку до Go версии 1.12. Версии 1.13 и 1.14 больше не работают. Мы видим такие ошибки:

$ go vet ./...
go: downloading bitbucket.org/travelloapp/golibs v1.0.42
usercache/usercache.go:6:2: bitbucket.org/travelloapp/golibs@v1.0.42: verifying module: bitbucket.org/travelloapp/golibs@v1.0.42: reading https://sum.golang.org/lookup/bitbucket.org/travelloapp/golibs@v1.0.42: 410 Gone
        server response:
        not found: bitbucket.org/travelloapp/golibs@v1.0.42: reading https://api.bitbucket.org/2.0/repositories/travelloapp/golibs?fields=scm: 403 Forbidden
                server response: Access denied. You must have write or admin access.

В Go FAQ предлагается для установки curl ~/.netrc файла. Я сделал это, используя функцию «Пароль приложения» в Bitbucket. Это не меняет результат. Я добавил bitbucket.org и api.bitbucket.org в качестве имен хостов.

Я могу проверить правильность установки файла с помощью curl напрямую:

$ curl -n https://api.bitbucket.org/2.0/repositories/travelloapp/golibs?fields=scm
{"scm": "git"}

Для записи: несмотря на Сообщение об ошибке Bitbucket. доступ к чтению из репозитория, по-видимому, является единственным необходимым разрешением, хотя я пробовал и со всеми включенными разрешениями.

Я что-то упустил? Почему подход, который работает для Go 1.12, перестал работать для более высоких версий?

В настоящее время я использую:

$ go version
go version go1.14.2 linux/amd64
$ git version
git version 2.17.1
$ curl --version
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

Мы впервые столкнулись с проблемой, когда вышло Go 1.13 , на данный момент мы все еще сдерживаем все среды на 1.12.

1 Ответ

2 голосов
/ 28 апреля 2020

Поскольку go@1.13 ведет себя аналогично предыдущим версиям, вам необходимо установить GOPRIVATE переменную среды для частных репозиториев

...