pub struct ClickUpClient { /* private fields */ }Implementations§
Source§impl ClickUpClient
impl ClickUpClient
Sourcepub fn new(list_id: impl Into<String>, token: SecretString) -> Self
pub fn new(list_id: impl Into<String>, token: SecretString) -> Self
Create a new ClickUp client.
Sourcepub fn with_base_url(
base_url: impl Into<String>,
list_id: impl Into<String>,
token: SecretString,
) -> Self
pub fn with_base_url( base_url: impl Into<String>, list_id: impl Into<String>, token: SecretString, ) -> Self
Create a new ClickUp client with a custom base URL (for testing).
Sourcepub fn with_team_id(self, team_id: impl Into<String>) -> Self
pub fn with_team_id(self, team_id: impl Into<String>) -> Self
Set team (workspace) ID — required for custom task ID resolution.
Trait Implementations§
Source§impl IssueProvider for ClickUpClient
impl IssueProvider for ClickUpClient
Source§fn get_issues<'life0, 'async_trait>(
&'life0 self,
filter: IssueFilter,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<Issue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_issues<'life0, 'async_trait>(
&'life0 self,
filter: IssueFilter,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<Issue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get a list of issues with optional filters.
Source§fn get_issue<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Issue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_issue<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Issue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get a single issue by key (e.g., “gitlab#123”, “gh#456”).
Source§fn create_issue<'life0, 'async_trait>(
&'life0 self,
input: CreateIssueInput,
) -> Pin<Box<dyn Future<Output = Result<Issue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_issue<'life0, 'async_trait>(
&'life0 self,
input: CreateIssueInput,
) -> Pin<Box<dyn Future<Output = Result<Issue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create a new issue.
Source§fn update_issue<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
input: UpdateIssueInput,
) -> Pin<Box<dyn Future<Output = Result<Issue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_issue<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
input: UpdateIssueInput,
) -> Pin<Box<dyn Future<Output = Result<Issue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Update an existing issue.
Source§fn set_custom_fields<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
issue_key: &'life1 str,
fields: &'life2 [Value],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn set_custom_fields<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
issue_key: &'life1 str,
fields: &'life2 [Value],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Set custom fields on an issue. Each entry:
{"id": "field_id", "value": <value>}.
Default is no-op — override in providers that support custom fields (e.g., ClickUp).fn get_comments<'life0, 'life1, 'async_trait>(
&'life0 self,
issue_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<Comment>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn add_comment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
issue_key: &'life1 str,
body: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Comment>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn upload_attachment<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
issue_key: &'life1 str,
filename: &'life2 str,
data: &'life3 [u8],
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn upload_attachment<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
issue_key: &'life1 str,
filename: &'life2 str,
data: &'life3 [u8],
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Upload a file attachment to an issue. Returns the download URL.
Default returns ProviderUnsupported — override in providers that support attachments.
Source§fn get_issue_attachments<'life0, 'life1, 'async_trait>(
&'life0 self,
issue_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<AssetMeta>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_issue_attachments<'life0, 'life1, 'async_trait>(
&'life0 self,
issue_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<AssetMeta>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
List attachments currently attached to an issue (body + comments). Read more
Source§fn download_attachment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
issue_key: &'life1 str,
asset_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn download_attachment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
issue_key: &'life1 str,
asset_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Download the raw bytes of an attachment belonging to an issue. Read more
Source§fn asset_capabilities(&self) -> AssetCapabilities
fn asset_capabilities(&self) -> AssetCapabilities
Describe which asset operations this provider supports for each
context. Used by the enricher to surface per-provider capabilities
in tool schemas so agents can adapt their behaviour before making
calls that would fail with
ProviderUnsupported.Source§fn get_statuses<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<IssueStatus>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_statuses<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<IssueStatus>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get available statuses for the issue tracker.
Default returns ProviderUnsupported — override in providers that support statuses.
Source§fn link_issues<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
source_key: &'life1 str,
target_key: &'life2 str,
link_type: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn link_issues<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
source_key: &'life1 str,
target_key: &'life2 str,
link_type: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Link two issues together.
Source§fn unlink_issues<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
source_key: &'life1 str,
target_key: &'life2 str,
link_type: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn unlink_issues<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
source_key: &'life1 str,
target_key: &'life2 str,
link_type: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Remove a link between two issues.
Source§fn get_issue_relations<'life0, 'life1, 'async_trait>(
&'life0 self,
issue_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<IssueRelations>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_issue_relations<'life0, 'life1, 'async_trait>(
&'life0 self,
issue_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<IssueRelations>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get issue relations (parent, subtasks, linked issues).
Source§fn provider_name(&self) -> &'static str
fn provider_name(&self) -> &'static str
Get the provider name for logging (e.g., “gitlab”, “github”).
Source§fn get_users<'life0, 'async_trait>(
&'life0 self,
_options: GetUsersOptions,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<User>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_users<'life0, 'async_trait>(
&'life0 self,
_options: GetUsersOptions,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<User>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Get users from the issue tracker (Jira only).
Source§fn delete_attachment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_issue_key: &'life1 str,
_asset_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn delete_attachment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_issue_key: &'life1 str,
_asset_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Delete an attachment from an issue. Read more
Source§fn get_structures<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<Structure>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_structures<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<Structure>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
List all available structures.
Source§fn get_structure_forest<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
_options: GetForestOptions,
) -> Pin<Box<dyn Future<Output = Result<StructureForest, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_structure_forest<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
_options: GetForestOptions,
) -> Pin<Box<dyn Future<Output = Result<StructureForest, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Get a structure’s forest (hierarchy tree).
Source§fn add_structure_rows<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
_input: AddStructureRowsInput,
) -> Pin<Box<dyn Future<Output = Result<ForestModifyResult, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn add_structure_rows<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
_input: AddStructureRowsInput,
) -> Pin<Box<dyn Future<Output = Result<ForestModifyResult, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Add rows to a structure’s forest.
Source§fn move_structure_rows<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
_input: MoveStructureRowsInput,
) -> Pin<Box<dyn Future<Output = Result<ForestModifyResult, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn move_structure_rows<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
_input: MoveStructureRowsInput,
) -> Pin<Box<dyn Future<Output = Result<ForestModifyResult, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Move rows within a structure’s forest.
Source§fn remove_structure_row<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
_row_id: u64,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn remove_structure_row<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
_row_id: u64,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Remove a row from a structure’s forest.
Source§fn get_structure_values<'life0, 'async_trait>(
&'life0 self,
_input: GetStructureValuesInput,
) -> Pin<Box<dyn Future<Output = Result<StructureValues, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_structure_values<'life0, 'async_trait>(
&'life0 self,
_input: GetStructureValuesInput,
) -> Pin<Box<dyn Future<Output = Result<StructureValues, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Batch-read column values (including formulas) for structure rows.
Source§fn get_structure_views<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
_view_id: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<Vec<StructureView>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_structure_views<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
_view_id: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<Vec<StructureView>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Get views for a structure, optionally a specific view by ID.
Source§fn save_structure_view<'life0, 'async_trait>(
&'life0 self,
_input: SaveStructureViewInput,
) -> Pin<Box<dyn Future<Output = Result<StructureView, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn save_structure_view<'life0, 'async_trait>(
&'life0 self,
_input: SaveStructureViewInput,
) -> Pin<Box<dyn Future<Output = Result<StructureView, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Create or update a structure view.
Source§fn create_structure<'life0, 'async_trait>(
&'life0 self,
_input: CreateStructureInput,
) -> Pin<Box<dyn Future<Output = Result<Structure, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn create_structure<'life0, 'async_trait>(
&'life0 self,
_input: CreateStructureInput,
) -> Pin<Box<dyn Future<Output = Result<Structure, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Create a new structure.
Source§fn get_structure_generators<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<StructureGenerator>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_structure_generators<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<StructureGenerator>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
List generators configured on a structure.
Source§fn add_structure_generator<'life0, 'async_trait>(
&'life0 self,
_input: AddStructureGeneratorInput,
) -> Pin<Box<dyn Future<Output = Result<StructureGenerator, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn add_structure_generator<'life0, 'async_trait>(
&'life0 self,
_input: AddStructureGeneratorInput,
) -> Pin<Box<dyn Future<Output = Result<StructureGenerator, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Attach a new generator to a structure.
Source§fn sync_structure_generator<'life0, 'async_trait>(
&'life0 self,
_input: SyncStructureGeneratorInput,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn sync_structure_generator<'life0, 'async_trait>(
&'life0 self,
_input: SyncStructureGeneratorInput,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Force a generator to refresh its produced rows.
Source§fn delete_structure<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn delete_structure<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Delete a structure permanently.
Source§fn update_structure_automation<'life0, 'async_trait>(
&'life0 self,
_input: UpdateStructureAutomationInput,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn update_structure_automation<'life0, 'async_trait>(
&'life0 self,
_input: UpdateStructureAutomationInput,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Replace a structure’s automation configuration.
Source§fn trigger_structure_automation<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn trigger_structure_automation<'life0, 'async_trait>(
&'life0 self,
_structure_id: u64,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Run a structure’s automation pass on demand.
Source§fn list_project_versions<'life0, 'async_trait>(
&'life0 self,
_params: ListProjectVersionsParams,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<ProjectVersion>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn list_project_versions<'life0, 'async_trait>(
&'life0 self,
_params: ListProjectVersionsParams,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<ProjectVersion>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
List versions (“releases” /
fixVersion targets) for a project.
Default: ProviderUnsupported.Source§fn upsert_project_version<'life0, 'async_trait>(
&'life0 self,
_input: UpsertProjectVersionInput,
) -> Pin<Box<dyn Future<Output = Result<ProjectVersion, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn upsert_project_version<'life0, 'async_trait>(
&'life0 self,
_input: UpsertProjectVersionInput,
) -> Pin<Box<dyn Future<Output = Result<ProjectVersion, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Create-or-update a project version, keyed by
(project, name).
Partial update: optional fields left as None are not touched.
Default: ProviderUnsupported.Source§fn get_board_sprints<'life0, 'async_trait>(
&'life0 self,
_board_id: u64,
_state: SprintState,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<Sprint>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_board_sprints<'life0, 'async_trait>(
&'life0 self,
_board_id: u64,
_state: SprintState,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<Sprint>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
List sprints visible on a board, optionally filtered by state.
Source§impl MergeRequestProvider for ClickUpClient
impl MergeRequestProvider for ClickUpClient
Source§fn provider_name(&self) -> &'static str
fn provider_name(&self) -> &'static str
Get the provider name for logging.
Source§fn get_merge_requests<'life0, 'async_trait>(
&'life0 self,
_filter: MrFilter,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<MergeRequest>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_merge_requests<'life0, 'async_trait>(
&'life0 self,
_filter: MrFilter,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<MergeRequest>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Get a list of merge requests with optional filters.
Source§fn get_merge_request<'life0, 'life1, 'async_trait>(
&'life0 self,
_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<MergeRequest, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_merge_request<'life0, 'life1, 'async_trait>(
&'life0 self,
_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<MergeRequest, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Get a single merge request by key (e.g., “mr#123”, “pr#456”).
Source§fn get_discussions<'life0, 'life1, 'async_trait>(
&'life0 self,
_mr_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<Discussion>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_discussions<'life0, 'life1, 'async_trait>(
&'life0 self,
_mr_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<Discussion>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Get discussions/comments for a merge request.
fn get_diffs<'life0, 'life1, 'async_trait>(
&'life0 self,
_mr_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<FileDiff>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn add_comment<'life0, 'life1, 'async_trait>(
&'life0 self,
_mr_key: &'life1 str,
_input: CreateCommentInput,
) -> Pin<Box<dyn Future<Output = Result<Comment, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Source§fn create_merge_request<'life0, 'async_trait>(
&'life0 self,
_input: CreateMergeRequestInput,
) -> Pin<Box<dyn Future<Output = Result<MergeRequest, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn create_merge_request<'life0, 'async_trait>(
&'life0 self,
_input: CreateMergeRequestInput,
) -> Pin<Box<dyn Future<Output = Result<MergeRequest, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Create a new merge request / pull request.
Source§fn update_merge_request<'life0, 'life1, 'async_trait>(
&'life0 self,
_key: &'life1 str,
_input: UpdateMergeRequestInput,
) -> Pin<Box<dyn Future<Output = Result<MergeRequest, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn update_merge_request<'life0, 'life1, 'async_trait>(
&'life0 self,
_key: &'life1 str,
_input: UpdateMergeRequestInput,
) -> Pin<Box<dyn Future<Output = Result<MergeRequest, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Update an existing merge request / pull request.
Source§fn get_releases<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<Release>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_releases<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ProviderResult<Release>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Get releases/tags for the repository.
Source§fn get_mr_attachments<'life0, 'life1, 'async_trait>(
&'life0 self,
_mr_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<AssetMeta>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_mr_attachments<'life0, 'life1, 'async_trait>(
&'life0 self,
_mr_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<AssetMeta>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
List attachments on a merge request (body + discussions).
fn download_mr_attachment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_mr_key: &'life1 str,
_asset_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn delete_mr_attachment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_mr_key: &'life1 str,
_asset_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Source§impl PipelineProvider for ClickUpClient
impl PipelineProvider for ClickUpClient
Source§fn provider_name(&self) -> &'static str
fn provider_name(&self) -> &'static str
Get the provider name for logging.
fn get_pipeline<'life0, 'async_trait>(
&'life0 self,
_input: GetPipelineInput,
) -> Pin<Box<dyn Future<Output = Result<PipelineInfo, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_job_logs<'life0, 'life1, 'async_trait>(
&'life0 self,
_job_id: &'life1 str,
_options: JobLogOptions,
) -> Pin<Box<dyn Future<Output = Result<JobLogOutput, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_job_logs<'life0, 'life1, 'async_trait>(
&'life0 self,
_job_id: &'life1 str,
_options: JobLogOptions,
) -> Pin<Box<dyn Future<Output = Result<JobLogOutput, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Get job logs with search, pagination, or smart extraction.
Auto Trait Implementations§
impl Freeze for ClickUpClient
impl !RefUnwindSafe for ClickUpClient
impl Send for ClickUpClient
impl Sync for ClickUpClient
impl Unpin for ClickUpClient
impl UnsafeUnpin for ClickUpClient
impl !UnwindSafe for ClickUpClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more