Gh cli - автоматизируем созданя и публикацию репозиториев - 2026
Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2026
1) Вбить свои постоянные данные:
git config --global user.name "ANTONREPO" git config --global user.email "твой@email" gh auth setup-git
2) Добавить в ~/.zshrc
#### GH new
ghnew() {
local name="${1:?Имя репозитория}"
local desc="${2:-}"
local vis="${3:-}"
local base="/Users/antonmac/projec1"
if [[ -z "$vis" ]]; then
printf "Видимость репозитория (p = public / r = private) [p]: "
read -r ans
[[ "$ans" == "r" || "$ans" == "private" ]] && vis="private" || vis="public"
fi
mkdir -p "$base/$name" && cd "$base/$name"
# README, чтобы коммит не был пустым
echo "# $name" > README.md
[[ -n "$desc" ]] && echo "" >> README.md && echo "$desc" >> README.md
git init && git add . && git commit -m "Initial commit"
local extra=()
[[ -n "$desc" ]] && extra+=(--description "$desc")
gh repo create "$name" --$vis --source . --push "${extra[@]}"
}
gpush() {
local msg="${1:-Обновление}"
git add .
git commit -m "$msg"
git push
}
3)
source ~/.zshrc
4) Команда для создания:
ghnew test "test"
Команда для пуша новых данных
gpush
5) Функция удаления репы ghdel():
ghdel() {
local name="${1:?Имя репозитория}"
local repo="Anton98567/$name"
printf "Удалить репозиторий %s? Это необратимо (y/N): " "$repo"
read -r ans
[[ "$ans" =~ ^[yY]$ ]] || { echo "Отменено"; return 1; }
gh repo delete "$repo" --yes
}
source ~/.zshrc
ghdel test
