Getting started / Reference /
Releases

Releases

Overview

Releases represent tagged versions of your application associated with Docker image tags. They provide a registry of application versions with metadata including git hashes, tags, diff URLs, and release notes. Releases can also have approval workflows to gate deployments.

The docker_tag is the single identifier that links a built container image to a release record and ultimately to a live deployment. It is the tag applied to the image in ECR at build time, recorded on the release, and passed to create deploy to run that exact image. All other fields — git_hash, git_tag — are informational metadata for audit and traceability purposes only; they do not affect which image gets deployed.

Purpose and Benefits

  • Version Tracking: Associate Docker image tags with git commits and tags
  • Release Notes: Attach human-readable release notes to each version
  • Approval Workflows: Require explicit approval before a release can be deployed
  • Audit Trail: Complete history of all application versions

CLI Usage

Create Release

Record a release entry associated with a deployed Docker image tag

tapit create release docker_tag=tag [git_hash=hash] [git_tag=tag] [diff_url=url] [release_url=url] [--ignore-existing]

Parameters

  • docker_tag: Docker image tag this release corresponds to (required)
  • git_hash: Git commit hash associated with this release (informational only, not used to pull the image)
  • git_tag: Git tag associated with this release, e.g. v1.2.3 (informational only, does not affect which image is deployed)
  • diff_url: URL to the diff or changelog for this release
  • release_url: URL to the release notes or release page
  • --ignore-existing: Skip creation if a matching release already exists (useful for idempotent scripts)

Examples

# Create a basic release
tapit create release docker_tag=v1.2.3-abc123

# Create a release with full metadata
tapit create release docker_tag=v1.2.3-abc123 git_hash=abc123def456 git_tag=v1.2.3 diff_url=https://github.com/org/repo/pull/42

# CI/CD release creation
tapit create release docker_tag=${DOCKER_TAG} git_hash=${GITHUB_SHA} git_tag=${GITHUB_REF_NAME}

List Releases

List up to 50 recent releases for the app with approval status and associated URLs. Archived releases are old releases that may not have been approved.

tapit list releases

Create Release Approval

Approve a release to allow it to be deployed (for deployment gating workflows)

tapit create approval docker_tag=tag

Parameters

  • docker_tag: Docker tag of the release to approve (required)

Examples

# Approve a release for deployment
tapit create approval docker_tag=v1.2.3-abc123

Import Release Notes

Attach release notes to an existing release by reading from stdin

tapit import release_notes docker_tag=tag < release_notes_file

Parameters

  • docker_tag: Docker tag of the release to add notes to (required)

Examples

# Import release notes from a file
tapit import release_notes docker_tag=v1.2.3-abc123 < CHANGELOG.md

# Import from a generated notes file
tapit import release_notes docker_tag=${DOCKER_TAG} < release_notes.txt

Release Workflow

A typical release workflow in CI/CD:

# 1. Build the Docker image
tapit image build tag=v1.2.3 git_hash=$GITHUB_SHA

# 2. Create a release record
tapit create release docker_tag=v1.2.3-$GITHUB_SHA git_hash=$GITHUB_SHA git_tag=v1.2.3

# 3. Attach release notes
tapit import release_notes docker_tag=v1.2.3-$GITHUB_SHA < CHANGELOG.md

# 4. Approve the release (if approval workflow is enabled)
tapit create approval docker_tag=v1.2.3-$GITHUB_SHA

# 5. Deploy the release
tapit create deploy docker_tag=v1.2.3-$GITHUB_SHA