# tinqs/ci/checkout — Tinqs Studio CI
# Clones a repo from tinqs.com (self-hosted Gitea) using plain git.
# Supports depth control, branch/tag selection, and token auth for private repos.
# Composite action — runs directly on the host, no Node.js runtime needed.
# Author: Ozan + Claude Code — 2026-05-22

name: 'Tinqs Checkout'
description: 'Clone a Gitea repository (replaces actions/checkout)'

inputs:
  repository:
    description: 'Repository (owner/repo)'
    default: '${{ github.repository }}'
  ref:
    description: 'Branch or tag to checkout'
    default: '${{ github.ref_name }}'
  depth:
    description: 'Clone depth (0 = full)'
    default: '1'
  path:
    description: 'Directory to clone into'
    default: '.'
  token:
    description: 'Gitea access token (for private repos)'
    default: ''

runs:
  using: 'composite'
  steps:
    - run: |
        REPO="${{ inputs.repository }}"
        REF="${{ inputs.ref }}"
        DEPTH="${{ inputs.depth }}"
        TARGET="${{ inputs.path }}"
        TOKEN="${{ inputs.token }}"

        if [ "$DEPTH" = "0" ]; then
          DEPTH_FLAG=""
        else
          DEPTH_FLAG="--depth $DEPTH"
        fi

        if [ -n "$TOKEN" ]; then
          URL="https://token:${TOKEN}@tinqs.com/${REPO}.git"
        else
          URL="https://tinqs.com/${REPO}.git"
        fi

        if [ "$TARGET" = "." ]; then
          git clone $DEPTH_FLAG --branch "$REF" "$URL" .
        else
          git clone $DEPTH_FLAG --branch "$REF" "$URL" "$TARGET"
        fi

        echo "Checked out ${REPO}@${REF}"
      shell: bash
