ref:main

Add annotated tag creation to Ref API #11

open Opened by cole.christensen@gmail.com

Links

No links yet.

Problem

Ref.create_tag creates lightweight tags only (a ref pointing directly at a commit SHA). Annotated tags require manually writing a Tag object and then creating the ref — there’s no convenience API.

Impact

  • Common git workflow (signed/annotated releases) requires low-level object manipulation
  • API inconsistency: tags are a first-class concept but only half-supported

Acceptance Criteria

  • Ref.create_annotated_tag(repo, name, target_sha, tagger, message) API
  • Writes a Tag object and creates the ref atomically
  • Supports optional GPG signature field
  • Returns {:ok, tag_sha} on success
  • Interop test: annotated tag readable by git tag -v