Expand description
GitLab integration for Ironflow workflows.
This crate provides a thin integration layer between the
gitlab crate and Ironflow’s workflow
engine. It re-exports the full gitlab API so that workflow handlers get
typed, builder-based access to every GitLab endpoint without managing
authentication or HTTP clients manually.
§Quick start
use ironflow_ops_gitlab::GitLab;
use ironflow_core::operation::{OperationContext, NoopSecretResolver};
use std::sync::Arc;
let ctx = OperationContext::new(Arc::new(NoopSecretResolver));
let gitlab = GitLab::from_context(&ctx).await?;§Typed queries
Use the re-exported gitlab::api builders and gitlab::api::AsyncQuery to call any
endpoint with a typed response:
use ironflow_ops_gitlab::GitLab;
use gitlab::api::{projects, AsyncQuery};
use ironflow_core::operation::{OperationContext, NoopSecretResolver};
use std::sync::Arc;
let ctx = OperationContext::new(Arc::new(NoopSecretResolver));
let gitlab = GitLab::from_context(&ctx).await?;
let endpoint = projects::Project::builder().project(42).build()?;
let project: serde_json::Value = endpoint.query_async(gitlab.client()).await?;§Tracked operations
Wrap any endpoint in GitLabOp to execute it as a tracked workflow step
via WorkflowContext::operation():
use ironflow_ops_gitlab::GitLab;
use gitlab::api::projects;
use ironflow_core::operation::{OperationContext, NoopSecretResolver};
use std::sync::Arc;
let ctx = OperationContext::new(Arc::new(NoopSecretResolver));
let gitlab = GitLab::from_context(&ctx).await?;
let endpoint = projects::Project::builder().project(42).build()?;
let op = gitlab.op(endpoint);
// op implements Operation -- pass it to ctx.operation("get-project", &op)Re-exports§
pub use gitlab;