PHPackages                             kommuna/jirawebhook - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. kommuna/jirawebhook

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

kommuna/jirawebhook
===================

PHP classes for Atlassian Jira webhook data structure with events

1.0.1(9y ago)73007UnlicensePHPPHP &gt;=5.4.0CI failing

Since Mar 27Pushed 2y ago4 watchersCompare

[ Source](https://github.com/kommuna/jirawebhook)[ Packagist](https://packagist.org/packages/kommuna/jirawebhook)[ Docs](https://github.com/kommuna/jirawebhook)[ RSS](/packages/kommuna-jirawebhook/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependencies (3)Versions (5)Used By (0)

What is this?
=============

[](#what-is-this)

This is PHP library for processing and handling Atlassian JIRA webhook data.

It contains classes that can parse data from [JIRA webhooks](https://developer.atlassian.com/jiradev/jira-apis/webhooks), create listeners for custom events and interface for creating converters for parsed data.

The package is meant to be used with the [Vicky slackbot](https://github.com/kommuna/vicky), but it can also be used independently.

Installation
============

[](#installation)

With composer, create a new composer.json file and add the following code:

```
{
    "minimum-stability" : "dev",
    "require": {
        "kommuna/jirawebhook": "dev-master"
    }
}

```

Then run command `composer install`.

Usage
=====

[](#usage)

JIRA data events
----------------

[](#jira-data-events)

To create a new event use following example code:

```
use JiraWebhook\JiraWebhook;
use JiraWebhook\Models\JiraWebhookData;

require __DIR__.'/vendor/autoload.php';
$config = require '/etc/vicky/config.php';

$jiraWebhook = new JiraWebhook();

$jiraWebhook->addListener('jira:event_name', function($e, $data)
{
    /**
     * Your code here
     */
});

try {
    $f = fopen('php://input', 'r');
    $data = stream_get_contents($f);

    if (!$data) {
        throw new JiraWebhookException('There is no data in the Jira webhook');
    }

    $jiraWebhook->run();
} catch (\Exception $e) {
     error_log($e->getMessage());
}
```

JIRA data converters
--------------------

[](#jira-data-converters)

To create a new converter create a new class that implements the JiraWebhookDataConverter interface. Then to set and use a new converter use the following example code:

```
use JiraWebhook\JiraWebhookDataConverter;
use JiraWebhook\Models\JiraWebhookData;

class NewConverterClass implements JiraWebhookDataConverter
{
    public function convert(JiraWebhookData $data)
    {
        $issue        = $data->getIssue();
        $assigneeName = $issue->getAssignee()->getName();
        $comment      = $issue->getIssueComments()->getLastComment();

        $message = vsprintf(
            ":no_entry_sign:  %s: %s ➠ @%s\n@%s ➠ %s",
            [
                $issue->getUrl(),
                $issue->getKey(),
                $issue->getStatusName(),
                $issue->getSummary(),
                $assigneeName,
                $comment->getAuthor()->getName(),
                $comment->getBody(0, 178)
            ]
        );

        return $message;
    }
}

JiraWebhook::setConverter('converterName', new NewConverterClass());
$message = JiraWebhook::convert('converterName', $data);
```

Please refer to [Slack's documentation for message formatting](https://api.slack.com/docs/message-formatting) for more details.

Testing
=======

[](#testing)

Run `vendor/bin/phpunit` or just `phpunit` if you have it installed globally.

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 63.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

3382d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/11232970?v=4)[kommuna](/maintainers/kommuna)[@kommuna](https://github.com/kommuna)

---

Top Contributors

[![Chewbacca96](https://avatars.githubusercontent.com/u/20818570?v=4)](https://github.com/Chewbacca96 "Chewbacca96 (63 commits)")[![elenakolevska](https://avatars.githubusercontent.com/u/26108749?v=4)](https://github.com/elenakolevska "elenakolevska (23 commits)")[![l80](https://avatars.githubusercontent.com/u/4639257?v=4)](https://github.com/l80 "l80 (5 commits)")[![kommuna](https://avatars.githubusercontent.com/u/11232970?v=4)](https://github.com/kommuna "kommuna (4 commits)")[![alebedev80](https://avatars.githubusercontent.com/u/777096?v=4)](https://github.com/alebedev80 "alebedev80 (2 commits)")[![Stichoza](https://avatars.githubusercontent.com/u/1139050?v=4)](https://github.com/Stichoza "Stichoza (2 commits)")

---

Tags

reflectionwebhookjiraatlassian

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/kommuna-jirawebhook/health.svg)

```
[![Health](https://phpackages.com/badges/kommuna-jirawebhook/health.svg)](https://phpackages.com/packages/kommuna-jirawebhook)
```

###  Alternatives

[phpdocumentor/reflection-common

Common reflection classes used by phpdocumentor to reflect the code structure

9.1k725.9M34](/packages/phpdocumentor-reflection-common)[symfony/property-access

Provides functions to read and write from/to an object or array using a simple string notation

2.8k309.5M3.0k](/packages/symfony-property-access)[phpdocumentor/reflection

Reflection library to do Static Analysis for PHP Projects

12524.8M137](/packages/phpdocumentor-reflection)[php-di/phpdoc-reader

PhpDocReader parses @var and @param values in PHP docblocks (supports namespaced class names with the same resolution rules as PHP)

7432.6M56](/packages/php-di-phpdoc-reader)[minime/annotations

The KISS PHP annotations library

229386.3k38](/packages/minime-annotations)[spatie/php-attribute-reader

A clean API for working with PHP attributes

90897.0k17](/packages/spatie-php-attribute-reader)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
