spiria-digital/laravel-jira-rest-client

1.0.4 2018-06-11 14:00 UTC

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 模拟设置

  1. 按照 Jira 文档 生成 RSA 公钥/私钥对。
  2. 转到 Jira --> 应用链接(管理员)
  3. 使用您的服务器 URL 创建一个新的链接
  4. 忽略“无响应”警告
  5. 在所有字段中输入任何内容,并保持“创建传入链接”未选中。Jira 在设置应用链接方面有一些奇怪的行为。如果您现在创建传入链接,您将无法访问 2-Legged auth(模拟)。
  6. 点击继续(忽略警告)。这应该已创建您的新应用链接。
  7. 编辑该链接(注意:即使你在创建时添加了虚拟信息,也没有外发信息)。
  8. 你现在可以输入所有 OAuth 的信息并设置模拟用户(允许双因素 OAuth)。

ps. 我对目前实现的中间件不是很满意,但我确实想以某种方式将其整合。

待办事项

  • 更多助手
  • 实现缺失的功能
  • 中间件
  • 更好的 README
  • 会话认证
  • 在发送请求之前更改请求的方式(对每个请求全局更改,以及针对特定请求的更改可能性)
  • 测试