DEV Community

Luigi Escalante
Luigi Escalante

Posted on

Usar repositorios privados de GitHub en GO

En ocasiones tenemos la necesidad de tener librerías provenientes de repositorios privados en GO, como por ejemplo librerías propietarias de la empresa, proyectos que aun estén en Sealthy Mode o funciones que no podemos exponer al publico en general.

Esto en GO puede generar problemas sobre todo al momento de querer descargar nuestra librería ya que se necesita de un proceso de autenticación de nuestra cuenta de Github.

Vamos a proceder a descargar una librería de un repositorio de GitHub privado.

PD: Dejo el repositorio con la librería de ejemplo (Como publica), la cual puedes hacer un fork a tu cuenta de GitHub y volverla privada para hacer al prueba con ella.

Generar token de autenticación en GitHub

En nuestra cuenta de GitHub ingresar a la sección de Settings > Profile > Developer Settings >Personal access token

Generar un personal access token y asignarle permisos full access private repo.

Image description

Copiarlo en algún block de notas de manera temporal, se usara mas tarde. Este token no lo vuelve a mostrar GitHub.

Image description
En la terminal dentro de la carpeta de nuestro proyecto en GO

Configuramos el token en Git

git config --global url."https://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:x-oauth-basic@github.com/".insteadOf "https://github.com/"
git config --global --add url."git@github.com:".insteadOf "https://github.com/"
Enter fullscreen mode Exit fullscreen mode

Agregamos una variable de ambiente en nuestro sistema para que GO reconozca el repositorio aunque sea privado y vaya a buscarlo. Cambiar el valor GOPRIVATE por tu repositorio personal

export env GOPRIVATE=github.com/luigiescalante
Enter fullscreen mode Exit fullscreen mode

Proceder a descargar en tu proyecto en GO

go get github.com/luigiescalante/package-helloworld
Enter fullscreen mode Exit fullscreen mode

Ya puedes usar la librería privada dentro de tu proyecto en GO, Ejemplo:

Image description

Top comments (0)