forked from xPaw/GitHub-WebHook
/
index.php
59 lines (43 loc) · 1.19 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
Header( 'Content-Type: text/plain; charset=utf-8' );
// Don't do this in production!
ini_set( 'error_reporting', -1 );
ini_set( 'display_errors', 1 );
require __DIR__ . '/GitHub_WebHook.php';
require __DIR__ . '/GitHub_IRC.php';
$Hook = new GitHub_WebHook( );
try
{
$Hook->ProcessRequest( );
// This check is optional, you can implement some secret GET param for example
if( !$Hook->ValidateIPAddress() )
{
http_response_code( 401 );
exit;
}
// This check is optional, checks if your hook secret matches
if( !$Hook->ValidateHubSignature( 'My secret key' ) )
{
http_response_code( 401 );
exit;
}
echo 'Received ' . $Hook->GetEventType() . ' in repository ' . $Hook->GetFullRepositoryName() . PHP_EOL;
//var_dump( $Hook->GetPayload() );
http_response_code( 202 );
}
catch( Exception $e )
{
echo 'Exception: ' . $e->getMessage() . PHP_EOL;
http_response_code( 500 );
exit();
}
try
{
$IRC = new GitHub_IRC( $Hook->GetEventType(), $Hook->GetPayload() );
var_dump( $IRC->GetMessage() ); // Optional
}
catch( Exception $e )
{
echo 'Exception: ' . $e->getMessage() . PHP_EOL;
http_response_code( 500 );
}