BugherdBundle
, (*1)
This is a Symfony 2-3 bundle to interact with the Bugherd API v2 via php-bugherd-api., (*2)
Requirements
- A Bugherd account
- PHP 5.5+
- Symfony 2.8+
Installation
Use Composer to add this bundle to your Symfony application., (*3)
Add rolandsaven/bugherd-bundle
to your composer.json file:, (*4)
{
"require": {
"rolandsaven/bugherd-bundle": "dev-master"
}
}
Edit AppKernel.php
by inserting the following:, (*5)
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
:, (*6)
bugherd:
api_key: your_bugherd__api_key
Finally, run composer update
., (*7)
Accessing the Bugherd API
In a controller you can access the Bugherd client and the API resources
as follows:, (*8)
// 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., (*9)
Author
The library was written and maintained by Roland Kalocsaven
from Onwwward., (*10)
References