cybercog/laravel-youtrack-sdk

Laravel 对 PHP YouTrack SDK 的包装。

6.1.0 2024-07-11 06:07 UTC

README

cog-laravel-youtrack-sdk

Build Status StyleCI Code Climate Releases License

简介

Laravel 对 PHP YouTrack SDK 库的包装提供了与 JetBrains YouTrack 问题跟踪和项目管理软件 交互的一系列工具。

内容

功能

需求

  • 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 贡献者列表

替代方案

未找到替代方案。

请随时通过拉取请求添加更多替代方案。

许可证

  • Laravel YouTrack SDK软件包是Anton Komarev开源的软件,根据MIT许可证发布。

关于 CyberCog

CyberCog是一个由爱好者组成的社交联盟。研究产品与软件开发中的最佳解决方案是我们的热情。

CyberCog