testmonitor / jira-client
TestMonitor Jira 客户端。
v2.2.0
2024-05-14 08:53 UTC
Requires
- php: ^8.1
- ext-json: *
- devmoath/jql-builder: ^1.4
- guzzlehttp/guzzle: ^7.0
- league/oauth2-client: ^2.7
- mrjoops/oauth2-jira: ^0.3
- testmonitor/adf-tools: ^1.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.1
- mockery/mockery: ~1.0
- phpunit/phpunit: ^10.0
- scrutinizer/ocular: ^1.9
- squizlabs/php_codesniffer: ^3.7
README
此包提供对 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
变更日志
有关更多信息,请参阅 变更日志。
贡献
有关贡献详细信息,请参阅 贡献指南。
致谢
- Thijs Kok - 首席开发者 - ThijsKok
- Stephan Grootveld - 开发者 - Stefanius
- Frank Keulen - 开发者 - FrankIsGek
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证。