diff --git a/.gitea/workflows/ai-chat.yml b/.gitea/workflows/ai-chat.yml deleted file mode 100644 index db861c2..0000000 --- a/.gitea/workflows/ai-chat.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: AI Chat ({{BOT_USERNAME}}) - -# WORKFLOW ROUTING: -# This workflow handles FREE-FORM questions/chat (no specific command) -# Other workflows: ai-issue-triage.yml (@{{BOT_NAME}} triage), ai-comment-reply.yml (specific commands) -# This is the FALLBACK for any @{{BOT_NAME}} mention that isn't a known command - -on: - issue_comment: - types: [created] - -# CUSTOMIZE YOUR BOT NAME: -# Change '@{{BOT_NAME}}' in all conditions below to match your config.yml mention_prefix -# Examples: '@bartender', '@uni', '@joey', '@codebot' - -jobs: - ai-chat: - # Only run if comment mentions the bot but NOT a specific command - # This prevents duplicate runs with ai-comment-reply.yml and ai-issue-triage.yml - # CRITICAL: Ignore bot's own comments to prevent infinite loops (bot username: {{BOT_USERNAME}}) - if: | - {{PLATFORM}}.event.comment.user.login != '{{BOT_USERNAME}}' && - contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}}') && - !contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} triage') && - !contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} help') && - !contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} explain') && - !contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} suggest') && - !contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} security') && - !contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} summarize') && - !contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} changelog') && - !contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} explain-diff') && - !contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} review-again') && - !contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} setup-labels') - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: actions/checkout@v4 - with: - repository: {{OPENRABBIT_REPO}} - 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 Chat - env: - AI_REVIEW_TOKEN: ${{ secrets.AI_REVIEW_TOKEN }} - AI_REVIEW_REPO: ${{ {{PLATFORM}}.repository }} - AI_REVIEW_API_URL: {{API_URL}} - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }} - OLLAMA_HOST: ${{ secrets.OLLAMA_HOST }} - SEARXNG_URL: ${{ secrets.SEARXNG_URL }} - run: | - cd .ai-review/tools/ai-review - python main.py comment ${{ {{PLATFORM}}.repository }} ${{ {{PLATFORM}}.event.issue.number }} "${{ {{PLATFORM}}.event.comment.body }}" diff --git a/.gitea/workflows/ai-codebase-review.yml b/.gitea/workflows/ai-codebase-review.yml deleted file mode 100644 index 1e30283..0000000 --- a/.gitea/workflows/ai-codebase-review.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: AI Codebase Quality Review - -on: - # Weekly scheduled run - # schedule: - # - cron: "0 0 * * 0" # Every Sunday at midnight - - # Manual trigger - workflow_dispatch: - inputs: - report_type: - description: "Type of report to generate" - required: false - default: "full" - type: choice - options: - - full - - security - - quick - -jobs: - ai-codebase-review: - runs-on: ubuntu-latest - - steps: - # Checkout the repository - - uses: actions/checkout@v4 - with: - fetch-depth: 0 # Full history for analysis - - # Checkout central AI tooling - - uses: actions/checkout@v4 - with: - repository: { { OPENRABBIT_REPO } } - path: .ai-review - token: ${{ secrets.AI_REVIEW_TOKEN }} - - # Setup Python - - uses: actions/setup-python@v5 - with: - python-version: "3.11" - - # Install dependencies - - run: pip install requests pyyaml - - # Run AI codebase analysis - - name: Run AI Codebase Analysis - env: - AI_REVIEW_TOKEN: ${{ secrets.AI_REVIEW_TOKEN }} - AI_REVIEW_REPO: ${{ {{PLATFORM}}.repository }} - AI_REVIEW_API_URL: { { API_URL } } - - 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 - python main.py codebase ${{ {{PLATFORM}}.repository }} diff --git a/.gitea/workflows/ai-comment-reply.yml b/.gitea/workflows/ai-comment-reply.yml deleted file mode 100644 index f6fff57..0000000 --- a/.gitea/workflows/ai-comment-reply.yml +++ /dev/null @@ -1,98 +0,0 @@ -name: AI Comment Reply - -# WORKFLOW ROUTING: -# This workflow handles SPECIFIC commands: help, explain, suggest, security, summarize, changelog, explain-diff, review-again, setup-labels -# Other workflows: ai-issue-triage.yml (@{{BOT_NAME}} triage), ai-chat.yml (free-form questions) - -on: - issue_comment: - types: [created] - -# CUSTOMIZE YOUR BOT NAME: -# Change '@{{BOT_NAME}}' 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 - # CRITICAL: Ignore bot's own comments to prevent infinite loops (bot username: {{BOT_USERNAME}}) - if: | - {{PLATFORM}}.event.comment.user.login != '{{BOT_USERNAME}}' && - (contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} help') || - contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} explain') || - contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} suggest') || - contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} security') || - contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} summarize') || - contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} changelog') || - contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} explain-diff') || - contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} review-again') || - contains({{PLATFORM}}.event.comment.body, '@{{BOT_NAME}} setup-labels')) - steps: - - uses: actions/checkout@v4 - - - uses: actions/checkout@v4 - with: - repository: {{OPENRABBIT_REPO}} - 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: {{API_URL}} - 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="${{ {{PLATFORM}}.event.issue.pull_request != null }}" - REPO="${{ {{PLATFORM}}.repository }}" - ISSUE_NUMBER="${{ {{PLATFORM}}.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 <