bugrov / yandex-tracker
PHP SDK 用于操作 Яндекса.Трекер
Requires
- php: >=7.4
- guzzlehttp/guzzle: ^7.0.1
Requires (Dev)
- symfony/var-dumper: ^5.4
This package is auto-updated.
Last update: 2024-08-30 01:55:18 UTC
README
目录
安装
支持通过包管理器安装。
$ composer require bugrov/yandex-tracker dev-master
或者
$ php composer.phar require bugrov/yandex-tracker dev-master
获取令牌
- 访问https://oauth.yandex.ru/
- 点击
注册新应用 - 填写必要字段
- 在
平台部分选择Web服务并点击插入开发URL - 在
你需要哪些数据?部分打开追踪器(tracker)并选择选项:追踪器写入(tracker:write)和从追踪器读取(tracker:read) - 保存后,复制应用程序ID并将其插入获取令牌的URL中
https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения>
- 通过访问Tracker设置页面了解组织标识符。标识符位于API的ID组织字段中。它将在初始化时使用。
初始化
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>');
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { // получить информацию о пользователе $req = $api->user() ->get('1234567890') ->send(); // получить тело ответа var_dump($req->getResponse()); // получить HTTP-код ответа var_dump($req->getStatusCode()); // получить определенное поле из ответа var_dump($req->getField('email')); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
成功时,SDK返回对象\BugrovWeb\YandexTracker\Api\ClientResponse。
对象ClientResponse的方法
public function getResponse()
返回包含响应体的数组
public function getField(string $fieldName)
根据键返回响应体中的特定字段
public function getHeaders(): array
返回响应头部的数组
public function getHeader(string $header)
根据键返回特定的头部
public function getStatusCode(): int
返回响应的HTTP代码
在SDK调用错误的情况下,根据情况返回异常。
使用Yandex.Tracker
下面在可用方法块中描述的所有方法都是通过链式调用(即Method Chaining)调用的
$api->issue()->edit('TEST-1')->description('Simple Desc')->parent(['key' => 'ORG-1'])->send();
send();方法通过向API发送请求来结束调用链
任务
获取任务参数
请求允许获取任务信息。
$api->issue()->get(string $issueId)
$issueId - 当前任务的标识符或密钥。字符串
可用方法
public function expand(string $field)
$field的可能的值
Issue::FIELD_TRANSITIONS— 生命周期过渡Issue::FIELD_ATTACHMENTS— 附件
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->get('TEST-1') ->expand(\BugrovWeb\YandexTracker\Api\Issue::FIELD_ATTACHMENTS) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
编辑任务
请求允许修改任务。
$api->issue()->edit(string $issueId)
$issueId - 当前任务的标识符或密钥。字符串
可用方法
public function version(int $versionNumber)
public function summary(string $name)
public function parent(string|array $parent)
$parent数组字段
id- 父任务标识符。字符串key- 父任务密钥。字符串
public function description(string $text)
public function sprint(array $sprintArray)
$sprintArray数组字段
id- 司令标识符。可以通过请求获取关于司令的信息
public function type(array|string|int $issueType)
$issueType数组字段
id- 任务类型标识符。字符串key- 任务类型密钥。字符串
public function priority(array|string|int $priority)
$priority数组字段
id- 优先级标识符。字符串key- 优先级密钥。字符串
public function followers(array $followersArray)
$followersArray数组字段
id- 员工标识符。字符串
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->edit('TEST-2') ->description('Simple Desc') ->parent(['key' => 'TEST-1']) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
创建任务
请求允许创建任务。
$api->issue()->create()
可用方法
public function summary(string $name)
public function queue(array|string|int $queue)
$queue数组字段
id- 队列标识符。字符串key- 队列密钥。字符串
public function parent(string|array $parent)
parent数组字段
id- 父任务标识符。字符串key- 父任务密钥。字符串
public function description(string $text)
public function sprint(array $sprintArray)
public function type(array|string|int $issueType)
$issueType数组字段
id- 任务类型标识符。字符串key- 任务类型密钥。字符串
public function priority(array|string|int $priority)
$priority数组字段
id- 优先级标识符。字符串key- 优先级密钥。字符串
public function followers(array $followersArray)
$followersArray数组字段
id- 员工标识符。字符串
public function assignee(array|string $assignee)
assignee数组字段
id- 员工标识符。字符串
public function unique(string $uniqueField)
public function attachmentIds(array|string[] $attachments)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->create() ->queue('TEST') ->summary('Тестовая задача') ->description('Тестовая задача') ->type('task') ->assignee('1707400915') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
将任务移动到其他队列
请求允许将任务移动到另一个队列。
$api->issue()->move(string $issueId)
$issueId - 当前任务的标识符或密钥。字符串
可用方法
public function queue(string $queueId)
public function notify(bool $notify)
true- (默认)任务字段中指定的用户将收到通知false- 用户不会收到通知
public function notifyAuthor(bool $notify)
true- 作者将收到通知false- (默认) – 作者不会收到通知
public function moveAllFields(bool $move)
true- 如果新队列中存在相应的版本、组件、项目,则进行迁移false- (默认) – 清除版本、组件、项目
public function initialStatus(bool $clear)
true- 将重置状态false- (默认) – 状态将保持不变
public function expand(string $field)
$field的可能的值
Issue::FIELD_ATTACHMENTS— 附件Issue::FIELD_COMMENTS— 评论Issue::FIELD_WORKFLOW— 任务工作流程Issue::FIELD_TRANSITIONS— 生命周期过渡
public function summary(string $name)
public function parent(string|array $parent)
$parent数组字段
id- 父任务标识符。字符串key- 父任务密钥。字符串
public function description(string $text)
public function sprint(array $sprintArray)
$sprintArray数组字段
id- 司令标识符。可以通过请求获取关于司令的信息
public function type(array|string|int $issueType)
$issueType数组字段
id- 任务类型标识符。字符串key- 任务类型密钥。字符串
public function priority(array|string|int $priority)
$priority数组字段
id- 优先级标识符。字符串key- 优先级密钥。字符串
public function followers(array $followersArray)
$followersArray数组字段
id- 员工标识符。字符串
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->move('TEST-2') ->queue('ORG') ->notify(true) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取任务数量
该请求允许您了解满足您请求条件的工作任务数量。
$api->issue()->getCount()
可用方法
public function filter(array $filter)
public function query(string $filter)
您可以使用 构建器 创建基于语言请求的Yandex Tracker查询请求。
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->getCount() ->query('queue: TEST') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
查找任务
请求允许您获取满足指定标准的工作任务列表。
$api->issue()->search()
可用方法
public function order(string $field)
public function expand(string $field)
$field的可能的值
Issue::FIELD_TRANSITIONS— 生命周期过渡Issue::FIELD_ATTACHMENTS— 附件
public function perPage(int $count)
public function page(int $pageNumber)
public function scrollType(string $scrollType)
允许的 $scrollType 值
Issue::SCROLL_TYPE_SORTED- 使用请求中指定的排序Issue::SCROLL_TYPE_UNSORTED- 不使用排序
public function perScroll(int $count)
public function scrollTTLMillis(int $milliseconds)
public function scrollId(string $scrollId)
public function scrollToken(string $scrollToken)
public function filter(array $filter)
public function query(string $filter)
您可以使用 构建器 创建基于语言请求的Yandex Tracker查询请求。
public function keys(string $issueKeys)
public function queue(string $queue)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->search() ->filter(['queue' => 'TEST']) ->order('+createdAt') ->scrollType('sorted') ->perScroll(2) ->scrollTTLMillis(10000) ->send(); var_dump($req->getResponse()); $xScrollId = $req->getHeader('X-Scroll-Id'); $xScrollToken = $req->getHeader('X-Scroll-Token'); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
释放滚动资源
请求允许在查看搜索快照后释放请求中的资源。
$api->issue()->clearSearch(array $tokens)
$tokens - 类型为 scrollId => scrollToken 的数组,其中
scrollId- 结果滚动页面的标识符。标识符的值从对 请求 的响应的X-Scroll-Id标头中获取scrollToken- 认证请求属于当前用户的令牌。标识符的值从对 请求 的响应的 X-Scroll-Token 标头中获取
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->clearSearch([$xScrollId => $xScrollToken]) ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取优先级
请求允许您获取任务优先级的列表。
$api->issue()->getPriorities()
可用方法
public function localized(bool $localized)
允许的 $localized 值
true- 响应中仅包含用户语言的任务优先级描述。默认值。false- 响应中包含所有语言的优先级描述。
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->getPriorities() ->localized(false) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取转换
请求允许您获取可能的任务过渡列表。通过指定任务标识符或键选择任务。
$api->issue()->getTransitions(string $issueId)
$issueId - 当前任务的标识符或密钥。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->getTransitions('TEST-1') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
执行状态转换
请求允许将任务转换为新的状态。
$api->issue()->newTransition(string $issueId, string $transitionId)
$issueId - 当前任务的标识符或键。字符串 $transitionId - 过渡标识符。字符串
可用方法
public function comment(string $text)
public function <Поле задачи>($key)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->newTransition('TEST-1', 'resolve') ->comment('Переход в новый статус') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取任务变更历史
请求允许获取任务变更历史。
$api->issue()->changelog(string $issueId)
$issueId - 当前任务的标识符或密钥。字符串
可用方法
public function id(string $changeId)
public function perPage(int $count)
public function field(string $changeParamId)
public function type(string $key)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->changelog('TEST-1') ->type('IssueMoved') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
关联任务
请求允许在两个任务之间建立联系。
$api->issue()->link(string $issueId)
$issueId - 当前任务的标识符或密钥。字符串
可用方法
public function relationship(string $type)
允许的 $type 值
Issue::REL_RELATES- 简单关系Issue::REL_IS_DEPENDENT_BY- 当前任务是阻塞器Issue::REL_DEPENDS_ON- 当前任务依赖于所连接的Issue::REL_IS_SUBTASK_FOR- 当前任务是所连接任务的子任务Issue::REL_IS_PARENT_TASK_FOR- 当前任务是所连接任务的父任务Issue::REL_DUPLICATES- 当前任务重复所连接的任务Issue::REL_IS_DUPLICATED_BY- 所连接任务重复当前任务Issue::REL_IS_EPIC_OF- 当前任务是所连接任务的史诗。此类型的关联只能为“史诗”类型的任务设置Issue::REL_HAS_EPIC- 所连接任务是当前任务的史诗。此类型的关联只能为“史诗”类型的任务设置
public function issue(string $issueId)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->link('TEST-2') ->relationship(\BugrovWeb\YandexTracker\Api\Issue::REL_IS_PARENT_TASK_FOR) ->issue('TEST-3') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取任务关联
请求允许获取任务关联的信息。
$api->issue()->getLinks(string $issueId)
$issueId - 当前任务的标识符或密钥。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->getLinks('TEST-1') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
删除任务关联
请求允许删除任务与另一个任务之间的关联。
$api->issue()->deleteLink(string $issueId, int $linkId)
$issueId - 当前任务的标识符或密钥。字符串
$linkId - 与其他任务关联的标识符。数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->issue() ->deleteLink('TEST-1', 1) ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
检查列表
创建检查列表或添加条目
$api->checklist()->add(string $issueId)
$issueId - 任务标识符或键。字符串
可用方法
public function text(string $text)
public function checked(bool $isChecked)
允许的 $isChecked 值
true- 项目标记为已完成false- 项目未标记为已完成
public function assignee(string $assignee)
public function deadline(array $deadlineArray)
数组 $deadlineArray 的字段
date- 日期截止日期的格式YYYY-MM-DDThh:mm:ss.sss±hhmm。日期deadlineType- 参数deadline的数据类型。字符串
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->checklist() ->add('TEST-1') ->text('Почистить зубы') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取检查列表参数
请求允许获取任务中的检查表参数。
$api->checklist()->get(string $issueId)
$issueId - 任务标识符或键。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->checklist() ->get('TEST-1') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
编辑检查列表
请求允许编辑任务中的检查表项目。
$api->checklist()->edit(string $issueId, string $checklistId)
$issueId - 任务标识符或键。字符串
$checklistId - 检查表项标识符。字符串
可用方法
public function text(string $text)
public function checked(bool $isChecked)
允许的 $isChecked 值
true- 项目标记为已完成false- 项目未标记为已完成
public function assignee(string $assignee)
public function deadline(array $deadlineArray)
数组 $deadlineArray 的字段
date- 日期截止日期的格式YYYY-MM-DDThh:mm:ss.sss±hhmm。日期deadlineType- 参数deadline的数据类型。字符串
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->checklist() ->edit('TEST-1', '6365f6bcb399bd4dd2929f19') ->text('Умыться') ->checked(true) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
删除检查列表
请求允许从任务中删除检查表。
$api->checklist()->delete(string $issueId)
$issueId - 任务标识符或键。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->checklist() ->delete('TEST-1') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
项目
创建项目
请求允许创建项目。
$api->project()->create()
可用方法
public function name(string $name)
public function queues(string $issueQueue)
public function description(string $text)
public function lead(string|int $lead)
public function status(string $stage)
允许的 $stage 值
Project::STAGE_DRAFT- 草稿Project::STAGE_IN_PROGRESS- 进行中Project::STAGE_LAUNCHED- 已启动Project::STAGE_POSTPONED- 已推迟
public function startDate(string $date)
public function endDate(string $date)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->project() ->create() ->name('ORG проект') ->queues('ORG') ->status(\BugrovWeb\YandexTracker\Api\Project::STAGE_LAUNCHED) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取项目参数
请求允许获取项目信息。
$api->project()->get(int $projectId)
$projectId - 项目标识符。数字
可用方法
public function expand(string $field)
$field的可能的值
Project::FIELD_QUEUES- 项目队列
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->project() ->get(1) ->expand(\BugrovWeb\YandexTracker\Api\Project::FIELD_QUEUES) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取所有项目列表
请求允许获取组织所有项目的列表。
$api->project()->getAll()
可用方法
public function expand(string $field)
$field的可能的值
Project::FIELD_QUEUES- 项目队列
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->project() ->getAll() ->expand(\BugrovWeb\YandexTracker\Api\Project::FIELD_QUEUES) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取项目队列列表
请求允许获取任务属于项目的队列列表。
$api->project()->getQueues(int $projectId)
$projectId - 项目标识符。数字
可用方法
public function expand(string $field)
$field的可能的值
Project::FIELD_ALL- 队列的所有参数Project::FIELD_PROJECTS- 组织的所有项目Project::FIELD_COMPONENTS- 队列的组件Project::FIELD_VERSIONS- 队列的版本Project::FIELD_TYPES- 队列任务类型Project::FIELD_TEAM- 队列团队成员Project::FIELD_WORKFLOWS- 队列的生命周期及其任务类型Project::FIELD_FIELDS- 队列的必填字段Project::FIELD_NOTIFICATIONS- 队列任务通知的字段Project::FIELD_ISSUE_CONFIG- 队列任务的设置Project::FIELD_ENABLED_FEATURES- 队列集成设置Project::FIELD_SIGNATURE_SETTINGS- 队列邮箱信息:地址、昵称和签名
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->project() ->getQueues(1) ->expand(\BugrovWeb\YandexTracker\Api\Project::FIELD_PROJECTS) ->send(); dump($req->getResponse()); } catch (\Exception $exception) { dump($exception->getMessage()); }
修改项目
请求允许更新项目信息。
$api->project()->update(int $projectId)
$projectId - 项目标识符。数字
可用方法
public function version(int $versionNumber)
public function expand(string $field)
$field的可能的值
Project::FIELD_QUEUES- 项目队列
public function queues(string $issueQueue)
public function name(string $name)
public function description(string $text)
public function lead(string|int $lead)
public function status(string $stage)
允许的 $stage 值
Project::STAGE_DRAFT- 草稿Project::STAGE_IN_PROGRESS- 进行中Project::STAGE_LAUNCHED- 已启动Project::STAGE_POSTPONED- 已推迟
public function startDate(string $date)
public function endDate(string $date)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->project() ->update(1) ->version(2) ->name('ORG PROJECT 1') ->expand(\BugrovWeb\YandexTracker\Api\Project::FIELD_QUEUES) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
删除项目
请求允许删除项目。
$api->project()->delete(int $projectId)
$projectId - 项目标识符。数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->project() ->delete(1) ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
评论
添加评论
$api->comment()->add(string $issueId)
$projectId - 当前任务的标识符或键。字符串
可用方法
public function isAddToFollowers(bool $add)
public function text(string $comment)
public function attachmentIds(array|string[] $attachments)
public function summonees(array $summonees)
public function maillistSummonees(array|string[] $mailList)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->comment() ->add('TEST-1') ->text('Тестовый комментарий') ->attachmentIds(['1', '2']) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取任务评论
请求允许获取任务评论列表。
$api->comment()->get(string $issueId)
$issueId - 当前任务的标识符或密钥。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->comment() ->get('TEST-1') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
编辑评论
请求允许编辑评论。
$api->comment()->edit(string $issueId, string|int $commentId)
$issueId - 当前任务的标识符或密钥。字符串
$commentId - 评论的唯一标识符,以数值格式(id)或字符串格式(longId)表示。字符串或数字
可用方法
public function text(string $comment)
public function attachmentIds(array|string[] $attachments)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->comment() ->edit('TEST-1', 1) ->text('Первый коммент') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
删除评论
请求允许删除任务评论。
$api->comment()->delete(string $issueId, string|int $commentId)
$issueId - 当前任务的标识符或密钥。字符串
$commentId - 评论的唯一标识符,以数值格式(id)或字符串格式(longId)表示。字符串或数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->comment() ->delete('TEST-1', 1) ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
宏
获取队列宏
请求允许获取所有队列宏的参数。
$api->macros()->getAll(string $queueId)
$issueId - 队列的标识符或键。队列键对字符大小写敏感。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->macros() ->getAll('TEST') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取宏
请求允许获取宏的参数。
$api->macros()->get(string $queueId, string $macrosId)
$issueId - 队列的标识符或键。队列键对字符大小写敏感。字符串
$macrosId - 宏的标识符。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->macros() ->get('TEST', '1') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
创建宏
请求允许创建宏。
$api->macros()->post(string $queueId)
$queueId - 队列的标识符或键。队列键对字符大小写敏感。字符串
可用方法
public function name(string $name)
public function body(string|array $body)
public function fieldChanges(array $issueFields)
$issueFields 数组字段
field- 任务字段的标识符。有关任务字段的全列表,请参阅任务字段列表。字符串value- 任务字段的值。字符串
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->macros() ->post('TEST') ->name('Add tag TEST') ->body("{% note info %}\n\nДобавится тэг TEST\n\n{% endnote %}") ->fieldChanges(['field' => 'tags', 'value' => 'TEST']) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
编辑宏
请求允许更改宏的参数。
$api->macros()->patch(string $queueId, string $macrosId)
$queueId - 队列的标识符或键。队列键对字符大小写敏感。字符串
$macrosId - 宏的标识符。字符串
可用方法
public function name(string $name)
public function body(string|array $body)
public function fieldChanges(array $issueFields)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->macros() ->patch('TEST', 1) ->name('Add tag TEST2') ->fieldChanges([ 'replace' => [ 'target' => [ 'field' => 'tags', 'value' => 'TEST', ], 'replacement' => [ 'field' => 'tags', 'value' => 'TEST2', ] ] ]) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
删除宏
请求允许删除宏。
$api->macros()->delete(string $queueId, string $macrosId)
$queueId - 队列的标识符或键。队列键对字符大小写敏感。字符串
$macrosId - 宏的标识符。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->macros() ->delete('TEST', 1) ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
外部关联
获取外部应用程序列表
请求允许获取可以创建连接的外部应用程序列表。
$api->external()->getApplications()
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->external() ->getApplications() ->send(); dump($req->getResponse()); } catch (\Exception $exception) { dump($exception->getMessage()); }
获取任务外部关联列表
请求允许获取任务与外部应用程序对象的连接列表。
$api->external()->getLinks(string $issueId)
$issueId - 当前任务的标识符或密钥。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->external() ->getLinks('TEST-1') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
添加外部关联
请求允许为外部应用程序对象创建连接。
$api->external()->addLink(string $issueId)
$issueId - 当前任务的标识符或密钥。字符串
可用方法
public function backlink(bool $needRequest)
public function relationship(string $type)
public function key(string $objectKey)
public function origin(string $appId)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->external() ->addLink('TEST-1') ->relationship('RELATES') ->key('test') ->origin('test') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
删除外部关联
请求允许删除任务与外部应用程序对象的连接。
$api->external()->deleteLink(string $issueId, string $externalLinkId)
$issueId - 当前任务的标识符或密钥。字符串
$externalLinkId - 外部连接标识符。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->external() ->deleteLink('TEST-1', 'test') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
附加文件
获取附加文件列表
请求允许获取附加到任务及其下评论的文件列表。
$api->attachment()->getAll(string $issueId)
$issueId - 任务标识符或键。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->attachment() ->getAll('TEST-1') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
下载文件
请求允许下载附加到任务的文件。
$api->attachment()->get(string $issueId, string|int $attachmentId, string $filename)
$issueId - 任务标识符或键。字符串
$attachmentId - 文件的唯一标识符。字符串或数字
$filename - 文件名。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->attachment() ->get('TEST-1', 1, 'abcdefghijklmopqrstuvwxyz.jpg') ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
下载缩略图
请求允许获取附加到任务的图形文件的缩略图。
$api->attachment()->getPreview(string $issueId, string|int $attachmentId)
$issueId - 任务标识符或键。字符串
$attachmentId - 附加文件的唯一标识符。字符串或数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->attachment() ->getPreview('TEST-1', 1) ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
附加文件
请求允许将文件附加到任务。
$api->attachment()->post(string $issueId, string|resource $file)
$issueId - 任务标识符或键。字符串
$file - 文件。支持的类型
string- 服务器上文件的路径resource- 已打开写入模式的文件描述符。例如:fopen('test.jpg', 'r')
可用方法
public function filename(string $newName)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->attachment() ->post('TEST-1', 'test.jpg') ->filename('new_test.jpg') ->send(); var_dump($req->getStatusCode()); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
上传临时文件
请求允许上传临时文件。使用此请求预先在 Tracker 中上传文件,然后在创建任务或评论时附加它。
$api->attachment()->temp(string|resource $file)
$file - 文件。支持的类型
string- 服务器上文件的路径resource- 已打开写入模式的文件描述符。例如:fopen('test.jpg', 'r')
可用方法
public function filename(string $newName)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->attachment() ->temp('test.jpg') ->filename('Тестовый файл.jpg') ->send(); var_dump($req->getStatusCode()); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
删除文件
请求允许删除附加的文件。
$api->attachment()->delete(string $issueId, string|int $attachmentId)
$issueId - 任务标识符或键。字符串
$attachmentId - 文件的唯一标识符。字符串或数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->attachment() ->delete('TEST-1', '5') ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
队列
创建队列
请求允许创建队列。
$api->queue()->create()
可用方法
public function key(string $queueKey)
public function name(string $name)
public function lead(string $login)
public function defaultType(string $type)
public function defaultPriority(string $priority)
public function issueTypesConfig(array $configList)
$configList 数组数组的字段
issueType- 任务类型的键。字符串workflow- 工作流的标识符。字符串。跟踪器中的预定义值Queue::WORKFLOW_SUPPORT- 支持Queue::WORKFLOW_SOFTWARE_DEV- 软件开发Queue::WORKFLOW_DOCUMENTS_APPROVAL- 文档审批Queue::WORKFLOW_GOAL_MANAGEMENT- 目标管理Queue::WORKFLOW_HUMAN_RESOURCES- 人力资源Queue::WORKFLOW_DEV_WITH_KANBAN- 基于看板的开发Queue::WORKFLOW_MANUFACTURE- 制造Queue::WORKFLOW_MARKETING- 市场Queue::WORKFLOW_OUTSOURCE_SOFTWARE_DEV- 外包软件开发Queue::WORKFLOW_QUICK_START- 快速开始Queue::WORKFLOW_RECRUITING- 招聘Queue::WORKFLOW_DEV_WITH_SCRUM- 基于Scrum的开发Queue::WORKFLOW_OFFERING_SERVICES- 提供服务Queue::WORKFLOW_TWO_LINE_SUPPORT- 双线支持
resolutions- 可能的解决方案标识符或键的数组。数组
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->queue() ->create() ->key('SUPER') ->name('Super') ->lead('123456789') ->defaultType('task') ->defaultPriority('normal') ->issueTypesConfig([ [ 'issueType' => 'task', 'workflow' => \BugrovWeb\YandexTracker\Api\Queue::WORKFLOW_SOFTWARE_DEV, 'resolutions' => ['fixed', 'wontFix', 'duplicate', 'later', 'overfulfilled', 'successful', 'dontDo'] ], [ 'issueType' => 'bug', 'workflow' => \BugrovWeb\YandexTracker\Api\Queue::WORKFLOW_SUPPORT, 'resolutions' => ['fixed', 'duplicate', 'wontFix', 'cantReproduce', 'later', 'overfulfilled', 'dontDo'] ] ]) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取队列参数
请求允许获取队列信息。
$api->queue()->get(string|int $queueId)
$queueId - 队列标识符或键。队列键对大小写敏感。字符串或数字
可用方法
public function expand(string $field)
$field的可能的值
Queue::FIELD_ALL- 响应将包括队列的所有附加字段Queue::FIELD_PROJECTS- 队列的项目Queue::FIELD_COMPONENTS- 队列的组件Queue::FIELD_VERSIONS- 队列的版本Queue::FIELD_TYPES- 任务类型Queue::FIELD_TEAM- 队列成员列表Queue::FIELD_WORKFLOWS- 生命周期列表Queue::FIELD_FIELDS- 队列的必填字段Queue::FIELD_ISSUE_CONFIG- 队列任务类型的设置
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->queue() ->get('SUPER') ->expand(\BugrovWeb\YandexTracker\Api\Queue::FIELD_ISSUE_CONFIG) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取队列列表
请求允许获取可用队列列表。
$api->queue()->getAll()
可用方法
public function expand(string $field)
$field的可能的值
Queue::FIELD_PROJECTS- 队列的项目Queue::FIELD_COMPONENTS- 队列的组件Queue::FIELD_VERSIONS- 队列的版本Queue::FIELD_TYPES- 任务类型Queue::FIELD_TEAM- 队列成员列表Queue::FIELD_WORKFLOWS- 生命周期列表
public function perPage(int $count)
public function page(int $pageNumber)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->queue() ->getAll() ->expand(\BugrovWeb\YandexTracker\Api\Queue::FIELD_ISSUE_CONFIG) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取队列版本
请求允许获取队列版本信息。
$api->queue()->getVersions(string|int $queueId)
$queueId - 队列标识符或键。队列键对大小写敏感。字符串或数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->queue() ->getVersions('TEST') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取队列必填字段
请求允许获取队列必填字段信息。
$api->queue()->getFields(string|int $queueId)
$queueId - 队列标识符或键。队列键对大小写敏感。字符串或数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->queue() ->getFields('TEST') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
删除队列
请求允许删除队列。
$api->queue()->delete(string|int $queueId)
$queueId - 队列标识符或键。队列键对大小写敏感。字符串或数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->queue() ->delete('SUPER') ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
恢复队列
请求允许恢复已删除的队列。
$api->queue()->restore(string|int $queueId)
$queueId - 队列标识符或键。队列键对大小写敏感。字符串或数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->queue() ->restore('SUPER') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
从队列中删除标签
请求允许从队列中删除标签。
$api->queue()->deleteTag(string|int $queueId)
$queueId - 队列标识符或键。队列键对大小写敏感。字符串或数字
可用方法
public function tag(string $tagName)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->queue() ->deleteTag('SUPER') ->tag('TEST') ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
创建自动操作
请求允许创建自动操作。
$api->queue()->createAutoAction(string|int $queueId)
$queueId - 队列标识符或键。队列键对大小写敏感。字符串或数字
可用方法
public function name(string $name)
public function filter(array $filter)
public function query(string $query)
您可以使用 构建器 创建基于语言请求的Yandex Tracker查询请求。
public function actions(array $issueActions)
public function active(bool $isActive)
$isActive 的可接受值
true- 活跃的false- 不活跃的
public function enableNotifications(bool $enable)
$enable 的可接受值
true- 发送false- 不发送
public function intervalMillis(int $milliseconds)
public function calendar(array $period)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->queue() ->createAutoAction('TEST') ->name('Тестовое действие') ->filter([ 'priority' => 'critical', 'status' => 'inProgress', ]) ->actions([ 'type' => 'Transition', 'status' => [ 'key' => 'needInfo' ], ]) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取自动操作参数
请求允许获取自动操作信息。
$api->queue()->getAutoAction(string|int $queueId, int $autoActionId)
$queueId - 队列标识符或键。队列键对大小写敏感。字符串或数字
$autoActionId - 自动操作标识符。数字
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->queue() ->getAutoAction('TEST', 1) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
创建触发器
请求允许创建触发器。
$api->queue()->createTrigger(string|int $queueId)
$queueId - 队列标识符或键。队列键对大小写敏感。字符串或数字
可用方法
public function name(string $name)
public function actions(array $actionsList)
public function conditions(array $conditionsList)
public function active(bool $isActive)
$isActive 的可接受值
true- 活跃的false- 不活跃的
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->queue() ->createTrigger('TEST') ->name('Тестовый триггер') ->actions([ 'type' => 'Transition', 'status' => [ 'key' => 'needInfo' ], ]) ->conditions([ 'type' => 'CommentFullyMatchCondition', 'word' => 'Нужны уточнения', ]) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取触发器参数
请求允许获取队列触发器信息。
$api->queue()->getTrigger(string|int $queueId, int $triggerId)
$queueId - 队列标识符或键。队列键对大小写敏感。字符串或数字
$triggerId - 触发器标识符。数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->queue() ->getTrigger('TEST', 1) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
任务板
获取所有任务板参数
请求允许获取组织用户创建的所有任务板的参数。
$api->board()->getAll()
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->getAll() ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取任务板参数
请求允许获取任务板的参数。
$api->board()->get(int $boardId)
$boardId - 任务板标识符。数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->get(1) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
创建任务板
请求允许创建任务板。
$api->board()->post()
可用方法
public function name(string $name)
public function defaultQueue(array|string|int $queue)
$queue数组字段
id- 队列标识符。字符串key- 队列密钥。字符串
public function boardType(string $type)
$type 的可能值
Board::BOARD_TYPE_DEFAULT- 简单的Board::BOARD_TYPE_SCRUM- ScrumBoard::BOARD_TYPE_KANBAN- Kanban
public function filter(array $filterList)
数组 $filterList 的字段
<参数1键>- 字段键,它是任务选择任务板参数。完整字段列表:[链接](https://tracker.yandex.ru/admin/fields)。字符串<参数2键>- 字段键的数组,它是任务选择任务板参数。完整字段列表:[链接](https://tracker.yandex.ru/admin/fields)。数组
public function orderBy(string $field)
public function orderAsc(bool $field)
$field 的可接受值
true- 按字段值递增false- 按字段值递减
public function query(string $filter)
您可以使用 构建器 创建基于语言请求的Yandex Tracker查询请求。
public function useRanking(bool $use)
$use 的可接受值
true- 允许false- 禁止
public function country(array $countryInfo)
数组 $countryInfo 的字段
id- 国家标识符。字符串
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->post() ->name('Доска проектов TEST') ->defaultQueue('TEST') ->boardType(\BugrovWeb\YandexTracker\Api\Board::BOARD_TYPE_KANBAN) ->filter([ 'queue' => 'TEST' ]) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
编辑任务板
请求允许更改任务板的参数。
$api->board()->patch(int $boardId)
$boardId - 任务板标识符。数字
可用方法
public function name(string $name)
public function columns(array $columnsInfo)
数组 $columnsInfo 的字段
id- 列标识符。字符串name- 列名称。字符串statuses- 将进入列的任务状态键。所有任务状态列表:[链接](https://tracker.yandex.ru/admin/statuses)。字符串
public function filter(array $filterList)
数组 $filterList 的字段
<参数1键>- 字段键,它是任务选择任务板参数。完整字段列表:[链接](https://tracker.yandex.ru/admin/fields)。字符串<参数2键>- 字段键的数组,它是任务选择任务板参数。完整字段列表:[链接](https://tracker.yandex.ru/admin/fields)。数组
public function orderBy(string $field)
public function orderAsc(bool $field)
$field 的可接受值
true- 按字段值递增false- 按字段值递减
public function query(string $filter)
您可以使用 构建器 创建基于语言请求的Yandex Tracker查询请求。
public function useRanking(bool $use)
$use 的可接受值
true- 允许false- 禁止
public function country(array $countryInfo)
数组 $countryInfo 的字段
id- 国家标识符。字符串
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->patch(1) ->columns([ [ 'id' => 1, 'name' => 'Бэклог', 'statuses' => ['backlog'] ], [ 'id' => 2, 'name' => 'Открыт/Новые', 'statuses' => ['open', 'new', 'needEstimate', 'newGoal'] ], [ 'id' => 3, 'name' => 'В работу', 'statuses' => ['rc', 'onHold', 'selectedForDev', 'readyForTest', 'onHold', 'confirmed'] ], [ 'id' => 4, 'name' => 'Запущено', 'statuses' => ['inProgress', 'testing', 'inReview'] ], [ 'id' => 5, 'name' => 'Требует уточнений', 'statuses' => ['needInfo', 'needAcceptance', 'documentsPrepared'] ], [ 'id' => 6, 'name' => 'Почти готово', 'statuses' => ['demoToCustomer', 'firstSupportLine', 'secondSupportLine', 'resultAcceptance'] ], [ 'id' => 7, 'name' => 'Готово', 'statuses' => ['tested', 'resolved', 'closed', 'cancelled', 'achieved', 'blockedGoal'] ] ]) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
删除任务板
请求允许删除任务板。
$api->board()->delete(int $boardId)
$boardId - 任务板标识符。数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->delete(1) ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取所有列参数
请求允许获取所有任务板列的参数。
$api->board()->getColumns(int $boardId)
$boardId - 任务板标识符。数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->getColumns(1) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取列参数
请求允许获取任务板列的参数。
$api->board()->getColumn(int $boardId, int $columnId)
$boardId - 任务板标识符。数字
$columnId - 列标识符。数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->getColumn(1, 1) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
创建列
请求允许在任务板上创建列。
$api->board()->postColumn(int $boardId)
$boardId - 任务板标识符。数字
可用方法
public function name(string $name)
public function statuses(array $statusesList)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->postColumn(8) ->name('Отмена') ->statuses(['cancelled', 'blockedGoal']) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
编辑列
请求允许更改列的参数。
$api->board()->patchColumn(int $boardId, int $columnId)
$boardId - 任务板标识符。数字
$columnId - 列标识符。数字
可用方法
public function name(string $name)
public function statuses(array $statusesList)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->patchColumn(8, 14) ->name('Отмена/Блок') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
删除列
请求允许删除列。
$api->board()->deleteColumn(int $boardId, int $columnId)
$boardId - 任务板标识符。数字
$columnId - 列标识符。数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->deleteColumn(8, 14) ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取所有冲刺
此请求允许获取看板冲刺的参数。
$api->board()->getSprints(int $boardId)
$boardId - 看板标识符。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->getSprints(1) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取冲刺
此请求允许获取冲刺参数。
$api->board()->getSprint(string $sprintId)
$sprintId - 冲刺标识符。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->getSprint(1) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
创建冲刺
此请求允许创建冲刺。
$api->board()->postSprint()
可用方法
public function name(string $name)
public function board(string $boardId)
public function startDate(string $date)
public function endDate(string $date)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->board() ->postSprint() ->name('Тестовый спринт') ->board(1) ->startDate('2022-01-01') ->endDate('2022-12-31') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
国家
获取国家列表
此请求允许获取国家列表
$api->country()->getAll()
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->country() ->getAll() ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
组件
获取组件列表
此请求允许获取组织用户创建的所有组件列表。
$api->component()->getAll()
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->component() ->getAll() ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
导入
导入任务
使用此请求,您可以将在其他项目管理系统中创建的任务导入到Tracker。
$api->import()->ticket()
可用方法
public function queue(string $key)
public function summary(string $name)
public function createdAt(string $date)
public function createdBy(string|int $user)
public function key(string $key)
public function updatedAt(string $date)
public function updatedBy(string|int $user)
public function resolvedAt(string $date)
public function resolvedBy(string|int $user)
public function status(int $statusId)
public function deadline(string $date)
public function resolution(int $resolutionId)
public function type(int $typeId)
public function description(string $text)
public function start(string $date)
public function end(string $date)
public function assignee(string|int $user)
public function priority(int $priorityId)
public function affectedVersions(array $versionsId)
public function fixVersions(array $versionsId)
public function components(array $componentsId)
public function tags(array $tags)
public function sprint(array $sprintsId)
public function followers(array $followersId)
public function access(array $usersId)
public function unique(string $uniqueId)
public function followingMaillists(array $maillistsId)
public function originalEstimation(int $milliseconds)
public function estimation(int $milliseconds)
public function spent(int $milliseconds)
public function storyPoints(float $storyPoints)
public function votedBy(array $usersId)
public function favoritedBy(array $usersId)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->import() ->ticket() ->queue('TEST') ->summary('Импортированная задача') ->createdAt('2022-11-10T10:00:00') ->createdBy('123456789') ->key('TEST-777') ->description('Импортированная задача по API') ->tags(['test', 'api']) ->followers(['222222222']) ->originalEstimation(3600000) ->estimation(1200000) ->spent(2400000) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
将文件附加到任务
使用此请求,您可以导入与任务相关联的文件。
$api->import()->attachIssueFile(string $issueId, string|resource $file)
$issueId - 将附加文件的任务的键
$file - 文件。支持的类型
string- 服务器上文件的路径resource- 已打开写入模式的文件描述符。例如:fopen('test.jpg', 'r')
可用方法
public function filename(string $fileName)
public function createdAt(string $date)
public function createdBy(string $user)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->import() ->attachIssueFile('TEST-777', fopen('test.jpg', 'r')) ->filename('import.jpg') ->createdAt('2022-11-10T10:00:00') ->createdBy('123456789') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
将文件附加到评论
使用此请求,您可以导入与任务评论相关联的文件。
备注:尽可能使用常规的将文件附加到评论的操作。
$api->import()->attachCommentFile(string $issueId, string|int $commentId, string|resource $file)
$issueId - 将附加文件的任务的键
$commentId - 将文件附加到的任务评论的键 $file - 文件。支持的类型
string- 服务器上文件的路径resource- 已打开写入模式的文件描述符。例如:fopen('test.jpg', 'r')
可用方法
public function filename(string $fileName)
public function createdAt(string $date)
public function createdBy(string $user)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->import() ->attachCommentFile('TEST-777', '11', 'test.jpg') ->filename('import.jpg') ->createdAt('2022-11-12T03:25:15.851+0000') ->createdBy('123456789') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
导入评论
使用此请求,您可以导入任务评论到Tracker。
$api->import()->comments(string $issueId)
$issueId - 将文件附加到的任务的键。字符串
可用方法
public function text(string $comment)
public function createdAt(string $date)
public function createdBy(string|int $user)
public function updatedAt(string $date)
public function updatedBy(string|int $user)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->import() ->comments('TEST-777') ->text('Импортированный комментарий') ->createdAt('2022-11-11T15:20:00') ->createdBy('123456789') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
导入关联
使用此请求,您可以导入任务与其他任务之间的关联。
$api->import()->links(string $issueId)
$issueId - 将文件附加到的任务的键。字符串
可用方法
public function relationship(string $type)
$type 的可能值
Import::REL_RELATES- 简单关联Import::REL_IS_DEPENDENT_BY- 当前任务是阻塞者Import::REL_DEPENDS_ON- 当前任务依赖于关联的任务Import::REL_IS_SUBTASK_FOR- 当前任务是关联任务的子任务Import::REL_IS_PARENT_TASK_FOR- 当前任务是关联任务的父任务Import::REL_DUPLICATES- 当前任务重复了关联任务Import::REL_IS_DUPLICATED_BY- 关联任务重复了当前任务Import::REL_IS_EPIC_OF- 当前任务是关联任务的史诗。此类类型的关联只能为“史诗”类型的任务设置。Import::REL_HAS_EPIC- 关联任务是当前任务的史诗。此类类型的关联只能为“史诗”类型的任务设置。Import::REL_CLONE- 关联任务是当前任务的克隆Import::REL_ORIGINAL- 当前任务是关联任务的克隆
public function issue(string $issue)
public function createdAt(string $date)
时间以“创建任务日期”到“最后更新日期”的区间表示
public function createdBy(string|int $user)
public function updatedAt(string $date)
public function updatedBy(string|int $user)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->import() ->links('TEST-778') ->relationship(\BugrovWeb\YandexTracker\Api\Import::REL_IS_SUBTASK_FOR) ->issue('TEST-777') ->createdAt('2022-11-11T13:01:00Z') ->createdBy('123456789') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
批量操作
批量将任务移动到其他队列
此请求允许同时将多个任务移动到另一个队列。
$api->bulk()->moveIssues()
可用方法
public function notify(bool $notify)
允许的$notify值
true- 任务字段中指定的用户将收到通知false- (默认) 用户不会收到通知
public function queue(string $key)
public function issues(array|string $issuesList)
public function values(array|string $valuesList)
public function moveAllFields(bool $move)
允许的$move值
true- 如果新队列中存在相应的版本、组件、项目,则进行迁移false- (默认) — 清除版本、组件、项目
public function initialStatus(bool $clear)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->bulk() ->moveIssues() ->queue('SUPER') ->issues(['TEST-2', 'TEST-3']) ->values(['tags' => ['add' => 'Перенесена']]) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
批量编辑任务
此请求允许同时更改多个任务的参数。
$api->bulk()->updateIssues()
可用方法
public function notify(bool $notify)
允许的$notify值
true- 任务字段中指定的用户将收到通知false- (默认) 用户不会收到通知
public function issues(array|string $issuesList)
public function values(array|string $valuesList)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->bulk() ->updateIssues() ->issues(['TEST-779', 'TEST-780']) ->values(['type' => ['name' => 'Ошибка']]) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
批量更改任务状态
此请求允许同时将多个任务转换为新的状态。要了解任务的可用转换,请执行状态列表请求
$api->bulk()->transitionIssues()
可用方法
public function notify(bool $notify)
允许的$notify值
true- 任务字段中指定的用户将收到通知false- (默认) 用户不会收到通知
public function transition(string $transitionId)
public function issues(array|string $issuesList)
public function values(array|string $valuesList)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->bulk() ->transitionIssues() ->transition('need_info') ->issues(['TEST-779', 'TEST-780']) ->values(['tags' => ['add' => 'Смена статуса']]) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
时间跟踪
添加时间记录
此请求允许添加执行任务所花费时间的记录。
$api->worklog()->new(string $issueId)
$issueId - 任务标识符或键。字符串
可用方法
public function start(string $date)
public function duration(string $isoTime)
您可以使用内置类\BugrovWeb\YandexTracker\Helpers\TimeManager()将时间转换为ISO 8601格式。更多信息请参见相应的章节
public function comment(string $text)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $isoTime = (new \BugrovWeb\YandexTracker\Helpers\TimeManager()) ->minute(20) ->hour(1) ->second(32) ->getISOTime(); $req = $api->worklog() ->new('TEST-779') ->start('2022-11-13T13:01:00Z') ->duration($isoTime) ->comment('Забыл указать время') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
编辑时间记录
此请求允许更改执行任务所花费时间的记录。
$api->worklog()->patch(string $issueId, string|int $worklogId)
$issueId - 任务标识符或键。字符串
$worklogId - 执行时间记录的标识符。字符串/数字
可用方法
public function duration(string $time)
您可以使用内置类\BugrovWeb\YandexTracker\Helpers\TimeManager()将时间转换为ISO 8601格式。更多信息请参见相应的章节
public function comment(string $text)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $isoTime = (new \BugrovWeb\YandexTracker\Helpers\TimeManager()) ->week(1) ->getISOTime(); $req = $api->worklog() ->patch('TEST-779', 1) ->duration($isoTime) ->comment('время изменено') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
删除时间记录
此请求允许删除执行任务所花费时间的记录。
$api->worklog()->delete(string $issueId, string|int $worklogId)
$issueId - 任务标识符或键。字符串
$worklogId - 执行时间记录的标识符。字符串/数字
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->worklog() ->delete('TEST-779', 2) ->send(); var_dump($req->getStatusCode()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取任务所有时间记录
此请求允许获取执行任务所花费的时间数据。
$api->worklog()->issue(string $issueId)
$issueId - 任务标识符或键。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->worklog() ->issue('TEST-777') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
根据参数筛选时间记录
此请求允许选择特定用户在特定时间段内所花费的时间数据。
$api->worklog()->get()
可用方法
public function createdBy(string $user)
public function createdAt(array|string[] $date)
数组字段$date
from- 创建记录的时间范围的开始。格式:YYYY-MM-DDThh:mm:ss.sss±hhmm。字符串to- 创建记录的时间范围的结束。格式:YYYY-MM-DDThh:mm:ss.sss±hhmm。字符串
public function start(array|string[] $date)
数组字段$date
from- 时间范围的开始,记录从这里开始。格式:YYYY-MM-DDThh:mm:ss.sss±hhmm。字符串to- 时间范围的结束,记录在这里停止。格式:YYYY-MM-DDThh:mm:ss.sss±hhmm。字符串
public function perPage(int $count)
public function page(int $pageNumber)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->worklog() ->get() ->createdBy('123456789') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
任务字段
获取全局字段
请求允许从跟踪器设置中获取全局字段
$api->field()->getGlobals()
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->field() ->getGlobals() ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取所有字段类别列表
请求允许获取所有字段类别的列表
$api->field()->getCategories()
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->field() ->getCategories() ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
创建任务字段
请求允许创建任务的全局字段。
$api->field()->create()
可用方法
public function name(array $names)
数组$names的键
en- 英语。字符串ru- 俄语。字符串
public function id(string $id)
public function category(string $id)
public function type(string $type)
允许的 $type 值
Field::TYPE_DATE- 日期Field::TYPE_DATETIME- 日期/时间Field::TYPE_STRING- 单行文本字段Field::TYPE_TEXT- 多行文本字段Field::TYPE_FLOAT- 小数Field::TYPE_INT- 整数Field::TYPE_USER- 用户名Field::TYPE_URI- 链接
public function optionsProvider(array $options)
数组$options的字段
type- 下拉列表的类型。字符串。可接受值Field::OPTIONS_PROVIDER_LIST- 字符串或数值值的列表(用于文本单行字段或整数字段)Field::OPTIONS_PROVIDER_USER_LIST- 用户列表(用于用户名字段)
values- 下拉列表的值。字符串数组
public function order(int $sort)
public function description(string $text)
public function readonly(bool $readonly)
可接受值$readonly
true- 字段值不可更改false- 字段值可更改
public function visible(bool $visible)
可接受值$visible
true- 总是在界面上显示字段false- 不在界面上显示字段
public function hidden(bool $hidden)
可接受值$hidden
true- 即使字段已填写,也隐藏字段false- 不隐藏字段
public function container(bool $multiple)
可接受值$multiple
true- 在字段中可以指定多个值false- 在字段中只能指定一个值
此参数适用于以下类型的字段
- 文本单行字段
- 用户名
- 下拉列表
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->field() ->create() ->name(['ru' => 'Тестовое поле', 'en' => 'Test field']) ->id('test_field') ->category('000000000000000000000001') ->type(\BugrovWeb\YandexTracker\Api\Field::TYPE_STRING) ->optionsProvider([ 'type' => \BugrovWeb\YandexTracker\Api\Field::OPTIONS_PROVIDER_LIST, 'values' => ['Тест 1', 'Тест 2'] ]) ->description('Это супертестовое поле') ->readonly(false) ->visible(true) ->hidden(false) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取任务字段参数
请求允许获取任务字段的参数
$api->field()->getParams(string $fieldId)
$fieldId - 任务字段标识符。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->field() ->getParams('test_field') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
更改任务字段名称
请求允许更改任务字段的名称
$api->field()->patchName(string $fieldId)
$fieldId - 任务字段标识符。字符串
可用方法
public function version(string|int $fieldVersion)
public function name(array $names)
数组$names的键
en- 英语字段名称。字符串ru- 俄语字段名称。字符串
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->field() ->patchName('test_field') ->version(1) ->name(['ru' => 'Тестовое глобальное поле', 'en' => 'Test global field']) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
更改任务字段的可能值
请求允许更改任务字段的可能值
$api->field()->patchValue(string $fieldId)
$fieldId - 任务字段标识符。字符串
可用方法
public function version(string|int $fieldVersion)
public function name(array $names)
数组$names的键
en- 英语。字符串ru- 俄语。字符串
public function category(string $id)
public function order(int $sort)
public function description(string $text)
public function readonly(bool $readonly)
可接受值$readonly
true- 字段值不可更改false- 字段值可更改
public function hidden(bool $hidden)
可接受值$hidden
true- 即使字段已填写,也隐藏字段false- 不隐藏字段
public function visible(bool $visible)
可接受值$visible
true- 总是在界面上显示字段false- 不在界面上显示字段
public function optionsProvider(array $options)
数组$options的字段
type- 字段值的类型。字符串values- 字段值数组。数组
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->field() ->patchValue('test_field') ->version(2) ->description('Это тестовое глобальное поле') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
创建任务字段类别
请求允许创建任务字段类别。
$api->field()->createCategory()
可用方法
public function name(array $name)
数组$name的键
en- 英语。字符串ru- 俄语。字符串
public function order(int $sort)
public function description(string $text)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->field() ->createCategory() ->name(['ru' => 'Тестовое', 'en' => 'Test']) ->order(500) ->description('Тестовая категория') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
创建队列本地字段
请求允许创建与指定队列关联的本地任务字段。
$api->field()->createLocal(string $queueId)
$queueId - 队列的标识符或键。队列键对字符大小写敏感。字符串
可用方法
public function name(array $names)
数组$names的键
en- 英语。字符串ru- 俄语。字符串
public function id(string $id)
public function category(string $id)
public function type(string $type)
允许的 $type 值
Field::TYPE_DATE- 日期Field::TYPE_DATETIME- 日期/时间Field::TYPE_STRING- 单行文本字段Field::TYPE_TEXT- 多行文本字段Field::TYPE_FLOAT- 小数Field::TYPE_INT- 整数Field::TYPE_USER- 用户名Field::TYPE_URI- 链接
public function optionsProvider(array $options)
数组$options的字段
type- 下拉列表的类型。字符串。可接受值Field::OPTIONS_PROVIDER_LIST- 字符串或数值值的列表(用于文本单行字段或整数字段)Field::OPTIONS_PROVIDER_USER_LIST- 用户列表(用于用户名字段)
values- 下拉列表的值。字符串数组
public function order(int $sort)
public function description(string $text)
public function readonly(bool $readonly)
可接受值$readonly
true- 字段值不可更改false- 字段值可更改
public function visible(bool $visible)
可接受值$visible
true- 总是在界面上显示字段false- 不在界面上显示字段
public function hidden(bool $hidden)
可接受值$hidden
true- 即使字段已填写,也隐藏字段false- 不隐藏字段
public function container(bool $multiple)
可接受值$multiple
true- 在字段中可以指定多个值false- 在字段中只能指定一个值
此参数适用于以下类型的字段
- 文本单行字段
- 用户名
- 下拉列表
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->field() ->createLocal('TEST') ->name(['ru' => 'Тестовое поле', 'en' => 'Test field']) ->id('loc_test_field') ->category('637230a70876b41ad90de8df') ->type(\BugrovWeb\YandexTracker\Api\Field::TYPE_INT) ->optionsProvider([ 'type' => \BugrovWeb\YandexTracker\Api\Field::OPTIONS_PROVIDER_LIST, 'values' => [500, 1000] ]) ->description('Это тестовое локальное поле') ->readonly(false) ->visible(true) ->hidden(false) ->send(); dump($req->getResponse()); } catch (\Exception $exception) { dump($exception->getMessage()); }
获取队列本地字段
请求允许获取与指定队列关联的本地任务字段。
$api->field()->getLocals(string $queueId)
$queueId - 队列的标识符或键。队列键对字符大小写敏感。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->field() ->getLocals('TEST') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取队列本地字段信息
请求允许获取与指定队列关联的本地任务字段的信息。
$api->field()->getInfoLocal(string $queueId, string $fieldKey)
$queueId - 队列的标识符或键。队列键对字符大小写敏感。字符串
$fieldKey - 本地字段键。要获取键,请使用 请求。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->field() ->getInfoLocal('TEST', 'loc_test_field') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
编辑本地队列字段
请求允许编辑与指定队列关联的本地任务字段。
$api->field()->editLocal(string $queueId, string $fieldKey)
$queueId - 队列的标识符或键。队列键对字符大小写敏感。字符串
$fieldKey - 本地字段键。要获取键,请使用 请求。字符串
可用方法
public function name(array $names)
数组$names的键
en- 英语。字符串ru- 俄语。字符串
public function category(string $id)
public function order(int $sort)
public function description(string $text)
public function optionsProvider(array $options)
数组$options的字段
type- 下拉列表的类型。字符串。可接受值Field::OPTIONS_PROVIDER_LIST- 字符串或数值值的列表(用于文本单行字段或整数字段)Field::OPTIONS_PROVIDER_USER_LIST- 用户列表(用于用户名字段)
values- 下拉列表的值。字符串数组
public function readonly(bool $readonly)
可接受值$readonly
true- 字段值不可更改false- 字段值可更改
public function visible(bool $visible)
可接受值$visible
true- 总是在界面上显示字段false- 不在界面上显示字段
public function hidden(bool $hidden)
可接受值$hidden
true- 即使字段已填写,也隐藏字段false- 不隐藏字段
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->field() ->editLocal('TEST', 'loc_test_field') ->optionsProvider([ 'type' => \BugrovWeb\YandexTracker\Api\Field::OPTIONS_PROVIDER_LIST, 'values' => [1, 2, 3] ]) ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
用户
获取当前用户信息
请求允许获取执行API调用的用户的账户信息。
$api->user()->getInfo()
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->user() ->getInfo() ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取用户信息
请求允许获取注册在组织中的用户账户信息。
$api->user()->getAll()
可用方法
public function perPage(int $count)
public function page(int $pageNumber)
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->user() ->getAll() ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
获取用户信息
请求允许获取组织用户账户信息。
$api->user()->get(string $uid)
$uid - 账户的唯一标识符或用户名。字符串
可用方法
public function send()
向API发送请求
使用示例
$api = new \BugrovWeb\YandexTracker\Api\Tracker('<токен>', '<ID организации>'); try { $req = $api->user() ->get('1234567890') ->send(); var_dump($req->getResponse()); } catch (\Exception $exception) { var_dump($exception->getMessage()); }
内置助手
TimeManager
时间转换为ISO 8601格式的字符串的构造函数。向构造函数传递参数时,请使用其中一个:仅周/年、月、日、分钟、秒
可用方法
public function year(int $year)
向构造函数传递年。不能与周一起使用。
public function month(int $month)
向构造函数传递月。不能与周一起使用。
public function week(int $week)
向构造函数传递周。不能与其他参数一起使用。
public function day(int $day)
向构造函数传递天。不能与周一起使用。
public function hour(int $hour)
将小时传递给构造函数。不能与周一起指定。
public function minute(int $minute)
将分钟传递给构造函数。不能与周一起指定。
public function second(int $second)
将秒传递给构造函数。不能与周一起指定。
public function getISOTime(): string
返回格式为 PnYnMnDTnHnMnS 或 PnW 的格式化时间戳。
使用示例
try { $isoTime = (new \BugrovWeb\YandexTracker\Helpers\TimeManager()) ->minute(20) ->hour(1) ->second(32) ->getISOTime(); echo $isoTime; // или $isoTime = (new \BugrovWeb\YandexTracker\Helpers\TimeManager()) ->week(2) ->getISOTime(); echo $isoTime; } catch (\Exception $exception) { var_dump($exception->getMessage()); }
QueryFilter
提供方便的接口来创建Yandex.Traacker语言查询的构造函数。
where方法
您可以使用查询构造函数的where方法通过逻辑AND添加查询类型为"参数": "值"。调用此方法的简单示例需要3个参数:1-参数名称,2-任何可用比较运算符(!,>,<,>=,<=,#,~),3-比较值。作为值,您还可以传递时间函数:now(),today(),week(),month(),quarter(),year()。例如,以下调用可以生成查询类型为"Comment": #"好工作,Олег" AND "Story Points": >=5:
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->where('Comment', '#', 'Хорошая работа, Олег') ->where('Story Points', '>=', 5) ->toString(); echo $res;
结果
"Comment": #"Хорошая работа, Олег" AND "Story Points": >=5
如果查询中不需要运算符,只需传递两个参数:1-参数名称,2-参数值。
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->where('Author', 'user1234@') ->where('Followers', 'user9876@') ->toString(); echo $res;
结果
"Author": "user1234@" AND "Followers": "user9876@"
您还可以将条件数组传递给where方法。
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->where([ ['Comment', '#', 'Хорошая работа, Олег'], ['Story Points', '>=', 5] ]) ->toString(); echo $res;
结果
("Comment": #"Хорошая работа, Олег" AND "Story Points": >=5)
对于多个值的一个参数的筛选,例如"参数": "值1", "值2", "值3",将参数名称和值数组传递给where函数。例如:
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->where('Author', ['Иванов Иван', 'Вася Пупкин']) ->toString(); echo $res;
结果
"Author": "Иванов Иван", "Вася Пупкин"
orWhere方法
where方法通过逻辑操作符AND连接查询部分,而orWhere方法使用操作符OR连接查询部分。orWhere方法的工作方式与where方法相同。
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->where('Author', '!', 'Иван Иванов') ->orWhere('Original Estimate', '5d 2h 30m') ->toString(); echo $res;
结果
"Author": !"Иван Иванов" OR "Original Estimate": "5d 2h 30m"
如果您需要将条件OR分组在圆括号中,您可以将匿名函数作为第一个参数传递给orWhere方法。
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->where('Author', 'Иван Иванов') ->orWhere(function ($query) { $query->where('Author', 'Вася Пупкин') ->where('Created', '>', 'now()-12h'); }) ->toString(); echo $res;
结果
"Author": "Иван Иванов" OR ("Author": "Вася Пупкин" AND "Created": >now()-12h)
whereIsBetween/orWhereIsBetween方法
这些方法通过AND或OR添加包含值范围(通过两个点..)的查询。调用示例:
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->whereIsBetween('Created', ['2017-01-01', '2017-01-30']) ->toString(); echo $res;
结果
"Created": 2017-01-01 .. 2017-01-30
whereIsEmpty/whereIsNotEmpty/orWhereIsEmpty/orWhereIsNotEmpty方法
添加查询类型为参数: empty()/参数: notEmpty()通过AND或OR。这些方法接受一个参数-查询的参数名称。参数可以是单个值或值数组。如果传递了数组,则将为每个值创建一个单独的查询empty()/notEmpty(): 参数1: empty() ... 参数N: empty()。调用示例:
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->where('Author', 'Иван Иванов') ->whereIsEmpty('Resolution') ->toString(); // или $res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->whereIsEmpty(['Resolution', 'Assignee']) ->toString(); echo $res;
结果
"Author": "Иван Иванов" AND "Resolution": empty()
или
"Resolution": empty() AND "Assignee": empty()
whereIsMe/whereIsNotMe/orWhereIsMe/orWhereIsNotMe方法
添加查询类型为参数: me()/参数: !me()通过AND或OR。这些方法接受一个参数-查询的参数名称。参数可以是单个值或值数组。如果传递了数组,则将为每个值创建一个单独的查询me()/!me(): 参数1: me() ... 参数N: me()。调用示例:
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->whereIsMe('Author') ->orWhereIsNotMe(['Assignee', 'Followers']) ->toString(); echo $res;
结果
"Author": me() OR "Assignee": !me() OR "Followers": !me()
whereIsUnresolved/orWhereIsUnresolved方法
添加查询类型为参数: unresolved()通过AND或OR。这些方法接受一个参数-查询的参数名称。参数可以是单个值或值数组。如果传递了数组,则将为每个值创建一个单独的查询unresolved(): 参数1: unresolved() ... 参数N: unresolved()。调用示例:
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->whereIsUnresolved('Resolution') ->toString(); echo $res;
结果
"Resolution": unresolved()
whereIsGroup/orWhereIsGroup方法
添加查询类型为"参数": group(value: "值")通过AND或OR。这些方法接受两个参数:1-查询的参数名称,2-参数值。第一个参数可以是单个值或值数组。如果传递了数组,则将为每个值创建一个单独的查询"参数": group(value: "值"): 参数1: group(value: "值") ... 参数N: group(value: "值")。调用示例:
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->whereIsGroup('Assignee', 'Коммерческий отдел') ->toString(); echo $res;
结果
"Assignee": group(value: "Коммерческий отдел")
whereIsChanged/orWhereIsChanged方法
添加类型为 "参数": changed(from: "from" to: "to", by: "by" date: "date") 的查询,通过 AND 或 OR 连接。该方法接受两个参数:1-参数名,用于查询;2-元素数组。数组中的每个元素必须是形如 键 => 值 的数组,其中 键 可以是以下之一:from、to、by、date。键 date 的值可以是单一值,也可以是两个值的数组(日期区间)。调用示例
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->whereIsChanged('Status', [ 'to' => 'В работе', 'by' => 'Алиса Литтл', 'date' => ['01.09.2017', '15.09.2017'], ]) ->toString(); echo $res;
结果
"Status": changed(to: "В работе" by: "Алиса Литтл" date: 01.09.2017 .. 15.09.2017)
复杂查询示例
查询
$res = (new \BugrovWeb\YandexTracker\Helpers\QueryFilter()) ->whereIsEmpty('Resolution') ->where('Priority', ['Blocker', 'Critical']) ->where(function ($query) { $query->orWhereIsMe(['Followers', 'Assignee', 'Author']); }) ->toString(); echo $res;
结果
"Resolution": empty() AND "Priority": "Blocker", "Critical" AND ("Followers": me() OR "Assignee": me() OR "Author": me())