An AI-powered tool that generates human-readable summaries of git changes using tool calling with a self-hosted LLM
1.PHONY: build run docker docker-run docker-build docker-build-local setup-buildx test test-bluesky clean
2
3# Container tool and image configuration
4CONTAINER_TOOL ?= docker
5IMG ?= atcr.io/evan.jarrett.net/git-summarizer:latest
6
7# Build binary
8build:
9 go mod tidy
10 go build -ldflags="-s -w" -o git-summarizer ./cmd/git-summarizer
11
12# Run locally
13run: build
14 ./git-summarizer
15
16# Build docker image (legacy, use docker-build-local or docker-build instead)
17docker:
18 $(CONTAINER_TOOL) build -t $(IMG) .
19
20# Run docker locally
21docker-run:
22 $(CONTAINER_TOOL) run --network=host \
23 -e LLAMA_URL=https://llama.j5t.io \
24 -e LLAMA_MODEL=qwen3-coder-30b \
25 $(IMG)
26
27# Build and push multi-arch docker image (amd64 + arm64)
28docker-build: setup-buildx
29 $(CONTAINER_TOOL) buildx build \
30 --builder git-summarizer-builder \
31 --platform=linux/amd64,linux/arm64 \
32 --push \
33 --tag $(IMG) \
34 .
35
36# Build docker image for local arch only (no push)
37docker-build-local:
38 $(CONTAINER_TOOL) build -t $(IMG) .
39
40# Set up buildx builder for multi-arch builds
41setup-buildx:
42 @echo "Setting up git-summarizer-builder..."
43 -$(CONTAINER_TOOL) buildx rm git-summarizer-builder 2>/dev/null || true
44 $(CONTAINER_TOOL) buildx create --name git-summarizer-builder \
45 --driver docker-container \
46 --driver-opt network=host \
47 --config /dev/stdin <<< 'debug = true' || true
48 $(CONTAINER_TOOL) buildx inspect --bootstrap git-summarizer-builder
49 @echo "✓ Builder setup complete!"
50
51# Test with a public repo
52test:
53 curl -X POST http://localhost:8000/summarize \
54 -H "Content-Type: application/json" \
55 -d '{"repo_url": "https://tangled.org/evan.jarrett.net/at-container-registry", "base": "v0.0.10", "head": "main"}'
56
57# Test bluesky-style short summary
58test-bluesky:
59 curl -X POST http://localhost:8000/summarize \
60 -H "Content-Type: application/json" \
61 -d '{"repo_url": "https://tangled.org/evan.jarrett.net/at-container-registry", "base": "v0.0.10", "head": "main", "style": "bluesky"}'
62
63clean:
64 rm -f git-summarizer