Obtenga resultados en el error 'indicadores de terminal deshabilitados' para el repositorio privado de github

Resuelto tomcam asked hace 9 años • 16 respuestas

Creé el repositorio privado examplesite/myprivaterepo usando la interfaz de usuario de Github desde mi navegador.

Luego fui a mi directorio go (en el escritorio) y lo cloné:

$ cd $GOPATH
$ go get github.com/examplesite/myprivaterepo

Hasta ahora, todo bien. Creó el archivo Scheduler.go, lo agregó al repositorio y lo envió.

$ vim scheduler.go
$ git add scheduler.go
$ git commit
$ git push

Todo está bien. Pero cuando fui a una computadora portátil limpia e intenté clonar el repositorio, recibí un error:

# Now on laptop, which doesn't yet know about the repo
$ cd $GOPATH
$ go get github.com/examplesite/myprivaterepo
# At this point it should ask for my user ID and password ,right? But it doesn't.
# Instead, this error occurs:
cd .; git clone https://github.com/examplesite/myprivaterepo /Users/tom/go/src/github.com/examplesite/myprivaterepo
Cloning into '/Users/tom/go/src/github.com/examplesite/myprivaterepo'...
fatal: could not read Username for 'https://github.com': terminal prompts disabled
package github.com/examplesite/myprivaterepo: exit status 128

¿Por qué mi computadora portátil odia mi propio repositorio y cómo puedo hacer que acepte su destino? Gracias.

tomcam avatar Aug 27 '15 00:08 tomcam
Aceptado

Esto me resultó extremadamente útil y resolvió mi problema. Este comando permitirá que su 2FA haga su trabajo (y le evitará la molestia de ingresar su nombre de usuario y contraseña):

Para Github:

git config --global --add url."[email protected]:".insteadOf "https://github.com/"

Para Gitlab:

git config --global --add url."[email protected]:".insteadOf "https://gitlab.com/"

Fuente: http://albertech.blogspot.com/2016/11/fix-git-error-could-not-read-username.html

Si no estás usando 2FA, aún puedes usar SSH y esto funcionará.

El resultado .gitconfigserá como:

[url "[email protected]:"]
    insteadOf = https://github.com/
Wylliam Judd avatar May 29 '2017 16:05 Wylliam Judd

go get desactiva el "indicador de terminal" de forma predeterminada. Esto se puede cambiar configurando una variable de entorno de git:

env GIT_TERMINAL_PROMPT=1 go get github.com/examplesite/myprivaterepo
Shafreeck Sea avatar Jul 07 '2016 03:07 Shafreeck Sea

Se queja porque necesita usarlo sshen lugar de httpspero su git todavía está configurado con https. Básicamente, como otros mencionaron anteriormente, debe habilitar las indicaciones o configurar git para usar sshen lugar de https. una forma sencilla de hacer esto ejecutando lo siguiente:

git config --global --add url."[email protected]:".insteadOf "https://github.com/"

o si ya usa sshwith giten su máquina, puede editar ~/.gitconfigy agregar de forma segura la siguiente línea en la parte inferior

Nota: Esto cubre todo SVC, control de versiones de origen, eso depende de lo que uses exactamente, github, gitlab, bitbucket).

# Enforce SSH
[url "ssh://[email protected]/"]
  insteadOf = https://github.com/
[url "ssh://[email protected]/"]
        insteadOf = https://gitlab.com/
[url "ssh://[email protected]/"]
  insteadOf = https://bitbucket.org/
  • Si desea mantener los pompts de contraseña deshabilitados, debe almacenar la contraseña en caché. Para obtener más información sobre cómo almacenar en caché su contraseña de github en mac, windows o linux, visite esta página .

  • Para obtener más información sobre cómo agregar ssh a su cuenta de github, visite esta página .

Además, lo que es más importante, si se trata de un repositorio privado para una empresa o para usted mismo, es posible que deba omitir el uso de proxy o base de datos de suma de verificación para dichos repositorios para evitar exponerlos públicamente.

Para hacer esto, necesita configurar GOPRIVATEuna variable de entorno que controle qué módulos el comando go considera privados (no disponibles públicamente) y, por lo tanto, NO debe usar el proxy ni la base de datos de suma de verificación.

La variable es una lista de patrones separados por comas (misma sintaxis de Go path.Match) de prefijos de ruta de módulo. Por ejemplo,

export GOPRIVATE=*.corp.example.com,github.com/mycompany/*

O

go env -w GOPRIVATE=github.com/mycompany/*
  • Para obtener más información sobre cómo resolver problemas de validación de suma de comprobación de paquetes/módulos privados, lea este artículo .
  • Para obtener más información sobre los módulos go 13 y las nuevas mejoras, consulte las notas de la versión de los módulos Go 1.13 .

Una última cosa que no debes olvidar mencionar, aún puedes configurar go getpara autenticar y recuperar https, todo lo que necesitas hacer es agregar la siguiente línea a$HOME/.netrc

machine github.com login USERNAME password APIKEY
  • Para las cuentas de GitHub, la contraseña puede ser un token de acceso personal .
  • Para obtener más información sobre cómo hacer esto, consulte la página Ir a preguntas frecuentes .

No dude en dejar un comentario en caso de que desee más apoyo o ayuda.

Muhammad Soliman avatar Feb 20 '2020 15:02 Muhammad Soliman