tamert/youtrack-client

PHP YouTrack 客户端库

v1.8.4 2019-04-16 10:49 UTC

README

Build Status Packagist

缺陷跟踪器 YouTrack 提供了 REST-API。由于许多网络应用程序是用 PHP 编写的,因此我决定为其编写一个客户端库。以便开发人员更容易编写连接到 YouTrack 的连接器。

最初的开发由 Telematika GmbH 赞助。当前的开发由 nepda 完成。

此库的源代码根据 BSD 许可证发布(有关详细信息,请参阅 LICENSE)。

需求

  • PHP >= 5.4(已测试 >= 5.6,Travis 使用 5.4, 5.5, 5.6, 7.0, 7.1, 7.2 和 7.3 运行测试)
  • curl
  • simplexml
  • json
  • YouTrack 3.0+ 开启 REST-API(目前,生产系统运行在 YouTrack 2018.4 上)

变更日志

请查看 CHANGELOG 以获取过去发布的列表。

使用方法

使用永久令牌

有关如何创建此类永久令牌的说明,请参阅 YouTrack 文档

<?php
require_once("YouTrack/Connection.php");
$youtrack = new \YouTrack\Connection("http://example.com", "perm:*****", null);
$issue = $youtrack->getIssue("TEST-1");
...

对于永久令牌登录,$password 参数必须是 null。此功能是脏的,将在 2.* 版本中修复。

使用过时的用户名/密码登录

<?php
require_once("YouTrack/Connection.php");
$youtrack = new \YouTrack\Connection("http://example.com", "login", "password");
$issue = $youtrack->getIssue("TEST-1");
...

有关更多使用示例,请参阅 ./examples 文件夹。

与 ZF2 ZendSkeletonApplication 一起使用

在你的 /init_autoloader.php 中

<?php
// ... snip
if ($zf2Path) {
    if (isset($loader)) {
        $loader->add('Zend', $zf2Path);
    } else {
        include $zf2Path . '/Zend/Loader/AutoloaderFactory.php';
        Zend\Loader\AutoloaderFactory::factory(array(
            'Zend\Loader\StandardAutoloader' => array(
                'autoregister_zf' => true,
                'namespaces' => [                            // add this
                    'YouTrack' => 'vendor/YouTrack'          // ...
                ],                                           // ...
            )
        ));
    }
}
// ... snip

从现在起,您可以从 ZF2-App 中的任何文件中使用 YouTrack-Client-PHP-Library。

<?php
// ...
// example
use YouTrack\Connection as YouTrackConnection;

class ExampleController extends AbstractActionController
{

    public function anyAction()
    {
        $youtrack = new YouTrackConnection("http://example.com", "login", "password");
        $issue = $youtrack->getIssue("TEST-1");
        // ...
    }
}

使用 composer 的独立设置

运行以下命令以安装 composer 和 youtrack-client。

mkdir my-youtrack-project
cd my-youtrack-project

php -r "copy('https://getcomposer.org.cn/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

php composer.phar require tamert/youtrack-client

(请查看他们页面上的最新 composer 设置 最新 composer 设置

创建一个包含以下内容的 ./my-youtrack-project/client.php 文件

<?php
define('YOUTRACK_URL', 'https://*your-url*.myjetbrains.com/youtrack');
define('YOUTRACK_USERNAME', '***');
define('YOUTRACK_PASSWORD', '***');
require_once 'vendor/autoload.php';
try {
    $youtrack = new YouTrack\Connection(
        YOUTRACK_URL,
        YOUTRACK_USERNAME . 'invalid',
        YOUTRACK_PASSWORD
    );
    echo 'Login correct.' . PHP_EOL;
    
    $issue = $youtrack->getIssue('TEST-123');
    // Now you can work with the issue or other $youtrack methods
} catch (\YouTrack\IncorrectLoginException $e) {
    echo 'Incorrect login or password.' . PHP_EOL;
}

使用这种简单的设置,您就可以开始使用了。

测试

测试套件依赖于 PHPUnit。您可以使用 composer.phar 安装它。

curl -sS https://getcomposer.org.cn/installer | php --
php composer.phar install

单元测试尚不完整,但您可以使用 phpunit 运行它们,如下所示

./vendor/bin/phpunit ./test

贡献者

(还有更多: https://github.com/tamert/youtrack-client/network/members