bugrov/yandex-tracker

PHP SDK 用于操作 Яндекса.Трекер

dev-master 2023-05-31 17:53 UTC

This package is auto-updated.

Last update: 2024-08-30 01:55:18 UTC


README

目录

  1. 安装
  2. 获取令牌
  3. 初始化
  4. 使用示例
  5. 任务
    1. 获取任务参数
    2. 编辑任务
    3. 创建任务
    4. 将任务移动到其他队列
    5. 获取任务数量
    6. 查找任务
    7. 释放滚动资源
    8. 获取优先级
    9. 获取转换
    10. 执行状态转换
    11. 获取任务变更历史
    12. 关联任务
    13. 获取任务关联
    14. 删除任务关联
  6. 检查列表
    1. 创建检查列表或添加条目
    2. 获取检查列表参数
    3. 编辑检查列表
    4. 删除检查列表
  7. 项目
    1. 创建项目
    2. 获取项目参数
    3. 获取所有项目列表
    4. 获取项目队列列表
    5. 修改项目
    6. 删除项目
  8. 评论
    1. 添加评论
    2. 获取任务评论
    3. 编辑评论
    4. 删除评论
    1. 获取队列宏
    2. 获取宏
    3. 创建宏
    4. 编辑宏
    5. 删除宏
  9. 外部关联
    1. 获取外部应用程序列表
    2. 获取任务外部关联列表
    3. 添加外部关联
    4. 删除外部关联
  10. 附加文件
    1. 获取附加文件列表
    2. 下载文件
    3. 下载缩略图
    4. 附加文件
    5. 上传临时文件
    6. 删除文件
  11. 队列
    1. 创建队列
    2. 获取队列参数
    3. 获取队列列表
    4. 获取队列版本
    5. 获取队列必填字段
    6. 删除队列
    7. 恢复队列
    8. 从队列中删除标签
    9. 创建自动操作
    10. 获取自动操作参数
    11. 创建触发器
    12. 获取触发器参数
  12. 任务板
    1. 获取所有任务板参数
    2. 获取任务板参数
    3. 创建任务板
    4. 编辑任务板
    5. 删除任务板
    6. 获取所有列参数
    7. 获取列参数
    8. 创建列
    9. 编辑列
    10. 删除列
    11. 获取所有冲刺
    12. 获取冲刺
    13. 创建冲刺
  13. 国家
    1. 获取国家列表
  14. 组件
    1. 获取组件列表
  15. 导入
    1. 导入任务
    2. 将文件附加到任务
    3. 将文件附加到评论
    4. 导入评论
    5. 导入关联
  16. 批量操作
    1. 批量将任务移动到其他队列
    2. 批量编辑任务
    3. 批量更改任务状态
  17. 时间跟踪
    1. 添加时间记录
    2. 编辑时间记录
    3. 删除时间记录
    4. 获取任务所有时间记录
    5. 根据参数筛选时间记录
  18. 任务字段
    1. 获取全局字段
    2. 获取所有字段类别列表
    3. 创建任务字段
    4. 获取任务字段参数
    5. 更改任务字段名称
    6. 更改任务字段的可能值
    7. 创建任务字段类别
    8. 创建队列本地字段
    9. 获取队列本地字段
    10. 获取队列本地字段信息
    11. 编辑本地队列字段
  19. 用户
    1. 获取当前用户信息
    2. 获取用户信息
    3. 获取用户信息
  20. 内置助手
    1. TimeManager
    2. QueryFilter

安装

支持通过包管理器安装。

$ composer require bugrov/yandex-tracker dev-master

或者

$ php composer.phar require bugrov/yandex-tracker dev-master

获取令牌

  1. 访问https://oauth.yandex.ru/
  2. 点击 注册新应用
  3. 填写必要字段
  4. 平台部分选择Web服务并点击插入开发URL
  5. 你需要哪些数据?部分打开追踪器(tracker)并选择选项:追踪器写入(tracker:write)从追踪器读取(tracker:read)
  6. 保存后,复制应用程序ID并将其插入获取令牌的URL中
https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения>
  1. 通过访问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 - Scrum
  • Board::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

返回格式为 PnYnMnDTnHnMnSPnW 的格式化时间戳。

使用示例

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") 的查询,通过 ANDOR 连接。该方法接受两个参数:1-参数名,用于查询;2-元素数组。数组中的每个元素必须是形如 => 的数组,其中 可以是以下之一:fromtobydate。键 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())