or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

adapter.mdcache.mdcli.mdcommit.mdconfig.mdgit.mdindex.mdinit.mdstaging.md
tile.json

tessl/npm-commitizen

Command-line utility for creating standardized Git commit messages through interactive prompts and adapter system.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/commitizen@4.3.x

To install, run

npx @tessl/cli install tessl/npm-commitizen@4.3.0

index.mddocs/

Commitizen

Commitizen is a command-line utility that provides an interactive way to create standardized Git commit messages following conventional commit message formats. It prompts users to fill out required commit fields at commit time, ensuring consistency across projects and teams through an adapter system.

Package Information

  • Package Name: commitizen
  • Package Type: npm
  • Language: JavaScript (Node.js)
  • Installation: npm install -g commitizen

Core Imports

For programmatic usage:

const commitizen = require('commitizen');
const { adapter, cache, commit, configLoader, init, staging } = commitizen;

ES6 modules:

import { adapter, cache, commit, configLoader, init, staging } from 'commitizen';

Basic Usage

Command Line Interface

# Install globally
npm install -g commitizen

# Initialize adapter in project
commitizen init cz-conventional-changelog --save-dev --save-exact

# Use for commits (after initialization)
git add .
cz
# or
git cz

Programmatic Usage

const { init, commit, adapter } = require('commitizen');
const inquirer = require('inquirer');

// Initialize adapter
init(process.cwd(), 'cz-conventional-changelog', {
  saveDev: true,
  saveExact: true
});

// Use commit functionality
const prompter = adapter.getPrompter('cz-conventional-changelog');
commit(inquirer, process.cwd(), prompter, {}, (error) => {
  if (error) console.error(error);
  else console.log('Commit successful');
});

Architecture

Commitizen is built around several key components:

  • CLI Interface: Command-line tools (cz, git-cz, commitizen) for interactive commit creation
  • Adapter System: Pluggable commit message format providers (e.g., conventional-changelog)
  • Configuration Loading: Multi-source config resolution (.czrc, package.json, .cz.json)
  • Caching System: Stores commit templates for retry functionality
  • Git Integration: Direct git command execution with hook support
  • Staging Utilities: Git staging area validation and management

Capabilities

Command Line Interface

Primary CLI commands for interactive commit creation and adapter management.

// CLI Bootstrap Functions
function bootstrap(environment?: object, argv?: string[]): void;

Command Line Interface

Adapter Management

System for installing, configuring, and loading commit message format adapters.

function getPrompter(adapterPath: string): Function;
function resolveAdapterPath(adapterPath: string): string;
function addPathToAdapterConfig(cliPath: string, repoPath: string, adapterNpmName: string): void;
function generateInstallAdapterCommand(stringMappings: Map, adapterNpmName: string, packageManager?: string): string;

Adapter Management

Commit Execution

Core commit functionality with interactive prompting, caching, and retry support.

function commit(inquirer: object, repoPath: string, prompter: Function, options: CommitOptions, done: Function): void;

interface CommitOptions {
  args?: string[];
  disableAppendPaths?: boolean;
  emitData?: boolean;
  quiet?: boolean;
  retryLastCommit?: boolean;
  hookMode?: boolean;
}

Commit Execution

Project Initialization

Adapter installation and project configuration setup.

function init(repoPath: string, adapterNpmName: string, options?: InitOptions): void;

interface InitOptions {
  save?: boolean;
  saveDev?: boolean;
  saveExact?: boolean;
  force?: boolean;
  yarn?: boolean;
  dev?: boolean;
  exact?: boolean;
  pnpm?: boolean;
  includeCommitizen?: boolean;
}

Project Initialization

Configuration Loading

Multi-source configuration resolution with support for various file formats.

function load(config?: object, cwd?: string): object | undefined;
function loader(configs: string[], config?: object, cwd?: string): object | undefined;

Configuration Loading

Caching System

Commit message caching for retry functionality and recovery from failed commits.

function getCacheValueSync(cachePath: string, repoPath: string): object | undefined;
function setCacheValueSync(cachePath: string, key: string, value: object): object;
function readCacheSync(cachePath: string): object;

Caching System

Git Integration

Git command abstractions and staging area utilities.

function commit(repoPath: string, message: string, options: GitCommitOptions, done: Function): void;
function isClean(repoPath: string, done: Function, stageAllFiles?: boolean): void;

interface GitCommitOptions {
  args?: string[];
  quiet?: boolean;
  hookMode?: boolean;
}

Git Integration

Staging Utilities

Git staging area validation and management utilities.

function isClean(repoPath: string, done: Function, stageAllFiles?: boolean): void;

Staging Utilities

Types

// Core configuration structure
interface CommitizenConfig {
  path: string;
}

// Error callback signature
type ErrorCallback = (error: Error | null, ...args: any[]) => void;

// Prompter function signature
type PrompterFunction = (inquirer: object, callback: (error: Error | null, template: string, overrideOptions?: object) => void) => void;

// Package manager types
type PackageManager = 'npm' | 'yarn' | 'pnpm';

// Install flags mapping
interface InstallFlags {
  save?: boolean;
  dev?: boolean;
  saveDev?: boolean;
  exact?: boolean;
  saveExact?: boolean;
  force?: boolean;
}