2012-04-12 3 views
0

Ich habe einen Dienst hören github Service-Haken, um die automatische Bereitstellung durchzuführen. Manchmal muss ich das manuell auslösen (ohne Github-Intervention). Dazu emuliere ich die POST-Anfrage, die github sendet (post-receive-URLs).emulieren github service hooks wih curl

Meine Daten (my.json) sieht wie folgt aus (eine begrenzte Teilmenge von dem, was Github sendet - Ich brauche mehr Details):

{ 
    "action"  : "deploy_from_scratch_with_bundle", 
    "pusher"  : { "email" : "[email protected]" }, 
    "ref"   : "refs/heads/master" 
} 

Und ich versuche mit curl POST:

curl -X POST $URL --data-urlencode "@my.json" --header "Content-Type: application/x-www-form-urlencoded" 

Das Problem ist, dass gitHub wie dies Posting:

payload=%7B%22pusher%22%3A%7B%22name%22%3A%22none%22%7D%2C%22repository%22%3 
A%7B%22name%22%3A%liferay-plugins%22%2C%22created_at%22%3A%222011%2F12%2F07%2011%3A52... 

dassSeedort? Dies sieht wie ein Formularfeld aus. Ich weiß nicht, wie man Formularfelder mit Urlencodierung kombiniert. Um POST Formularfelder, würde ich es tun, wie folgt:

curl -X POST $URL -F "[email protected]" 

Aber die JSON nicht URL-codiert werden. Wie bekomme ich beides?

Antwort