Forráskód Böngészése

fix for multiple branches

Oz N Tiram 9 éve
szülő
commit
0a9d15ad67
1 módosított fájl, 21 hozzáadás és 17 törlés
  1. 21 17
      hooks/post-update.sh

+ 21 - 17
hooks/post-update.sh

@@ -10,14 +10,12 @@
 #
 # EDIT THE FOLLOWING VARIABLES TO FIT YOUR NEEDS
 # THE KEY SHOULD ALSO BE KNOWN ON THE SERVER THAT LISTENS TO SUBMITS
-SECRET_KEY=VERYSECRETLONGKEYYOUSHOULDDEFINITELYEDIT
-SUBMIT_HOST=192.168.1.100
-SUBMIT_PORT=5000
+SECRET_KEY=MOO_RONJA_FOO
+SUBMIT_HOST=127.0.0.1
+SUBMIT_PORT=8080
 GITURL="git@yourhost.domain:oz123/frank.git"
-
-
-JSON_TO_SUBMIT=""
-
+FILES=()
+TO_SUBMIT="["
 for HEAD in $@; do  
 	# We love bash too, but there a really fancy basename 
 	BRANCH=`basename $HEAD`
@@ -29,21 +27,27 @@ for HEAD in $@; do
 	#BRANCH=($HEAD)
 	#BRANCH=${BRANCH[2]}
 	REST_OF_JSON=$(git --no-pager log -n 1 --format='{"hashes":{"commit":"%H", "tree":"%T", "parents":"%P" }, "author":{"date": "%ai", "name":"%an", "email":"%ae" }, "committer":{"date": "%ci", "name": "%cn", "email":"%ce" }')
-	REST_OF_JSON=$REST_OF_JSON,\"branch\":\""${BRANCH}"\"
-	#REST_OF_JSON=$REST_OF_JSON,\"giturl\":\"$GITURL\"
+	REST_OF_JSON=$REST_OF_JSON,\"branch\":\""${BRANCH}"\",
+	REST_OF_JSON=$REST_OF_JSON,\"giturl\":\"$GITURL\",
 	JSON_TO_SUBMIT=$JSON_TO_SUBMIT{\"$BRANCH\":$REST_OF_JSON\}
 	JSON_TO_SUBMIT=$JSON_TO_SUBMIT}
 	REST_OF_JSON=""
+	TO_SUBMIT=$TO_SUBMIT$JSON_TO_SUBMIT","
+	JSON_TO_SUBMIT=""
 done
 
-t=`mktemp`
-echo $JSON_TO_SUBMIT > $t
-# Calculate the digest of JSON
-SECRET=$(echo -n $JSON_TO_SUBMIT | openssl dgst -sha1 -hmac $SECRET_KEY)
+# BASH sourcery to remove the last character
+TO_SUBMIT=${TO_SUBMIT%?}"]"
+all=`mktemp`
+echo $TO_SUBMIT > $all
+SECRET=$(echo -n $TO_SUBMIT | openssl dgst -sha1 -hmac $SECRET_KEY)
+# Why does this produce a different digest?
+# SECRET1=$(openssl dgst -sha1 -hmac $SECRET_KEY $all)
+# echo $SECRET
+# echo $SECRET1
 SECRET=`echo $SECRET | cut -d'=' -f2`
-# TODO: Consider submiting to HTTPS!
-# Github uses X-Hub-Signature, we use X-Secret
-curl -H "Content-Type: application/json" -H "X-Secret:${SECRET}" -X POST http://${SUBMIT_HOST}:${SUBMIT_PORT}/ --data @$t
+set -x
+curl -H "Content-Type: application/json" -H "X-Secret:${SECRET}" -X POST http://${SUBMIT_HOST}:${SUBMIT_PORT}/ --data @$all
 if [ $? -eq 0 ]; then
-   rm $t
+   rm $all
 fi