An AI-powered tool that generates human-readable summaries of git changes using tool calling with a self-hosted LLM
at main 2.0 kB view raw
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