GitHub Release Operations • Since v2.0.2

Ship consistent GitHub releases with one CLI.

Yaba helps teams prepare changelogs, preview release payloads, create GitHub releases, and wire Slack notifications into repeatable release workflows. Recent upgrades add target-based release generation, release safety controls, config validation, channel-specific release notes, strategy-based tag generation, and resilient Slack retries.

$ npm i -g yaba-release-cli

$ yaba doctor

$ yaba release preview --repo my-repo --target release/2.1 --format json

$ yaba release create --repo my-repo --tag-strategy semver --publish --no-prompt

Core Commands

Everything starts from five explicit commands

release preview

Generates release name, tag, and changelog without mutating GitHub state.

Best for pull-request checks and CI policy gates.

release create

Creates a GitHub release using generated or explicit changelog content.

Supports --draft, --publish, and --no-prompt.

doctor

Verifies token/config/network prerequisites before release operations.

Use --format json for machine-readable diagnostics.

config init

Creates a project config template (yaba.config.json) for shared defaults.

Use --force to overwrite existing config.

config validate

Validates resolved configuration schema before release operations.

Great for CI guardrails with --format json.

Capabilities

Designed for maintainers and CI pipelines

Target-based releases

Generate and create releases from an explicit branch, tag, or commit SHA via --target.

Release safety controls

Use --allow-empty, --fail-on-empty, and --max-commits to enforce policy.

Channel-specific release notes

GitHub notes can be PR-label grouped, while Slack uses a human-readable newsletter format.

Tag strategy engine

Choose pattern, semver, or sha, plus conflict policy and max attempts.

Resilient Slack delivery

Publish retries transient webhook failures with exponential backoff (default 3 attempts).

Config + diagnostics tooling

Includes config validate and token-aware doctor output for fast issue triage.

Recent Updates

What changed after v2.0.2

Release workflow controls

Added target commitish support and release safety guardrails for empty or oversized changelogs.

Notification architecture

Introduced provider-based notification abstraction and improved publish flow reliability.

Config maturity

Added config validate and stronger schema checks for runtime configuration quality.

Release notes evolution

Added label-grouped GitHub notes with fallback and a dedicated Slack newsletter-style template.

Tag policy system

Added strategy-based tags (pattern, semver, sha) with conflict handling.

Test + docs upgrades

Expanded integration coverage and refreshed architecture/development documentation for maintainability.

Quickstart

Get from install to release preview in minutes

  1. Install

    npm i -g yaba-release-cli

  2. Set credentials

    export YABA_GITHUB_ACCESS_TOKEN=your_token

  3. Validate environment

    yaba doctor (includes token type + repo access diagnostics)

  4. Validate config

    yaba config validate --format json

  5. Preview release

    yaba release preview --repo your-repo --target main

Automation Ready

Built for release pipelines, not just manual runs

Example CI-safe invocation

yaba release preview \
  --repo my-repo \
  --owner my-org \
  --format json

Release pipeline contract

- run npm ci and npm test
- run yaba config validate --format json
- enforce release safety policy
- use semver/sha/pattern tag strategy intentionally
- fail early on validation mismatch

Environment variables

YABA_GITHUB_ACCESS_TOKEN   # required
YABA_GITHUB_REPO_OWNER    # optional
YABA_SLACK_HOOK_URL       # optional

Start Releasing

Use Yaba when release quality and consistency matter.