¿Cómo obtengo el parámetro "sha" de la API de GitHub sin download todo el file?

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 :

  • Aproveche la API de GitHub Trees para recuperar el contenido del tree que coincide con el directory padre Lib/MoQ
  • Recuperar de la carga útil Json devuelta el sha del blob cuya ruta es Moq.license.txt
  • Asegúrese de codificar en la URL el segmento <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 }