gh
はGithubをCLIでコントロールする為のAPIツールである。簡単にWSLにインストールできて使用してみた所感を記載していきます。
インストール方法
WSLへのインストール方法は下記の記事を参考にしました。
実際にインストールしてauthの認証を実施して、下記のようにGithubの情報を取得した更新したりすることができる。
(base) user@DESKTOP-C0A2DE7:~/Github_repo/my_repo_internal$ gh issue list
Showing 6 of 6 open issues in Life-Tech316/My_repo_internal
ID TITLE LABELS UPDATED
#6 GCP認定_スキルアップ about 10 minutes ago
#5 カーソルのエディタ調査 about 10 minutes ago
xxxx
試しに下記のようにレポジトリ間でissueをコピーするスクリプトを実施して、コピー先のレポジトリにissueが作成できることを確認できました。
bash.sh
#!/bin/bash
SRC_REPO="Life-Tech316/my_repo"
DEST_REPO="Life-Tech316/My_repo_internal"
ISSUE_LIMIT=10
# 一時ファイル
TMP_FILE=$(mktemp)
# 1. issue一覧を取得
gh issue list -R "$SRC_REPO" --limit $ISSUE_LIMIT --json number,title | jq -c '.[]' | while read -r issue_json; do
ISSUE_NUMBER=$(echo "$issue_json" | jq -r '.number')
TITLE=$(echo "$issue_json" | jq -r '.title')
echo "Copying Issue #$ISSUE_NUMBER: $TITLE"
# 2. 元Issueの本文を取得
BODY=$(gh issue view "$ISSUE_NUMBER" -R "$SRC_REPO" --json body | jq -r '.body')
# 3. コピー先に作成
gh issue create -R "$DEST_REPO" --title "$TITLE" --body "$BODY"
done
# Cleanup
rm "$TMP_FILE"
最後に
ghコマンドを使ってCLIで操作できるのはスクリプト操作ができるので楽ですね。今後、活用していきたいと思います。
以上