API v1
Les ressources v1 pendent directement du client : client.projects, client.workItems, client.cycles,
et ainsi de suite. Chaque appel limité à un espace de travail prend d'abord le slug de l'espace de travail,
puis l'id du projet là où l'URL en a un. Contrairement à la v2, project ici est l'UUID du projet, et les
classes plus anciennes épellent la méthode de suppression delete ou del (suivez la liste de méthodes que
votre éditeur affiche).
import { PlaneClient } from "@hoyasumii/plane";
const client = new PlaneClient({ apiKey: "your-api-key" });
const projects = await client.projects.list("workspace-slug");
const project = await client.projects.create("workspace-slug", {
name: "My Project",
description: "A new project",
});
const item = await client.workItems.create("workspace-slug", project.id, { name: "First task" });
await client.workItems.comments.create("workspace-slug", project.id, item.id, { comment_html: "<p>Hello</p>" });
// Un élément de travail par sa clé humaine, à l'échelle de l'espace de travail.
const byKey = await client.workItems.retrieveByIdentifier("workspace-slug", "ENG-12");
Ressources
- Projects : gestion et organisation des projets
- WorkItems : gestion des éléments de travail avec des opérations CRUD complètes
- WorkItemTypes : définitions et gestion de types d'élément de travail personnalisés
- WorkItemProperties : propriétés personnalisées pour les éléments de travail
- Labels : catégorisation et étiquetage
- States : gestion des états de workflow
- Users : gestion des utilisateurs et des profils
- Roles : définitions des rôles d'espace de travail et de projet (lecture seule)
- Estimates : estimations de projet et points d'estimation
- Modules : organisation des fonctionnalités et gestion des modules
- Cycles : gestion des sprints et des itérations
- Customers : gestion et opérations sur les clients
- Pages : gestion des pages d'espace de travail et de projet
- Links : liaison et relations des éléments de travail
- Workspace : opérations au niveau de l'espace de travail
- Epics : gestion et organisation des épopées
- Intake : gestion des formulaires et demandes d'admission
- Stickies : gestion des pense-bêtes
- Teamspaces : gestion des espaces d'équipe
- Milestones : suivi et gestion des jalons
- Initiatives : gestion des initiatives
- WorkspaceTemplates : modèles d'élément de travail, de projet et de page au niveau de l'espace de travail
- WorkspaceWorkItemTypes : gestion des types d'élément de travail au niveau de l'espace de travail, avec liens de propriétés
- WorkspaceWorkItemProperties : gestion des propriétés personnalisées au niveau de l'espace de travail, avec options
- WorkspaceProjectLabels : gestion des labels de projet au niveau de l'espace de travail
- WorkspaceProjectStates : gestion des états de projet au niveau de l'espace de travail
- WorkItemRelationDefinitions : définitions de types de relation personnalisés entre éléments de travail
- Releases : gestion des releases avec tags, labels, labels d'élément, changelog, commentaires, liens et éléments de travail
- Collections : dossiers qui regroupent les pages d'espace de travail, avec gestion des membres et des pages
- AgentRuns : orchestration des exécutions d'agent IA et suivi de leur activité
- Workflows : gestion du workflow de projet avec attachements d'état, transitions, hooks de transition, activités et approbations d'élément de travail
- ProjectTemplates : gestion des modèles d'élément de travail et de page par projet
- Features : gestion des fonctionnalités d'espace de travail et de projet
- WorkspaceStates : états d'élément de travail au niveau de l'espace de travail (catalogue), sous gouvernance d'espace de travail — lectures à double mode, écritures réservées à la gouvernance
- WorkspaceWorkflows : catalogue de workflows au niveau de l'espace de travail, sous gouvernance d'espace de travail, avec chaîne (états), transitions, usage, activités et hooks de transition
- WorkItemTypeGovernance : régit les workflows qu'un type d'élément de travail au niveau de l'espace de travail peut utiliser (modes any/constrained/required), avec des épingles par projet et les points de terminaison de sélection/aperçu de repli côté projet
- Instance : configuration et métadonnées de l'instance (version, édition, fournisseurs d'authentification, SMTP, limites de téléchargement) depuis
GET /api/instances/
Les sous-ressources pendent de leur parent : workItems.comments, workItems.attachments,
workItems.activities, workItems.relations, workItems.workLogs, customers.properties,
customers.requests, teamspaces.members, teamspaces.projects, initiatives.labels,
initiatives.projects, initiatives.epics, agentRuns.activities, workItemProperties.options,
workItemProperties.values, et ainsi de suite.
Informations sur l'instance
const info = await client.instance.retrieve();
console.log(info.instance.current_version, info.config.is_smtp_configured);
Télécharger des pièces jointes
workItems.attachments.download résout l'URL signée d'une pièce jointe et la télécharge, sans envoyer la clé
d'API à l'hébergeur de stockage. Avec maxBytes, un fichier plus grand est refusé avec
AttachmentTooLargeError : dès le départ quand le stockage annonce son Content-Length, sinon dès que le
corps dépasse le plafond.
import { AttachmentTooLargeError } from "@hoyasumii/plane";
try {
const { data, contentType } = await client.workItems.attachments.download("acme", projectId, itemId, "asset-1", {
maxBytes: 20 * 1024 * 1024,
});
console.log(contentType, data.length);
} catch (error) {
if (error instanceof AttachmentTooLargeError) console.log("too large");
else throw error;
}
Erreurs
Une requête v1 échouée lève HttpError, avec le code de statut, le corps de la réponse et les en-têtes de la
réponse (en minuscules, donc headers["retry-after"] sur un 429). Voir Erreurs pour toute la
hiérarchie.