Мне нужна помощь для программного развертывания приложения в Heroku. У Heroku есть приложение для управления вашими приложениями. По команде heroku login
запись в ~/.netrc
ключ API:
machine api.heroku.com
login email@gmail.com
password 6450sdf8-bd51-40da-9706-e39s85mc251f
В документах я могу найти эту https://devcenter.heroku.com/articles/git#http - git -утентификацию , где записано
Конечная точка Heroku HTTP Git принимает только аутентификацию HTTP Basi c на основе API-ключей. Имя пользователя не требуется, и любое значение, переданное для имени пользователя, игнорируется.
Мой код использует https://github.com/src-d/go-git:
r, err := git.PlainOpen("go-getting-started")
if err != nil {
log.Fatal(err)
}
r.CreateRemote(&config.RemoteConfig{
Name: "heroku",
URLs: []string{"https://git.heroku.com/afternoon-ocean-91922.git"},
})
err = r.Push(&git.PushOptions{
Auth: &http.BasicAuth{
Username: "email@gmail.com",
Password: "6450sdf8-bd51-40da-9706-e39s85mc251f",
},
})
if err != nil {
log.Fatal(err)
}
И есть ошибка
2020/01/30 17:38:23 требуется проверка подлинности
статус выхода 1
ОК, тогда я set -i; GIT_TRACE=2 GIT_CURL_VERBOSE=2 GIT_TRACE_PERFORMANCE=2 GIT_TRACE_PACK_ACCESS=2 GIT_TRACE_PACKET=2 GIT_TRACE_PACKFILE=2 GIT_TRACE_SETUP=2 GIT_TRACE_SHALLOW=2 git push heroku master -v -v; set +i
и вижу в журнале эту строку
Host: git.heroku.com
User-Agent: git/2.25.0
Accept: */*
Accept-Encoding: deflate, gzip
Accept-Language: ru-RU, *;q=0.9
Pragma: no-cache
* Mark bundle as not supporting multiuse
< HTTP/1.1 401 Unauthorized
< Content-Type: text/plain
< Date: Thu, 30 Jan 2020 15:00:44 GMT
< Request-Id: c0786480-055d-40bc-90b3-d795304c2777
< Server: endosome/development (instance=6283027; pid=4272)
< Www-Authenticate: Basic realm="Heroku"
< Content-Length: 249
< Connection: keep-alive
<
* Ignoring the response-body
* Connection #0 to host git.heroku.com left intact
* Issue another request to this URL: 'https://git.heroku.com/infinite-garden-93715.git/info/refs?service=git-receive-pack'
* Found bundle for host git.heroku.com: 0x5616ad25b0a0 [serially]
* Can not multiplex, even if we wanted to!
* Re-using existing connection! (#0) with host git.heroku.com
* Connected to git.heroku.com (54.225.111.180) port 443 (#0)
* Server auth using Basic with user 'email@gmail.com'
> GET /infinite-garden-93715.git/info/refs?service=git-receive-pack HTTP/1.1
Host: git.heroku.com
Authorization: Basic aHJkY29ka...Mzk2MmJkZTI1MWY=
User-Agent: git/2.25.0
Accept: */*
Accept-Encoding: deflate, gzip
Accept-Language: ru-RU, *;q=0.9
Pragma: no-cache
Строка aHJkY29ka...Mzk2MmJkZTI1MWY=
in
Авторизация: Basi c aHJkY29ka ... Mzk2MmJkZTI1MWY =
is email:token
in base64. Почему я не могу выполнить авторизацию с ключом от ~/.netrc
? Как я могу pu sh в удаленном репозитории программно? Спасибо!