@liangmi/ghm
v0.0.4
Published
Project manager for opensource developers on Github
Readme
ghm
ghm is a GitHub project manager for open source developers.
vp install -g @liangmi/ghmIt keeps your local repositories organized under one predictable layout:
~/code
├── vitejs
│ ├── vite
│ └── devtools
└── vuejs
├── core
└── vue<root>/<owner>/<repo>Requirements
- macOS or Linux (Windows is not supported)
- global install (local install is not supported for runtime usage)
git- GitHub CLI
ghauthenticated (gh auth status)
Quick Start
Run setup once:
ghm setupghm setup will:
- check
git - check
ghauthentication - ask for your projects root directory
- ask which shell(s) you use (
zsh,bash,fish) - optionally collect command aliases
- write
~/.config/ghmrc.json - sync managed shellrc blocks
After setup:
ghm clone vitejs/vite
ghm listCommands
ghm setup
Initialize config and shell integration.
ghm clone <owner>/<repo>
Clone a GitHub repository into <root>/<owner>/<repo>.
Alias: ghm c <owner>/<repo>
Example:
ghm clone vuejs/coreghm list
List repositories under your configured root.
Alias: ghm ls
Config
Default config path:
~/.config/ghmrc.jsonExample:
{
"$schema": "https://raw.githubusercontent.com/liangmiQwQ/ghm/main/config_schema.json",
"root": "~/code",
"shells": ["zsh"],
"alias": {
"ghm": ["i"],
"clone": ["k"],
"list": ["li"]
}
}Fields
root(required): absolute path or~path for your projects directoryshells(required): one or more ofzsh,bash,fishalias(optional): alias arrays forghm,clone,list
Alias names must match:
[A-Za-z_][A-Za-z0-9_-]*Shell Integration
ghm manages shell integration blocks in your shellrc files:
~/.zshrc~/.bashrc~/.config/fish/config.fish
Notes
- If you run config-required commands without config,
ghmprompts you to runghm setup. ghm listonly shows repositories that are Git repos with a GitHub remote.
Contribution
We're really excited to receive your contributions! Please see ROADMAP.md for details!
License
MIT © Liang Mi
