Airlock
Reference

Default Steps

Built-in reusable steps provided by Airlock.

Airlock ships with a set of built-in steps in the airlock-hq/airlock/defaults/ namespace. These handle the most common workflow tasks.

lint

Reference: airlock-hq/airlock/defaults/lint@main

Runs linters and formatters on the codebase, auto-fixing issues where possible.

  • Detects your project's linter configuration (ESLint, Prettier, Biome, Ruff, etc.)
  • Applies auto-fixes directly to the worktree (must run pre-freeze)
  • Produces patch artifacts for any changes made
- name: lint
  uses: airlock-hq/airlock/defaults/lint@main

test

Reference: airlock-hq/airlock/defaults/test@main

Runs your project's test suite.

  • Detects your test runner (Jest, Vitest, pytest, go test, etc.)
  • Produces content artifacts with test results summary
  • Typically runs post-freeze
- name: test
  uses: airlock-hq/airlock/defaults/test@main

describe

Reference: airlock-hq/airlock/defaults/describe@main

Generates a PR title and description from the diff using AI.

  • Analyzes the diff between AIRLOCK_BASE_SHA and AIRLOCK_HEAD_SHA
  • Produces content artifacts (title and description)
  • Produces comment artifacts (inline review comments)
  • Typically runs post-freeze
- name: describe
  uses: airlock-hq/airlock/defaults/describe@main

push

Reference: airlock-hq/airlock/defaults/push@main

Pushes the validated code to the upstream remote.

  • Reads AIRLOCK_UPSTREAM_URL and pushes AIRLOCK_BRANCH
  • Only runs after all validations and approvals
  • Does nothing if the Push Request was canceled
- name: push
  uses: airlock-hq/airlock/defaults/push@main

create-pr

Reference: airlock-hq/airlock/defaults/create-pr@main

Creates a pull request (or merge request) on the upstream host.

  • Uses the title and description from content artifacts produced by earlier steps
  • Attaches comment artifacts as PR review comments
  • Supports GitHub, GitLab, and Bitbucket
- name: create-pr
  uses: airlock-hq/airlock/defaults/create-pr@main

Typical Ordering

The default workflow uses these steps in this order:

steps:
  - name: lint
    uses: airlock-hq/airlock/defaults/lint@main
  - name: freeze
    run: airlock exec freeze
  - name: describe
    uses: airlock-hq/airlock/defaults/describe@main
  - name: test
    uses: airlock-hq/airlock/defaults/test@main
  - name: review
    run: 'true'
    require-approval: true
  - name: push
    uses: airlock-hq/airlock/defaults/push@main
  - name: create-pr
    uses: airlock-hq/airlock/defaults/create-pr@main

Note that freeze itself is not a default step — it's an airlock exec command used inline.