You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
gitwe (Git Workflow Engine) is a configurable, rule-based git branching workflow engine. It goes beyond classic git-flow by letting you define your own branch types and rules via a simple JSON or YAML config.
The core is a minimal kernel: each capability (start, finish, cleanup, doctor, status, list, validate) is a self-contained module registered into it.
π·οΈ Auto-tagging β Automatically create version tags for releases
π Remote support β Auto-push and auto-pull with configurable remotes
π gitwe sync β Keep all topic branches up to date in one command
β Schema validation β Validate your workflow config with Zod
π§ͺ dry-run & strategy β More control in GitHub Actions
Installation
Global (CLI)
npm install -g gitwe
Local (as a library)
npm install gitwe
Usage
CLI Commands
# Show current branch
gitwe current
# List all local branches
gitwe list
# Show available branch types from current workflow
gitwe types
# Start a new branch
gitwe start feature login-page
# Finish a branch (merge to targets, auto-tag, delete)
gitwe finish feature/login-page
# Finish with a one-off merge strategy override (merge | squash | rebase),# without changing the workflow's configured default
gitwe finish release/1.2.0 --strategy squash
# Bring a topic branch up to date with its base branch (default: current branch)
gitwe update
gitwe update feature/login-page --rebase # or --merge# Show visual branch tree
gitwe status
# Use a custom config (JSON or YAML)
gitwe --config my-workflow.yaml start change fix-issue
# Introspect what capabilities the kernel currently has loaded
gitwe modules
As a Library
import{Container}from"gitwe";// Wires up the built-in git-flow workflow against the git repo at cwd.constcontainer=newContainer({builtIn: "git-flow",cwd: process.cwd()});awaitcontainer.startBranchHandler.handle({branchType: "feature",shortName: "awesome-feature"});awaitcontainer.finishBranchHandler.handle({branchName: "feature/awesome-feature"});
Custom Workflow Definitions
Create a configuration file (JSON or YAML) to define your own branching strategy.