ctl-core 0.6.15

Shared clap chassis for the *ctl CLIs
Documentation
# Hooks call mise tasks, so a hook runs the same command as CI. mise.dev.toml
# installs them through its postinstall hook; CI never loads that file, so no
# runner has them and no hook needs a CI skip.
pre-commit:
  commands:
    # TODO(CTC-018): remove once a mise release includes jdx/mise#14316.
    warm-remote-tasks:
      priority: 1
      run: env -u GIT_INDEX_FILE mise tasks ls >/dev/null
    format:
      # *.rs matches every depth; **/*.rs misses files at the root.
      glob: "*.rs"
      run: mise run format
    staged-secrets:
      run: mise run hooks:secrets:staged

commit-msg:
  commands:
    # TODO(CTC-018): remove once a mise release includes jdx/mise#14316.
    warm-remote-tasks:
      priority: 1
      run: env -u GIT_INDEX_FILE mise tasks ls >/dev/null
    committed:
      run: mise run commit-msg {1}

pre-push:
  commands:
    lockfile:
      run: mise install --locked
    commits:
      run: mise run commits
    verify:
      run: mise run verify
    full-history-secrets:
      run: mise run hooks:secrets:history