Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/metaory/hgit-cli

:rocket: Streamline and Simplify complex processes (a beautiful unopinionated config based workflow engine)
https://github.com/metaory/hgit-cli

ci ci-cd cli command-line conflict-detection console git git-flow hgit pipeline pipelines script-engine task task-runner terminal tui workflow workflow-automation workflow-engine

Last synced: about 18 hours ago
JSON representation

:rocket: Streamline and Simplify complex processes (a beautiful unopinionated config based workflow engine)

Awesome Lists containing this project

README

        

# :zap: [[ Poject moved to [npm/mxflow](https://www.npmjs.com/package/mxflow) ]]

---
---
---

# hgit

### :rocket: a beautiful unopinionated config based workflow **engine**
# Streamline and Simplify complex processes

## a CICD for local machines




---

![hgit v0.47.15](https://raw.githubusercontent.com/wiki/metaory/hgit-cli/assets/gifcast_220923200431.gif)

Requirements
============
- Node 16.x

# Sample Config

sample-generated-config-file

```yaml
config_version: 0.47.0
graph_git_log_limit: 40
issue_tracker: jira
issue_tracker_tenant: metaory
sleep_between_commands: 1000
workflows:
foo:
description: example placeholder
pattern: '{branchType}/{taskId}-{description}'
steps:
- git fetch origin
- git checkout master
- git merge origin/master
- git checkout -b {branchName}
- git status
- confirm git push --set-upstream origin {branchName}
- list logs
bar:
description: example placeholder
branch: xorg/{description}
steps:
- git fetch origin
- git checkout master
- git merge origin/master
- autocomplete checkout xorg
- git checkout -b {branchName}
- git status
- confirm git push --set-upstream origin {branchName}
- list logs
xorg:
description: example placeholder
steps:
- echo hello word
- echo goodbye cruel world
- confirm echo goodbye
```

[sample-git-workflow](https://github.com/metaory/hgit-cli/wiki/Git-Workflow-Sample)

---
Config Behaviours
=================

### Special commands:
- `list logs` _list last n pretty graph log_
- `autocomplete checkout {pattern}` _prompt checkout the pattern branch_
- `confirm {commandName}` _adds confirmation step to command_

---

Features
========
- check for `conflict` between multiple remote branch
- start new workflows from a `config` file
- **ALL** commands are read from the config file in `~/.config/hgit/config.yml`
- `dynamic branch checkout` in workflows with command: `prompt_checkout__{pattern}`
- `branchNamePattern` from config: `{branchType}.branch_pattern`
- add `confirm ` to commands for a confirmation prompt before the command

---

npx
===
npx hgit

Installation
============
npm i -g hgit

Usage
=====
hgit
hgit --trigger foobar

Options
=======
--verbose | verbose logs
--trigger | non-interactive workflow trigger

Roadmap
=======

- [X] project based config file
- [ ] plugin system for dynamic lists
- [ ] aurgument mode
- [ ] argument autocomplete

***

___ ___
/__/\ / /\ ___ ___
\ \:\ / /:/_ / /\ / /\
\__\:\ / /:/ /\ / /:/ / /:/
___ / /::\ / /:/_/::\ /__/::\ / /:/
/__/\ /:/\:\ /__/:/__\/\:\ \__\/\:\__ / /::\
\ \:\/:/__\/ \ \:\ /~~/:/ \ \:\/\ /__/:/\:\
\ \::/ \ \:\ /:/ \__\::/ \__\/ \:\
\ \:\ \ \:\/:/ /__/:/ \ \:\
\ \:\ \ \::/ \__\/ \__\/
\__\/ \__\/