All checks were successful
Enterprise AI Code Review / ai-review (pull_request) Successful in 39s
Implements code diff explainer that translates technical changes into plain language for non-technical stakeholders (PMs, designers, new team members). Features: - Plain-language explanations without jargon - File-by-file breakdown with 'what' and 'why' context - Architecture impact analysis - Breaking change detection - Perfect for onboarding and cross-functional reviews Implementation: - Added explain_diff.md prompt template with plain-language guidelines - Implemented _handle_explain_diff_command() in PRAgent - Added _format_diff_explanation() for readable markdown - Updated PRAgent.can_handle() to route explain-diff commands - Added 'explain-diff' to config.yml commands list Workflow Safety (prevents duplicate runs): - Added '@codebot explain-diff' to ai-comment-reply.yml conditions - Excluded from ai-chat.yml to prevent duplication - Only triggers on PR comments (not issues) - Manual command only (no automatic triggering) Testing: - 9 comprehensive tests in TestDiffExplanation class - Tests command detection, formatting, plain-language output - Verifies prompt formatting and empty section handling Documentation: - Updated README.md with explain-diff command and examples - Added detailed implementation guide in CLAUDE.md - Included plain-language rules and use cases Related: Milestone 2 high-priority feature - code diff explainer
60 lines
2.6 KiB
YAML
60 lines
2.6 KiB
YAML
name: AI Chat (Bartender)
|
|
|
|
# WORKFLOW ROUTING:
|
|
# This workflow handles FREE-FORM questions/chat (no specific command)
|
|
# Other workflows: ai-issue-triage.yml (@codebot triage), ai-comment-reply.yml (specific commands)
|
|
# This is the FALLBACK for any @codebot mention that isn't a known command
|
|
|
|
on:
|
|
issue_comment:
|
|
types: [created]
|
|
|
|
# CUSTOMIZE YOUR BOT NAME:
|
|
# Change '@codebot' 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
|
|
if: |
|
|
contains(github.event.comment.body, '@codebot') &&
|
|
!contains(github.event.comment.body, '@codebot triage') &&
|
|
!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 explain-diff') &&
|
|
!contains(github.event.comment.body, '@codebot review-again') &&
|
|
!contains(github.event.comment.body, '@codebot setup-labels')
|
|
runs-on: ubuntu-latest
|
|
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 Chat
|
|
env:
|
|
AI_REVIEW_TOKEN: ${{ secrets.AI_REVIEW_TOKEN }}
|
|
AI_REVIEW_REPO: ${{ gitea.repository }}
|
|
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 }}
|
|
SEARXNG_URL: ${{ secrets.SEARXNG_URL }}
|
|
run: |
|
|
cd .ai-review/tools/ai-review
|
|
python main.py comment ${{ gitea.repository }} ${{ gitea.event.issue.number }} "${{ gitea.event.comment.body }}"
|