¿Cómo puedo get el SHA de una confirmación de GitHub en Java?

Me gustaría saber si hay un método hacky para get un SHA de confirmación de la última confirmación de una twig en un repository de GitHub en Java. Por lo que he visto, la API de GitHub solo tiene un gancho para acceder a la información de confirmación completa, no solo a la API. Alguien tiene alguna forma de hacer esto?

Use la API aps, como sugiere cjc343:

GET /repos/:owner/:repo/git/refs/:ref 

Por ejemplo:

 $ curl https://api.github.com/repos/twitter/bootstrap/git/refs/heads/master { "ref": "refs/heads/master", "url": "https://api.github.com/repos/twitter/bootstrap/git/refs/heads/master", "object": { "sha": "d991ef2ab1b4d156c7e5d33d052d66f8eaafc460", "type": "commit", "url": "https://api.github.com/repos/twitter/bootstrap/git/commits>/d991ef2ab1b4d156c7e5d33d052d66f8eaafc460" } } 

Puede extraer object.sha después de analizar esto como JSON o, en el espíritu de "hacky", pasar a través de:

 | grep \"sha\": | cut -f4 -d\" 

Llegar:

 d991ef2ab1b4d156c7e5d33d052d66f8eaafc460 

Esto puede no ser exactamente lo que quieres (sin Java). Sin embargo, usando ssh-api basado en Java y los siguientes commands puedes lograr esto.

 git ls-remote git@github.com:<github username>/<git project name>.git 

A continuación se muestra un resultado de muestra:

 4de51ba41fba357ac9ce63f098451cd1fc2dacbe HEAD 4de51ba41fba357ac9ce63f098451cd1fc2dacbe refs/heads/master cc42dc12a972dab122030b046440f47e0485e321 refs/pull/1/head 73629fe86def6fef896abd32637b97fddf8cd3b4 refs/pull/1/merge 

Podría, por supuesto, filtrar esto agregando el nombre de twig deseado o HEAD al final del command anterior.

git ls-remote git@github.com:<github username>/<git project name>.git <branch-name>

O

git ls-remote git@github.com:<github username>/<git project name>.git HEAD