Skip to main content
The official no-tickets/push-action publishes the state of your .tiny-brain/ directory to no-tickets every time your workflow runs. Pushes from your default branch are recorded as origin: ci and become the authoritative state for the project.

Prerequisites

  1. A no-tickets project. Create one in the dashboard.
  2. A push token. Generate one from Project settings → Tokens in the dashboard. Treat it like a deploy key.
  3. The token stored as a GitHub secret named NT_PUSH_TOKEN on your repo.

Minimal workflow

That’s it. On every push to main and on every PR, the action reads .tiny-brain/ and reports the state to no-tickets.

What the action does

  1. Validates the directory shape (.tiny-brain/<epic>/{epic,feature,fix}.md).
  2. Parses every file’s frontmatter and ## Tasks section.
  3. Computes the delta against the last push for this branch.
  4. Sends the delta with origin: ci and the CI metadata (commit SHA, branch, PR number, run URL).
The dashboard’s “this feature shipped in abc1234” links are populated from this metadata.

Inputs

Outputs

Example using the outputs:

Pinning the action version

Always pin to a major version (@v1) or a SHA. Don’t use @main — it’ll break your builds on the next breaking change.

Self-hosted runners

The action makes outbound HTTPS calls to api.no-tickets.com. If your runner is behind a strict egress firewall, allowlist that host.

Troubleshooting

  • 401 Unauthorized — token missing or revoked. Re-issue from the dashboard.
  • 403 EntitlementExceeded — your team has hit a hard limit. See Entitlements.
  • 422 ValidationError — a frontmatter field is malformed. The error body lists the offending file and field.

See also