PHPackages                             pnkt/jiravel - 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. [API Development](/categories/api)
4. /
5. pnkt/jiravel

ActiveLibrary[API Development](/categories/api)

pnkt/jiravel
============

A comprehensive Laravel package for Jira integration with advanced features

v1.0.1(10mo ago)02MITPHPPHP ^8.4

Since Aug 16Pushed 10mo agoCompare

[ Source](https://github.com/pnkt-tech/jiravel)[ Packagist](https://packagist.org/packages/pnkt/jiravel)[ RSS](/packages/pnkt-jiravel/feed)WikiDiscussions main Synced today

READMEChangelog (2)Dependencies (6)Versions (3)Used By (0)

Jiravel
=======

[](#jiravel)

A Laravel package for Jira integration with comprehensive ticket management capabilities.

Installation
------------

[](#installation)

```
composer require pnkt/jiravel
```

Publish the config file:

```
php artisan vendor:publish --tag=jiravel-config
```

Configuration
-------------

[](#configuration)

Add your Jira credentials to `.env`:

```
JIRA_BASE_URL=https://your-domain.atlassian.net
JIRA_USERNAME=your-email@example.com
JIRA_API_TOKEN=your-api-token
JIRA_PROJECT_KEY=PROJECT
```

Add the logging channel to `config/logging.php`:

```
'channels' => [
    'jiravel' => [
        'driver' => 'daily',
        'path' => storage_path('logs/jiravel.log'),
        'level' => env('JIRA_LOG_LEVEL', 'info'),
        'days' => 14,
    ],
],
```

Usage
-----

[](#usage)

### Basic Operations

[](#basic-operations)

```
use Pnkt\Jiravel\Facades\Jiravel;
use Pnkt\Jiravel\DataTransferObjects\TicketData;
use Pnkt\Jiravel\DataTransferObjects\CommentData;
use Pnkt\Jiravel\DataTransferObjects\StatusData;

// Get a ticket
$ticket = Jiravel::getTicket('PROJECT-123');

// Create a ticket
$ticketData = new TicketData(
    summary: 'Bug Report',
    description: 'Critical bug description',
    issueType: 'Bug',
    priority: 'High',
    assignee: 'developer@example.com'
);

$newTicket = Jiravel::createTicket($ticketData);

// Search tickets
$tickets = Jiravel::searchTickets('project = PROJECT AND type = Bug');

// Add comment
$commentData = new CommentData(
    body: 'This issue has been assigned',
    author: 'manager@example.com'
);

Jiravel::addComment('PROJECT-123', $commentData);

// Change status
$statusData = new StatusData(
    status: 'In Progress',
    comment: 'Starting work'
);

Jiravel::changeStatus('PROJECT-123', $statusData);
```

### Advanced Operations

[](#advanced-operations)

```
use Pnkt\Jiravel\DataTransferObjects\AssigneeData;
use Pnkt\Jiravel\DataTransferObjects\AttributeData;
use Pnkt\Jiravel\DataTransferObjects\DescriptionData;

// Reassign ticket
$assigneeData = new AssigneeData(assignee: 'senior-dev@example.com');
Jiravel::reassignTicket('PROJECT-123', $assigneeData);

// Change attribute
$attributeData = new AttributeData(
    attribute: 'priority',
    value: 'High'
);
Jiravel::changeAttribute('PROJECT-123', $attributeData);

// Edit description
$descriptionData = new DescriptionData(
    description: 'Updated description'
);
Jiravel::editDescription('PROJECT-123', $descriptionData);

// Get ticket history
$history = Jiravel::getTicketHistory('PROJECT-123');
```

### Using Services Directly

[](#using-services-directly)

```
use Pnkt\Jiravel\Contracts\Services\TicketServiceInterface;
use Pnkt\Jiravel\Contracts\Services\CommentServiceInterface;
use Pnkt\Jiravel\Contracts\Services\StatusServiceInterface;

$ticketService = app(TicketServiceInterface::class);
$commentService = app(CommentServiceInterface::class);
$statusService = app(StatusServiceInterface::class);

// Get available transitions
$transitions = $statusService->getAvailableTransitions('PROJECT-123');

// Get comments
$comments = $commentService->getComments('PROJECT-123');
```

### Error Handling

[](#error-handling)

```
use Pnkt\Jiravel\Exceptions\JiraException;
use Pnkt\Jiravel\Exceptions\JiraValidationException;
use Pnkt\Jiravel\Exceptions\JiraRateLimitException;

try {
    $ticket = Jiravel::getTicket('PROJECT-999');
} catch (JiraValidationException $e) {
    // Handle validation errors
    Log::warning('Validation error: ' . $e->getMessage());
} catch (JiraRateLimitException $e) {
    // Handle rate limiting
    $retryAfter = $e->retryAfter;
    Log::warning("Rate limited. Retry after {$retryAfter} seconds");
} catch (JiraException $e) {
    // Handle general Jira errors
    Log::error('Jira error: ' . $e->getMessage());
}
```

Features
--------

[](#features)

- **Ticket Management**: Create, read, update, delete tickets
- **Comments**: Add, update, delete comments
- **Status Transitions**: Change ticket status with transition support
- **Search**: Advanced search using JQL
- **History**: Get complete ticket history and changelog
- **Rate Limiting**: Built-in rate limiting (1000 requests/minute)
- **Caching**: Automatic caching for GET requests
- **Logging**: Comprehensive logging for debugging

Testing
-------

[](#testing)

```
composer test
```

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE) for more information.

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance54

Moderate activity, may be stable

Popularity2

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

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

321d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/22825815?v=4)[Abdalla Abdulsayyid](/maintainers/abdullaalsayyed)[@abdullaalsayyed](https://github.com/abdullaalsayyed)

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/pnkt-jiravel/health.svg)

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

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.6M985](/packages/statamic-cms)[craftcms/cms

Craft CMS

3.6k3.6M3.1k](/packages/craftcms-cms)[backpack/crud

Quickly build admin interfaces using Laravel, Bootstrap and JavaScript.

3.4k3.7M223](/packages/backpack-crud)[unopim/unopim

UnoPim Laravel PIM

10.5k2.4k](/packages/unopim-unopim)[api-platform/laravel

API Platform support for Laravel

58171.6k14](/packages/api-platform-laravel)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5021.9k](/packages/simplestats-io-laravel-client)

PHPackages © 2026

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