حالت headless / CI

استفاده از AiraCode داخل GitHub Actions، GitLab CI، Jenkins، یا اسکریپت‌های سرور.

پایه‌ها

  • پرچم -p <prompt> یا --print: یک پرامپت، یک خروجی، تمام.
  • AIRA_API_KEY رو به‌جای aira login ست کن.
  • --output-format json برای خروجی قابل parse.
  • --dangerously-skip-permissions اگه می‌خوای بدون prompt تأیید tool‌ها اجرا بشن (فقط روی CI sandboxed!).
  • --bare برای hermetic mode: نه keychain، نه global config، فقط env.

GitHub Actions

name: review
on: pull_request

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: curl -fsSL https://airachat.ir/install.sh | bash
      - run: |
          aira -p "این PR رو review کن. نکات امنیتی و bugها رو پیدا کن." \
               --output-format json > review.json
        env:
          AIRA_API_KEY: ${{ secrets.AIRA_API_KEY }}
      - run: |
          gh pr comment $GITHUB_HEAD_REF --body-file review.json

GitLab CI

review:
  image: oven/bun:latest
  script:
    - curl -fsSL https://airachat.ir/install.sh | bash
    - export PATH=$HOME/.bun/bin:$PATH
    - aira -p "تست‌های منطقی بنویس" --output-format json
  variables:
    AIRA_API_KEY: $AIRA_API_KEY

امنیت روی CI

  • AIRA_API_KEY رو به‌عنوان secret (encrypted) تنظیم کن، نه plain env var روی yaml.
  • روی GitHub Actions از secrets.AIRA_API_KEY استفاده کن.
  • توکن CI رو با scope محدود بساز (فقط user:inference). برای ساختن: airachat.ir → Settings → Developer.
  • هرگز توکن رو بین branch‌ها به‌اشتراک نذار. هر CI job توکن خودش رو داشته باشه.

داخل Docker

FROM oven/bun:1.3
RUN curl -fsSL https://airachat.ir/install.sh | bash -s -- --direct
ENV PATH="/root/.bun/bin:${PATH}"
ENV AIRA_REMOTE_MEMORY=0
COPY . /app
WORKDIR /app
CMD ["aira", "-p", "/app/prompts/review.txt", "--output-format", "json"]