docs > gitlab > Gitlab Cli

Gitlab Cli

なぜかGitLab。

GitLab CLI (glab)

snapdでglabをインストールしたところ、rootでしか正常動作しなかった。brewで入れたところ、フリーズせずに、動作した。

# rootでしか通常動作しなかった。
sudo dnf install epel-release -y
sudo dnf install snapd -y

sudo systemctl restart snapd
snap install glab

# 最後いらないなら削除(snapdの挙動?)
#sudo systemctl stop snapd
#sudo dnf remove snapd -y
# 事前にgitlabでtokenを作っておく。

glab auth login --hostname localhost:8080
# GUIがあるといい? ssh,httpを選択。

GitHubからクローンした自分のプロジェクトをGitLabにpushしたら面白いんじゃないか。

GitHub cli

@ Mac
brew install gh

gh auth login

@ rhel系(未検証:検証する前にbrewを)

未検証:検証する前にbrewを入れたため、dnf経由では達成する意義が無くなった。

sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
sudo dnf install -y gh --repo gh-cli

gh auth login

get repo list

mkdir -p github-reops; cd $_

gh repo list -L 100 > mylist
# ここでは、privateを含むのレポジトリ名を取っておきたい。

clone repos from github

cat mylist | awk '{print $1}' | awk -F/ '{print $2}' | while read line
do
  echo ${line}
  git clone git@github.com:YumaYX/${line}.git
  sleep 2
done

make repos in my gitlab

cat mylist | awk '{print $1}' | awk -F/ '{print $2}' | GITLAB_HOST=localhost:8080 xargs -I@ glab repo create @ -s

push to my gitlab

cat mylist | awk '{print $1}' | awk -F/ '{print $2}' | while read line
do
  echo ${line}
  cd ${line}; pwd; sleep 2
  git remote remove origin
  git remote -v; sleep 2
  git remote add origin ssh://git@localhost:2222/user/${line}.git
  git push -u origin main #もちろんmainブランチじゃないとエラー。
  git push --all origin
  git push --tags origin
  sleep 2
  cd -
done