/laravel-jira

Easy access Jira rest api in Laravel5.

Primary LanguagePHPMIT LicenseMIT

Laravel5 Jira service

Easy access Jira rest api in Laravel5.

Installation and Requirements

composer require univerze/laravel-jira

Afterwards, run composer update from your command line.

Then, update config/app.php by adding an entry for the service provider.

'providers' => [
    // ...
    Univerze\Jira\JiraServiceProvider::class,
];

'aliases' => [
  	// ...
  	'Jira' => Univerze\Jira\Facade\JiraFacade::class,
];

Finally, from the command line again, run php artisan vendor:publish to publish the default configuration file to config/jira.php. YOu can either set your credentials in the configuration file or you can enter the credentials to new created instance.

use Univerze\Jira\Jira;

$jira = new Jira("https://[yourDomain].atlassian.net/", "username", "password");
$response = $jira->search( 'project = YourProject AND labels = somelabel' );

Alternative you can change the credentials to use afterwards.

use Univerze\Jira\Jira;

$jira = new Jira();
$jira->url      = "https://[yourDomain].atlassian.net/";
$jira->username = "username";
$jira->password = "password";
$response = $jira->search( 'project = YourProject AND labels = somelabel' );

Getting versions

Get all versions of a project:

$jira = new Jira();
$response = $jira->getVersions( 'YourProject' );

In addition you can request details for a specific version listed in the versions-list

$jira = new getVersion();
$response = $jira->getVersion( '20351' );

Searching issues

The search method will take the jql query string:

$jira = new Jira();
$response = $jira->search( 'project = YourProject AND labels = somelabel' );

You can build and test the jql beforehand if you go to your Jira site Issues > Search for Issues > Advanced Search.

Further information can be found on JIRA documentation - search issues

NOTE jql parameter is already included in the payload

Creating issues

$jira = new Jira();
$issue = $jira->create( array(
    'project'     => array(
        'key' => 'YourProject'
    ),
    'summary'     => 'This is the summary',
    'description' => 'Description here',
    'issuetype'   => array(
        'name' => 'Bug'
    )
) );

Further information can be found on JIRA documentation - create issue

NOTE fields parameter is already included in the payload

Editing issues

$jira = new Jira();
$jira->update( 'ISSUE-1234', array(
    'description' => 'this is my new description'
) );

In this case the JIRA api will return "204 - No Content" instead of issue details.

Further information can be found on JIRA documentation - edit issue

NOTE fields parameter is already included in the payload

Changing status or version of issues

Get all available transitions for an issue. Only transactions are listed, that are visible in context for the user

$jira = new Jira();
$jira->getTransitions( 'ISSUE-1234') );

If you want to change the status of an issue you have to execute a available transition. Tha available transitions you can get with getTransitions

$jira = new Jira();
$jira->doTransitions( 'ISSUE-1234', '3') );

You can move an issue to another version

$jira = new Jira();
$jira->updateVersion( 'ISSUE-1234', '20351') );

Released under the MIT License. See the LICENSE file for details.