feat: initial pi-review Docker action

Reusable Gitea/GitHub action that runs Pi coding agent for
AI-powered code reviews on pull requests.

- Docker image based on node:24-slim (112 packages)
- Supports built-in providers (zai, anthropic, openai, deepseek, openrouter)
  and custom OpenAI-compatible endpoints
- Generates git diff (excludes lockfiles/generated code by default)
- Posts review as idempotent PR comment (updates existing on re-run)
- Read-only tools only: agent investigates but never modifies code
- 80KB default diff truncation to stay within LLM context windows
- No curl/python3 dependency — uses Node.js for HTTP and JSON
This commit is contained in:
Markus Hofstetter
2026-05-18 22:09:46 +02:00
commit 28b4b23550
10 changed files with 428 additions and 0 deletions

22
Dockerfile Normal file
View File

@@ -0,0 +1,22 @@
FROM node:24-slim
# node:24-slim has ~88 packages (vs 413 in bookworm).
# We only add git for diffing. curl and python3 are replaced by Node.js.
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
&& rm -rf /var/lib/apt/lists/*
# Install Pi globally — baked into the image, no install at runtime
RUN npm install -g @earendil-works/pi-coding-agent
# Copy action files into the image
COPY prompts/default.md /action/prompts/default.md
COPY scripts/review.sh /action/scripts/review.sh
COPY entrypoint.sh /action/entrypoint.sh
RUN chmod +x /action/entrypoint.sh /action/scripts/review.sh
# Disable Pi's startup network calls
ENV PI_OFFLINE=1
ENTRYPOINT ["/action/entrypoint.sh"]