حالت headless / CI
اجرای AiraCode از jobهای CI، کانتینرهای Docker، و اتوماسیون سرور.
پایهها
- برای یک پرامپت و یک جواب از
-p <prompt>یا--printاستفاده کن. - بهجای اجرای
aira loginمرورگری،AIRA_API_KEYرو ست کن. - برای خروجی قابلخواندن توسط ماشین از
--output-format jsonیا--output-format stream-jsonاستفاده کن. - برای حالت hermetic بدون keychain، کانفیگ global، hookها، یا sync پلاگین از
--bareاستفاده کن. --dangerously-skip-permissionsرو فقط داخل یک job از CI که sandbox شده و در کنترل خودته استفاده کن.
GitHub Actions
name: review
on: pull_request
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: curl -fsSL https://airacode.ir/install.sh | bash
- run: |
export PATH="$HOME/.airacode/bin:$PATH"
aira -p "Review this PR for bugs and security issues." \
--output-format json > review.json
env:
AIRA_API_KEY: ${{ secrets.AIRA_API_KEY }}
- run: gh pr comment "$GITHUB_HEAD_REF" --body-file review.jsonGitLab CI
review:
image: oven/bun:latest
script:
- curl -fsSL https://airacode.ir/install.sh | bash
- export PATH=$HOME/.airacode/bin:$PATH
- aira -p "Run a code review and return JSON." --output-format json
variables:
AIRA_API_KEY: $AIRA_API_KEYامنیت روی CI
AIRA_API_KEYرو بهعنوان secret رمزنگاریشده ذخیره کن، نه YAML خام.- برای هر محیط CI توکن جداگانه استفاده کن.
- پرامپتهای فقطخواندنی رو ترجیح بده، مگه اینکه job توی یک checkout ایزوله و یکبارمصرف اجرا بشه.
- قبل از اجازهدادن به ابزارهای نوشتن یا shell توی CI، پرچمهای permission رو مرور کن.
داخل Docker
FROM oven/bun:1.3
RUN curl -fsSL https://airacode.ir/install.sh | bash
ENV PATH="/root/.airacode/bin:${PATH}"
ENV AIRA_REMOTE_MEMORY=0
COPY . /app
WORKDIR /app
CMD ["aira", "-p", "/app/prompts/review.txt", "--output-format", "json"]AIRA_REMOTE_MEMORY=0 اختیاریه. برای کانتینرهای یکبارمصرف که میخوای همهٔ خوندن و نوشتن حافظه محلی بمونه مفیده.