Lezeh
lezeh is a CLI tool to ease day-to-day engineering operations such as:
- Merging feature branch (by convention, specific using phabricator task number) into master, this includes cleaning up (delete) the merged feature branch
- Merge and run deployment commands
Install
Download binaries
Go to latest releases and download the binaries here
| Binary | OS |
|---|---|
lezeh-x86_64-unknown-linux-gnu.zip |
Linux |
lezeh-x86_64-apple-darwin.zip |
macOS |
Using cargo
Building manually
This requires rust
Setup
First create config file at ~/.lezeh, we're using YAML format.
phab:
api_token: test125
pkcs12_path: /path/to/pkcs12
host: 'yourphabricatorhost.com'
pkcs12_password: abcdefg
ghub:
api_token: test124
bitly:
api_token: test123
# Deployment command config
deployment:
repositories:
# This is a unique key that will be used as hashmap key
# for the repo.
- key: "repo-key"
path: "repo-local-path"
github_path: "username/reponame"
deployment_scheme_by_key:
stg:
name: "Deploy to stg"
default_pull_request_title: "Merge into stg"
merge_from_branch: "master"
merge_into_branch: "stg"
prod:
name: "Deploy to prod"
default_pull_request_title: "Merge into prod"
merge_from_branch: "stg"
merge_into_branch: "prod"
Usage
Deployment Command
# Below command will iterate all repositories under deployment.repositories config
# and do the following operations:
# * Make sure your local git data is updated by pulling remote git data from GH.
# * For each remote branches that contains the given task numbers:
# - Print out phabricator task owner (assigned) for that specific branch.
# - Create a PR for the matched branch.
# - Merge the branch into master with SQUASH strategy
# - Delete the remote branch
# Merge repo (given repo key) based on given deployment scheme config.
#
# Example usage (based on above config example):
# lezeh deployment deploy repo-key stg
URL Command
lezeh url shorten {longUrl}