Daniel
чем еще-то?
A
Для гита прокатывает, для go get и dep - нет.
Vladimir
A
Если git clone сделаю с указанием http://... - всё ок, но с go get не работает, он будет только по https пытаться загрузить, а dep вначале попытается по https загрузить, потом, когда не получится, фоллбекнется на ssh.
A
A
У меня сейчас так
~/.gitconfig
[url "git@git.blabla.bla:"]
insteadOf = https://git.blabla.bla/
pushInsteadOf = https://git.blabla.bla/
~/.ssh/config
Host git.blabla.bla
HostName git.blabla.bla
Port 1234
User myusername
IdentityFile ~/.ssh/key
Vladimir
Ноут день брать
Aleksandr
Aleksandr
В проблему не вникал
Aleksandr
Может не к месту
A
На всякий случай
Порт прописан в ~/.ssh/config, поэтому git clone работает и без указания порта в ~/.gitconfig. Но если прописать порт и в ~/.gitconfig, то вообще всё перестает работать. :)
Aleksandr
A
Перестает работать тогда.
Ivan
я так делал
[url "ssh://git@stash.abc.ee:22222"]
insteadOf = https://stash.abc.ee/scm
A
Нет, так-то git clone работает, не работает именно go get и dep (dep долго ждет).
Ivan
ну у меня так go get отличненько пашет
Aleksandr
Ivan
go get stash.abc.ee/services/dispatcher/cmd/dispatcher
Ivan
и пашет)
A
Есть приватный репозиторий, с доступами по ssh-ключам. Используются следующие конфиги:
~/.gitconfig
[url "git@git.blabla.bla:"]
insteadOf = https://git.blabla.bla/
pushInsteadOf = https://git.blabla.bla/
~/.ssh/config
Host git.blabla.bla
HostName git.blabla.bla
Port 1234
User myusername
IdentityFile ~/.ssh/key
При этом git clone http://git.blabla.bla/my/super/repo отрабатывает успешно, но go get фейлится, а dep отрабатывает, но после большого ожидания (пока по http вначале не затаймаутится).
Ivan
git config --global url."ssh://git@git.blabla.bla:1234".insteadOf "https://git.blabla.bla/"
Ivan
по дефолту юзаю ключ id_rsa
Aleksandr
а go get покажи выхлоп
A
У меня IdentityFile прописан же
Aleksandr
как вызываешь команду?
Ivan
если запашет, значит не надо тебе мучить гит конфиг
A
а go get покажи выхлоп
go get git.blabla.bla/my/super/repo
На выходе:
https fetch failed: Get https://git.blabla.bla/my/super/repo?go-get=1: dial tcp 1.2.3.4:443: i/o timeout и дальше про то, что не удовлетворены зависимости
A
@MeGaPk, сейчас пробую вот
Aleksandr
Aleksandr
может некорректно что-то? отступы там или еще что
A
@zelenin, да, но сам git подхватывает вполне успешно.
Aleksandr
логично
Aleksandr
а сделай go get -v
Aleksandr
сравню со своим выхлопом
A
Так и делаю, он просто перед ошибкой тогда пишет, мол, Fetching и там https
Aleksandr
давай сюда его
Aleksandr
у меня тоже это же
Aleksandr
в этом и причина навреное
Aleksandr
у тебя же не может быть репо не go-gettable
Aleksandr
у тебя просто репо или какой-то сервис?
A
gitlab
Aleksandr
оно умеет ?go-get=1?
A
dep всегда получает репу, просто после ожидания долгого, когда дождется таймаута https.
Aleksandr
ну кинь go get -v
A
go get никогда не получает. Но он и не пытается по ssh получать, только по https лезет.
Ivan
дык копать то надо почему go get не берет инфу из gitconfig
Aleksandr
а потому что он не знает что по гиту надо идти
Aleksandr
потому что ресурс не go-getable
A
ну кинь go get -v
Как и писал
go get -v git.blabla.bla/my/repo
Fetching https://git.blabla.bla/my/repo?go-get=1
https fetch failed: Get https://git.blabla.bla/my/repo?go-get=1: dial tcp 1.2.3.4:443: i/o timeout
package git.blabla.bla/my/repo: unrecognized import path "git.blabla.bla/my/repo" (https fetch: Get https://git.blabla.bla/my/repo?go-get=1: dial tcp 1.2.3.4:443: i/o timeout)
Aleksandr
смотри как это работает
Aleksandr
ты делаешь go get [path], он лезет по https://[path]?go-get=1, там читает метатеги, в которых прописан ресурс, откуда брать код, то есть "git https://........" и дальше уже через гит пытается лезть на https://..., что будет работать через gitconfig
Aleksandr
ты обламываешься на самой первой стадии, не доходя до гита
A
Тааак. А по https у меня вообще ничего не отдается, там http в vpn.
A
Сейчас накачу сертификат и посмотрю, что выйдет.
Aleksandr
Fetching https://git....?go-get=1
Parsing meta tags from https://git....?go-get=1 (status code 200)
get "git....": found meta tag get.metaImport{Prefix:"git....", VCS:"git", RepoRoot:"https://....git"} at https://git....?go-get=1
git.... (download)
git....
Aleksandr
вот так должно выглядеть
🏁Александр
что вы химичите тут?
Aleksandr
как всегда - приватные репо)
🏁Александр
капец
🏁Александр
может уже пора написать вмяемый сервер для контроля? 🙂
Aleksandr
A
Что-то всё равно непонятно что делать, ведь gitlab просто выхлапывает форму входа по http.
Aleksandr
попробуй к урлу репо добавить ?go-get=1
Aleksandr
не может быть чтобы гитлаб не поддерживал это
A
Да не, он просто форму входа выхлопнет по любому адресу подобному.
A
Если в конце указать .git, то всё отработает, dep сразу по ssh идет. Но тогда в Gopkg.toml нужно прописывать все сопоставления с .git и без .git руками, что ненормально.
Aleksandr
https://gitlab.com/gitlab-org/gitlab-ce/issues/37832
Aleksandr
погугли че там
Anonymous
Если кому интересно, проблема была в Content-Type
Ща отснифаю запросы и посмотрю че туда вписать надо
Nikita
Aleksandr
Хоть один аргумент почему это плохо?
на разных устройствах выглядит по разному, нельзя скопировать код, подправить и написать в чат, картинка перекрывает остальной чат итд
Vladimir
Aleksandr
Vladimir
а
Vladimir
это уже не знаю
Aleksandr
то есть до гита не доходит