Sube un file a un Gist con bash

Normalmente pego informes de errores y loggings en Gist en Github, para intercambiar información relevante de debugging de progtwigción. Gist no tiene un button para upload un file. Por lo tanto, a veces no es tan conveniente copyr y pegar los grandes informes de error en el text de las tabs como input.

¿Hay alguna manera de upload un file desde la command-line a un nuevo Gist en su count de Gist?

también sería útil crear un repository git temporal para el file que upload, lo automatizaría en un script entonces.

Al final me gustaría automatizar la publicación de información de debugging de mi proyecto de progtwigción en github con un script bash

Aquí hay una solución que me funciona en Bash / Dash para crear una esencia anónima (muy probablemente no a testing de balas):

# 0. Your file name FNAME=some.file # 1. Somehow sanitize the file content # Remove \r (from Windows end-of-lines), # Replace tabs by \t # Replace " by \" # Replace EOL by \n CONTENT=$(sed -e 's/\r//' -e's/\t/\\t/g' -e 's/"/\\"/g' "${FNAME}" | awk '{ printf($0 "\\n") }') # 2. Build the JSON request read -r -d '' DESC <<EOF { "description": "some description", "public": true, "files": { "${FNAME}": { "content": "${CONTENT}" } } } EOF # 3. Use curl to send a POST request curl -X POST -d "${DESC}" "https://api.github.com/gists" 

Si necesita crear una esencia asociada con su count github, (para authentication básica) reemplace la última línea por:

 curl -u "${GITHUB_USERNAME}" -X POST -d "${DESC}" "https://api.github.com/gists" 

Para get esquemas de authentication más avanzados, consulte https://developer.github.com/v3/#authentication.

Ver https://github.com/defunkt/gist

Es un script de Ruby que se puede usar desde la línea de command.

Deberías poder crear un nuevo Gist, usando la API de GitHub para crear un Gist :

 POST /gists 

Encontrarás varias secuencias de commands usando esta API, como:

  • esta function de emacs gist.el
  • este script php
  • este command curl

Incluso el editor de GitHub, Atom.io, tiene una característica esencial .

https://raw.githubusercontent.com/rpowelll/gist-it/master/media/screencast.gif