renttek/bitbucket-webhook-types

Library to convert bitbucket webhook payloads to typed objects

0.0.1 2023-06-01 18:33 UTC

This package is auto-updated.

Last update: 2024-04-30 00:46:07 UTC


README

This library provides a converter as well as value objects for the bitbucket webhook payloads.

Installation

The module can be asily installed using composer:

composer require renttek/bitbucket-webhook-types

Usage

$pullRequestCreatedPayload = '<webhook json here>';

$converter = new \Renttek\BitbucketWebhookTypes\Converter();

$pullRequestCreated = $converter->fromJson(
    \Renttek\BitbucketWebhookTypes\EventPayload\PullrequestCreated::class,
    $pullRequestCreatedPayload
)

Using a custom mapper/configuration

The converter is built using cuyz/valinor and if you want to use a custom mapper, instead of the default one, you can pass a mapper to the constructor of \Renttek\BitbucketWebhookTypes\Converter:

$pullRequestCreatedPayload = '<webhook json here>';

$myAwesomeMapper = (new MapperBuilder())
    ->supportDateFormats('Y-m-d\TH:i:s.uP')
    ->infer(
        ...
    )
    ->registerConstructor(
        ...
    )
    ->allowSuperfluousKeys()
    ->mapper();

$converter = new \Renttek\BitbucketWebhookTypes\Converter($myAwesomeMapper);

$pullRequestCreated = $converter->fromJson(
    \Renttek\BitbucketWebhookTypes\EventPayload\PullrequestCreated::class,
    $pullRequestCreatedPayload
)

Credits & thank you

I'd like to thank Team CuyZ and all the contributors for valinor!