<?php $secret = 'tajna'; if ( array_key_exists('REQUEST_METHOD', $_SERVER) === false or $_SERVER['REQUEST_METHOD'] !== 'POST' or array_key_exists('CONTENT_TYPE', $_SERVER) === false or $_SERVER['CONTENT_TYPE'] !== 'application/json' or array_key_exists('HTTP_USER_AGENT', $_SERVER) === false or strpos($_SERVER['HTTP_USER_AGENT'], 'GitHub-Hookshot/') !== 0 or array_key_exists('HTTP_X_GITHUB_EVENT', $_SERVER) === false or $_SERVER['HTTP_X_GITHUB_EVENT'] !== 'push' or array_key_exists('HTTP_X_HUB_SIGNATURE', $_SERVER) === false or $_SERVER['HTTP_X_HUB_SIGNATURE'] !== 'sha1='.hash_hmac('sha1', file_get_contents('php://input'), $secret) ) die(); system('/var/www/github.sh > /dev/null 2>&1 &'); ?>Možda nekome pomogne, ko zna?
2016-10-24
Webhooks na github-u
Kako sam se ozbiljno upustio u rad na starom projektu (https://chupcko.org/karel/), reših da ga stavim na github
(https://github.com/chupcko/karel), pa ajde i da automatizujem dovlačenje current verzije na WEB sa github-a.
Ovoga puta sam pitao nekoga ko zna to bolje od mene, šta da koristim.
Miloš mi je samo kratko rekao: "webhooks".
Ideja je jednostavna, github poziva neki zadati URL kada se desi neki dogadjaj (recimo meni zanimljiv push).
Namestio za minut jednu shell skriptu i jedan PHP koji je poziva, prijavio URL i sve to lepo radi. Ali, ček bre, svako može da ga pozove, ima li neke zaštite?
Ima naravno, pa ajde da je implementiramo.
Sve u svemu, evo moje verzije PHP-a:
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment