3c536c42d5
- gitea/client_test.go: mock HTTP tests for all API methods + error cases - llm/client_test.go: mock tests for completion, errors, timeouts - review/parser_test.go: JSON parsing, markdown fences, validation - review/formatter_test.go: markdown output, empty/multiple findings - review/prompt_test.go: system/user prompt construction - integration_test.go: full end-to-end flow (build tag: integration) - .gitea/workflows/ci.yml: test + vet + build on push, dual LLM review on PRs - CONVENTIONS.md: coding standards for self-review dogfooding - README.md: usage docs, env vars, architecture
54 lines
1.6 KiB
YAML
54 lines
1.6 KiB
YAML
name: CI
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
types: [opened, synchronize]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: "1.26"
|
|
- run: go test ./...
|
|
- run: go vet ./...
|
|
- run: go build -o review-bot ./cmd/review-bot
|
|
|
|
review:
|
|
runs-on: ubuntu-24.04
|
|
if: github.event_name == 'pull_request'
|
|
needs: test
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: "1.26"
|
|
- run: go build -o review-bot ./cmd/review-bot
|
|
- name: Run Sonnet Review
|
|
env:
|
|
GITEA_URL: ${{ github.server_url }}
|
|
GITEA_REPO: ${{ github.repository }}
|
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
REVIEWER_TOKEN: ${{ secrets.SONNET_REVIEW_TOKEN }}
|
|
LLM_BASE_URL: ${{ secrets.LLM_BASE_URL }}
|
|
LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
|
|
LLM_MODEL: "anthropic--claude-4.6-sonnet"
|
|
CONVENTIONS_FILE: "CONVENTIONS.md"
|
|
REVIEWER_NAME: "Sonnet"
|
|
run: ./review-bot
|
|
- name: Run GPT Review
|
|
env:
|
|
GITEA_URL: ${{ github.server_url }}
|
|
GITEA_REPO: ${{ github.repository }}
|
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
REVIEWER_TOKEN: ${{ secrets.GPT_REVIEW_TOKEN }}
|
|
LLM_BASE_URL: ${{ secrets.LLM_BASE_URL }}
|
|
LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
|
|
LLM_MODEL: "sap-ai-opus-latest-openai/gpt-5"
|
|
CONVENTIONS_FILE: "CONVENTIONS.md"
|
|
REVIEWER_NAME: "GPT"
|
|
run: ./review-bot
|