mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-17 19:20:39 +09:00
feat(plugins): add document CRUD methods to Plugin SDK
Wire issue document list/get/upsert/delete operations through the JSON-RPC protocol so plugins can manage issue documents with the same capabilities available via the REST API. Fixes #940
This commit is contained in:
parent
3dc3347a58
commit
0d4dd50b35
7 changed files with 216 additions and 1 deletions
|
|
@ -165,6 +165,14 @@ export interface HostServices {
|
|||
createComment(params: WorkerToHostMethods["issues.createComment"][0]): Promise<WorkerToHostMethods["issues.createComment"][1]>;
|
||||
};
|
||||
|
||||
/** Provides `issues.documents.list`, `issues.documents.get`, `issues.documents.upsert`, `issues.documents.delete`. */
|
||||
issueDocuments: {
|
||||
list(params: WorkerToHostMethods["issues.documents.list"][0]): Promise<WorkerToHostMethods["issues.documents.list"][1]>;
|
||||
get(params: WorkerToHostMethods["issues.documents.get"][0]): Promise<WorkerToHostMethods["issues.documents.get"][1]>;
|
||||
upsert(params: WorkerToHostMethods["issues.documents.upsert"][0]): Promise<WorkerToHostMethods["issues.documents.upsert"][1]>;
|
||||
delete(params: WorkerToHostMethods["issues.documents.delete"][0]): Promise<WorkerToHostMethods["issues.documents.delete"][1]>;
|
||||
};
|
||||
|
||||
/** Provides `agents.list`, `agents.get`, `agents.pause`, `agents.resume`, `agents.invoke`. */
|
||||
agents: {
|
||||
list(params: WorkerToHostMethods["agents.list"][0]): Promise<WorkerToHostMethods["agents.list"][1]>;
|
||||
|
|
@ -298,6 +306,12 @@ const METHOD_CAPABILITY_MAP: Record<WorkerToHostMethodName, PluginCapability | n
|
|||
"issues.listComments": "issue.comments.read",
|
||||
"issues.createComment": "issue.comments.create",
|
||||
|
||||
// Issue Documents
|
||||
"issues.documents.list": "issue.documents.read",
|
||||
"issues.documents.get": "issue.documents.read",
|
||||
"issues.documents.upsert": "issue.documents.write",
|
||||
"issues.documents.delete": "issue.documents.write",
|
||||
|
||||
// Agents
|
||||
"agents.list": "agents.read",
|
||||
"agents.get": "agents.read",
|
||||
|
|
@ -483,6 +497,20 @@ export function createHostClientHandlers(
|
|||
return services.issues.createComment(params);
|
||||
}),
|
||||
|
||||
// Issue Documents
|
||||
"issues.documents.list": gated("issues.documents.list", async (params) => {
|
||||
return services.issueDocuments.list(params);
|
||||
}),
|
||||
"issues.documents.get": gated("issues.documents.get", async (params) => {
|
||||
return services.issueDocuments.get(params);
|
||||
}),
|
||||
"issues.documents.upsert": gated("issues.documents.upsert", async (params) => {
|
||||
return services.issueDocuments.upsert(params);
|
||||
}),
|
||||
"issues.documents.delete": gated("issues.documents.delete", async (params) => {
|
||||
return services.issueDocuments.delete(params);
|
||||
}),
|
||||
|
||||
// Agents
|
||||
"agents.list": gated("agents.list", async (params) => {
|
||||
return services.agents.list(params);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue