Incruste Git Commit Inicie session en la aplicación Rails?

Entonces, tengo un 'blog de desarrollo' en una aplicación de Rails en la que estoy trabajando en este momento. Estoy usando Git para el control y la implementación de la versión (aunque ahora mismo soy la única persona que trabaja en él).

Ahora, cuando hago cambios en Git pongo una input de logging bastante decente sobre lo que he hecho. Me encantaría que el logging de compromiso de Git se publique automáticamente en el blog de desarrollo, o que esté disponible para que otros lo lean dentro del sitio implementado.

¿Hay alguna manera automatizada de llevar el logging de Git Commit a una vista en una aplicación de Rails?

Algunos hosts de Git le permitirán proporcionar un enlace de confirmación de publicación, y esto puede permitirle realizar una llamada HTTP para enviar las declaraciones de logging relevantes a su aplicación.

Si eres autohospedado , echa un vistazo a githooks .

Si está usando Github, puede usar su publicación posterior a la confirmación (más detalles aquí: http://help.github.com/post-receive-hooks/ )

Es posible que desee ver en grit, que es una biblioteca de Ruby que da acceso a cosas en un repository git.

Estoy usando arena en mi blog personal. Escribo artículos en files de text y los envío a un repository de git, y luego paso el repository de git a mi server, donde mi aplicación de Rails lee los files de git repo como publicaciones de blog con grit.

Por ejemplo, aquí está lo fácil que es get el último post de confirmación:

require 'grit' include Grit repo = Repo.new('<path to your .git dir>') puts repo.commits('master',1)[0].message # latest commit message puts repo.commits('master',1)[0].date # last commit date 

Agregué una tarea de Capistrano para hacer algo similar:

deploy.rb

  namespace :deploy do desc <<-DESC Updates info.html with build and deploy info DESC task :timestamp do run "cd #{current_path}; printf '<pre>\\nDeployed on: %s\\n\\n%s\\n</pre>' \"`date`\" \"`git log -n 1`\" > public/info.html" end end after "deploy", "deploy:timestamp" 

Solo muestro el último compromiso, pero podrías alterar el command de logging de git para mostrar lo que quisieras.