2014-04-02 6 views
29

Sto costruendo un client Git (un po 'limitato). Per configurare un repository, inserisci l'URL sul repository remoto. Voglio verificare se l'utente ha accesso in lettura + scrittura a quel repository. In caso contrario, presento una finestra di autenticazione.Come posso controllare l'accesso in scrittura a un repository Git remoto ("posso premere?")

Controllo assegno 'lettura' accesso con git ls-remote <url>.

C'è un modo analogo per verificare l'accesso 'scrittura' , senza clonare prima il repository? (So ​​che potrei git clone <url> e poi git push --dry-run)

+2

Beh, tecnicamente a spingere un commit in un pronti contro termine non è necessario per clonalo per primo Ricorda però che l'inserimento di una catena di commit e l'aggiornamento dei riferimenti remoti sono due operazioni diverse e potresti avere un'autorizzazione per la prima, ma non per quest'ultima. Inoltre alcuni riferimenti potrebbero non essere modificabili. – user3159253

risposta

4

È possibile eseguire git push git + ssh: //host.org/path/to/repo some_ref senza clonazione. Ma vedi il mio commento sopra

+2

Questo metodo funzionerebbe da una directory di lavoro con un riferimento. C'è un modo per farlo senza impostare un repository fittizio e creare un commit prima? –

+4

Sì, chi vuole che vengano commessi tutti questi dummy casuali? Non c'è un modo più pulito? –

11

Se il repo git è in github, aprire qualsiasi file nel repository, quindi fare clic su 'modifica', github mostrerà qualcosa di simile:

Stai modificando un file in un progetto a cui non si ha accesso in scrittura. Abbiamo creato un fork di questo progetto affinché tu impegni le modifiche proposte a. Invio di una modifica a questo file scriverà in una nuova filiale a la forchetta, in modo da poter inviare un codice di tiro request.enter qui

+6

Non hai torto: Github mostra davvero questo comportamento. Tuttavia, l'OP ha chiesto qualcosa di analogo a 'git ls-remote' che il suo nuovo strumento potrebbe usare, quindi l'interfaccia utente web di Github probabilmente non sarebbe adatta a loro. – RJHunter

+0

Ci sono più repository git che solo repository github;) –

Problemi correlati