jedi58/jira-integration

Jira集成组件,具有控制台应用程序

2.0.0 2019-06-27 10:45 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:26:18 UTC


README

Build Status StyleCI Code Climate Coverage Status

一个用于与Atlassian Jira API交互的PHP组件,Jira API是敏捷团队使用的用于问题跟踪和项目跟踪的软件。

该类背后的想法是,您可以使用它从自己的网站(或网站)中提取信息,或者让您的Web应用程序与之交互。本类开发的Jira API文档为:https://docs.atlassian.com/jira/REST/latest/

独立安装

要安装,您可以使用发行版包或此存储库的克隆。一旦提取或克隆,然后可以运行

./install.sh

这将运行composer install(如果您没有Composer,将下载Composer)并设置控制台应用程序的正确权限。然后可以使用控制台应用程序与Jira API交互。使用--help开关将提供可用命令的列表。

使用Composer

如果您想将其作为您自己的项目的一部分使用,只需将其添加到您的composer.json中,如下所示

composer require jedi58/jira-integration

这将然后将此需求添加到您的composer文件中。

控制台应用程序

  1. 常规用法
  2. 提示自定义字段

常规用法

可以从项目根目录运行控制台应用程序,运行./app/console。运行此命令将提供可用命令的列表,如issue:create。如果您经常使用控制台应用程序,那么考虑使用类似ln -s <path-to-project>/app/console /usr/local/bin/jiraticket的东西可能值得考虑,以便可以从任何位置作为jiraticket运行。

提示自定义字段

在使用控制台应用程序时,您可以通过更新配置文件jira.yml以包含Jira指定的自定义字段ID、问题类型(ChoiceQuestion或Question)以及任何帮助提示文本(可选)来提示Jira的自定义字段问题。

custom:
  customfield_12345:
    type: ChoiceQuestion
    help: This is a question that will display allowed values to chose from
  customfield_67890:
    type: Question

上述示例显示了两种类型的问题及其配置方式。

用法

  1. 为Jira API提供认证详情
  2. 创建一个工单(简单)
  3. 创建一个工单
  4. 更新一个工单
  5. 向工单添加评论
  6. 检索特定工单
  7. 检索所有项目的列表
  8. 检索所有问题类型的列表
  9. 检索项目的可用配置选项
  10. 检索自定义字段
  11. 检索可分配用户的列表

为Jira API提供认证详情

所有Jira API函数都需要进行认证。您的应用程序必须首先使用Authentication对象提供这些详情。

$auth = Authentication::getInstance(
    'https://jira.atlassian.com'
    'user','password'
);

然后,这些详情将在使用以下任何对象时自动使用。

创建一个工单(简单)

创建一个新的工单并将其分配给指定的项目(以下示例中为DEMO)。

$case = Issue::getInstance()->simpleCreate(
    'DEMO',
    'A test ticket',
    'There is an issue here - please fix it',
    'Bug',
    array(
        'originalEstimate' => '1d 2h 25m'
        'remainingEstimate' => ''
    )
);

这也可以接受可选参数来设置工单类型、时间跟踪以及任何其他以数组形式提供的附加选项。

创建一个工单

这是一个更灵活的创建Jira工单的函数版本。它只接受数组作为参数,并期望您传递所需的所有内容。

$case_id = Issue::getInstance()->create(array('fields' => array(
    'project' => array(
        'key' => 'DEMO'
    ),
    'summary' => 'A test ticket',
    'description' => 'There is an issue here - please fix it',
    'issuetype' => array(
        'name' => 'Bug'
    )
)));

simpleCreate函数类似,这将返回一个包含已创建工单ID的stClass。

更新一个工单

这是一个更灵活地更新工单属性的方式 - 所有的更改都必须传递到数组中。

$case = Issue::getInstance()->update('DEMO-1234', array('fields' => array(
    'summary' => 'This is the new description of the ticket'
)));

删除一个工单

如果工单有子任务,则需要将true传递给此函数,以确认它们应该被删除。

$case = Issue::getInstance()->delete('DEMO-1234');

检索特定工单

这将返回一个包含工单及其所有属性的StdClass对象。

$ticket = Issue::getInstance()->get('DEMO-123');

向工单添加评论

这将向工单添加一条评论。

Comment::getInstance()->create('DEMO-123', 'This is a comment!', array(
    'type' => 'role',
    'value' => 'Administrators'
));

返回的结果是一个数组,其中只包含添加评论的时间戳。这个数组在此示例中表示评论的可见性,是可选的。

检索所有项目的列表

$projects = Project::getInstance()->getAll();

检索所有问题类型的列表

$issue_types = Issue::getInstance()->getIssueTypes();

检索项目的可用配置选项

$available_config = Issue::getInstance()->getProjectIssueAvailableConfig('SUP');

检索自定义字段

$custom = Issue::getInstance()->getCustomFieldOption(1);

检索可分配用户的列表

$users = User::getInstance()->getAll();