ofborg/php
2024-05-19 16:41:18 -07:00
..
web Webhook: create an 'unknown' queue for collecting weird messages 2018-03-05 07:39:35 -05:00
composer-env.nix php: update svanderburg/composer2nix and php-amqplib/php-amqplib 2024-05-19 16:41:18 -07:00
composer.json php: update svanderburg/composer2nix and php-amqplib/php-amqplib 2024-05-19 16:41:18 -07:00
composer.lock php: update svanderburg/composer2nix and php-amqplib/php-amqplib 2024-05-19 16:41:18 -07:00
default.nix php: update svanderburg/composer2nix and php-amqplib/php-amqplib 2024-05-19 16:41:18 -07:00
php-packages.nix php: update svanderburg/composer2nix and php-amqplib/php-amqplib 2024-05-19 16:41:18 -07:00
README.md php: add README.md explaining the configuration 2020-10-06 14:05:43 -07:00

Webhook Receiver

This PHP code receives the GitHub webhook, checks them for integrity and publishes messages on rabbitmq.

Configuration

The code expects a config.php in it's parent directory. An example configuration looks like this:

<?php

require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPSSLConnection;
use PhpAmqpLib\Message\AMQPMessage;

function rabbitmq_conn($timeout = 3) {
    $host = 'events.nix.gsc.io';
    $connection = new AMQPSSLConnection(
        $host, 5671,
        'eventsuser, eventspassword, '/',
        array(
            'verify_peer' => true,
            'verify_peer_name' => true,
            'peer_name' => $host,
            'verify_depth' => 10,
            'ca_file' => '/etc/ssl/certs/ca-certificates.crt',
        ), array(
            'connection_timeout' => $timeout,
        )
    );
    return $connection;
}

function gh_secret() {
    return "github webhook secret";
}