Move bitbucket webhook to an external plugin
This commit is contained in:
parent
1ef6e6c2bf
commit
54b3cfe8a1
|
|
@ -8,6 +8,7 @@ Breaking changes:
|
|||
* Action name stored in the database is now the absolute class name
|
||||
* Core functionalities moved to external plugins:
|
||||
- Github Webhook: https://github.com/kanboard/plugin-github-webhook
|
||||
- Bitbucket Webhook: https://github.com/kanboard/plugin-bitbucket-webhook
|
||||
|
||||
New features:
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace Kanboard\Action;
|
||||
|
||||
use Kanboard\Integration\BitbucketWebhook;
|
||||
use Kanboard\Integration\GitlabWebhook;
|
||||
|
||||
/**
|
||||
|
|
@ -33,8 +32,6 @@ class CommentCreation extends Base
|
|||
public function getCompatibleEvents()
|
||||
{
|
||||
return array(
|
||||
BitbucketWebhook::EVENT_ISSUE_COMMENT,
|
||||
BitbucketWebhook::EVENT_COMMIT,
|
||||
GitlabWebhook::EVENT_COMMIT,
|
||||
GitlabWebhook::EVENT_ISSUE_COMMENT,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
namespace Kanboard\Action;
|
||||
|
||||
use Kanboard\Integration\BitbucketWebhook;
|
||||
|
||||
/**
|
||||
* Assign a task to someone
|
||||
*
|
||||
|
|
@ -31,9 +29,7 @@ class TaskAssignUser extends Base
|
|||
*/
|
||||
public function getCompatibleEvents()
|
||||
{
|
||||
return array(
|
||||
BitbucketWebhook::EVENT_ISSUE_ASSIGNEE_CHANGE,
|
||||
);
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
namespace Kanboard\Action;
|
||||
|
||||
use Kanboard\Integration\GitlabWebhook;
|
||||
use Kanboard\Integration\BitbucketWebhook;
|
||||
use Kanboard\Model\Task;
|
||||
|
||||
/**
|
||||
|
|
@ -36,8 +35,6 @@ class TaskClose extends Base
|
|||
return array(
|
||||
GitlabWebhook::EVENT_COMMIT,
|
||||
GitlabWebhook::EVENT_ISSUE_CLOSED,
|
||||
BitbucketWebhook::EVENT_COMMIT,
|
||||
BitbucketWebhook::EVENT_ISSUE_CLOSED,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
namespace Kanboard\Action;
|
||||
|
||||
use Kanboard\Integration\GitlabWebhook;
|
||||
use Kanboard\Integration\BitbucketWebhook;
|
||||
|
||||
/**
|
||||
* Create automatically a task from a webhook
|
||||
|
|
@ -34,7 +33,6 @@ class TaskCreation extends Base
|
|||
{
|
||||
return array(
|
||||
GitlabWebhook::EVENT_ISSUE_OPENED,
|
||||
BitbucketWebhook::EVENT_ISSUE_OPENED,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
namespace Kanboard\Action;
|
||||
|
||||
use Kanboard\Integration\GitlabWebhook;
|
||||
use Kanboard\Integration\BitbucketWebhook;
|
||||
|
||||
/**
|
||||
* Open automatically a task
|
||||
|
|
@ -34,7 +33,6 @@ class TaskOpen extends Base
|
|||
{
|
||||
return array(
|
||||
GitlabWebhook::EVENT_ISSUE_REOPENED,
|
||||
BitbucketWebhook::EVENT_ISSUE_REOPENED,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,23 +54,4 @@ class Webhook extends Base
|
|||
|
||||
echo $result ? 'PARSED' : 'IGNORED';
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle Bitbucket webhooks
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function bitbucket()
|
||||
{
|
||||
$this->checkWebhookToken();
|
||||
|
||||
$this->bitbucketWebhook->setProjectId($this->request->getIntegerParam('project_id'));
|
||||
|
||||
$result = $this->bitbucketWebhook->parsePayload(
|
||||
$this->request->getHeader('X-Event-Key'),
|
||||
$this->request->getJson()
|
||||
);
|
||||
|
||||
echo $result ? 'PARSED' : 'IGNORED';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@ use Pimple\Container;
|
|||
* @property \Kanboard\Core\Lexer $lexer
|
||||
* @property \Kanboard\Core\Paginator $paginator
|
||||
* @property \Kanboard\Core\Template $template
|
||||
* @property \Kanboard\Integration\BitbucketWebhook $bitbucketWebhook
|
||||
* @property \Kanboard\Integration\GitlabWebhook $gitlabWebhook
|
||||
* @property \Kanboard\Formatter\ProjectGanttFormatter $projectGanttFormatter
|
||||
* @property \Kanboard\Formatter\TaskFilterGanttFormatter $taskFilterGanttFormatter
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
namespace Kanboard\Core\Event;
|
||||
|
||||
use Kanboard\Integration\GitlabWebhook;
|
||||
use Kanboard\Integration\BitbucketWebhook;
|
||||
use Kanboard\Model\Task;
|
||||
use Kanboard\Model\TaskLink;
|
||||
|
||||
|
|
@ -59,12 +58,6 @@ class EventManager
|
|||
GitlabWebhook::EVENT_ISSUE_REOPENED => t('Gitlab issue reopened'),
|
||||
GitlabWebhook::EVENT_ISSUE_CLOSED => t('Gitlab issue closed'),
|
||||
GitlabWebhook::EVENT_ISSUE_COMMENT => t('Gitlab issue comment created'),
|
||||
BitbucketWebhook::EVENT_COMMIT => t('Bitbucket commit received'),
|
||||
BitbucketWebhook::EVENT_ISSUE_OPENED => t('Bitbucket issue opened'),
|
||||
BitbucketWebhook::EVENT_ISSUE_CLOSED => t('Bitbucket issue closed'),
|
||||
BitbucketWebhook::EVENT_ISSUE_REOPENED => t('Bitbucket issue reopened'),
|
||||
BitbucketWebhook::EVENT_ISSUE_ASSIGNEE_CHANGE => t('Bitbucket issue assignee change'),
|
||||
BitbucketWebhook::EVENT_ISSUE_COMMENT => t('Bitbucket issue comment created'),
|
||||
);
|
||||
|
||||
$events = array_merge($events, $this->events);
|
||||
|
|
|
|||
|
|
@ -1,312 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Kanboard\Integration;
|
||||
|
||||
use Kanboard\Event\GenericEvent;
|
||||
|
||||
/**
|
||||
* Bitbucket Webhook
|
||||
*
|
||||
* @package integration
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class BitbucketWebhook extends \Kanboard\Core\Base
|
||||
{
|
||||
/**
|
||||
* Events
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const EVENT_COMMIT = 'bitbucket.webhook.commit';
|
||||
const EVENT_ISSUE_OPENED = 'bitbucket.webhook.issue.opened';
|
||||
const EVENT_ISSUE_CLOSED = 'bitbucket.webhook.issue.closed';
|
||||
const EVENT_ISSUE_REOPENED = 'bitbucket.webhook.issue.reopened';
|
||||
const EVENT_ISSUE_ASSIGNEE_CHANGE = 'bitbucket.webhook.issue.assignee';
|
||||
const EVENT_ISSUE_COMMENT = 'bitbucket.webhook.issue.commented';
|
||||
|
||||
/**
|
||||
* Project id
|
||||
*
|
||||
* @access private
|
||||
* @var integer
|
||||
*/
|
||||
private $project_id = 0;
|
||||
|
||||
/**
|
||||
* Set the project id
|
||||
*
|
||||
* @access public
|
||||
* @param integer $project_id Project id
|
||||
*/
|
||||
public function setProjectId($project_id)
|
||||
{
|
||||
$this->project_id = $project_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse incoming events
|
||||
*
|
||||
* @access public
|
||||
* @param string $type Bitbucket event type
|
||||
* @param array $payload Bitbucket event
|
||||
* @return boolean
|
||||
*/
|
||||
public function parsePayload($type, array $payload)
|
||||
{
|
||||
switch ($type) {
|
||||
case 'issue:comment_created':
|
||||
return $this->handleCommentCreated($payload);
|
||||
case 'issue:created':
|
||||
return $this->handleIssueOpened($payload);
|
||||
case 'issue:updated':
|
||||
return $this->handleIssueUpdated($payload);
|
||||
case 'repo:push':
|
||||
return $this->handlePush($payload);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse comment issue events
|
||||
*
|
||||
* @access public
|
||||
* @param array $payload
|
||||
* @return boolean
|
||||
*/
|
||||
public function handleCommentCreated(array $payload)
|
||||
{
|
||||
$task = $this->taskFinder->getByReference($this->project_id, $payload['issue']['id']);
|
||||
|
||||
if (! empty($task)) {
|
||||
$user = $this->user->getByUsername($payload['actor']['username']);
|
||||
|
||||
if (! empty($user) && ! $this->projectPermission->isAssignable($this->project_id, $user['id'])) {
|
||||
$user = array();
|
||||
}
|
||||
|
||||
$event = array(
|
||||
'project_id' => $this->project_id,
|
||||
'reference' => $payload['comment']['id'],
|
||||
'comment' => $payload['comment']['content']['raw']."\n\n[".t('By @%s on Bitbucket', $payload['actor']['display_name']).']('.$payload['comment']['links']['html']['href'].')',
|
||||
'user_id' => ! empty($user) ? $user['id'] : 0,
|
||||
'task_id' => $task['id'],
|
||||
);
|
||||
|
||||
$this->container['dispatcher']->dispatch(
|
||||
self::EVENT_ISSUE_COMMENT,
|
||||
new GenericEvent($event)
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle new issues
|
||||
*
|
||||
* @access public
|
||||
* @param array $payload
|
||||
* @return boolean
|
||||
*/
|
||||
public function handleIssueOpened(array $payload)
|
||||
{
|
||||
$event = array(
|
||||
'project_id' => $this->project_id,
|
||||
'reference' => $payload['issue']['id'],
|
||||
'title' => $payload['issue']['title'],
|
||||
'description' => $payload['issue']['content']['raw']."\n\n[".t('Bitbucket Issue').']('.$payload['issue']['links']['html']['href'].')',
|
||||
);
|
||||
|
||||
$this->container['dispatcher']->dispatch(
|
||||
self::EVENT_ISSUE_OPENED,
|
||||
new GenericEvent($event)
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle issue updates
|
||||
*
|
||||
* @access public
|
||||
* @param array $payload
|
||||
* @return boolean
|
||||
*/
|
||||
public function handleIssueUpdated(array $payload)
|
||||
{
|
||||
$task = $this->taskFinder->getByReference($this->project_id, $payload['issue']['id']);
|
||||
|
||||
if (empty($task)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isset($payload['changes']['status'])) {
|
||||
return $this->handleStatusChange($task, $payload);
|
||||
} elseif (isset($payload['changes']['assignee'])) {
|
||||
return $this->handleAssigneeChange($task, $payload);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle issue status change
|
||||
*
|
||||
* @access public
|
||||
* @param array $task
|
||||
* @param array $payload
|
||||
* @return boolean
|
||||
*/
|
||||
public function handleStatusChange(array $task, array $payload)
|
||||
{
|
||||
$event = array(
|
||||
'project_id' => $this->project_id,
|
||||
'task_id' => $task['id'],
|
||||
'reference' => $payload['issue']['id'],
|
||||
);
|
||||
|
||||
switch ($payload['issue']['state']) {
|
||||
case 'closed':
|
||||
$this->container['dispatcher']->dispatch(self::EVENT_ISSUE_CLOSED, new GenericEvent($event));
|
||||
return true;
|
||||
case 'open':
|
||||
$this->container['dispatcher']->dispatch(self::EVENT_ISSUE_REOPENED, new GenericEvent($event));
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle issue assignee change
|
||||
*
|
||||
* @access public
|
||||
* @param array $task
|
||||
* @param array $payload
|
||||
* @return boolean
|
||||
*/
|
||||
public function handleAssigneeChange(array $task, array $payload)
|
||||
{
|
||||
if (empty($payload['issue']['assignee'])) {
|
||||
return $this->handleIssueUnassigned($task, $payload);
|
||||
}
|
||||
|
||||
return $this->handleIssueAssigned($task, $payload);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle issue assigned
|
||||
*
|
||||
* @access public
|
||||
* @param array $task
|
||||
* @param array $payload
|
||||
* @return boolean
|
||||
*/
|
||||
public function handleIssueAssigned(array $task, array $payload)
|
||||
{
|
||||
$user = $this->user->getByUsername($payload['issue']['assignee']['username']);
|
||||
|
||||
if (empty($user)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (! $this->projectPermission->isAssignable($this->project_id, $user['id'])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$event = array(
|
||||
'project_id' => $this->project_id,
|
||||
'task_id' => $task['id'],
|
||||
'owner_id' => $user['id'],
|
||||
'reference' => $payload['issue']['id'],
|
||||
);
|
||||
|
||||
$this->container['dispatcher']->dispatch(self::EVENT_ISSUE_ASSIGNEE_CHANGE, new GenericEvent($event));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle issue unassigned
|
||||
*
|
||||
* @access public
|
||||
* @param array $task
|
||||
* @param array $payload
|
||||
* @return boolean
|
||||
*/
|
||||
public function handleIssueUnassigned(array $task, array $payload)
|
||||
{
|
||||
$event = array(
|
||||
'project_id' => $this->project_id,
|
||||
'task_id' => $task['id'],
|
||||
'owner_id' => 0,
|
||||
'reference' => $payload['issue']['id'],
|
||||
);
|
||||
|
||||
$this->container['dispatcher']->dispatch(self::EVENT_ISSUE_ASSIGNEE_CHANGE, new GenericEvent($event));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse push events
|
||||
*
|
||||
* @access public
|
||||
* @param array $payload
|
||||
* @return boolean
|
||||
*/
|
||||
public function handlePush(array $payload)
|
||||
{
|
||||
if (isset($payload['push']['changes'])) {
|
||||
foreach ($payload['push']['changes'] as $change) {
|
||||
if (isset($change['new']['target']) && $this->handleCommit($change['new']['target'], $payload['actor'])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse commit
|
||||
*
|
||||
* @access public
|
||||
* @param array $commit Bitbucket commit
|
||||
* @param array $actor Bitbucket actor
|
||||
* @return boolean
|
||||
*/
|
||||
public function handleCommit(array $commit, array $actor)
|
||||
{
|
||||
$task_id = $this->task->getTaskIdFromText($commit['message']);
|
||||
|
||||
if (empty($task_id)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$task = $this->taskFinder->getById($task_id);
|
||||
|
||||
if (empty($task)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($task['project_id'] != $this->project_id) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->container['dispatcher']->dispatch(
|
||||
self::EVENT_COMMIT,
|
||||
new GenericEvent(array(
|
||||
'task_id' => $task_id,
|
||||
'commit_message' => $commit['message'],
|
||||
'commit_url' => $commit['links']['html']['href'],
|
||||
'comment' => $commit['message']."\n\n[".t('Commit made by @%s on Bitbucket', $actor['display_name']).']('.$commit['links']['html']['href'].')',
|
||||
) + $task)
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Već imaš jedan pod-zadatak "u radu"',
|
||||
'Which parts of the project do you want to duplicate?' => 'Koje delove projekta želiš duplicirati?',
|
||||
'Disallow login form' => 'Zabrani prijavnu formu',
|
||||
'Bitbucket commit received' => 'Bitbucket: commit dobijen',
|
||||
'Bitbucket webhooks' => 'Bitbucket: webhooks',
|
||||
'Help on Bitbucket webhooks' => 'Pomoć na Bitbucket webhooks',
|
||||
'Start' => 'Početak',
|
||||
'End' => 'Kraj',
|
||||
'Task age in days' => 'Trajanje zadatka u danima',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
'User that will receive the email' => 'Korisnik će dobiti email',
|
||||
'Email subject' => 'Predmet email-a',
|
||||
'Date' => 'Datum',
|
||||
'By @%s on Bitbucket' => 'Od @%s na Bitbucket',
|
||||
'Bitbucket Issue' => 'Bitbucket problem',
|
||||
'Commit made by @%s on Bitbucket' => 'Commit-ao @%s na Bitbucket',
|
||||
'Commit made by @%s on Gitlab' => 'Commit-ao @%s na Gitlab',
|
||||
'Add a comment log when moving the task between columns' => 'Dodaj komentar u dnevnik kada se pomjeri zadatak između kolona',
|
||||
'Move the task to another column when the category is changed' => 'Pomjeri zadatak u drugu kolonu kada je kategorija promijenjena',
|
||||
'Send a task by email to someone' => 'Pošalji zadatak nekome emailom',
|
||||
'Reopen a task' => 'Ponovo otvori zadatak',
|
||||
'Bitbucket issue opened' => 'Bitbucket: otvoren problem',
|
||||
'Bitbucket issue closed' => 'Bitbucket: zatvoren problem',
|
||||
'Bitbucket issue reopened' => 'Bitbucket: problem ponovo otvoren',
|
||||
'Bitbucket issue assignee change' => 'Bitbucket: promijenjen izvršilac problema',
|
||||
'Bitbucket issue comment created' => 'Bitbucket: dodan komentar na problemu',
|
||||
'Column change' => 'Promijena kolone',
|
||||
'Position change' => 'Promjena pozicije',
|
||||
'Swimlane change' => 'Promjena swimline trake',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Jeden dílčí úkol již aktuálně řešíte',
|
||||
'Which parts of the project do you want to duplicate?' => 'Které části projektu chcete duplikovat?',
|
||||
// 'Disallow login form' => '',
|
||||
'Bitbucket commit received' => 'Bitbucket commit erhalten',
|
||||
'Bitbucket webhooks' => 'Bitbucket webhooks',
|
||||
'Help on Bitbucket webhooks' => 'Hilfe für Bitbucket webhooks',
|
||||
'Start' => 'Začátek',
|
||||
'End' => 'Konec',
|
||||
'Task age in days' => 'Doba trvání úkolu ve dnech',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
'User that will receive the email' => 'Uživatel, který dostane E-mail',
|
||||
'Email subject' => 'E-mail Předmět',
|
||||
'Date' => 'Datum',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
'Add a comment log when moving the task between columns' => 'Přidat komentář když je úkol přesouván mezi sloupci',
|
||||
'Move the task to another column when the category is changed' => 'Přesun úkolu do jiného sloupce když je změněna kategorie',
|
||||
'Send a task by email to someone' => 'Poslat někomu úkol poštou',
|
||||
'Reopen a task' => 'Znovu otevřít úkol',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
'Column change' => 'Spalte geändert',
|
||||
'Position change' => 'Position geändert',
|
||||
'Swimlane change' => 'Swimlane geändert',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
// 'You already have one subtask in progress' => '',
|
||||
// 'Which parts of the project do you want to duplicate?' => '',
|
||||
// 'Disallow login form' => '',
|
||||
// 'Bitbucket commit received' => '',
|
||||
// 'Bitbucket webhooks' => '',
|
||||
// 'Help on Bitbucket webhooks' => '',
|
||||
// 'Start' => '',
|
||||
// 'End' => '',
|
||||
// 'Task age in days' => '',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
// 'User that will receive the email' => '',
|
||||
// 'Email subject' => '',
|
||||
// 'Date' => '',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
// 'Add a comment log when moving the task between columns' => '',
|
||||
// 'Move the task to another column when the category is changed' => '',
|
||||
// 'Send a task by email to someone' => '',
|
||||
// 'Reopen a task' => '',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
// 'Column change' => '',
|
||||
// 'Position change' => '',
|
||||
// 'Swimlane change' => '',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Bereits eine Teilaufgabe in Bearbeitung',
|
||||
'Which parts of the project do you want to duplicate?' => 'Welcher Teil des Projekts soll kopiert werden?',
|
||||
'Disallow login form' => 'Verbiete Login-Formular',
|
||||
'Bitbucket commit received' => 'Bitbucket-Commit erhalten',
|
||||
'Bitbucket webhooks' => 'Bitbucket-Webhooks',
|
||||
'Help on Bitbucket webhooks' => 'Hilfe für Bitbucket-Webhooks',
|
||||
'Start' => 'Start',
|
||||
'End' => 'Ende',
|
||||
'Task age in days' => 'Aufgabenalter in Tagen',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
'User that will receive the email' => 'Empfänger der E-Mail',
|
||||
'Email subject' => 'E-Mail-Betreff',
|
||||
'Date' => 'Datum',
|
||||
'By @%s on Bitbucket' => 'Durch @%s auf Bitbucket',
|
||||
'Bitbucket Issue' => 'Bitbucket-Issue',
|
||||
'Commit made by @%s on Bitbucket' => 'Commit von @%s auf Bitbucket',
|
||||
'Commit made by @%s on Gitlab' => 'Commit von @%s auf Gitlab',
|
||||
'Add a comment log when moving the task between columns' => 'Kommentar hinzufügen, wenn Aufgabe in andere Spalte verschoben wird',
|
||||
'Move the task to another column when the category is changed' => 'Aufgabe in andere Spalte verschieben, wenn Kategorie geändert wird',
|
||||
'Send a task by email to someone' => 'Aufgabe per E-Mail versenden',
|
||||
'Reopen a task' => 'Aufgabe wieder öffnen',
|
||||
'Bitbucket issue opened' => 'Bitbucket Ticket eröffnet',
|
||||
'Bitbucket issue closed' => 'Bitbucket Ticket geschlossen',
|
||||
'Bitbucket issue reopened' => 'Bitbucket Ticket wieder eröffnet',
|
||||
'Bitbucket issue assignee change' => 'Bitbucket Ticket Zuordnung geändert',
|
||||
'Bitbucket issue comment created' => 'Bitbucket Ticket Kommentar erstellt',
|
||||
'Column change' => 'Spalte geändert',
|
||||
'Position change' => 'Position geändert',
|
||||
'Swimlane change' => 'Swimlane geändert',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Ya dispones de una subtarea en progreso',
|
||||
'Which parts of the project do you want to duplicate?' => '¿Qué partes del proyecto desea duplicar?',
|
||||
'Disallow login form' => 'Deshabilitar formulario de ingreso',
|
||||
'Bitbucket commit received' => 'Recibido envío desde Bitbucket',
|
||||
'Bitbucket webhooks' => 'Disparadores Web (webhooks) de Bitbucket',
|
||||
'Help on Bitbucket webhooks' => 'Ayuda sobre disparadores web (webhooks) de Bitbucket',
|
||||
'Start' => 'Inicio',
|
||||
'End' => 'Fin',
|
||||
'Task age in days' => 'Edad de la tarea en días',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
'User that will receive the email' => 'Usuario que recibirá el correo',
|
||||
'Email subject' => 'Asunto del correo',
|
||||
'Date' => 'Fecha',
|
||||
'By @%s on Bitbucket' => 'Mediante @%s en Bitbucket',
|
||||
'Bitbucket Issue' => 'Asunto de Bitbucket',
|
||||
'Commit made by @%s on Bitbucket' => 'Envío realizado por @%s en Bitbucket',
|
||||
'Commit made by @%s on Gitlab' => 'Envío realizado por @%s en Gitlab',
|
||||
'Add a comment log when moving the task between columns' => 'Añadir un comentario al mover la tarea entre columnas',
|
||||
'Move the task to another column when the category is changed' => 'Mover la tarea a otra columna cuando cambia la categoría',
|
||||
'Send a task by email to someone' => 'Enviar una tarea a alguien por correo',
|
||||
'Reopen a task' => 'Reabrir tarea',
|
||||
'Bitbucket issue opened' => 'Abierto asunto de Bitbucket',
|
||||
'Bitbucket issue closed' => 'Cerrado asunto de Bitbucket',
|
||||
'Bitbucket issue reopened' => 'Reabierto asunto de Bitbucket',
|
||||
'Bitbucket issue assignee change' => 'Cambiado concesionario de asunto de Bitbucket',
|
||||
'Bitbucket issue comment created' => 'Creado comentario de asunto de Bitbucket',
|
||||
'Column change' => 'Cambio de columna',
|
||||
'Position change' => 'Cambio de posición',
|
||||
'Swimlane change' => 'Cambio de calle',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
// 'You already have one subtask in progress' => '',
|
||||
// 'Which parts of the project do you want to duplicate?' => '',
|
||||
// 'Disallow login form' => '',
|
||||
// 'Bitbucket commit received' => '',
|
||||
// 'Bitbucket webhooks' => '',
|
||||
// 'Help on Bitbucket webhooks' => '',
|
||||
// 'Start' => '',
|
||||
// 'End' => '',
|
||||
// 'Task age in days' => '',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
// 'User that will receive the email' => '',
|
||||
// 'Email subject' => '',
|
||||
// 'Date' => '',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
// 'Add a comment log when moving the task between columns' => '',
|
||||
// 'Move the task to another column when the category is changed' => '',
|
||||
// 'Send a task by email to someone' => '',
|
||||
// 'Reopen a task' => '',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
// 'Column change' => '',
|
||||
// 'Position change' => '',
|
||||
// 'Swimlane change' => '',
|
||||
|
|
|
|||
|
|
@ -580,9 +580,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Vous avez déjà une sous-tâche en progrès',
|
||||
'Which parts of the project do you want to duplicate?' => 'Quelles parties du projet voulez-vous dupliquer ?',
|
||||
'Disallow login form' => 'Interdire le formulaire d\'authentification',
|
||||
'Bitbucket commit received' => 'Commit reçu via Bitbucket',
|
||||
'Bitbucket webhooks' => 'Webhook Bitbucket',
|
||||
'Help on Bitbucket webhooks' => 'Aide sur les webhooks Bitbucket',
|
||||
'Start' => 'Début',
|
||||
'End' => 'Fin',
|
||||
'Task age in days' => 'Âge de la tâche en jours',
|
||||
|
|
@ -752,19 +749,10 @@ return array(
|
|||
'User that will receive the email' => 'Utilisateur qui va reçevoir l\'email',
|
||||
'Email subject' => 'Sujet de l\'email',
|
||||
'Date' => 'Date',
|
||||
'By @%s on Bitbucket' => 'Par @%s sur Bitbucket',
|
||||
'Bitbucket Issue' => 'Ticket Bitbucket',
|
||||
'Commit made by @%s on Bitbucket' => 'Commit fait par @%s sur Bitbucket',
|
||||
'Commit made by @%s on Gitlab' => 'Commit fait par @%s sur Gitlab',
|
||||
'Add a comment log when moving the task between columns' => 'Ajouter un commentaire d\'information lorsque une tâche est déplacée dans une autre colonne',
|
||||
'Move the task to another column when the category is changed' => 'Déplacer une tâche vers une autre colonne lorsque la catégorie a changé',
|
||||
'Send a task by email to someone' => 'Envoyer une tâche par email à quelqu\'un',
|
||||
'Reopen a task' => 'Rouvrir une tâche',
|
||||
'Bitbucket issue opened' => 'Ticket Bitbucket ouvert',
|
||||
'Bitbucket issue closed' => 'Ticket Bitbucket fermé',
|
||||
'Bitbucket issue reopened' => 'Ticket Bitbucket rouvert',
|
||||
'Bitbucket issue assignee change' => 'Changement d\'assigné sur un ticket Bitbucket',
|
||||
'Bitbucket issue comment created' => 'Commentaire créé sur un ticket Bitbucket',
|
||||
'Column change' => 'Changement de colonne',
|
||||
'Position change' => 'Changement de position',
|
||||
'Swimlane change' => 'Changement de swimlane',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Már van egy folyamatban levő részfeladata',
|
||||
'Which parts of the project do you want to duplicate?' => 'A projekt mely részeit szeretné másolni?',
|
||||
// 'Disallow login form' => '',
|
||||
'Bitbucket commit received' => 'Bitbucket commit érkezett',
|
||||
'Bitbucket webhooks' => 'Bitbucket webhooks',
|
||||
'Help on Bitbucket webhooks' => 'Bitbucket webhooks súgó',
|
||||
'Start' => 'Kezdet',
|
||||
'End' => 'Vég',
|
||||
'Task age in days' => 'Feladat életkora napokban',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
// 'User that will receive the email' => '',
|
||||
// 'Email subject' => '',
|
||||
// 'Date' => '',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
// 'Add a comment log when moving the task between columns' => '',
|
||||
// 'Move the task to another column when the category is changed' => '',
|
||||
// 'Send a task by email to someone' => '',
|
||||
// 'Reopen a task' => '',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
// 'Column change' => '',
|
||||
// 'Position change' => '',
|
||||
// 'Swimlane change' => '',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Anda sudah ada satu subtugas dalam proses',
|
||||
'Which parts of the project do you want to duplicate?' => 'Bagian dalam proyek mana yang ingin anda duplikasi?',
|
||||
'Disallow login form' => 'Larang formulir masuk',
|
||||
'Bitbucket commit received' => 'Menerima komit Bitbucket',
|
||||
'Bitbucket webhooks' => 'Webhook Bitbucket',
|
||||
'Help on Bitbucket webhooks' => 'Bantuan pada webhook Bitbucket',
|
||||
'Start' => 'Mulai',
|
||||
'End' => 'Selesai',
|
||||
'Task age in days' => 'Usia tugas dalam hari',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
'User that will receive the email' => 'Pengguna yang akan menerima email',
|
||||
'Email subject' => 'Subjek Email',
|
||||
'Date' => 'Tanggal',
|
||||
'By @%s on Bitbucket' => 'Oleh @%s pada Bitbucket',
|
||||
'Bitbucket Issue' => 'Tiket Bitbucket',
|
||||
'Commit made by @%s on Bitbucket' => 'Komit dibuat oleh @%s pada Bitbucket',
|
||||
'Commit made by @%s on Gitlab' => 'Komit dibuat oleh @%s pada Gitlab',
|
||||
'Add a comment log when moving the task between columns' => 'Menambahkan log komentar ketika memindahkan tugas antara kolom',
|
||||
'Move the task to another column when the category is changed' => 'Pindahkan tugas ke kolom lain ketika kategori berubah',
|
||||
'Send a task by email to someone' => 'Kirim tugas melalui email ke seseorang',
|
||||
'Reopen a task' => 'Membuka kembali tugas',
|
||||
'Bitbucket issue opened' => 'Tiket Bitbucket dibuka',
|
||||
'Bitbucket issue closed' => 'Tiket Bitbucket ditutup',
|
||||
'Bitbucket issue reopened' => 'Tiket Bitbucket dibuka kembali',
|
||||
'Bitbucket issue assignee change' => 'Perubahan penugasan tiket Bitbucket',
|
||||
'Bitbucket issue comment created' => 'Komentar dibuat tiket Bitbucket',
|
||||
'Column change' => 'Kolom berubah',
|
||||
'Position change' => 'Posisi berubah',
|
||||
'Swimlane change' => 'Swimlane berubah',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Hai già un sotto-compito in progresso',
|
||||
'Which parts of the project do you want to duplicate?' => 'Quali parti del progetto vuoi duplicare?',
|
||||
// 'Disallow login form' => '',
|
||||
'Bitbucket commit received' => 'Commit ricevuto da Bitbucket',
|
||||
'Bitbucket webhooks' => 'Webhooks di Bitbucket',
|
||||
'Help on Bitbucket webhooks' => 'Guida ai Webhooks di Bitbucket',
|
||||
'Start' => 'Inizio',
|
||||
'End' => 'Fine',
|
||||
'Task age in days' => 'Anzianità del compito in giorni',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
// 'User that will receive the email' => '',
|
||||
// 'Email subject' => '',
|
||||
// 'Date' => '',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
// 'Add a comment log when moving the task between columns' => '',
|
||||
// 'Move the task to another column when the category is changed' => '',
|
||||
// 'Send a task by email to someone' => '',
|
||||
// 'Reopen a task' => '',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
// 'Column change' => '',
|
||||
// 'Position change' => '',
|
||||
// 'Swimlane change' => '',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'すでに進行中のサブタスクがあります。',
|
||||
'Which parts of the project do you want to duplicate?' => 'プロジェクトの何を複製しますか?',
|
||||
// 'Disallow login form' => '',
|
||||
'Bitbucket commit received' => 'Bitbucket コミットを受信しました',
|
||||
'Bitbucket webhooks' => 'Bitbucket Webhooks',
|
||||
'Help on Bitbucket webhooks' => 'Bitbucket Webhooks のヘルプ',
|
||||
'Start' => '開始',
|
||||
'End' => '終了',
|
||||
'Task age in days' => 'タスクの経過日数',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
// 'User that will receive the email' => '',
|
||||
// 'Email subject' => '',
|
||||
// 'Date' => '',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
// 'Add a comment log when moving the task between columns' => '',
|
||||
// 'Move the task to another column when the category is changed' => '',
|
||||
// 'Send a task by email to someone' => '',
|
||||
// 'Reopen a task' => '',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
// 'Column change' => '',
|
||||
// 'Position change' => '',
|
||||
// 'Swimlane change' => '',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
// 'You already have one subtask in progress' => '',
|
||||
'Which parts of the project do you want to duplicate?' => 'Hvilke deler av dette prosjektet ønsker du å kopiere?',
|
||||
// 'Disallow login form' => '',
|
||||
// 'Bitbucket commit received' => '',
|
||||
// 'Bitbucket webhooks' => '',
|
||||
// 'Help on Bitbucket webhooks' => '',
|
||||
'Start' => 'Start',
|
||||
'End' => 'Slutt',
|
||||
'Task age in days' => 'Dager siden oppgaven ble opprettet',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
// 'User that will receive the email' => '',
|
||||
// 'Email subject' => '',
|
||||
'Date' => 'Dato',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
'Add a comment log when moving the task between columns' => 'Legg til en kommentar i loggen når en oppgave flyttes mellom kolonnene',
|
||||
'Move the task to another column when the category is changed' => 'Flytt oppgaven til en annen kolonne når kategorien endres',
|
||||
'Send a task by email to someone' => 'Send en oppgave på epost til noen',
|
||||
// 'Reopen a task' => '',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
'Column change' => 'Endret kolonne',
|
||||
'Position change' => 'Posisjonsendring',
|
||||
'Swimlane change' => 'Endret svømmebane',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'U heeft al een subtaak in behandeling',
|
||||
'Which parts of the project do you want to duplicate?' => 'Welke onderdelen van het project wilt u dupliceren?',
|
||||
// 'Disallow login form' => '',
|
||||
'Bitbucket commit received' => 'Bitbucket commit ontvangen',
|
||||
'Bitbucket webhooks' => 'Bitbucket webhooks',
|
||||
'Help on Bitbucket webhooks' => 'Help bij Bitbucket webhooks',
|
||||
'Start' => 'Start',
|
||||
'End' => 'Eind',
|
||||
'Task age in days' => 'Leeftijd taak in dagen',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
// 'User that will receive the email' => '',
|
||||
// 'Email subject' => '',
|
||||
// 'Date' => '',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
// 'Add a comment log when moving the task between columns' => '',
|
||||
// 'Move the task to another column when the category is changed' => '',
|
||||
// 'Send a task by email to someone' => '',
|
||||
// 'Reopen a task' => '',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
// 'Column change' => '',
|
||||
// 'Position change' => '',
|
||||
// 'Swimlane change' => '',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Masz już zadanie o statusie "w trakcie"',
|
||||
'Which parts of the project do you want to duplicate?' => 'Które elementy projektu chcesz zduplikować?',
|
||||
// 'Disallow login form' => '',
|
||||
// 'Bitbucket commit received' => '',
|
||||
// 'Bitbucket webhooks' => '',
|
||||
// 'Help on Bitbucket webhooks' => '',
|
||||
'Start' => 'Początek',
|
||||
'End' => 'Koniec',
|
||||
'Task age in days' => 'Wiek zadania w dniach',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
// 'User that will receive the email' => '',
|
||||
// 'Email subject' => '',
|
||||
// 'Date' => '',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
// 'Add a comment log when moving the task between columns' => '',
|
||||
// 'Move the task to another column when the category is changed' => '',
|
||||
'Send a task by email to someone' => 'Wyślij zadanie mailem do kogokolwiek',
|
||||
'Reopen a task' => 'Otwórz ponownie zadanie',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
'Column change' => 'Zmiana kolumny',
|
||||
'Position change' => 'Zmiana pozycji',
|
||||
'Swimlane change' => 'Zmiana Swimlane',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Você já tem um subtarefa em andamento',
|
||||
'Which parts of the project do you want to duplicate?' => 'Quais partes do projeto você deseja duplicar?',
|
||||
'Disallow login form' => 'Proibir o formulário de login',
|
||||
'Bitbucket commit received' => '"Commit" recebido via Bitbucket',
|
||||
'Bitbucket webhooks' => 'Webhook Bitbucket',
|
||||
'Help on Bitbucket webhooks' => 'Ajuda sobre os webhooks do Bitbucket',
|
||||
'Start' => 'Início',
|
||||
'End' => 'Fim',
|
||||
'Task age in days' => 'Idade da tarefa em dias',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
'User that will receive the email' => 'O usuário que vai receber o e-mail',
|
||||
'Email subject' => 'Assunto do e-mail',
|
||||
'Date' => 'Data',
|
||||
'By @%s on Bitbucket' => 'Por @%s no Bitbucket',
|
||||
'Bitbucket Issue' => 'Bitbucket Issue',
|
||||
'Commit made by @%s on Bitbucket' => 'Commit feito por @%s no Bitbucket',
|
||||
'Commit made by @%s on Gitlab' => 'Commit feito por @%s no Gitlab',
|
||||
'Add a comment log when moving the task between columns' => 'Adicionar um comentário de log quando uma tarefa é movida para uma outra coluna',
|
||||
'Move the task to another column when the category is changed' => 'Mover uma tarefa para outra coluna quando a categoria mudou',
|
||||
'Send a task by email to someone' => 'Enviar uma tarefa por e-mail a alguém',
|
||||
'Reopen a task' => 'Reabrir uma tarefa',
|
||||
'Bitbucket issue opened' => 'Bitbucket issue opened',
|
||||
'Bitbucket issue closed' => 'Bitbucket issue closed',
|
||||
'Bitbucket issue reopened' => 'Bitbucket issue reopened',
|
||||
'Bitbucket issue assignee change' => 'Bitbucket issue assignee change',
|
||||
'Bitbucket issue comment created' => 'Bitbucket issue comment created',
|
||||
'Column change' => 'Mudança de coluna',
|
||||
'Position change' => 'Mudança de posição',
|
||||
'Swimlane change' => 'Mudança de swimlane',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Já tem uma subtarefa em andamento',
|
||||
'Which parts of the project do you want to duplicate?' => 'Quais as partes do projecto que deseja duplicar?',
|
||||
'Disallow login form' => 'Desactivar login',
|
||||
'Bitbucket commit received' => '"Commit" recebido via Bitbucket',
|
||||
'Bitbucket webhooks' => 'Webhook Bitbucket',
|
||||
'Help on Bitbucket webhooks' => 'Ajuda sobre os webhooks Bitbucket',
|
||||
'Start' => 'Inicio',
|
||||
'End' => 'Fim',
|
||||
'Task age in days' => 'Idade da tarefa em dias',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
'User that will receive the email' => 'O utilizador que vai receber o e-mail',
|
||||
'Email subject' => 'Assunto do e-mail',
|
||||
'Date' => 'Data',
|
||||
'By @%s on Bitbucket' => 'Por @%s no Bitbucket',
|
||||
'Bitbucket Issue' => 'Problema Bitbucket',
|
||||
'Commit made by @%s on Bitbucket' => 'Commit feito por @%s no Bitbucket',
|
||||
'Commit made by @%s on Gitlab' => 'Commit feito por @%s no Gitlab',
|
||||
'Add a comment log when moving the task between columns' => 'Adicionar um comentário de log quando uma tarefa é movida para uma outra coluna',
|
||||
'Move the task to another column when the category is changed' => 'Mover uma tarefa para outra coluna quando a categoria mudar',
|
||||
'Send a task by email to someone' => 'Enviar uma tarefa por e-mail a alguém',
|
||||
'Reopen a task' => 'Reabrir uma tarefa',
|
||||
'Bitbucket issue opened' => 'Problema aberto no Bitbucket',
|
||||
'Bitbucket issue closed' => 'Problema fechado no Bitbucket',
|
||||
'Bitbucket issue reopened' => 'Problema reaberto no Bitbucket',
|
||||
'Bitbucket issue assignee change' => 'Alterar assignação do problema no Bitbucket',
|
||||
'Bitbucket issue comment created' => 'Comentário ao problema adicionado ao Bitbucket',
|
||||
'Column change' => 'Mudança de coluna',
|
||||
'Position change' => 'Mudança de posição',
|
||||
'Swimlane change' => 'Mudança de swimlane',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'У вас уже есть одна задача в разработке',
|
||||
'Which parts of the project do you want to duplicate?' => 'Какие части проекта должны быть дублированы?',
|
||||
'Disallow login form' => 'Запретить форму входа',
|
||||
'Bitbucket commit received' => 'Получен коммит с Bitbucket',
|
||||
'Bitbucket webhooks' => 'BitBucket webhooks',
|
||||
'Help on Bitbucket webhooks' => 'Помощь по BitBucket webhooks',
|
||||
'Start' => 'Начало',
|
||||
'End' => 'Конец',
|
||||
'Task age in days' => 'Возраст задачи в днях',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
'User that will receive the email' => 'Пользователь, который будет получать e-mail',
|
||||
'Email subject' => 'Тема e-mail',
|
||||
'Date' => 'Дата',
|
||||
'By @%s on Bitbucket' => 'Польз. @%s на Bitbucket',
|
||||
'Bitbucket Issue' => 'Задача Bitbucket',
|
||||
'Commit made by @%s on Bitbucket' => 'Коммит сделан польз. @%s на Bitbucket',
|
||||
'Commit made by @%s on Gitlab' => 'Коммит сделан польз. @%s в Gitlab',
|
||||
'Add a comment log when moving the task between columns' => 'Добавлять запись при перемещении задачи между колонками',
|
||||
'Move the task to another column when the category is changed' => 'Переносить задачи в другую колонку при изменении категории',
|
||||
'Send a task by email to someone' => 'Отправить задачу по email',
|
||||
'Reopen a task' => 'Переоткрыть задачу',
|
||||
'Bitbucket issue opened' => 'Открыта задача Bitbucket',
|
||||
'Bitbucket issue closed' => 'Закрыта задача Bitbucket',
|
||||
'Bitbucket issue reopened' => 'Переоткрыта задача Bitbucket',
|
||||
'Bitbucket issue assignee change' => 'Изменный назначенный для задачи на Bitbucket',
|
||||
'Bitbucket issue comment created' => 'Создан комментарий для задачи на Bitbucket',
|
||||
'Column change' => 'Изменение колонки',
|
||||
'Position change' => 'Позиция изменена',
|
||||
'Swimlane change' => 'Дорожка изменена',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
// 'You already have one subtask in progress' => '',
|
||||
'Which parts of the project do you want to duplicate?' => 'Koje delove projekta želite da kopirate',
|
||||
// 'Disallow login form' => '',
|
||||
// 'Bitbucket commit received' => '',
|
||||
// 'Bitbucket webhooks' => '',
|
||||
// 'Help on Bitbucket webhooks' => '',
|
||||
// 'Start' => '',
|
||||
// 'End' => '',
|
||||
// 'Task age in days' => '',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
// 'User that will receive the email' => '',
|
||||
// 'Email subject' => '',
|
||||
// 'Date' => '',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
// 'Add a comment log when moving the task between columns' => '',
|
||||
// 'Move the task to another column when the category is changed' => '',
|
||||
// 'Send a task by email to someone' => '',
|
||||
// 'Reopen a task' => '',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
// 'Column change' => '',
|
||||
// 'Position change' => '',
|
||||
// 'Swimlane change' => '',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Du har redan en deluppgift igång',
|
||||
'Which parts of the project do you want to duplicate?' => 'Vilka delar av projektet vill du duplicera?',
|
||||
// 'Disallow login form' => '',
|
||||
'Bitbucket commit received' => 'Bitbucket bidrag mottaget',
|
||||
'Bitbucket webhooks' => 'Bitbucket webhooks',
|
||||
'Help on Bitbucket webhooks' => 'Hjälp för Bitbucket webhooks',
|
||||
'Start' => 'Start',
|
||||
'End' => 'Slut',
|
||||
'Task age in days' => 'Uppgiftsålder i dagar',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
'User that will receive the email' => 'Användare som kommer att ta emot mailet',
|
||||
'Email subject' => 'E-post ämne',
|
||||
'Date' => 'Datum',
|
||||
'By @%s on Bitbucket' => 'Av @%s på Bitbucket',
|
||||
'Bitbucket Issue' => 'Bitbucket fråga',
|
||||
'Commit made by @%s on Bitbucket' => 'Bidrag gjort av @%s på Bitbucket',
|
||||
'Commit made by @%s on Gitlab' => 'Bidrag gjort av @%s på Gitlab',
|
||||
'Add a comment log when moving the task between columns' => 'Lägg till en kommentarslogg när en uppgift flyttas mellan kolumner',
|
||||
'Move the task to another column when the category is changed' => 'Flyttas uppgiften till en annan kolumn när kategorin ändras',
|
||||
'Send a task by email to someone' => 'Skicka en uppgift med e-post till någon',
|
||||
'Reopen a task' => 'Återöppna en uppgift',
|
||||
'Bitbucket issue opened' => 'Bitbucketfråga öppnad',
|
||||
'Bitbucket issue closed' => 'Bitbucketfråga stängd',
|
||||
'Bitbucket issue reopened' => 'Bitbucketfråga återöppnad',
|
||||
'Bitbucket issue assignee change' => 'Bitbucketfråga tilldelningsändring',
|
||||
'Bitbucket issue comment created' => 'Bitbucketfråga kommentar skapad',
|
||||
'Column change' => 'Kolumnändring',
|
||||
'Position change' => 'Positionsändring',
|
||||
'Swimlane change' => 'Swimlaneändring',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'คุณมีหนึ่งงานย่อยที่กำลังทำงาน',
|
||||
// 'Which parts of the project do you want to duplicate?' => '',
|
||||
// 'Disallow login form' => '',
|
||||
// 'Bitbucket commit received' => '',
|
||||
// 'Bitbucket webhooks' => '',
|
||||
// 'Help on Bitbucket webhooks' => '',
|
||||
'Start' => 'เริ่ม',
|
||||
'End' => 'จบ',
|
||||
'Task age in days' => 'อายุงาน',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
// 'User that will receive the email' => '',
|
||||
// 'Email subject' => '',
|
||||
// 'Date' => '',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
// 'Add a comment log when moving the task between columns' => '',
|
||||
// 'Move the task to another column when the category is changed' => '',
|
||||
// 'Send a task by email to someone' => '',
|
||||
// 'Reopen a task' => '',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
// 'Column change' => '',
|
||||
// 'Position change' => '',
|
||||
// 'Swimlane change' => '',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => 'Zaten işlemde olan bir alt görev var',
|
||||
'Which parts of the project do you want to duplicate?' => 'Projenin hangi kısımlarının kopyasını oluşturmak istiyorsunuz?',
|
||||
// 'Disallow login form' => '',
|
||||
'Bitbucket commit received' => 'Bitbucket commit alındı',
|
||||
'Bitbucket webhooks' => 'Bitbucket webhooks',
|
||||
'Help on Bitbucket webhooks' => 'Bitbucket webhooks için yardım',
|
||||
'Start' => 'Başlangıç',
|
||||
'End' => 'Son',
|
||||
'Task age in days' => 'Görev yaşı gün olarak',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
// 'User that will receive the email' => '',
|
||||
// 'Email subject' => '',
|
||||
// 'Date' => '',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
// 'Add a comment log when moving the task between columns' => '',
|
||||
// 'Move the task to another column when the category is changed' => '',
|
||||
// 'Send a task by email to someone' => '',
|
||||
// 'Reopen a task' => '',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
// 'Column change' => '',
|
||||
// 'Position change' => '',
|
||||
// 'Swimlane change' => '',
|
||||
|
|
|
|||
|
|
@ -578,9 +578,6 @@ return array(
|
|||
'You already have one subtask in progress' => '你已经有了一个进行中的子任务',
|
||||
'Which parts of the project do you want to duplicate?' => '要复制项目的哪些内容?',
|
||||
// 'Disallow login form' => '',
|
||||
'Bitbucket commit received' => '收到Bitbucket提交',
|
||||
'Bitbucket webhooks' => 'Bitbucket网络钩子',
|
||||
'Help on Bitbucket webhooks' => 'Bitbucket网络钩子帮助',
|
||||
'Start' => '开始',
|
||||
'End' => '结束',
|
||||
'Task age in days' => '任务存在天数',
|
||||
|
|
@ -750,19 +747,10 @@ return array(
|
|||
// 'User that will receive the email' => '',
|
||||
'Email subject' => '邮件主题',
|
||||
'Date' => '日期',
|
||||
// 'By @%s on Bitbucket' => '',
|
||||
// 'Bitbucket Issue' => '',
|
||||
// 'Commit made by @%s on Bitbucket' => '',
|
||||
// 'Commit made by @%s on Gitlab' => '',
|
||||
// 'Add a comment log when moving the task between columns' => '',
|
||||
// 'Move the task to another column when the category is changed' => '',
|
||||
// 'Send a task by email to someone' => '',
|
||||
'Reopen a task' => '重新开始一个任务',
|
||||
// 'Bitbucket issue opened' => '',
|
||||
// 'Bitbucket issue closed' => '',
|
||||
// 'Bitbucket issue reopened' => '',
|
||||
// 'Bitbucket issue assignee change' => '',
|
||||
// 'Bitbucket issue comment created' => '',
|
||||
// 'Column change' => '',
|
||||
// 'Position change' => '',
|
||||
// 'Swimlane change' => '',
|
||||
|
|
|
|||
|
|
@ -116,7 +116,6 @@ class ClassProvider implements ServiceProviderInterface
|
|||
'UserProfile',
|
||||
),
|
||||
'Integration' => array(
|
||||
'BitbucketWebhook',
|
||||
'GitlabWebhook',
|
||||
)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -12,10 +12,4 @@
|
|||
<input type="text" class="auto-select" readonly="readonly" value="<?= $this->url->href('webhook', 'gitlab', array('token' => $webhook_token, 'project_id' => $project['id']), false, '', true) ?>"/><br/>
|
||||
<p class="form-help"><?= $this->url->doc(t('Help on Gitlab webhooks'), 'gitlab-webhooks') ?></p>
|
||||
</div>
|
||||
|
||||
<h3><i class="fa fa-bitbucket fa-fw"></i> <?= t('Bitbucket webhooks') ?></h3>
|
||||
<div class="listing">
|
||||
<input type="text" class="auto-select" readonly="readonly" value="<?= $this->url->href('webhook', 'bitbucket', array('token' => $webhook_token, 'project_id' => $project['id']), false, '', true) ?>"/><br/>
|
||||
<p class="form-help"><?= $this->url->doc(t('Help on Bitbucket webhooks'), 'bitbucket-webhooks') ?></p>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
Bitbucket webhooks
|
||||
==================
|
||||
|
||||
Bitbucket events can be connected to Kanboard automatic actions.
|
||||
|
||||
List of supported events
|
||||
------------------------
|
||||
|
||||
- Bitbucket commit received
|
||||
- Bitbucket issue opened
|
||||
- Bitbucket issue closed
|
||||
- Bitbucket issue reopened
|
||||
- Bitbucket issue assignee change
|
||||
- Bitbucket issue comment created
|
||||
|
||||
List of supported actions
|
||||
-------------------------
|
||||
|
||||
- Create a task from an external provider
|
||||
- Change the assignee based on an external username
|
||||
- Create a comment from an external provider
|
||||
- Close a task
|
||||
- Open a task
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||

|
||||
|
||||
1. On Kanboard, go to the project settings and choose the section **Integrations**
|
||||
2. Copy the Bitbucket webhook URL
|
||||
3. On Bitbucket, go to the project settings and go to the section **Webhooks**
|
||||
4. Choose a title for your webhook and paste the Kanboard URL
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
### Close a Kanboard task when a commit pushed to Bitbucket
|
||||
|
||||
- Choose the event: **Bitbucket commit received**
|
||||
- Choose action: **Close the task**
|
||||
|
||||
When one or more commits are sent to Bitbucket, Kanboard will receive the information, each commit message with a task number included will be closed.
|
||||
|
||||
Example:
|
||||
|
||||
- Commit message: "Fix bug #1234"
|
||||
- That will close the Kanboard task #1234
|
||||
|
||||
### Add comment when a commit received
|
||||
|
||||
- Choose the event: **Bitbucket commit received**
|
||||
- Choose action: **Create a comment from an external provider**
|
||||
|
||||
The comment will contain the commit message and the URL to the commit.
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
Github webhooks integration
|
||||
===========================
|
||||
|
||||
Kanboard can be synchronized with Github.
|
||||
Currently, it's only a one-way synchronization: Github to Kanboard.
|
||||
|
||||
Github webhooks are plugged to Kanboard automatic actions.
|
||||
When an event occurs on Github, an action can be performed on Kanboard.
|
||||
|
||||
List of available events
|
||||
------------------------
|
||||
|
||||
- Github commit received
|
||||
- Github issue opened
|
||||
- Github issue closed
|
||||
- Github issue reopened
|
||||
- Github issue assignee change
|
||||
- Github issue label change
|
||||
- Github issue comment created
|
||||
|
||||
List of available actions
|
||||
-------------------------
|
||||
|
||||
- Create a task from an external provider
|
||||
- Change the assignee based on an external username
|
||||
- Change the category based on an external label
|
||||
- Create a comment from an external provider
|
||||
- Close a task
|
||||
- Open a task
|
||||
|
||||
Configuration on Github
|
||||
-----------------------
|
||||
|
||||
Go to your project settings page, on the left choose "Webhooks & Services", then click on the button "Add webhook".
|
||||
|
||||

|
||||
|
||||
- **Payload url**: Copy and paste the link from the Kanboard project settings (section **Integrations > Github**).
|
||||
- Select **"Send me everything"**
|
||||
|
||||

|
||||
|
||||
Each time an event happens, Github will send an event to Kanboard now.
|
||||
The Kanboard webhook url is protected by a random token.
|
||||
|
||||
Everything else is handled by automatic actions in your Kanboard project settings.
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
### Close a Kanboard task when a commit pushed to Github
|
||||
|
||||
- Choose the event: **Github commit received**
|
||||
- Choose the action: **Close the task**
|
||||
|
||||
When one or more commits are sent to Github, Kanboard will receive the information, each commit message with a task number included will be closed.
|
||||
|
||||
Example:
|
||||
|
||||
- Commit message: "Fix bug #1234"
|
||||
- That will close the Kanboard task #1234
|
||||
|
||||
### Create a Kanboard task when a new issue is opened on Github
|
||||
|
||||
- Choose the event: **Github issue opened**
|
||||
- Choose the action: **Create a task from an external provider**
|
||||
|
||||
When a task is created from a Github issue, the link to the issue is added to the description and the task have a new field named "Reference" (this is the Github ticket number).
|
||||
|
||||
### Close a Kanboard task when an issue is closed on Github
|
||||
|
||||
- Choose the event: **Github issue closed**
|
||||
- Choose the action: **Close the task**
|
||||
|
||||
### Reopen a Kanboard task when an issue is reopened on Github
|
||||
|
||||
- Choose the event: **Github issue reopened**
|
||||
- Choose the action: **Open the task**
|
||||
|
||||
### Assign a task to a Kanboard user when an issue is assigned on Github
|
||||
|
||||
- Choose the event: **Github issue assignee change**
|
||||
- Choose the action: **Change the assignee based on an external username**
|
||||
|
||||
Note: The username must be the same between Github and Kanboard and the user must be member of the project.
|
||||
|
||||
### Assign a category when an issue is tagged on Github
|
||||
|
||||
- Choose the event: **Github issue label change**
|
||||
- Choose the action: **Change the category based on an external label**
|
||||
- Define the label and the category
|
||||
|
||||
### Create a comment on Kanboard when an issue is commented on Github
|
||||
|
||||
- Choose the event: **Github issue comment created**
|
||||
- Choose the action: **Create a comment from an external provider**
|
||||
|
||||
If the username is the same between Github and Kanboard the comment author will be assigned, otherwise there is no author.
|
||||
The user also have to be member of the project in Kanboard.
|
||||
|
|
@ -68,7 +68,6 @@ Using Kanboard
|
|||
|
||||
### Integrations
|
||||
|
||||
- [Bitbucket webhooks](bitbucket-webhooks.markdown)
|
||||
- [Gitlab webhooks](gitlab-webhooks.markdown)
|
||||
- [iCalendar subscriptions](ical.markdown)
|
||||
- [RSS/Atom subscriptions](rss.markdown)
|
||||
|
|
|
|||
|
|
@ -1,399 +0,0 @@
|
|||
<?php
|
||||
|
||||
require_once __DIR__.'/../Base.php';
|
||||
|
||||
use Kanboard\Integration\BitbucketWebhook;
|
||||
use Kanboard\Model\TaskCreation;
|
||||
use Kanboard\Model\TaskFinder;
|
||||
use Kanboard\Model\Project;
|
||||
use Kanboard\Model\ProjectUserRole;
|
||||
use Kanboard\Model\User;
|
||||
use Kanboard\Core\Security\Role;
|
||||
|
||||
class BitbucketWebhookTest extends Base
|
||||
{
|
||||
public function testHandlePush()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_COMMIT, array($this, 'onCommit'));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$p = new Project($this->container);
|
||||
$bw = new BitbucketWebhook($this->container);
|
||||
$payload = json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_push.json'), true);
|
||||
|
||||
$this->assertEquals(1, $p->create(array('name' => 'test')));
|
||||
$bw->setProjectId(1);
|
||||
|
||||
// No task
|
||||
$this->assertFalse($bw->handlePush($payload));
|
||||
|
||||
// Create task with the wrong id
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'test1', 'project_id' => 1)));
|
||||
$this->assertFalse($bw->handlePush($payload));
|
||||
|
||||
// Create task with the right id
|
||||
$this->assertEquals(2, $tc->create(array('title' => 'test2', 'project_id' => 1)));
|
||||
$this->assertTrue($bw->handlePush($payload));
|
||||
|
||||
$called = $this->container['dispatcher']->getCalledListeners();
|
||||
$this->assertArrayHasKey(BitbucketWebhook::EVENT_COMMIT.'.BitbucketWebhookTest::onCommit', $called);
|
||||
}
|
||||
|
||||
public function testIssueOpened()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_OPENED, array($this, 'onIssueOpened'));
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$bw = new BitbucketWebhook($this->container);
|
||||
$bw->setProjectId(1);
|
||||
|
||||
$this->assertNotFalse($bw->parsePayload(
|
||||
'issue:created',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_issue_opened.json'), true)
|
||||
));
|
||||
}
|
||||
|
||||
public function testCommentCreatedWithNoUser()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_COMMENT, array($this, 'onCommentCreatedWithNoUser'));
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'boo', 'reference' => 1, 'project_id' => 1)));
|
||||
|
||||
$g = new BitbucketWebhook($this->container);
|
||||
$g->setProjectId(1);
|
||||
|
||||
$this->assertNotFalse($g->parsePayload(
|
||||
'issue:comment_created',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_comment_created.json'), true)
|
||||
));
|
||||
}
|
||||
|
||||
public function testCommentCreatedWithNotMember()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_COMMENT, array($this, 'onCommentCreatedWithNotMember'));
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'boo', 'reference' => 1, 'project_id' => 1)));
|
||||
|
||||
$u = new User($this->container);
|
||||
$this->assertEquals(2, $u->create(array('username' => 'fguillot')));
|
||||
|
||||
$g = new BitbucketWebhook($this->container);
|
||||
$g->setProjectId(1);
|
||||
|
||||
$this->assertNotFalse($g->parsePayload(
|
||||
'issue:comment_created',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_comment_created.json'), true)
|
||||
));
|
||||
}
|
||||
|
||||
public function testCommentCreatedWithUser()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_COMMENT, array($this, 'onCommentCreatedWithUser'));
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'boo', 'reference' => 1, 'project_id' => 1)));
|
||||
|
||||
$u = new User($this->container);
|
||||
$this->assertEquals(2, $u->create(array('username' => 'minicoders')));
|
||||
|
||||
$pp = new ProjectUserRole($this->container);
|
||||
$this->assertTrue($pp->addUser(1, 2, Role::PROJECT_MEMBER));
|
||||
|
||||
$g = new BitbucketWebhook($this->container);
|
||||
$g->setProjectId(1);
|
||||
|
||||
$this->assertNotFalse($g->parsePayload(
|
||||
'issue:comment_created',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_comment_created.json'), true)
|
||||
));
|
||||
}
|
||||
|
||||
public function testIssueClosed()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_CLOSED, array($this, 'onIssueClosed'));
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'boo', 'reference' => 1, 'project_id' => 1)));
|
||||
|
||||
$g = new BitbucketWebhook($this->container);
|
||||
$g->setProjectId(1);
|
||||
|
||||
$this->assertNotFalse($g->parsePayload(
|
||||
'issue:updated',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_issue_closed.json'), true)
|
||||
));
|
||||
}
|
||||
|
||||
public function testIssueClosedWithNoTask()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_CLOSED, array($this, 'onIssueClosed'));
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'boo', 'reference' => 42, 'project_id' => 1)));
|
||||
|
||||
$g = new BitbucketWebhook($this->container);
|
||||
$g->setProjectId(1);
|
||||
|
||||
$this->assertFalse($g->parsePayload(
|
||||
'issue:updated',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_issue_closed.json'), true)
|
||||
));
|
||||
|
||||
$this->assertEmpty($this->container['dispatcher']->getCalledListeners());
|
||||
}
|
||||
|
||||
public function testIssueReopened()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_REOPENED, array($this, 'onIssueReopened'));
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'boo', 'reference' => 1, 'project_id' => 1)));
|
||||
|
||||
$g = new BitbucketWebhook($this->container);
|
||||
$g->setProjectId(1);
|
||||
|
||||
$this->assertNotFalse($g->parsePayload(
|
||||
'issue:updated',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_issue_reopened.json'), true)
|
||||
));
|
||||
}
|
||||
|
||||
public function testIssueReopenedWithNoTask()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_REOPENED, array($this, 'onIssueReopened'));
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'boo', 'reference' => 42, 'project_id' => 1)));
|
||||
|
||||
$g = new BitbucketWebhook($this->container);
|
||||
$g->setProjectId(1);
|
||||
|
||||
$this->assertFalse($g->parsePayload(
|
||||
'issue:updated',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_issue_reopened.json'), true)
|
||||
));
|
||||
|
||||
$this->assertEmpty($this->container['dispatcher']->getCalledListeners());
|
||||
}
|
||||
|
||||
public function testIssueUnassigned()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_ASSIGNEE_CHANGE, array($this, 'onIssueUnassigned'));
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'boo', 'reference' => 1, 'project_id' => 1)));
|
||||
|
||||
$g = new BitbucketWebhook($this->container);
|
||||
$g->setProjectId(1);
|
||||
|
||||
$this->assertNotFalse($g->parsePayload(
|
||||
'issue:updated',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_issue_unassigned.json'), true)
|
||||
));
|
||||
}
|
||||
|
||||
public function testIssueAssigned()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_ASSIGNEE_CHANGE, array($this, 'onIssueAssigned'));
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'boo', 'reference' => 1, 'project_id' => 1)));
|
||||
|
||||
$u = new User($this->container);
|
||||
$this->assertEquals(2, $u->create(array('username' => 'minicoders')));
|
||||
|
||||
$pp = new ProjectUserRole($this->container);
|
||||
$this->assertTrue($pp->addUser(1, 2, Role::PROJECT_MEMBER));
|
||||
|
||||
$g = new BitbucketWebhook($this->container);
|
||||
$g->setProjectId(1);
|
||||
|
||||
$this->assertNotFalse($g->parsePayload(
|
||||
'issue:updated',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_issue_assigned.json'), true)
|
||||
));
|
||||
|
||||
$this->assertNotEmpty($this->container['dispatcher']->getCalledListeners());
|
||||
}
|
||||
|
||||
public function testIssueAssignedWithNoPermission()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_ASSIGNEE_CHANGE, function () {});
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'boo', 'reference' => 1, 'project_id' => 1)));
|
||||
|
||||
$u = new User($this->container);
|
||||
$this->assertEquals(2, $u->create(array('username' => 'minicoders')));
|
||||
|
||||
$g = new BitbucketWebhook($this->container);
|
||||
$g->setProjectId(1);
|
||||
|
||||
$this->assertFalse($g->parsePayload(
|
||||
'issue:updated',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_issue_assigned.json'), true)
|
||||
));
|
||||
|
||||
$this->assertEmpty($this->container['dispatcher']->getCalledListeners());
|
||||
}
|
||||
|
||||
public function testIssueAssignedWithNoUser()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_ASSIGNEE_CHANGE, function () {});
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'boo', 'reference' => 1, 'project_id' => 1)));
|
||||
|
||||
$g = new BitbucketWebhook($this->container);
|
||||
$g->setProjectId(1);
|
||||
|
||||
$this->assertFalse($g->parsePayload(
|
||||
'issue:updated',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_issue_assigned.json'), true)
|
||||
));
|
||||
|
||||
$this->assertEmpty($this->container['dispatcher']->getCalledListeners());
|
||||
}
|
||||
|
||||
public function testIssueAssignedWithNoTask()
|
||||
{
|
||||
$this->container['dispatcher']->addListener(BitbucketWebhook::EVENT_ISSUE_ASSIGNEE_CHANGE, function () {});
|
||||
|
||||
$p = new Project($this->container);
|
||||
$this->assertEquals(1, $p->create(array('name' => 'foobar')));
|
||||
|
||||
$tc = new TaskCreation($this->container);
|
||||
$this->assertEquals(1, $tc->create(array('title' => 'boo', 'reference' => 43, 'project_id' => 1)));
|
||||
|
||||
$g = new BitbucketWebhook($this->container);
|
||||
$g->setProjectId(1);
|
||||
|
||||
$this->assertFalse($g->parsePayload(
|
||||
'issue:updated',
|
||||
json_decode(file_get_contents(__DIR__.'/../fixtures/bitbucket_issue_assigned.json'), true)
|
||||
));
|
||||
|
||||
$this->assertEmpty($this->container['dispatcher']->getCalledListeners());
|
||||
}
|
||||
|
||||
public function onCommit($event)
|
||||
{
|
||||
$data = $event->getAll();
|
||||
$this->assertEquals(1, $data['project_id']);
|
||||
$this->assertEquals(2, $data['task_id']);
|
||||
$this->assertEquals('test2', $data['title']);
|
||||
$this->assertEquals("Test another commit #2\n\n\n[Commit made by @Frederic Guillot on Bitbucket](https://bitbucket.org/minicoders/test-webhook/commits/824059cce7667d3f8d8780cc707391be821e0ea6)", $data['comment']);
|
||||
$this->assertEquals("Test another commit #2\n", $data['commit_message']);
|
||||
$this->assertEquals('https://bitbucket.org/minicoders/test-webhook/commits/824059cce7667d3f8d8780cc707391be821e0ea6', $data['commit_url']);
|
||||
}
|
||||
|
||||
public function onIssueOpened($event)
|
||||
{
|
||||
$data = $event->getAll();
|
||||
$this->assertEquals(1, $data['project_id']);
|
||||
$this->assertEquals(1, $data['reference']);
|
||||
$this->assertEquals('My new issue', $data['title']);
|
||||
$this->assertEquals("**test**\n\n[Bitbucket Issue](https://bitbucket.org/minicoders/test-webhook/issue/1/my-new-issue)", $data['description']);
|
||||
}
|
||||
|
||||
public function onCommentCreatedWithNoUser($event)
|
||||
{
|
||||
$data = $event->getAll();
|
||||
$this->assertEquals(1, $data['project_id']);
|
||||
$this->assertEquals(1, $data['task_id']);
|
||||
$this->assertEquals(0, $data['user_id']);
|
||||
$this->assertEquals(19176252, $data['reference']);
|
||||
$this->assertEquals("1. step1\n2. step2\n\n[By @Frederic Guillot on Bitbucket](https://bitbucket.org/minicoders/test-webhook/issue/1#comment-19176252)", $data['comment']);
|
||||
}
|
||||
|
||||
public function onCommentCreatedWithNotMember($event)
|
||||
{
|
||||
$data = $event->getAll();
|
||||
$this->assertEquals(1, $data['project_id']);
|
||||
$this->assertEquals(1, $data['task_id']);
|
||||
$this->assertEquals(0, $data['user_id']);
|
||||
$this->assertEquals(19176252, $data['reference']);
|
||||
$this->assertEquals("1. step1\n2. step2\n\n[By @Frederic Guillot on Bitbucket](https://bitbucket.org/minicoders/test-webhook/issue/1#comment-19176252)", $data['comment']);
|
||||
}
|
||||
|
||||
public function onCommentCreatedWithUser($event)
|
||||
{
|
||||
$data = $event->getAll();
|
||||
$this->assertEquals(1, $data['project_id']);
|
||||
$this->assertEquals(1, $data['task_id']);
|
||||
$this->assertEquals(2, $data['user_id']);
|
||||
$this->assertEquals(19176252, $data['reference']);
|
||||
$this->assertEquals("1. step1\n2. step2\n\n[By @Frederic Guillot on Bitbucket](https://bitbucket.org/minicoders/test-webhook/issue/1#comment-19176252)", $data['comment']);
|
||||
}
|
||||
|
||||
public function onIssueClosed($event)
|
||||
{
|
||||
$data = $event->getAll();
|
||||
$this->assertEquals(1, $data['project_id']);
|
||||
$this->assertEquals(1, $data['task_id']);
|
||||
$this->assertEquals(1, $data['reference']);
|
||||
}
|
||||
|
||||
public function onIssueReopened($event)
|
||||
{
|
||||
$data = $event->getAll();
|
||||
$this->assertEquals(1, $data['project_id']);
|
||||
$this->assertEquals(1, $data['task_id']);
|
||||
$this->assertEquals(1, $data['reference']);
|
||||
}
|
||||
|
||||
public function onIssueAssigned($event)
|
||||
{
|
||||
$data = $event->getAll();
|
||||
$this->assertEquals(1, $data['project_id']);
|
||||
$this->assertEquals(1, $data['task_id']);
|
||||
$this->assertEquals(1, $data['reference']);
|
||||
$this->assertEquals(2, $data['owner_id']);
|
||||
}
|
||||
|
||||
public function onIssueUnassigned($event)
|
||||
{
|
||||
$data = $event->getAll();
|
||||
$this->assertEquals(1, $data['project_id']);
|
||||
$this->assertEquals(1, $data['task_id']);
|
||||
$this->assertEquals(1, $data['reference']);
|
||||
$this->assertEquals(0, $data['owner_id']);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,147 +0,0 @@
|
|||
{
|
||||
"actor": {
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"display_name": "Frederic Guillot",
|
||||
"type": "user",
|
||||
"links": {
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"full_name": "minicoders/test-webhook",
|
||||
"uuid": "{590fd9c4-0812-425e-8d72-ab08b4fd5735}",
|
||||
"type": "repository",
|
||||
"links": {
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/avatar/16/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook"
|
||||
}
|
||||
},
|
||||
"owner": {
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"display_name": "Frederic Guillot",
|
||||
"type": "user",
|
||||
"links": {
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "test-webhook"
|
||||
},
|
||||
"comment": {
|
||||
"content": {
|
||||
"html": "<ol>\n<li>step1</li>\n<li>step2</li>\n</ol>",
|
||||
"raw": "1. step1\n2. step2",
|
||||
"markup": "markdown"
|
||||
},
|
||||
"created_on": "2015-06-21T02:51:40.532529+00:00",
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/issue/1#comment-19176252"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/comments/19176252"
|
||||
}
|
||||
},
|
||||
"id": 19176252,
|
||||
"user": {
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"display_name": "Frederic Guillot",
|
||||
"type": "user",
|
||||
"links": {
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updated_on": null
|
||||
},
|
||||
"issue": {
|
||||
"updated_on": "2015-06-21T02:51:40.536516+00:00",
|
||||
"votes": 0,
|
||||
"assignee": null,
|
||||
"links": {
|
||||
"vote": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/vote"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/issue/1/my-new-issue"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1"
|
||||
},
|
||||
"watch": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/watch"
|
||||
},
|
||||
"comments": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/comments"
|
||||
},
|
||||
"attachments": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/attachments"
|
||||
}
|
||||
},
|
||||
"priority": "major",
|
||||
"kind": "bug",
|
||||
"watches": 1,
|
||||
"edited_on": null,
|
||||
"state": "new",
|
||||
"content": {
|
||||
"html": "<p><strong>test</strong></p>",
|
||||
"raw": "**test**",
|
||||
"markup": "markdown"
|
||||
},
|
||||
"component": null,
|
||||
"milestone": null,
|
||||
"version": null,
|
||||
"id": 1,
|
||||
"created_on": "2015-06-21T02:17:40.990654+00:00",
|
||||
"type": "issue",
|
||||
"reporter": {
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"display_name": "Frederic Guillot",
|
||||
"type": "user",
|
||||
"links": {
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
}
|
||||
},
|
||||
"title": "My new issue"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,209 +0,0 @@
|
|||
{
|
||||
"repository": {
|
||||
"name": "test-webhook",
|
||||
"type": "repository",
|
||||
"full_name": "minicoders/test-webhook",
|
||||
"uuid": "{590fd9c4-0812-425e-8d72-ab08b4fd5735}",
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/avatar/16/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook"
|
||||
}
|
||||
},
|
||||
"owner": {
|
||||
"display_name": "Frederic Guillot",
|
||||
"type": "user",
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
}
|
||||
},
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
}
|
||||
},
|
||||
"changes": {
|
||||
"responsible": {
|
||||
"new": {
|
||||
"is_system": false,
|
||||
"name": "Frederic Guillot",
|
||||
"username": "minicoders",
|
||||
"id": 1290132,
|
||||
"billing_external_uuid": null
|
||||
},
|
||||
"old": null
|
||||
},
|
||||
"assignee": {
|
||||
"new": {
|
||||
"display_name": "Frederic Guillot",
|
||||
"type": "user",
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
}
|
||||
},
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
},
|
||||
"old": null
|
||||
}
|
||||
},
|
||||
"actor": {
|
||||
"display_name": "Frederic Guillot",
|
||||
"type": "user",
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
}
|
||||
},
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
},
|
||||
"issue": {
|
||||
"repository": {
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/avatar/16/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook"
|
||||
}
|
||||
},
|
||||
"type": "repository",
|
||||
"full_name": "minicoders/test-webhook",
|
||||
"name": "test-webhook",
|
||||
"uuid": "{590fd9c4-0812-425e-8d72-ab08b4fd5735}"
|
||||
},
|
||||
"edited_on": null,
|
||||
"component": null,
|
||||
"updated_on": "2015-06-21T15:21:28.023525+00:00",
|
||||
"reporter": {
|
||||
"display_name": "Frederic Guillot",
|
||||
"type": "user",
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
}
|
||||
},
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
},
|
||||
"state": "open",
|
||||
"content": {
|
||||
"raw": "**test**",
|
||||
"markup": "markdown",
|
||||
"html": "<p><strong>test</strong></p>"
|
||||
},
|
||||
"kind": "bug",
|
||||
"links": {
|
||||
"attachments": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/attachments"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/issue/1/my-new-issue"
|
||||
},
|
||||
"watch": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/watch"
|
||||
},
|
||||
"vote": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/vote"
|
||||
},
|
||||
"comments": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/comments"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1"
|
||||
}
|
||||
},
|
||||
"created_on": "2015-06-21T02:17:40.990654+00:00",
|
||||
"watches": 1,
|
||||
"milestone": null,
|
||||
"version": null,
|
||||
"assignee": {
|
||||
"display_name": "Frederic Guillot",
|
||||
"type": "user",
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
}
|
||||
},
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
},
|
||||
"title": "My new issue",
|
||||
"priority": "major",
|
||||
"id": 1,
|
||||
"votes": 0,
|
||||
"type": "issue"
|
||||
},
|
||||
"comment": {
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/comments/19181255"
|
||||
}
|
||||
},
|
||||
"updated_on": null,
|
||||
"content": {
|
||||
"raw": null,
|
||||
"markup": "markdown",
|
||||
"html": ""
|
||||
},
|
||||
"id": 19181255,
|
||||
"created_on": "2015-06-21T15:21:28.043980+00:00",
|
||||
"user": {
|
||||
"display_name": "Frederic Guillot",
|
||||
"type": "user",
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
}
|
||||
},
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,183 +0,0 @@
|
|||
{
|
||||
"actor": {
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"type": "user",
|
||||
"display_name": "Frederic Guillot",
|
||||
"links": {
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
}
|
||||
},
|
||||
"changes": {
|
||||
"status": {
|
||||
"old": "new",
|
||||
"new": "closed"
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"full_name": "minicoders/test-webhook",
|
||||
"type": "repository",
|
||||
"links": {
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/avatar/16/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook"
|
||||
}
|
||||
},
|
||||
"owner": {
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"type": "user",
|
||||
"display_name": "Frederic Guillot",
|
||||
"links": {
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
}
|
||||
},
|
||||
"uuid": "{590fd9c4-0812-425e-8d72-ab08b4fd5735}",
|
||||
"name": "test-webhook"
|
||||
},
|
||||
"comment": {
|
||||
"content": {
|
||||
"html": "",
|
||||
"raw": null,
|
||||
"markup": "markdown"
|
||||
},
|
||||
"created_on": "2015-06-21T02:54:40.263014+00:00",
|
||||
"updated_on": null,
|
||||
"id": 19176265,
|
||||
"user": {
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"type": "user",
|
||||
"display_name": "Frederic Guillot",
|
||||
"links": {
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/comments/19176265"
|
||||
}
|
||||
}
|
||||
},
|
||||
"issue": {
|
||||
"state": "closed",
|
||||
"votes": 0,
|
||||
"assignee": {
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"type": "user",
|
||||
"display_name": "Frederic Guillot",
|
||||
"links": {
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"vote": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/vote"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/issue/1/my-new-issue"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1"
|
||||
},
|
||||
"watch": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/watch"
|
||||
},
|
||||
"comments": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/comments"
|
||||
},
|
||||
"attachments": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/attachments"
|
||||
}
|
||||
},
|
||||
"priority": "major",
|
||||
"version": null,
|
||||
"watches": 1,
|
||||
"edited_on": null,
|
||||
"reporter": {
|
||||
"username": "minicoders",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"type": "user",
|
||||
"display_name": "Frederic Guillot",
|
||||
"links": {
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
}
|
||||
},
|
||||
"content": {
|
||||
"html": "<p><strong>test</strong></p>",
|
||||
"raw": "**test**",
|
||||
"markup": "markdown"
|
||||
},
|
||||
"component": null,
|
||||
"created_on": "2015-06-21T02:17:40.990654+00:00",
|
||||
"updated_on": "2015-06-21T02:54:40.249466+00:00",
|
||||
"kind": "bug",
|
||||
"id": 1,
|
||||
"milestone": null,
|
||||
"type": "issue",
|
||||
"repository": {
|
||||
"full_name": "minicoders/test-webhook",
|
||||
"uuid": "{590fd9c4-0812-425e-8d72-ab08b4fd5735}",
|
||||
"type": "repository",
|
||||
"name": "test-webhook",
|
||||
"links": {
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/avatar/16/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook"
|
||||
}
|
||||
}
|
||||
},
|
||||
"title": "My new issue"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
{
|
||||
"issue": {
|
||||
"type": "issue",
|
||||
"links": {
|
||||
"attachments": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/attachments"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/issue/1/my-new-issue"
|
||||
},
|
||||
"comments": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/comments"
|
||||
},
|
||||
"vote": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/vote"
|
||||
},
|
||||
"watch": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/watch"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1"
|
||||
}
|
||||
},
|
||||
"component": null,
|
||||
"updated_on": "2015-06-21T02:17:40.990654+00:00",
|
||||
"reporter": {
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
}
|
||||
},
|
||||
"username": "minicoders",
|
||||
"type": "user",
|
||||
"display_name": "Frederic Guillot",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
},
|
||||
"watches": 1,
|
||||
"kind": "bug",
|
||||
"edited_on": null,
|
||||
"created_on": "2015-06-21T02:17:40.990654+00:00",
|
||||
"milestone": null,
|
||||
"version": null,
|
||||
"state": "new",
|
||||
"assignee": null,
|
||||
"content": {
|
||||
"raw": "**test**",
|
||||
"markup": "markdown",
|
||||
"html": "<p><strong>test</strong></p>"
|
||||
},
|
||||
"priority": "major",
|
||||
"id": 1,
|
||||
"votes": 0,
|
||||
"title": "My new issue"
|
||||
},
|
||||
"repository": {
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/avatar/16/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook"
|
||||
}
|
||||
},
|
||||
"type": "repository",
|
||||
"full_name": "minicoders/test-webhook",
|
||||
"uuid": "{590fd9c4-0812-425e-8d72-ab08b4fd5735}",
|
||||
"name": "test-webhook",
|
||||
"owner": {
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
}
|
||||
},
|
||||
"username": "minicoders",
|
||||
"type": "user",
|
||||
"display_name": "Frederic Guillot",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
}
|
||||
},
|
||||
"actor": {
|
||||
"links": {
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
}
|
||||
},
|
||||
"username": "minicoders",
|
||||
"type": "user",
|
||||
"display_name": "Frederic Guillot",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,183 +0,0 @@
|
|||
{
|
||||
"issue": {
|
||||
"edited_on": null,
|
||||
"watches": 1,
|
||||
"created_on": "2015-06-21T02:17:40.990654+00:00",
|
||||
"reporter": {
|
||||
"username": "minicoders",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
}
|
||||
},
|
||||
"display_name": "Frederic Guillot",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"type": "user"
|
||||
},
|
||||
"content": {
|
||||
"markup": "markdown",
|
||||
"raw": "**test**",
|
||||
"html": "<p><strong>test</strong></p>"
|
||||
},
|
||||
"id": 1,
|
||||
"milestone": null,
|
||||
"repository": {
|
||||
"full_name": "minicoders/test-webhook",
|
||||
"type": "repository",
|
||||
"uuid": "{590fd9c4-0812-425e-8d72-ab08b4fd5735}",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/avatar/16/"
|
||||
}
|
||||
},
|
||||
"name": "test-webhook"
|
||||
},
|
||||
"component": null,
|
||||
"version": null,
|
||||
"votes": 0,
|
||||
"priority": "major",
|
||||
"type": "issue",
|
||||
"state": "open",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1"
|
||||
},
|
||||
"comments": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/comments"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/issue/1/my-new-issue"
|
||||
},
|
||||
"watch": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/watch"
|
||||
},
|
||||
"attachments": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/attachments"
|
||||
},
|
||||
"vote": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/vote"
|
||||
}
|
||||
},
|
||||
"kind": "bug",
|
||||
"updated_on": "2015-06-21T14:56:49.739063+00:00",
|
||||
"assignee": {
|
||||
"username": "minicoders",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
}
|
||||
},
|
||||
"display_name": "Frederic Guillot",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"type": "user"
|
||||
},
|
||||
"title": "My new issue"
|
||||
},
|
||||
"comment": {
|
||||
"id": 19181022,
|
||||
"created_on": "2015-06-21T14:56:49.749362+00:00",
|
||||
"content": {
|
||||
"markup": "markdown",
|
||||
"raw": null,
|
||||
"html": ""
|
||||
},
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/comments/19181022"
|
||||
}
|
||||
},
|
||||
"user": {
|
||||
"username": "minicoders",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
}
|
||||
},
|
||||
"display_name": "Frederic Guillot",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"type": "user"
|
||||
},
|
||||
"updated_on": null
|
||||
},
|
||||
"repository": {
|
||||
"name": "test-webhook",
|
||||
"owner": {
|
||||
"username": "minicoders",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
}
|
||||
},
|
||||
"display_name": "Frederic Guillot",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"type": "user"
|
||||
},
|
||||
"uuid": "{590fd9c4-0812-425e-8d72-ab08b4fd5735}",
|
||||
"type": "repository",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/avatar/16/"
|
||||
}
|
||||
},
|
||||
"full_name": "minicoders/test-webhook"
|
||||
},
|
||||
"changes": {
|
||||
"status": {
|
||||
"new": "open",
|
||||
"old": "closed"
|
||||
}
|
||||
},
|
||||
"actor": {
|
||||
"username": "minicoders",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
}
|
||||
},
|
||||
"display_name": "Frederic Guillot",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"type": "user"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,193 +0,0 @@
|
|||
{
|
||||
"comment": {
|
||||
"updated_on": null,
|
||||
"content": {
|
||||
"html": "",
|
||||
"markup": "markdown",
|
||||
"raw": null
|
||||
},
|
||||
"created_on": "2015-06-21T15:07:45.787623+00:00",
|
||||
"user": {
|
||||
"display_name": "Frederic Guillot",
|
||||
"username": "minicoders",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
},
|
||||
"type": "user",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
},
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/comments/19181143"
|
||||
}
|
||||
},
|
||||
"id": 19181143
|
||||
},
|
||||
"issue": {
|
||||
"state": "open",
|
||||
"content": {
|
||||
"html": "<p><strong>test</strong></p>",
|
||||
"markup": "markdown",
|
||||
"raw": "**test**"
|
||||
},
|
||||
"milestone": null,
|
||||
"type": "issue",
|
||||
"version": null,
|
||||
"title": "My new issue",
|
||||
"assignee": null,
|
||||
"kind": "bug",
|
||||
"component": null,
|
||||
"priority": "major",
|
||||
"reporter": {
|
||||
"display_name": "Frederic Guillot",
|
||||
"username": "minicoders",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
},
|
||||
"type": "user",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
},
|
||||
"created_on": "2015-06-21T02:17:40.990654+00:00",
|
||||
"edited_on": null,
|
||||
"updated_on": "2015-06-21T15:07:45.775705+00:00",
|
||||
"id": 1,
|
||||
"votes": 0,
|
||||
"repository": {
|
||||
"full_name": "minicoders/test-webhook",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/avatar/16/"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook"
|
||||
}
|
||||
},
|
||||
"type": "repository",
|
||||
"uuid": "{590fd9c4-0812-425e-8d72-ab08b4fd5735}",
|
||||
"name": "test-webhook"
|
||||
},
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1"
|
||||
},
|
||||
"watch": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/watch"
|
||||
},
|
||||
"vote": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/vote"
|
||||
},
|
||||
"comments": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/comments"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/issue/1/my-new-issue"
|
||||
},
|
||||
"attachments": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/issues/1/attachments"
|
||||
}
|
||||
},
|
||||
"watches": 1
|
||||
},
|
||||
"actor": {
|
||||
"display_name": "Frederic Guillot",
|
||||
"username": "minicoders",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
},
|
||||
"type": "user",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
},
|
||||
"repository": {
|
||||
"full_name": "minicoders/test-webhook",
|
||||
"owner": {
|
||||
"display_name": "Frederic Guillot",
|
||||
"username": "minicoders",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
},
|
||||
"type": "user",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
},
|
||||
"type": "repository",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/avatar/16/"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook"
|
||||
}
|
||||
},
|
||||
"name": "test-webhook",
|
||||
"uuid": "{590fd9c4-0812-425e-8d72-ab08b4fd5735}"
|
||||
},
|
||||
"changes": {
|
||||
"responsible": {
|
||||
"old": {
|
||||
"is_system": false,
|
||||
"username": "minicoders",
|
||||
"name": "Frederic Guillot",
|
||||
"billing_external_uuid": null,
|
||||
"id": 1290132
|
||||
},
|
||||
"new": null
|
||||
},
|
||||
"assignee": {
|
||||
"old": {
|
||||
"display_name": "Frederic Guillot",
|
||||
"username": "minicoders",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
}
|
||||
},
|
||||
"type": "user",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}"
|
||||
},
|
||||
"new": null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,182 +0,0 @@
|
|||
{
|
||||
"push": {
|
||||
"changes": [
|
||||
{
|
||||
"forced": false,
|
||||
"old": {
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/refs/branches/master"
|
||||
},
|
||||
"commits": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/commits/master"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/branch/master"
|
||||
}
|
||||
},
|
||||
"name": "master",
|
||||
"target": {
|
||||
"date": "2015-06-21T00:50:37+00:00",
|
||||
"hash": "b6b46580eb9b20a06396f5f697ea1a55cf170e69",
|
||||
"message": "test edited online with Bitbucket for task #5",
|
||||
"type": "commit",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/commit/b6b46580eb9b20a06396f5f697ea1a55cf170e69"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/commits/b6b46580eb9b20a06396f5f697ea1a55cf170e69"
|
||||
}
|
||||
},
|
||||
"parents": [
|
||||
{
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/commit/7251db4b505cbfca3f845ebcff0ec0ddc4003ed8"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/commits/7251db4b505cbfca3f845ebcff0ec0ddc4003ed8"
|
||||
}
|
||||
},
|
||||
"type": "commit",
|
||||
"hash": "7251db4b505cbfca3f845ebcff0ec0ddc4003ed8"
|
||||
}
|
||||
],
|
||||
"author": {
|
||||
"raw": "Frederic Guillot <bob>",
|
||||
"user": {
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type": "user",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"username": "minicoders",
|
||||
"display_name": "Frederic Guillot"
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "branch"
|
||||
},
|
||||
"created": false,
|
||||
"links": {
|
||||
"diff": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/diff/824059cce7667d3f8d8780cc707391be821e0ea6..b6b46580eb9b20a06396f5f697ea1a55cf170e69"
|
||||
},
|
||||
"commits": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/commits?include=824059cce7667d3f8d8780cc707391be821e0ea6exclude=b6b46580eb9b20a06396f5f697ea1a55cf170e69"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/branches/compare/824059cce7667d3f8d8780cc707391be821e0ea6..b6b46580eb9b20a06396f5f697ea1a55cf170e69"
|
||||
}
|
||||
},
|
||||
"new": {
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/refs/branches/master"
|
||||
},
|
||||
"commits": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/commits/master"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/branch/master"
|
||||
}
|
||||
},
|
||||
"name": "master",
|
||||
"target": {
|
||||
"date": "2015-06-21T03:15:08+00:00",
|
||||
"hash": "824059cce7667d3f8d8780cc707391be821e0ea6",
|
||||
"message": "Test another commit #2\n",
|
||||
"type": "commit",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/commit/824059cce7667d3f8d8780cc707391be821e0ea6"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/commits/824059cce7667d3f8d8780cc707391be821e0ea6"
|
||||
}
|
||||
},
|
||||
"parents": [
|
||||
{
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook/commit/24aa9d82bbb6f9a60f743fe538deb0a44622fc98"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/commits/24aa9d82bbb6f9a60f743fe538deb0a44622fc98"
|
||||
}
|
||||
},
|
||||
"type": "commit",
|
||||
"hash": "24aa9d82bbb6f9a60f743fe538deb0a44622fc98"
|
||||
}
|
||||
],
|
||||
"author": {
|
||||
"raw": "Frederic Guillot <bob@localhost>"
|
||||
}
|
||||
},
|
||||
"type": "branch"
|
||||
},
|
||||
"closed": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"repository": {
|
||||
"name": "test-webhook",
|
||||
"owner": {
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type": "user",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"username": "minicoders",
|
||||
"display_name": "Frederic Guillot"
|
||||
},
|
||||
"uuid": "{590fd9c4-0812-425e-8d72-ab08b4fd5735}",
|
||||
"type": "repository",
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/repositories/minicoders/test-webhook"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/minicoders/test-webhook/avatar/16/"
|
||||
}
|
||||
},
|
||||
"full_name": "minicoders/test-webhook"
|
||||
},
|
||||
"actor": {
|
||||
"links": {
|
||||
"self": {
|
||||
"href": "https://bitbucket.org/api/2.0/users/minicoders"
|
||||
},
|
||||
"html": {
|
||||
"href": "https://bitbucket.org/minicoders"
|
||||
},
|
||||
"avatar": {
|
||||
"href": "https://bitbucket.org/account/minicoders/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type": "user",
|
||||
"uuid": "{fc59b45a-f68b-4fc1-ad1f-a17d4f17cd2c}",
|
||||
"username": "minicoders",
|
||||
"display_name": "Frederic Guillot"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue