Ejecute git push desde javascript alojado en un sitio estático

Imagine un website estático comstackdo con jekyll y alojado en páginas github. ¿Es posible tener algún javascript en esta página que le pregunte al usuario alguna input, y luego "git push" esta input en algún repository github?

En otras palabras, cómo escribir en javascript el siguiente progtwig:

  • Pregúntele al usuario su nombre, ponga el nombre en variable s
  • Descargue (o extraiga) de un repository github determinado un file de text "allnames.txt"
  • Agregue s al final de allnames.txt
  • Confirmar y enviar el file "allnames.txt" de vuelta a Github

Por supuesto, entiendo los posibles riesgos de security, porque el código de JavaScript necesitaría incrustar keys ssh privadas. Pero esta sería una forma divertida de agregar dinámica a un website estático, y ¿alguien sabe de alguna solución para hacer que esto sea seguro?

Gracias !

Si conoces las partes internas de git (blobs, trees, commits), entonces deberías poder implementar una solución con la API REST de GitHub. Esto no se hará en 5 minutos. En cuanto a la security, debería poder utilizar OAuth, por lo que no es necesario tener una key ssh privada.

Eche un vistazo a: https://developer.github.com/v3/git/

Alternativa al uso de las API de GitHub, puede usar uno de los clientes de git escritos en JavaScript para realizar las acciones que describió anteriormente en el browser.

Aquí están algunos ejemplos:

https://github.com/creationix/js-git

https://github.com/danlucraft/git.js

Una publicación anterior de Ivan Zuzak describe cómo utiliza el comentario de Github para crear un sistema dynamic de comentarios ( fuente ). Recientemente recreé el sistema que describió (utilizando los problemas de Github para comentarios) usando algunos services adicionales: Zapier, la integración Zapier Github y la versión gratuita de formularios Zoho . Esto me permitió dejar que un formulario web personalizado envíe los datos a los problemas de Github, a través de Zapier (sin pedirles a los usuarios que creen una count de Github).

Usé los problemas de Github como comentarios en mi blog, pero es posible que pueda usar la misma solución para otra cosa (como su list de nombres).

Echa un vistazo a Staticman

Desde el sitio de Staticman:

Staticman maneja el contenido generado por el usuario para usted y lo transforma en files de datos que se encuentran en su repository de GitHub, junto con el rest de su contenido.

Staticman funciona a la perfección con los sitios de Jekyll alojados en GitHub Pages, ya que un impulso a su twig principal regenerará el sitio automáticamente. Si desea moderar las inputs antes de que se publiquen, se creará una request de extracción para su aprobación; de lo contrario, los files se enviarán a su sucursal principal de inmediato.