remote: Repository not found.
può essere un messaggio di errore frustrantemente fuorviante da githubquando si tenta di eseguire il push su un telecomando HTTPS in cui non si dispone delle autorizzazioni di scrittura .
Provare un telecomando SSH nello stesso repository mostra una risposta diversa:
% git remote add ssh git@github.com:our-organisation/some-repository.git
% git fetch ssh
From github.com:our-organisation/some-repository
* [new branch] MO_Adding_ECS_configs -> ssh/MO_Adding_ECS_configs
* [new branch] update_gems -> ssh/update_gems
% git push ssh
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
"I diritti di accesso corretti?"
Bene, perché non l'hai detto?
Vale la pena notare a questo punto che mentre la modalità di errore SSH in questo scenario è leggermente migliore, utilizzo i telecomandi HTTPS su SSH perché
GitHub consiglia HTTPS su SSH .
Comprendo che GitHub utilizza "Not Found" dove in alcune circostanze significa "Proibito" per impedire di rivelare inavvertitamente l'esistenza di un repository privato.
Le richieste che richiedono l'autenticazione verranno restituite 404 Not Found
, anziché
403 Forbidden
in alcuni punti. Questo per evitare la fuoriuscita accidentale di repository privati per utenti non autorizzati.
- GitHub
Questa è una pratica abbastanza comune sul web, infatti è definita:
Il codice di stato 404 (non trovato) indica che il server di origine non ha trovato una rappresentazione corrente per la risorsa di destinazione o non è disposto a rivelarne l'esistenza.
- 6.5.4. 404 Not Found, RFC 7231 HTTP / 1.1 Semantica e contenuto (sottolineatura mia)
Ciò che non ha senso per me è quando sono autenticato con GitHub utilizzando un
helper di credenziali
e ho accesso a quel repository (dopo averlo clonato e recuperato con successo) che GitHub avrebbe scelto di nascondermi la sua esistenza a causa della mancanza di autorizzazioni di scrittura.
Il controllo di https://github.com/our-organisation/some-repository/ utilizzando un browser Web ha confermato che non avevo le autorizzazioni di scrittura per il repository . Gli amministratori GitHub del nostro team sono stati in grado di concedere al mio team l'accesso in scrittura in breve tempo e sono stato in grado di spingere il ramo verso l'alto.
git remote add origin git@github.com:account-name/repo-name.git
. Esiste in GitHub ed è un repository privato.