esiste un modo per conoscere il tipo di applicazione per il controllo della versione basata sul web da un URL git?

2

Sfondo

Sto studiando la possibilità di aggiungere alcuni servizi su git web host (es. github, gitlab, bitbucket ecc., non sono nemmeno sicuro di cosa siano chiamati, ho preso in prestito quel termine dal wiki github ).

Un esempio di ciò che sto cercando di fare è l'integrazione di un foglio di calcolo con uno di questi git web host in modo che ogni volta che un utente aggiunge una nuova riga in un foglio di calcolo, viene creato automaticamente un problema con il contenuto di quella riga.

Naturalmente, questi webhost hanno diverse apis che eseguono queste cose. Posso avvolgerli con una facciata o qualcosa del genere ma dovrò comunque conoscere il tipo di webhost.

Problema

Se il repository git è ospitato su una versione cloud di un webhost (ad es. Gitlab cloud o github, quindi conoscere il tipo di webhost è semplice direttamente dal repository stesso, ad esempio questo repository:

https://github.com/facebook/buck.git 

è ovviamente da github. Tuttavia alcuni di questi provider offrono agli utenti la possibilità di installare il loro servizio di hosting gihtub sulle proprie macchine .. quindi ad esempio posso avere gitlab installato sulla mia macchina aws, e quindi il controllo della versione sopra sarà simile a questo:

https://mydomain.com/facebook/buck.git 

Domanda

Come faccio a sapere che tipo di git webhost è associato ad un repository di esso installato su un server utente piuttosto che al cloud del provider stesso?

    
posta abbood 16.03.2017 - 15:43
fonte

2 risposte

2

Le API web ben progettate di solito hanno modi per scoprire quali versioni di quali endpoint sono attualmente supportati. Ad esempio, se si curl https://api.github.com , verrà visualizzato un elenco di tutte le categorie di endpoint supportate dall'API. Ciò consente la personalizzazione e aggiornamenti più uniformi dei singoli componenti.

Per il tuo caso d'uso, puoi verificare se ha una voce per issues_url , quindi controlla se quell'endpoint risponde in modo github, quindi sai che è un server github. In caso contrario, è possibile ripetere il processo per gli altri tipi di server. Una volta che sai che tipo di server è, puoi conservarlo per uso futuro ed evitare di indovinare. Se fai un paio di ipotesi sbagliate, il peggiore che otterrai è un po 'strano 404 nei tuoi log.

    
risposta data 16.03.2017 - 22:53
fonte
0

Non puoi, almeno non in generale (non finché le API auto-rilevabili sono effettivamente una cosa, comunque). Ma dal momento che dovrai supportare un set limitato di API in ogni caso, e dal momento che gli umani che effettivamente utilizzano l'interfaccia possono aspettarsi di conoscere l'host piuttosto bene per un tale sistema, che ne dici di dare loro un semplice elenco da selezionare il tipo di host web da?

    
risposta data 16.03.2017 - 17:31
fonte

Leggi altre domande sui tag