feat(integrations): add assignee/assignment support
Add a new integrations/assignees backend (src-tauri/src/integrations/assignees.rs) and expose commands to list, read and set assignees: - list_integration_assignees - get_integration_assignees - set_integration_assignees Introduce IntegrationAssignee and AssignmentTarget types and provider-specific URL/payload logic (GitHub, Gitea, GitLab / self-hosted, Azure DevOps). The code handles pagination, provider quirks (Gitea legacy fields, GitLab assignee_ids, Azure reviewer vs work-item differences) and validates/verifies assignments. Unit tests cover routing and payload behavior. Add UI components AssigneePicker.svelte and AssignmentEditor.svelte and update CreateIssueDialog, CreateReviewDialog, IssueCenter, ReviewCenter, git types and git.ts to use the new assignment functionality.
This commit is contained in:
@@ -757,3 +757,13 @@ export function checkoutSubmoduleRevision(path: string, modulePath: string, revi
|
||||
export function getFileRestorePatch(path: string, commit: string, file: string): Promise<string> {
|
||||
return invoke("get_file_restore_patch", { path, commit, file });
|
||||
}
|
||||
|
||||
export function listIntegrationAssignees(provider: GitIntegrationProvider, baseUrl: string, username: string, token: string, target: import("./types").AssignmentTarget): Promise<import("./types").IntegrationAssignee[]> {
|
||||
return invoke("list_integration_assignees", { provider, baseUrl, username, token, target });
|
||||
}
|
||||
export function getIntegrationAssignees(provider: GitIntegrationProvider, baseUrl: string, username: string, token: string, target: import("./types").AssignmentTarget): Promise<import("./types").IntegrationAssignee[]> {
|
||||
return invoke("get_integration_assignees", { provider, baseUrl, username, token, target });
|
||||
}
|
||||
export function setIntegrationAssignees(provider: GitIntegrationProvider, baseUrl: string, username: string, token: string, target: import("./types").AssignmentTarget, users: import("./types").IntegrationAssignee[]): Promise<import("./types").IntegrationAssignee[]> {
|
||||
return invoke("set_integration_assignees", { provider, baseUrl, username, token, target, users });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user