¿Cuál es la forma correcta de "get" un repository privado?

Estoy buscando la forma de get trabajo para go get repository privado, después de muchos bashs de google.

El primer bash

 $ go get -v gitlab.com/secmask/awserver-go Fetching https://gitlab.com/secmask/awserver-go?go-get=1 https fetch failed. Fetching http://gitlab.com/secmask/awserver-go?go-get=1 Parsing meta tags from http://gitlab.com/secmask/awserver-go?go-get=1 (status code 200) import "gitlab.com/secmask/awserver-go": parse http://gitlab.com/secmask/awserver-go?go-get=1: no go-import meta tags package gitlab.com/secmask/awserver-go: unrecognized import path "gitlab.com/secmask/awserver-go 

sí, ¿No vio las metatags porque no podía saber cómo proporcionar información de inicio de session?
El segundo bash. Sigue https://gist.github.com/shurcooL/6927554 . Agregar config a .gitconfig

 [url "ssh://[email protected]/"] insteadOf = https://gitlab.com/ $ go get -v gitlab.com/secmask/awserver-go --> not work $ go get -v gitlab.com/secmask/awserver-go.git --> work but I got src/gitlab.com/secmask/awserer-go.git 

Sí, funciona, pero con la extensión .git con el nombre de mi proyecto, puedo cambiarle el nombre a original, pero hacerlo cada vez go get no es tan bueno, ¿hay otro?

La forma correcta es colocar manualmente el repository en el lugar correcto. Una vez que el repository esté allí, puede usar go get -u para actualizar el package e go install para instalarlo. Un package llamado

 github.com/secmask/awserver-go 

entra en

 $GOPATH/src/github.com/secmask/awserver-go 

Los commands que escribes son:

 cd $GOPATH/src/github.com/secmask git clone [email protected]:secmask/awserver-go.git 

De acuerdo con este enlace – https://gist.github.com/shurcooL/6927554 – tiene dos cosas para configurar. El ejemplo se basa en github pero esto no debería cambiar el process

 $ git config --global url."[email protected]:" .insteadOf "https://github.com/" $ cat ~/.gitconfig [url "[email protected]:"] insteadOf = https://github.com/ $ go get github.com/private/repo 

Eso se parece al problema de GitLab 5769

En GitLab, dado que los repositorys siempre terminan en .git , debo especificar .git al final del nombre del repository para que funcione, por ejemplo:

 import "example.org/myuser/mygorepo.git" 

Y:

 go get example.org/myuser/mygorepo.git 

Parece que github soluciona esto al agregar " .git "

Se supone que debe resolverse en "Se agregó soporte para la recuperación del repository de Go". # 5958 ", siempre que las metatags correctas estén en su lugar .
Aunque todavía hay un problema para Go: " cmd/go : go get no puede descubrir metatags en documentos HTML5 "

Creé un ssh-config específico para el usuario, por lo que mi usuario inicia session automáticamente con las cnetworkingenciales y la key correctas.

Primero, necesitaba generar un par de keys

 ssh-keygen -t rsa -b 4096 -C "[email protected]" 

y lo ~/.ssh/id_my_domain por ejemplo, ~/.ssh/id_my_domain . Tenga en count que este es también el par de llaves (privado y público) que he conectado a mi count de Github, por lo que el mío se almacena en ~/.ssh/id_github_com .

Luego creé (o ~/.ssh/config ) un file llamado ~/.ssh/config con una input:

 Host github.com HostName github.com User git IdentityFile ~/.ssh/id_github_com 

En otro server, el "ssh-url" es [email protected]:username/private-repo.git y la input para este server habría sido:

 Host domain.com HostName domain.com User admin IdentityFile ~/.ssh/id_domain_com 

Solo para aclarar que necesita asegurarse de que el User , el Host y el HostName configurados correctamente.

Ahora puedo navegar por la ruta de acceso y luego go get <package> , por ejemplo, go get main donde el file main/main.go incluye el package (del último ejemplo anterior) domain.com:username/private-repo.git .

Tuve un problema con go get usar el repository privado en gitlab de nuestra compañía. Perdí unos minutos tratando de encontrar una solución. Y encontré este:

  1. Debes get una ficha privada en:
    https://gitlab.mycompany.com/profile/account

  2. Configura tu git para agregar un encabezado extra con tu token privado:

     $ git config --global http.extraheader "PRIVATE-TOKEN: YOUR_PRIVATE_TOKEN 
  3. Configura tu git para convertir requestes de ssh a http :

     $ git config --global url."[email protected]:".insteadOf "https://gitlab.mycompany.com/" 
  4. Por último, puede usar su go get normalmente:

     $ go get gitlab.com/company/private_repo