Как "go получить" пакет из частного git хранилища - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть частный сервер, к которому я получаю доступ через s sh. Я создал пустой репозиторий там под /var/git/mylib.git, и я могу получить доступ к этому репозиторию с помощью git clone user@domain.tld:/var/git/mylib.git.

Содержимое репозитория представляет собой библиотеку go, и я хотел бы иметь возможность сделать go get domain.tld/mylib для получения моей библиотеки вместе с ее зависимостями за один шаг.

Затем я настроил git для преобразования HTTP-вызовов на мой сервер в S SH, используя команду git config --global url."user@domain.tld:/var/git/".insteadOf "https://domain.tld/" (как описано здесь Как правильно "go получить" частный репозиторий? ).

Теперь, если я запускаю go get domain.tld/mylib, я получаю следующее

Fetching https://domain.tld/mylib?go-get=1
Parsing meta tags from https://domain.tld/mylib?go-get=1 (status code 404)
package domain.tld/mylib: unrecognized import path "domain.tld/mylib" (parse https://domain.tld/mylib?go-get=1: no go-import meta tags ())

и если я запускаю go get domain.tld/mylib.git, я не получаю ошибку, и библиотека успешно загружена. Единственная проблема состоит в том, что go get генерирует следующее дерево каталогов

.
├── pkg
│   └── linux_amd64
│       └── domain.tld
└── src
    └── domain.tld
        └── mylib.git

, поскольку вы можете видеть, что библиотека устанавливается в каталог с суффиксом .git, который нарушает весь мой код, поскольку все пути импорта в мои пакеты имеют форму import "domain.tld/mylib/...", и теперь мне нужно изменить их на import "domain.tld/mylib.git/...", что кажется немного странным.

Можно ли как-нибудь сказать go get не добавлять суффикс .git в каталоги это достает? Или есть лучший способ добиться того, чего я хочу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...