Skip to main content
Declare variables: on the entry agent file; substitution applies to imported content only ({{ $name }} tokens in fragments and templates), never to the declaring file’s own body.
  • Declare repoFullName and githubConnection explicitly, even though GitHub Sync injects both as context variables from the sync binding. Declared values win the merge, so the file applies identically from Sync and in a dry-run — this is the convention every managed-template import in this repo follows.
  • Use the literal connection name for providers Sync can’t infer. There is no Slack context variable; the house convention is a connection literally named slack.
  • Names are [A-Za-z_][A-Za-z0-9_]*; values are strings (numbers and booleans are coerced). With any variables in scope, every {{ $name }} in imported content must resolve or the compile fails naming the variable and the available names — there are no silent blanks in this dialect.
  • Don’t confuse the dialects. {{ $name }} resolves at apply time; {{message.text}} resolves at runtime against the event. The $ prefix is the discriminator, and no escaping is ever needed.
See variables and templating for the full grammar, and templates for how variables pair with managed imports.