2013-11-26 7 views

risposta

10

I documenti per l'aggiornamento di un file specificano che è necessario fornire lo SHA per il file che verrà sostituito. Il modo più semplice sarebbe di interrogare Github anche per questo. Ad esempio:

> curl https://api.github.com/repos/testacc01/testrepo01/contents/test.txt 
{ 
    "name": "test.txt", 
    "path": "test.txt", 
    "sha": "4f8a0fd8ab3537b85a64dcffa1487f4196164d78", 
    "size": 13, 
… 

Quindi, è possibile vedere cosa lo SHA è nel campo "sha" della risposta JSON. Usalo quando formulerai la tua richiesta per aggiornare il file con una nuova versione. Dopo aver aggiornato correttamente il file, il file avrà un nuovo SHA che dovrai richiedere prima che possa essere aggiornato di nuovo. (A meno che, immagino, il prossimo aggiornamento va su un ramo diverso.)

+0

grazie per me, dimentico che lo SHA verrà automaticamente aggiornato dopo l'aggiornamento del file. – Kiddo

+0

Non sono stato in grado di trovare nei documenti dell'API di v3 di GitHub quale funzione di hashing SHA specifica stanno usando per generare questi - SHA1, SHA256, ecc. (In modo da poter verificare il contenuto del file contro di essi). Credo che git usi SHA-1 per il commit degli hash ma non è chiaro per me quale funzione di hashing GitHub stia usando per i contenuti dei file hashing. Ho aperto un biglietto con loro richiedendo queste informazioni. –

0

Se si utilizza GraphQL API v4, è possibile utilizzare il seguente per trovare l'sha di un file specifico:

{ 
    repository(owner: "testacc01", name: "testrepo01") { 
    object(expression: "master:test.txt") { 
     ... on Blob { 
     oid 
     } 
    } 
    } 
} 

Try it in the explorer

Problemi correlati