cybercog / laravel-youtrack-sdk
Laravel 对 PHP YouTrack SDK 的包装。
Requires
- php: ^8.1
- cybercog/youtrack-php-sdk: ^5.0
- illuminate/support: ^5.8|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^3.8|^4.0|^5.0|^6.0
- phpunit/phpunit: ^7.0|^8.0|^9.0
README
简介
Laravel 对 PHP YouTrack SDK 库的包装提供了与 JetBrains YouTrack 问题跟踪和项目管理软件 交互的一系列工具。
内容
功能
- 使用合约以保持高度定制能力。
- 多种授权策略:令牌、Cookie。
- 遵循 PHP 标准建议
- 包含单元测试。
需求
- YouTrack >= 3.0 且启用 REST-API(默认情况下始终启用)
- PHP >= 8.1
- Guzzle HTTP Client >= 7.0
- Laravel >= 5.1.20
安装
推荐通过 composer 进行安装。如果您还没有安装 composer,请按照 安装说明 进行操作。
安装 composer 后,在项目根目录中执行以下命令以安装此库
composer require cybercog/laravel-youtrack-sdk
配置
Laravel YouTrack SDK 设计为与默认配置一起使用,但它始终可以进行修改。首先,发布它
php artisan vendor:publish --tag="youtrack-config"
这将在您的应用程序中创建一个 config/youtrack.php
文件,您可以修改它以设置您的配置。此外,请确保检查在此包发布之间对原始配置文件的更改。
YouTrack URL
YouTrack 实例位置可以在 .env
文件中定义
YOUTRACK_BASE_URI=https://youtrack.custom.domain
授权方法
从 YouTrack 2017.1 版本开始,建议使用基于永久令牌的授权作为在您的 REST API 调用中进行授权的主要方法。
默认情况下将使用令牌授权。您可以在 .env
文件中重新定义它
令牌授权
YOUTRACK_AUTH=token YOUTRACK_TOKEN=your-permanents-token
Cookie 授权
YOUTRACK_AUTH=cookie YOUTRACK_USERNAME=username YOUTRACK_PASSWORD=secret
用法
初始化 API 客户端
$youtrack = app(\Cog\Contracts\YouTrack\Rest\Client\Client::class);
结果实例化的 \Cog\YouTrack\Rest\Client\YouTrackClient
类应返回。
API 请求
HTTP 请求
$method = 'POST'; // GET, POST, PUT, DELETE, PATCH or any custom ones $response = $youtrack->request($method, '/issue', [ 'project' => 'TEST', 'summary' => 'New test issue', 'description' => 'Test description', ]);
您可以使用请求选项自定义客户端创建和传输的请求。请求选项控制请求的各个方面,包括头部、查询字符串参数、超时设置、请求体以及更多。
$options = [ 'debug' => true, 'sink' => '/path/to/dump/file', ]; $response = $youtrack->request('POST', '/issue', [ 'project' => 'TEST', 'summary' => 'New test issue', 'description' => 'Test description', ], $options);
HTTP GET 请求
$response = $youtrack->get('/issue/TEST-1');
HTTP POST 请求
$response = $youtrack->post('/issue', [ 'project' => 'TEST', 'summary' => 'New test issue', 'description' => 'Test description', ]);
HTTP PUT 请求
$response = $youtrack->put('/issue/TEST-1', [ 'summary' => 'Updated summary', 'description' => 'Updated description', ]);
HTTP DELETE 请求
$response = $youtrack->delete('/issue/TEST-1');
API 响应
对 API 的每个成功请求都返回 \Cog\Contracts\YouTrack\Rest\Response\Response
合约的实例。默认情况下是 \Cog\YouTrack\Rest\Response\YouTrackResponse
类。
获取 PSR HTTP 响应
可以通过在 API 响应上调用 httpResponse
方法来访问 PSR HTTP 响应。
$youtrackResponse = $youtrack->get('/issue/TEST-1'); $psrResponse = $youtrackResponse->httpResponse();
获取响应 Cookie
从 HTTP 响应中返回 Set-Cookie
头部作为字符串。
$apiResponse = $youtrack->get('/issue/TEST-1'); $cookieString = $apiResponse->cookie();
获取响应位置
从 HTTP 响应中返回 Location
头部。
$apiResponse = $youtrack->get('/issue/TEST-1'); $location = $apiResponse->location();
将响应转换为数组
$apiResponse = $youtrack->get('/issue/TEST-1'); $location = $apiResponse->toArray();
获取 HTTP 响应状态码
$apiResponse = $youtrack->get('/issue/TEST-1'); $location = $apiResponse->statusCode();
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
测试
使用以下命令运行测试
vendor/bin/phpunit
安全
如果您发现任何安全相关的问题,请通过电子邮件open@cybercog.su联系,而不是使用问题跟踪器。
贡献者
替代方案
未找到替代方案。
请随时通过拉取请求添加更多替代方案。
许可证
Laravel YouTrack SDK
软件包是Anton Komarev开源的软件,根据MIT许可证发布。
关于 CyberCog
CyberCog是一个由爱好者组成的社交联盟。研究产品与软件开发中的最佳解决方案是我们的热情。