Definitively.Domain.GhAction (definitively v0.3.0)

Copy Markdown

Pure gh argv builders and result parsers for GitHub CLI nodes.

Summary

Functions

Builds argv for a gh node.

Builds gh argv for the given action and options.

Extracts run id from gh run list JSON output.

Parses gh JSON stdout into signals and data.

Types

argv()

@type argv() :: [String.t()]

Functions

argv_for(node_definition)

@spec argv_for(Definitively.Domain.NodeDefinition.t()) ::
  {:ok, argv() | {:multi, [argv()]} | {:resolve_then_watch, argv()}}
  | {:error, term()}

Builds argv for a gh node.

build_argv(action, opts)

@spec build_argv(atom(), map() | nil) ::
  {:ok, argv() | {:multi, [argv()]} | {:resolve_then_watch, argv()}}
  | {:error, term()}

Builds gh argv for the given action and options.

extract_run_id(stdout)

@spec extract_run_id(String.t()) :: {:ok, String.t()} | {:error, :no_run_found}

Extracts run id from gh run list JSON output.

parse_result(arg1, arg2, stdout)

@spec parse_result(atom(), non_neg_integer(), String.t()) :: {map(), map() | nil}

Parses gh JSON stdout into signals and data.