109 lines
4.2 KiB
Markdown
109 lines
4.2 KiB
Markdown
# AI Workflows — ${REPO_NAME}
|
|
|
|
## Overview
|
|
|
|
This template includes five AI-powered workflows that use the
|
|
[OpenRabbit](https://git.hiddenden.cafe/Hiddenden/openrabbit) tooling
|
|
to provide automated code review, issue triage, and interactive chat
|
|
via a bot (default: `@codebot` / user `Bartender`).
|
|
|
|
All AI workflows check out the central `Hiddenden/openrabbit` repo at runtime
|
|
and execute its Python-based tools. No AI code lives in your repository.
|
|
|
|
## Workflows
|
|
|
|
### 1. Enterprise AI Code Review (`enterprise-ai-review.yml`)
|
|
|
|
- **Trigger**: Pull request opened or updated
|
|
- **What it does**: Automatically reviews PR diffs for code quality, bugs,
|
|
security issues, and style. Posts findings as PR comments.
|
|
- **Severity gating**: If the review finds HIGH severity issues, CI fails
|
|
(optional — see the `Check Review Result` step).
|
|
|
|
### 2. AI Issue Triage (`ai-issue-triage.yml`)
|
|
|
|
- **Trigger**: Comment containing `@codebot triage` on any issue
|
|
- **What it does**: Analyzes the issue content and applies appropriate labels,
|
|
priority, and category suggestions.
|
|
|
|
### 3. AI Comment Reply (`ai-comment-reply.yml`)
|
|
|
|
- **Trigger**: Comment containing a specific `@codebot` command
|
|
- **Supported commands**:
|
|
- `@codebot help` — show available commands
|
|
- `@codebot explain` — explain code or issue context
|
|
- `@codebot suggest` — suggest improvements
|
|
- `@codebot security` — security-focused analysis
|
|
- `@codebot summarize` — summarize a thread
|
|
- `@codebot changelog` — generate changelog entries
|
|
- `@codebot explain-diff` — explain PR diff
|
|
- `@codebot review-again` — re-run review
|
|
- `@codebot setup-labels` — configure repo labels
|
|
- **PR vs Issue**: Automatically detects whether the comment is on a PR or issue
|
|
and dispatches accordingly.
|
|
|
|
### 4. AI Chat (`ai-chat.yml`)
|
|
|
|
- **Trigger**: Comment mentioning `@codebot` that is NOT a known command
|
|
- **What it does**: Free-form AI chat. Ask the bot any question and it will
|
|
respond using the codebase context and optional web search (SearXNG).
|
|
- **Routing**: This is the fallback — only fires when no specific command matches.
|
|
|
|
### 5. AI Codebase Quality Review (`ai-codebase-review.yml`)
|
|
|
|
- **Trigger**: Manual (workflow_dispatch) or scheduled (weekly, commented out)
|
|
- **What it does**: Full codebase analysis generating a quality report.
|
|
- **Report types**: `full`, `security`, `quick` (selectable on manual trigger).
|
|
|
|
## Required Secrets
|
|
|
|
All AI workflows require these secrets in your repository
|
|
(Settings → Actions → Secrets):
|
|
|
|
| Secret | Required | Description |
|
|
|--------|----------|-------------|
|
|
| `AI_REVIEW_TOKEN` | Yes | Gitea PAT with repo access (to check out OpenRabbit and post comments) |
|
|
| `OPENAI_API_KEY` | Conditional | OpenAI API key (if using OpenAI models) |
|
|
| `OPENROUTER_API_KEY` | Conditional | OpenRouter API key (if using OpenRouter) |
|
|
| `OLLAMA_HOST` | Conditional | Ollama server URL (if using self-hosted models) |
|
|
| `SEARXNG_URL` | Optional | SearXNG instance URL for web search in AI chat |
|
|
|
|
At least one AI provider key (`OPENAI_API_KEY`, `OPENROUTER_API_KEY`, or
|
|
`OLLAMA_HOST`) must be set.
|
|
|
|
## Customization
|
|
|
|
### Changing the Bot Name
|
|
|
|
The default bot is `@codebot` (Gitea user: `Bartender`). To change it:
|
|
|
|
1. Update the `if:` conditions in all AI workflows to match your bot's mention prefix.
|
|
2. Update the `github.event.comment.user.login != 'Bartender'` check to your bot's username.
|
|
3. Update `config.yml` in the OpenRabbit tooling if applicable.
|
|
|
|
### Loop Prevention
|
|
|
|
All AI workflows check `github.event.comment.user.login != 'Bartender'` to
|
|
prevent the bot from responding to its own comments. This is critical —
|
|
without it, the bot can trigger infinite loops.
|
|
|
|
### Workflow Routing
|
|
|
|
The three comment-triggered workflows are carefully routed to avoid duplicates:
|
|
|
|
```
|
|
Issue comment with @codebot
|
|
├── Contains "triage"? → ai-issue-triage.yml
|
|
├── Contains known command? → ai-comment-reply.yml
|
|
└── Free-form mention? → ai-chat.yml (fallback)
|
|
```
|
|
|
|
## Enabling / Disabling
|
|
|
|
To disable AI workflows without deleting them, either:
|
|
- Remove the workflow files from `.gitea/workflows/`
|
|
- Or comment out the `on:` triggers in each file
|
|
|
|
To enable the scheduled codebase review, uncomment the `schedule` trigger
|
|
in `ai-codebase-review.yml`.
|