testmonitor/jira-client

TestMonitor Jira 客户端。

v2.2.0 2024-05-14 08:53 UTC

This package is auto-updated.

Last update: 2024-09-15 07:30:46 UTC


README

Latest Stable Version CircleCI StyleCI codecov License

此包提供对 Jira 的非常基本、方便和统一的封装。

目录

安装

要安装客户端,您需要使用 composer 请求此包

$ composer require testmonitor/jira-client

使用 composer 的自动加载

require __DIR__.'/../vendor/autoload.php';

现在您已经设置好了!

使用

此客户端仅支持 oAuth 认证。您需要 Atlassian Jira 应用程序才能继续。如果您还没有这样做,请阅读有关如何创建应用程序的 Jira 认证文档

当您的 Jira 应用程序运行时,请从 oAuth 授权开始

$oauth = [
    'clientId' => '12345',
    'clientSecret' => 'abcdef',
    'redirectUrl' => 'https://redirect.myapp.com/',
];

$jira = new \TestMonitor\Jira\Client($oauth);

header('Location: ' . $jira->authorizationUrl());
exit();

这将将用户重定向到请求您的应用程序访问 Jira 的确认页面。确保您的 redirectUrl 指向您的应用程序。此 URL 应指向以下代码

$oauth = [
    'clientId' => '12345',
    'clientSecret' => 'abcdef',
    'redirectUrl' => 'https://redirect.myapp.com/',
];

$jira = new \TestMonitor\Jira\Client($oauth);

$token = $jira->fetchToken($_REQUEST['code']);

如果一切顺利,您应该有一个访问令牌(可通过 Token 对象获取)。

对于任何后续操作,您都需要检索您的云 ID 才能继续

$oauth = [
    'clientId' => '12345',
    'clientSecret' => 'abcdef',
    'redirectUrl' => 'https://redirect.myapp.com/',
];

$token = new \TestMonitor\Jira\AccessToken('eyJ0...', '0/34ccc...', 1574601877); // the token you got last time
$jira = new \TestMonitor\Jira\Client($oauth, null, $token);

$account = $jira->account();

在实例化客户端时使用云 ID 作为参数

$oauth = [
    'clientId' => '12345',
    'clientSecret' => 'abcdef',
    'redirectUrl' => 'https://redirect.myapp.com/',
];

$token = new \TestMonitor\Jira\AccessToken('eyJ0...', '0/34ccc...', 1574601877);
$jira = new \TestMonitor\Jira\Client($oauth, $account->id, $token);

就是这样!

请注意,访问令牌将有效 一小时。当它过期时,您需要刷新它

if ($token->expired()) {
    $newToken = $jira->refreshToken();
}

新令牌将再次有效一小时。

示例

使用项目的键获取项目的详细信息

$project = $jira->project('KEY');

或使用第一个可用的任务类型创建新问题

$issueTypes = $jira->issueTypes('KEY');

$issue = $jira->createIssue(new \TestMonitor\Jira\Resources\Issue([
    'summary' => 'It is time Marty!',
    'description' => 'Great Scot!',
    'project' => $project,
    'type' => $issueType[0],
]));

测试

该包包含集成测试。您可以使用 PHPUnit 运行它们。

$ vendor/bin/phpunit

变更日志

有关更多信息,请参阅 变更日志

贡献

有关贡献详细信息,请参阅 贡献指南

致谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证