name: AI Comment Reply # WORKFLOW ROUTING: # This workflow handles SPECIFIC commands: help, explain, suggest, security, summarize, changelog, review-again, setup-labels # Other workflows: ai-issue-triage.yml (@codebot triage), ai-chat.yml (free-form questions) on: issue_comment: types: [created] # CUSTOMIZE YOUR BOT NAME: # Change '@codebot' in the 'if' condition below to match your config.yml mention_prefix # Examples: '@bartender', '@uni', '@joey', '@codebot' jobs: ai-reply: runs-on: ubuntu-latest # Only run for specific commands (not free-form chat or triage) # This prevents duplicate runs with ai-chat.yml and ai-issue-triage.yml if: | (contains(github.event.comment.body, '@codebot help') || contains(github.event.comment.body, '@codebot explain') || contains(github.event.comment.body, '@codebot suggest') || contains(github.event.comment.body, '@codebot security') || contains(github.event.comment.body, '@codebot summarize') || contains(github.event.comment.body, '@codebot changelog') || contains(github.event.comment.body, '@codebot review-again') || contains(github.event.comment.body, '@codebot setup-labels')) steps: - uses: actions/checkout@v4 - uses: actions/checkout@v4 with: repository: Hiddenden/openrabbit path: .ai-review token: ${{ secrets.AI_REVIEW_TOKEN }} - uses: actions/setup-python@v5 with: python-version: "3.11" - run: pip install requests pyyaml - name: Run AI Comment Response env: AI_REVIEW_TOKEN: ${{ secrets.AI_REVIEW_TOKEN }} AI_REVIEW_API_URL: https://git.hiddenden.cafe/api/v1 OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }} OLLAMA_HOST: ${{ secrets.OLLAMA_HOST }} run: | cd .ai-review/tools/ai-review # Determine if this is a PR or issue comment IS_PR="${{ gitea.event.issue.pull_request != null }}" REPO="${{ gitea.repository }}" ISSUE_NUMBER="${{ gitea.event.issue.number }}" # Validate inputs if [ -z "$REPO" ] || [ -z "$ISSUE_NUMBER" ]; then echo "Error: Missing required parameters" exit 1 fi # Validate repository format (owner/repo) if ! echo "$REPO" | grep -qE '^[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+$'; then echo "Error: Invalid repository format: $REPO" exit 1 fi if [ "$IS_PR" = "true" ]; then # This is a PR comment - use safe dispatch with minimal event data # Build minimal event payload (does not include sensitive user data) EVENT_DATA=$(cat <