ironflow-ops-gitlab 0.1.2

GitLab integration for Ironflow workflows, powered by the gitlab crate
Documentation
# ironflow-ops-gitlab

GitLab integration for [Ironflow](https://gitlab.com/ThomasTartrau/ironflow) workflows, powered by the [`gitlab`](https://crates.io/crates/gitlab) crate.

Provides typed, builder-based access to every GitLab API v4 endpoint with automatic credential resolution from the workflow's secret store.

## Usage

```toml
[dependencies]
ironflow-ops-gitlab = "0.1"
```

### Build a client

```rust
use ironflow_ops_gitlab::GitLab;

// From a workflow step (reads gitlab_token from the secret store)
let gitlab = GitLab::from_context(&ctx).await?;

// Self-hosted instance
let gitlab = GitLab::from_context_with_host(&ctx, "gitlab.example.com").await?;

// Explicit token
let gitlab = GitLab::new("glpat-xxxx", "gitlab.com").await?;
```

### Typed queries

Use the re-exported `gitlab::api` builders for type-safe endpoint calls:

```rust
use ironflow_ops_gitlab::GitLab;
use gitlab::api::{projects, AsyncQuery};
use serde::Deserialize;

#[derive(Debug, Deserialize)]
struct Project {
    id: u64,
    name: String,
}

let gitlab = GitLab::from_context(&ctx).await?;
let endpoint = projects::Project::builder().project(42).build()?;
let project: Project = endpoint.query_async(gitlab.client()).await?;
```

### Tracked operations

Wrap any endpoint in a tracked workflow step:

```rust
use ironflow_ops_gitlab::GitLab;
use gitlab::api::projects::issues::CreateIssue;

let gitlab = GitLab::from_context(&ctx).await?;

let endpoint = CreateIssue::builder()
    .project("my-group/my-project")
    .title("Bug report")
    .description("Steps to reproduce...")
    .build()?;

// Tracked as a workflow step with kind "gitlab"
let output = ctx.operation("create-issue", &gitlab.op(endpoint)).await?;
```

## Authentication

Register `gitlab_token` in your workflow's secret store:

```yaml
secrets:
  - name: gitlab_token
    env: GITLAB_TOKEN
```

## API coverage

This crate re-exports the full [`gitlab`](https://docs.rs/gitlab) API. All endpoints available in that crate are available here, including:

- Projects, groups, users
- Issues, merge requests, notes, discussions
- Pipelines, jobs, artifacts
- Repository files, branches, tags, commits
- Releases, deployments, environments
- CI/CD variables, runners, registry
- Labels, milestones, wikis, snippets, packages
- And more -- see the [gitlab crate docs](https://docs.rs/gitlab)