Skip to content

rolandsaven/bugherd-bundle

Repository files navigation

BugherdBundle

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

About

Symfony bundle for the BugHerd API v2

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages