An AI-powered tool that generates human-readable summaries of git changes using tool calling with a self-hosted LLM
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
14ARG VERSION=dev
15ARG CREATED
16ARG REVISION
17ARG TANGLED_REPO_DID
18ARG TANGLED_REPO_NAME
19
20LABEL org.opencontainers.image.title="git-summarizer" \
21 org.opencontainers.image.description="AI-powered git change summarizer using agentic tool-calling with self-hosted LLMs" \
22 org.opencontainers.image.version="${VERSION}" \
23 org.opencontainers.image.created="${CREATED}" \
24 org.opencontainers.image.revision="${REVISION}" \
25 org.opencontainers.image.licenses="MIT" \
26 org.opencontainers.image.source="https://tangled.sh/${TANGLED_REPO_DID}/${TANGLED_REPO_NAME}"
27
28RUN apk add --no-cache ca-certificates
29
30COPY --from=builder /app/git-summarizer /usr/local/bin/
31
32RUN mkdir -p /root/.ssh && chmod 700 /root/.ssh
33
34EXPOSE 8000
35
36ENTRYPOINT ["git-summarizer"]