rolandsaven/bugherd-bundle

This is a Symfony 2-3 bundle to interact with the Bugherd API v2

0.1.0 2016-08-02 21:52 UTC

This package is auto-updated.

Last update: 2024-03-10 21:01:45 UTC


README

Build Status GitHub license Packagist

This is a Symfony 2-3 bundle to interact with the Bugherd API v2 via php-bugherd-api.

Requirements

  • A Bugherd account
  • PHP 5.5+
  • Symfony 2.8+

Installation

Use Composer to add this bundle to your Symfony application.

Add rolandsaven/bugherd-bundle to your composer.json file:

{
    "require": {
        "rolandsaven/bugherd-bundle": "dev-master"
    }
}

Edit AppKernel.php by inserting the following:

public function registerBundles()
{
    $bundles = array(
        // ...
            new RolandSaven\BugherdBundle\BugherdBundle(),
        // ...
    );
}

To use the API, please generate an API key for your organization from within BugHerd, under Settings > General Settings and add it to config.yml:

bugherd:
    api_key: your_bugherd__api_key

Finally, run composer update.

Accessing the Bugherd API

In a controller you can access the Bugherd client and the API resources as follows:

// Get the BugHeard Api Client
$bugherd = $this->get('bugherd');

/** Projects **/
// Get all projects
$projects = $bugherd->api('project')->all();

// Get all active projects
$active_projects = $bugherd->api('project')->allActive();

// Get all projects with name/id pairs
$projects = $bugherd->api('project')->listing($forceUpdate, $reverse);

// Get all active projects with name/id pairs
$active_projects = $bugherd->api('project')->listingActive($forceUpdate, $reverse);

// Get project id given its name
$id = $bugherd->api('project')->getIdByName($name);

// Get a project
$project = $bugherd->api('project')->show($id);

// Create a project
$project = $bugherd->api('project')->create(array(
    'name'      => 'Name of the Project',
    'devurl'    => 'http://example.com/',
    'is_active' => true,
    'is_public' => false,
));

/** Users **/
// Get all users
$users = $bugherd->api('user')->all();

// Get all guests
$guests = $bugherd->api('user')->getGuests();

// Get all members
$members = $bugherd->api('user')->getMembers();

/ Tasks **/
// Get a task
$task = $bugherd->api('task')->show($projectId, $taskId);

// Create a task
$task = $bugherd->api('task')->create($projectId, array(
    'description'      => 'Some description',
    'requester_id'     => $requester_id,
    'requester_email'  => $requester_email
));

// Update a task
$task = $bugherd->api('task')->update($projectId, $taskId, array(
    'description'      => 'Some new description',
));

// Get all tasks
$tasks = $bugherd->api('task')->all($projectId, array(
    'status' => 'backlog',
    'priority' => 'critical'
));

/** Organization **/
// Get organization information
$organization = $bugherd->api('organization')->show();

/** Comments **/
// Create a comment
$comment = $bugherd->api('comment')->create($projectId, $taskId, array(
    'text'      => 'some comment',
    'user_id'     => $user_id,
    'user_email'  => $user_email
));

// Get all comments
$comments = $bugherd->api('comment')->all($projectId, $taskId);


/** Webhooks **/
// Get all webhooks
$webhooks = $bugherd->api('webhook')->all();

// Create a webhook
$webhook = $bugherd->api('webhook')->create(array(
    'target_url' => 'http://example.com/tasks/create',
    'event' => 'task_create' // this could be task_update, task_destroy, comment
));

// Delete a webhook
$bugherd->api('webhook')->remove($webhookId);

Contributing

This library is still work in progress.PR-s are welcome both here and for the PHP SDK php-bugherd-api.

Author

The library was written and maintained by Roland Kalocsaven from Onwwward.

References