Skip to main content
changes_since returns how many commits landed since a git ref, and the newest one’s subject.
Every failure below exits with code 1 and names the cause on stderr.

A tool fails

Pass a tag that doesn’t exist:
The error names the step, the tool, and what the tool printed:
Fix the input and run again.

A template points nowhere

With a typo in the finish, '{{commits.comits.0.subject}}', the step runs and the plan fails when it fills the template:
A bad path is a mistake in the plan. The error lists the keys that do exist, so fix the template.

The data runs out

Pass the current commit, so there’s nothing to list:
The plan is right, but commits.commits is empty, so there’s no first subject:

End cleanly when there’s nothing to do

Add an exit step after commits. When the count is 0, it ends the plan as a success and returns the same keys as finish.output:
.graph/plans/changes_since.yaml
Run it again with base=HEAD. It exits with code 0:

Debug a plan

Pause a run and inspect the input a step gets.

Stop early with exit gates

End a plan early on other conditions.

Iterate with map and reduce

Keep going past items that fail.

Run a plan

Run a plan with inputs and use its result.