Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/vole.git

Write over SSH with a registered key:

git clone ssh://git@rodent.software:2222/vole.git

A free and open-source forge that lives in your Git repo.

#158

Say why workflows have no expression language

merged · by keenan 7d ago · merged into main at 390e3404 by keenan 7d ago

keenan opened this 7d ago

What

Records the decision from #138 that the workflow format has no expression language. ${{ }} and a smaller interpolation syntax are non-goals; the shell is the expression language and the event file is the context.

Why

A template language would duplicate the shell and need its own parser, types, functions, and escaping rules, validated on every push. It would also invite untrusted event text — issue titles, comment bodies, manual inputs — into run, where data becomes code. Secrets already arrive as environment variables; an expression would make them easier to put in an argument or a log line.

The docs now say this where a reader meets it, with an example of reading a manual input from $VOLE_EVENT_PATH. The stale claim that a printed secret reaches the log is removed, because the runner masks delivered values.

Checks

  • vole workflow check
  • vole workflow run verify
  • python3 scripts/check-links.py

Discussion (1)

keenan 7d ago

Rebased onto main after the log-masking change landed. Main had already removed the stale “a printed secret reaches the log” bullet, so this change now only replaces the expressions bullet and adds the Context and expressions section. vole workflow run verify passes on the rebased head (390e340).