An AI-powered tool that generates human-readable summaries of git changes using tool calling with a self-hosted LLM

add some OCI labels

evan.jarrett.net 1c72b8c1 b12f51d9

verified
Changed files
+26 -4
.tangled
workflows
+12 -2
.tangled/workflows/release.yml
··· 9 9 10 10 environment: 11 11 IMAGE_REGISTRY: atcr.io 12 - IMAGE_NAME: ${IMAGE_REGISTRY}/${TANGLED_REPO_DID}/${TANGLED_REPO_NAME} 12 + IMAGE_NAME: ${IMAGE_REGISTRY}/${TANGLED_REPO_HANDLE}/${TANGLED_REPO_NAME} 13 13 14 14 steps: 15 15 - name: Login to registry 16 16 command: | 17 17 echo "${APP_PASSWORD}" | buildah login \ 18 - -u "${TANGLED_REPO_DID}" \ 18 + -u "${TANGLED_REPO_HANDLE}" \ 19 19 --password-stdin \ 20 20 ${IMAGE_REGISTRY} 21 21 ··· 24 24 buildah bud \ 25 25 --arch amd64 \ 26 26 --build-arg TARGETARCH=amd64 \ 27 + --build-arg VERSION=${TANGLED_REF_NAME} \ 28 + --build-arg CREATED=$(date -u +%Y-%m-%dT%H:%M:%SZ) \ 29 + --build-arg REVISION=${TANGLED_COMMIT_SHA} \ 30 + --build-arg TANGLED_REPO_DID=${TANGLED_REPO_DID} \ 31 + --build-arg TANGLED_REPO_NAME=${TANGLED_REPO_NAME} \ 27 32 --tag ${IMAGE_NAME}:${TANGLED_REF_NAME}-amd64 \ 28 33 --file ./Dockerfile \ 29 34 . ··· 33 38 buildah bud \ 34 39 --arch arm64 \ 35 40 --build-arg TARGETARCH=arm64 \ 41 + --build-arg VERSION=${TANGLED_REF_NAME} \ 42 + --build-arg CREATED=$(date -u +%Y-%m-%dT%H:%M:%SZ) \ 43 + --build-arg REVISION=${TANGLED_COMMIT_SHA} \ 44 + --build-arg TANGLED_REPO_DID=${TANGLED_REPO_DID} \ 45 + --build-arg TANGLED_REPO_NAME=${TANGLED_REPO_NAME} \ 36 46 --tag ${IMAGE_NAME}:${TANGLED_REF_NAME}-arm64 \ 37 47 --file ./Dockerfile \ 38 48 .
+14 -2
Dockerfile
··· 11 11 12 12 FROM alpine:3.20 13 13 14 - # Only need ca-certificates for HTTPS cloning 14 + ARG VERSION=dev 15 + ARG CREATED 16 + ARG REVISION 17 + ARG TANGLED_REPO_DID 18 + ARG TANGLED_REPO_NAME 19 + 20 + LABEL 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 + 15 28 RUN apk add --no-cache ca-certificates 16 29 17 30 COPY --from=builder /app/git-summarizer /usr/local/bin/ 18 31 19 - # For SSH cloning (optional - mount your keys) 20 32 RUN mkdir -p /root/.ssh && chmod 700 /root/.ssh 21 33 22 34 EXPOSE 8000