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 8b2706c9 b12f51d9

verified
Changed files
+32 -4
.tangled
workflows
+18 -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} 13 12 14 13 steps: 14 + - name: Resolve DID to handle 15 + command: HANDLE=$(curl -sf "https://plc.directory/${TANGLED_REPO_DID}" | grep -o 'at://[^"]*' | head -1 | sed 's|at://||') 16 + 17 + - name: set IMAGE_NAME 18 + command: IMAGE_NAME="${IMAGE_REGISTRY}/${HANDLE}/${TANGLED_REPO_NAME}" 19 + 15 20 - name: Login to registry 16 21 command: | 17 22 echo "${APP_PASSWORD}" | buildah login \ 18 - -u "${TANGLED_REPO_DID}" \ 23 + -u "${HANDLE}" \ 19 24 --password-stdin \ 20 25 ${IMAGE_REGISTRY} 21 26 22 27 - name: Build amd64 image 23 28 command: | 29 + echo "${IMAGE_NAME" 24 30 buildah bud \ 25 31 --arch amd64 \ 26 32 --build-arg TARGETARCH=amd64 \ 33 + --build-arg VERSION=${TANGLED_REF_NAME} \ 34 + --build-arg CREATED=$(date -u +%Y-%m-%dT%H:%M:%SZ) \ 35 + --build-arg REVISION=${TANGLED_COMMIT_SHA} \ 36 + --build-arg TANGLED_REPO_DID=${TANGLED_REPO_DID} \ 37 + --build-arg TANGLED_REPO_NAME=${TANGLED_REPO_NAME} \ 27 38 --tag ${IMAGE_NAME}:${TANGLED_REF_NAME}-amd64 \ 28 39 --file ./Dockerfile \ 29 40 . ··· 33 44 buildah bud \ 34 45 --arch arm64 \ 35 46 --build-arg TARGETARCH=arm64 \ 47 + --build-arg VERSION=${TANGLED_REF_NAME} \ 48 + --build-arg CREATED=$(date -u +%Y-%m-%dT%H:%M:%SZ) \ 49 + --build-arg REVISION=${TANGLED_COMMIT_SHA} \ 50 + --build-arg TANGLED_REPO_DID=${TANGLED_REPO_DID} \ 51 + --build-arg TANGLED_REPO_NAME=${TANGLED_REPO_NAME} \ 36 52 --tag ${IMAGE_NAME}:${TANGLED_REF_NAME}-arm64 \ 37 53 --file ./Dockerfile \ 38 54 .
+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