He intentado actualizar un file en un repository de GitHub usando la API de GitHub y teniendo solo una ruta a ese file. Mi plan fue primero, obtenga el contenido del file como se describe aquí: https://developer.github.com/v3/repos/contents/ , y luego use el campo "sha" para "actualizar un file".
Funcionó bien tal como se describe en la respuesta aquí Cómo encontrar el blob SHA de un file Github .
Sin embargo, al usar GET / repos /: owner /: repo / contents /: path, se descarga todo el file, como un campo en el JSON devuelto, que es ineficiente. Entonces, mi pregunta es: ¿hay alguna forma de get solo el campo "sha" sin download todo el file?
Puede aprovechar la syntax SHA-1 extendida <rev>:<path>
para recuperar algunos metadatos del Blob de su Árbol padre.
Por ejemplo, siempre que trabaje con el repository libgit2 / libgit2sharp , y desee recuperar el sha del file Lib/MoQ/Moq.license.txt
de la twig master
:
Lib/MoQ
Moq.license.txt
<rev>:<path>
ya que contiene barras diagonales En breve:
El siguiente enlace de ejemplo devolverá la siguiente carga útil
{ "sha": "2f2c87728225f9cbb6e2d8c5997b6031e72ddca4", "url": "https://api.github.com/repos/libgit2/libgit2sharp/git/trees/2f2c87728225f9cbb6e2d8c5997b6031e72ddca4", "tree": [ { "path": "Moq.dll", "mode": "100644", "type": "blob", "sha": "bdd4235f215541017a9f37b6155f18e309573838", "size": 659968, "url": "https://api.github.com/repos/libgit2/libgit2sharp/git/blobs/bdd4235f215541017a9f37b6155f18e309573838" }, { "path": "Moq.license.txt", "mode": "100644", "type": "blob", "sha": "c9216ccba318292d76fd308f232e7871bbbe77be", "size": 1748, "url": "https://api.github.com/repos/libgit2/libgit2sharp/git/blobs/c9216ccba318292d76fd308f232e7871bbbe77be" }, { "path": "Moq.xml", "mode": "100644", "type": "blob", "sha": "160c1b5165fd967f4c79bc6043f0cc2ec28710d8", "size": 314572, "url": "https://api.github.com/repos/libgit2/libgit2sharp/git/blobs/160c1b5165fd967f4c79bc6043f0cc2ec28710d8" } ], "truncated": false }