Pro Git
Pro Git
🎯 ¿Cansado de los anuncios?
Elimínalos ahora 🚀
require 'sinatra'
require 'json'
require 'mail'
post '/payload' do
push = JSON.parse(request.body.read) # parse the JSON
# gather the data we're looking for
pusher = push["pusher"]["name"]
branch = push["ref"]
# get a list of all the files touched
files = push["commits"].map do |commit|
commit['added'] + commit['modified'] + commit['removed']
end
files = files.flatten.uniq
# check for our criteria
if pusher == 'schacon' &&
branch == 'ref/heads/special-branch' &&
files.include?('special-file.txt')
Mail.deliver do
from 'tchacon@example.com'
to 'tchacon@example.com'
subject 'Scott Changed the File'
body "ALARM"
end
end
end
Aquí estamos tomando el bloque JSON que GitHub entrega y mirando
quién hizo el envío, qué rama se envió y qué archivos se modificaron en cada
“commit” realizado en este push. Entonces, comprobamos si se cumple nuestro
criterio y enviamos un correo si es así.
Para poder probar algo como esto, tienes una consola de desarrollador en la
misma pantalla donde configuraste el enganche, donde se pueden ver las últimas
veces que GitHub ha intentado ejecutar el enganche. Para cada uno, puedes
mirar qué información se ha enviado y si fué recibido correctamente, junto
con las cabeceras correspondientes de la petición y de la respuesta. Esto
facilita mucho las pruebas de tus enganches.
👉 Descargar el audiolibro GRATIS en Amazon Reportar problema / Sugerencias