An AI-powered tool that generates human-readable summaries of git changes using tool calling with a self-hosted LLM
at main 1.0 kB view raw
1FROM --platform=$BUILDPLATFORM golang:1.25-alpine AS builder 2 3ARG TARGETARCH=amd64 4 5WORKDIR /app 6COPY go.mod go.sum ./ 7RUN go mod download 8 9COPY . ./ 10RUN CGO_ENABLED=0 GOARCH=$TARGETARCH go build -ldflags="-s -w" -o git-summarizer ./cmd/git-summarizer 11 12FROM alpine:3.20 13 14# Static labels 15LABEL org.opencontainers.image.title="git-summarizer" \ 16 org.opencontainers.image.description="AI-powered git change summarizer using agentic tool-calling with self-hosted LLMs" \ 17 org.opencontainers.image.licenses="MIT" \ 18 org.opencontainers.image.authors="Evan Jarrett" \ 19 org.opencontainers.image.source="https://tangled.org/evan.jarrett.net/git-summarize" \ 20 org.opencontainers.image.documentation="https://tangled.org/evan.jarrett.net/git-summarize" 21 22# Dynamic labels are passed via --label flags at build time 23 24RUN apk add --no-cache ca-certificates 25 26COPY --from=builder /app/git-summarizer /usr/local/bin/ 27 28RUN mkdir -p /root/.ssh && chmod 700 /root/.ssh 29 30EXPOSE 8000 31 32ENTRYPOINT ["git-summarizer"]