spiria-digital / laravel-jira-rest-client
Requires
- php: >=5.6.4
- guzzlehttp/guzzle: ^6.0
- laravel/framework: >=5.4
Suggests
- salsify/json-streaming-parser: Require this when you want to parse the response in blocks
This package is not auto-updated.
Last update: 2024-09-26 17:11:29 UTC
README
这是一个 rjvandoesburg/laravel-jira-rest-client 的分支
使用 Laravel 5.4+ 执行 Jira API 的各种操作
该包的目的是使与 API 的通信更加容易。默认情况下,请求的响应不会以任何方式修改。通过创建自己的实现或使用包中提供的简单辅助器,您可以以您喜欢的方式集成 Jira。
安装
要获取 laravel-jira-rest-client
的最新版本,运行以下命令
composer require spiria-digital/laravel-jira-rest-client
请注意,并非所有方法都已实现。
Laravel 5.5 使用包自动发现,因此不需要您手动添加 ServiceProvider。
Laravel 5.4
如果您不使用自动发现,请将 ServiceProvider 添加到 config/app.php
中的 providers 数组
'providers' => [ // ... Atlassian\JiraRest\JiraRestServiceProvider::class, ],
还要在您的 config/app.php
文件中找到 Aliases
键并注册 Facade
'aliases' => [ // ... 'Jira' => Atlassian\JiraRest\Facades\Jira::class, ],
使用发布命令将包配置复制到本地配置
php artisan vendor:publish --provider="Atlassian\JiraRest\JiraRestServiceProvider"
使用来自 config/atlassian/jira.php
的 JIRA 变量更新 .env 文件以使用您的凭据。
使用方法
该包的核心是对 Jira API 的直接反射,这意味着所有请求类都不会格式化您从 API 获得的响应。这个决定是为了使包更加灵活,允许用户根据他们的意愿处理请求的响应。
例如,要获取特定问题,您可以执行以下操作
$request = new \Atlassian\JiraRest\Requests\Issue\IssueRequest; $response = $request->get('ISSUE-3');
所有响应都是 \GuzzleHttp\Psr7\Response
的实例 了解更多,因此要获取 JSON 响应,您可以执行以下操作
$response = json_decode($response->getBody(), true);
这将返回一个类似 API 中的响应
辅助器
由于大多数情况下您不想花时间自己编写请求,因此有一些有用的辅助器可以帮助您与 API 进行通信。
要获取单个问题,您可以使用以下代码
$issue = jira()->issue('ISSUE-3')->get();
或者如果您更喜欢使用 facade
$issue = \Jira::issue('ISSUE-3')->get();
中间件
要更改用于请求的 Guzzle 客户端,您可以添加中间件以更改选项。要添加新中间件,需要更改 config/atlassian/jira.php
并将类添加到 client_options
数组中。
基本认证
'client_options' => [ 'auth' => \Atlassian\JiraRest\Requests\Middleware\BasicAuthMiddleware::class, ],
默认情况下,已添加并使用 BasicAuthMiddleware
进行 Jira 认证。(会话正在开发中)
OAuth 1.0
'client_options' => [ 'auth' => \Atlassian\JiraRest\Requests\Middleware\OAuthMiddleware::class, ],
模拟
要通过 Jira 请求模拟用户,必须在 .env 文件中设置 JIRA_IMPERSONATE=true
。
一旦启用模拟,Laravel 将默认使用认证用户的 name
。但是,也可以手动通过向 Jira 构造函数发送 userName 来模拟用户。
/*auth user*/ $issue = \Jira::issue('ISSUE-3')->get(); /* Specific user */ $issue = jira("jdoe")->issue('ISSUE-123')->get();
JIRA 模拟设置
- 按照 Jira 文档 生成 RSA 公钥/私钥对。
- 转到 Jira --> 应用链接(管理员)
- 使用您的服务器 URL 创建一个新的链接
- 忽略“无响应”警告
- 在所有字段中输入任何内容,并保持“创建传入链接”未选中。Jira 在设置应用链接方面有一些奇怪的行为。如果您现在创建传入链接,您将无法访问 2-Legged auth(模拟)。
- 点击继续(忽略警告)。这应该已创建您的新应用链接。
- 编辑该链接(注意:即使你在创建时添加了虚拟信息,也没有外发信息)。
- 你现在可以输入所有 OAuth 的信息并设置模拟用户(允许双因素 OAuth)。
ps. 我对目前实现的中间件不是很满意,但我确实想以某种方式将其整合。
待办事项
- 更多助手
- 实现缺失的功能
- 中间件
- 更好的 README
- 会话认证
- 在发送请求之前更改请求的方式(对每个请求全局更改,以及针对特定请求的更改可能性)
- 测试