Skip to main content

Crate ironflow_templates

Crate ironflow_templates 

Source
Expand description

§ironflow-templates

Template system for the ironflow workflow engine, inspired by shadcn/ui.

Templates are workflow handlers hosted in external Git repositories. Instead of installing them as dependencies, ironflow-cli template add copies the source files directly into your project – you own the code and can customize it freely.

§Template format

A template repository contains one or more template directories, each with a template.toml manifest and a src/ folder:

my-templates/
  ci-pipeline/
    template.toml
    src/
      ci_pipeline.rs
  code-review/
    template.toml
    src/
      code_review.rs

A repository dedicated to one template can keep template.toml and src/ at its root instead:

gitlab-mr-review/
  template.toml
  src/
    mod.rs

template.toml may also declare a [requirements] section (environment variables, workflow secrets, tools expected in the runner image, notes), printed after installation.

§Quick start

use std::path::Path;
use ironflow_templates::registry::discover_templates;

let templates = discover_templates(Path::new("./my-templates"))?;
for (name, (manifest, _dir)) in &templates {
    println!("{name}: {}", manifest.template.description);
}

Modules§

auto_register
Auto-registration of installed template handlers.
deps
Dependency injection and version validation for template installation.
error
Error types for the template system.
fetch
Fetch template repositories from Git.
install
Install a template into the user’s project.
lockfile
Lockfile tracking for installed templates (.ironflow-templates.lock).
manifest
Template manifest parsing (template.toml).
registry
Template discovery from a local directory and remote registry.