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
×
Реклама
ИКС