smalot/bitbucket-webhook

Bitbucket API to handle webhook callbacks.

v0.2 2016-01-05 10:11 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality

Requirements

  • PHP 5.3+
  • symfony/http-foundation >= 2.3
  • symfony/event-dispatcher >= 2.3

Installation

Composer

You need first to download this library using composer.

composer require smalot/bitbucket-webhook

Go to GetComposer.org to install Composer on your environment.

Example

From scratch

<?php

require_once 'vendor/autoload.php';

$request = \Symfony\Component\HttpFoundation\Request::createFromGlobals();
$dispatcher = new \Symfony\Component\EventDispatcher\EventDispatcher();

// Todo: add listener to event dispatcher.
$listener = ...

$dispatcher->addListener(\Smalot\Bitbucket\Webhook\Events::WEBHOOK_REQUEST, $listener);
$webhook = new \Smalot\Bitbucket\Webhook\Webhook($dispatcher);
$event = $webhook->parseRequest($request);

Using Symfony in controller

<?php

namespace AppBundle\Controller;

use Smalot\Bitbucket\Webhook\Webhook;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

class BitbucketController extends Controller
{
    public function webhookAction(Request $request)
    {
        $dispatcher = $this->get('event_dispatcher');
        $webhook = new Webhook($dispatcher);
        $event = $webhook->parseRequest($request);
        
        return Response('ok');
    }
}

Don't forget to previously to register any event listener.

Documentation

Remote API

https://confluence.atlassian.com/bitbucket/manage-webhooks-735643732.html

Security

Bitbucket whitelist IP ranges:

https://confluence.atlassian.com/bitbucket/manage-webhooks-735643732.html#Managewebhooks-trigger_webhook

131.103.20.160/27
165.254.145.0/26
104.192.143.0/24
````

## Events

https://confluence.atlassian.com/bitbucket/event-payloads-740262817.html