Skip to main content

Crate ironflow_ops_gitlab

Crate ironflow_ops_gitlab 

Source
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;

Structs§

GitLab
A GitLab client that resolves credentials from the workflow’s secret store.
GitLabOp
A GitLab endpoint wrapped as an Ironflow Operation.