blomstra/linear

Linear 的 API 客户端

0.1.6 2024-03-07 17:39 UTC

This package is auto-updated.

Last update: 2024-08-28 14:15:13 UTC


README

这是一个针对 Linear API 的 PHP SDK。它包含在集成 Linear 时最常见所需的功能,但不公开每个 GraphQL 端点。

功能

使用此 SDK,您可以

  • 创建、检索、更新和删除问题
  • 检索团队
  • 检索项目
  • 检索组织

要求

  • PHP 8.2+
  • Linear 的 token(该 SDK 目前不支持 OAuth 2 身份验证)

安装

与其他 PHP 包一样,您可以使用 composer 安装此包

composer require blomstra/linear

用法

检索当前组织

use Linear\Sdk\Organization;

$o = new Organization('your-token-here');
$organization = $o->get();

// $organization is now an instance of Linear\Dto\Organization
$organization->name;
$organization->id;
$organization->urlKey

检索团队

可以通过 ID 检索单个团队

use Linear\Sdk\Teams;

$t = new Teams('your-token-here');
$team = $t->getOne('team-id-here');

// $team is now an instance of Linear\Dto\Team

或检索所有团队

use Linear\Sdk\Teams;

$t = new Teams('your-token-here');
$teams = $t->getAll();
// $teams is now an instance of Linear\Dto\Teams

检索项目

可以通过 ID 检索单个项目

use Linear\Sdk\Projects;

$p = new Projects('your-token-here');
$project = $p->getOne('project-id-here');
// $project is now an instance of Linear\Dto\Project

或检索所有项目

use Linear\Sdk\Projects;
   
$p = new Projects('your-token-here');
$projects = $p->getAll();
// $projects is now an instance of Linear\Dto\Projects

问题

检索问题

可以通过 ID 检索单个问题

use Linear\Sdk\Issues;

$i = new Issues('your-token-here');
$issue = $i->getOne('issue-id-here');
// $issue is now an instance of Linear\Dto\Issue

或检索所有问题

use Linear\Sdk\Issues;

$i = new Issues('your-token-here');
$issues = $i->getAll();
// $issues is now an instance of Linear\Dto\Issues

创建问题

use Linear\Sdk\Issues;
use Linear\Dto\Issue;
use Linear\Sdk\Teams;

$t = new Teams('your-token-here');
$team = $t->getAll()->nodes[0];

$i = new Issues('your-token-here');
$title = 'My new issue';
$description = 'This is a description';

$createdIssue = $i->create($title, $description, $team);

// $createdIssue is now an instance of Linear\Dto\Issue

更新问题

use Linear\Sdk\Issues;
use Linear\Dto\Issue;

$i = new Issues('your-token-here');
$issue = $i->getOne('issue-id-here');

$updatedIssueDto = new Issue($issue->id, 'updated title', 'updated description');
$updatedIssue = $i->update($updatedIssue);

// $updatedIssue is now an instance of Linear\Dto\Issue

删除问题

use Linear\Sdk\Issues;

$i = new Issues('your-token-here');
$issue = $i->getOne('issue-id-here');
$i->delete($issue); // returns true or false

测试

此 SDK 中的每个方法都经过了单元测试。有关更多详细信息,请参阅 tests/Api 文件夹。

赞助商

此扩展由 Kagi Search 赞助,一个无广告的搜索引擎

许可

MIT