gh-cli
How to Install
Claude Code:
git clone --depth 1 https://github.com/sori883/evo.git && cp evo/.claude/skills/gh-cli ~/.claude/skills/gh-cli -r---
description: GitHub CLI (gh) の包括的リファレンス。リポジトリ、issue、プルリクエスト、Actions、プロジェクト、リリース、gist、codespace、組織、拡張機能など、コマンドラインからのあらゆる GitHub 操作を網羅する。
metadata:
github-path: skills/gh-cli
github-pinned: 68120732cf9e69de8bec6a2b06a57b7463222440
github-ref: 68120732cf9e69de8bec6a2b06a57b7463222440
github-repo: https://github.com/github/awesome-copilot
github-tree-sha: 437437f7f20bcdbbdb3081cf164435a388c0a39a
name: gh-cli
---
# GitHub CLI (gh)
GitHub CLI (gh) の包括的リファレンス。コマンドラインから GitHub をシームレスに操作できる。
**バージョン:** 2.85.0(2026年1月時点の最新)
## 前提条件
### インストール
```bash
# macOS
brew install gh
# Linux
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh
# Windows
winget install --id GitHub.cli
# インストールの確認
gh --version
```
### 認証
```bash
# 対話的ログイン(デフォルト: github.com)
gh auth login
# ホスト名を指定してログイン
gh auth login --hostname enterprise.internal
# トークンでログイン
gh auth login --with-token < mytoken.txt
# 認証ステータスの確認
gh auth status
# アカウントの切り替え
gh auth switch --hostname github.com --user username
# ログアウト
gh auth logout --hostname github.com --user username
```
### Git 連携のセットアップ
```bash
# gh を認証情報ヘルパーとして使うよう git を設定
gh auth setup-git
# 有効なトークンを表示
gh auth token
# 認証スコープを更新
gh auth refresh --scopes write:org,read:public_key
```
## CLI 構造
```
gh # ルートコマンド
├── auth # 認証
│ ├── login
│ ├── logout
│ ├── refresh
│ ├── setup-git
│ ├── status
│ ├── switch
│ └── token
├── browse # ブラウザで開く
├── codespace # GitHub Codespaces
│ ├── code
│ ├── cp
│ ├── create
│ ├── delete
│ ├── edit
│ ├── jupyter
│ ├── list
│ ├── logs
│ ├── ports
│ ├── rebuild
│ ├── ssh
│ ├── stop
│ └── view
├── gist # Gist
│ ├── clone
│ ├── create
│ ├── delete
│ ├── edit
│ ├── list
│ ├── rename
│ └── view
├── issue # Issue
│ ├── create
│ ├── list
│ ├── status
│ ├── close
│ ├── comment
│ ├── delete
│ ├── develop
│ ├── edit
│ ├── lock
│ ├── pin
│ ├── reopen
│ ├── transfer
│ ├── unlock
│ └── view
├── org # 組織
│ └── list
├── pr # プルリクエスト
│ ├── create
│ ├── list
│ ├── status
│ ├── checkout
│ ├── checks
│ ├── close
│ ├── comment
│ ├── diff
│ ├── edit
│ ├── lock
│ ├── merge
│ ├── ready
│ ├── reopen
│ ├── revert
│ ├── review
│ ├── unlock
│ ├── update-branch
│ └── view
├── project # プロジェクト
│ ├── close
│ ├── copy
│ ├── create
│ ├── delete
│ ├── edit
│ ├── field-create
│ ├── field-delete
│ ├── field-list
│ ├── item-add
│ ├── item-archive
│ ├── item-create
│ ├── item-delete
│ ├── item-edit
│ ├── item-list
│ ├── link
│ ├── list
│ ├── mark-template
│ ├── unlink
│ └── view
├── release # リリース
│ ├── create
│ ├── list
│ ├── delete
│ ├── delete-asset
│ ├── download
│ ├── edit
│ ├── upload
│ ├── verify
│ ├── verify-asset
│ └── view
├── repo # リポジトリ
│ ├── create
│ ├── list
│ ├── archive
│ ├── autolink
│ ├── clone
│ ├── delete
│ ├── deploy-key
│ ├── edit
│ ├── fork
│ ├── gitignore
│ ├── license
│ ├── rename
│ ├── set-default
│ ├── sync
│ ├── unarchive
│ └── view
├── cache # Actions キャッシュ
│ ├── delete
│ └── list
├── run # ワークフロー実行
│ ├── cancel
│ ├── delete
│ ├── download
│ ├── list
│ ├── rerun
│ ├── view
│ └── watch
├── workflow # ワークフロー
│ ├── disable
│ ├── enable
│ ├── list
│ ├── run
│ └── view
├── agent-task # エージェントタスク
├── alias # コマンドエイリアス
│ ├── delete
│ ├── import
│ ├── list
│ └── set
├── api # API リクエスト
├── attestation # アーティファクト証明(attestation)
│ ├── download
│ ├── trusted-root
│ └── verify
├── completion # シェル補完
├── config # 設定
│ ├── clear-cache
│ ├── get
│ ├── list
│ └── set
├── extension # 拡張機能
│ ├── browse
│ ├── create
│ ├── exec
│ ├── install
│ ├── list
│ ├── remove
│ ├── search
│ └── upgrade
├── gpg-key # GPG 鍵
│ ├── add
│ ├── delete
│ └── list
├── label # ラベル
│ ├── clone
│ ├── create
│ ├── delete
│ ├── edit
│ └── list
├── preview # プレビュー機能
├── ruleset # ルールセット
│ ├── check
│ ├── list
│ └── view
├── search # 検索
│ ├── code
│ ├── commits
│ ├── issues
│ ├── prs
│ └── repos
├── secret # シークレット
│ ├── delete
│ ├── list
│ └── set
├── ssh-key # SSH 鍵
│ ├── add
│ ├── delete
│ └── list
├── status # ステータス概要
└── variable # 変数
├── delete
├── get
├── list
└── set
```
## 設定
### グローバル設定
```bash
# すべての設定を一覧表示
gh config list
# 特定の設定値を取得
gh config list git_protocol
gh config get editor
# 設定値を変更
gh config set editor vim
gh config set git_protocol ssh
gh config set prompt disabled
gh config set pager "less -R"
# 設定キャッシュをクリア
gh config clear-cache
```
### 環境変数
```bash
# GitHub トークン(自動化用)
export GH_TOKEN=ghp_xxxxxxxxxxxx
# GitHub ホスト名
export GH_HOST=github.com
# プロンプトを無効化
export GH_PROMPT_DISABLED=true
# カスタムエディタ
export GH_EDITOR=vim
# カスタムページャ
export GH_PAGER=less
# HTTP タイムアウト
export GH_TIMEOUT=30
# カスタムリポジトリ(デフォルトを上書き)
export GH_REPO=owner/repo
# カスタム git プロトコル
export GH_ENTERPRISE_HOSTNAME=hostname
```
## 認証 (gh auth)
### ログイン
```bash
# 対話的ログイン
gh auth login
# Web ベースの認証
gh auth login --web
# OAuth コードをクリップボードで扱う
gh auth login --web --clipboard
# git プロトコルを指定
gh auth login --git-protocol ssh
# カスタムホスト名(GitHub Enterprise)
gh auth login --hostname enterprise.internal
# stdin からトークンでログイン
gh auth login --with-token < token.txt
# 安全でないストレージ(平文)
gh auth login --insecure-storage
```
### ステータス
```bash
# すべての認証ステータスを表示
gh auth status
# 有効なアカウントのみ表示
gh auth status --active
# 特定のホスト名を表示
gh auth status --hostname github.com
# 出力にトークンを含める
gh auth status --show-token
# JSON 出力
gh auth status --json hosts
# jq でフィルタ
gh auth status --json hosts --jq '.hosts | add'
```
### アカウントの切り替え
```bash
# 対話的に切り替え
gh auth switch
# 特定のユーザー/ホストに切り替え
gh auth switch --hostname github.com --user monalisa
```
### トークン
```bash
# 認証トークンを表示
gh auth token
# 特定のホスト/ユーザーのトークン
gh auth token --hostname github.com --user monalisa
```
### 更新(refresh)
```bash
# 認証情報を更新
gh auth refresh
# スコープを追加
gh auth refresh --scopes write:org,read:public_key
# スコープを削除
gh auth refresh --remove-scopes delete_repo
# デフォルトのスコープにリセット
gh auth refresh --reset-scopes
# クリップボードを使用
gh auth refresh --clipboard
```
### Git のセットアップ
```bash
# git 認証情報ヘルパーをセットアップ
gh auth setup-git
# 特定のホスト向けにセットアップ
gh auth setup-git --hostname enterprise.internal
# ホストが未知でも強制的にセットアップ
gh auth setup-git --hostname enterprise.internal --force
```
## ブラウズ (gh browse)
```bash
# リポジトリをブラウザで開く
gh browse
# 特定のパスを開く
gh browse script/
gh browse main.go:312
# issue または PR を開く
gh browse 123
# コミットを開く
gh browse 77507cd94ccafcf568f8560cfecde965fcfa63
# 特定のブランチで開く
gh browse main.go --branch bug-fix
# 別のリポジトリを開く
gh browse --repo owner/repo
# 特定のページを開く
gh browse --actions # Actions タブ
gh browse --projects # Projects タブ
gh browse --releases # Releases タブ
gh browse --settings # Settings ページ
gh browse --wiki # Wiki ページ
# 開かずに URL を表示
gh browse --no-browser
```
## リポジトリ (gh repo)
### リポジトリの作成
```bash
# 新しいリポジトリを作成
gh repo create my-repo
# 説明付きで作成
gh repo create my-repo --description "My awesome project"
# パブリックリポジトリを作成
gh repo create my-repo --public
# プライベートリポジトリを作成
gh repo create my-repo --private
# ホームページ付きで作成
gh repo create my-repo --homepage https://example.com
# ライセンス付きで作成
gh repo create my-repo --license mit
# gitignore 付きで作成
gh repo create my-repo --gitignore python
# テンプレートリポジトリとして初期化
gh repo create my-repo --template
# 組織内にリポジトリを作成
gh repo create org/my-repo
# ローカルにクローンせずに作成
gh repo create my-repo --source=.
# issue を無効化
gh repo create my-repo --disable-issues
# wiki を無効化
gh repo create my-repo --disable-wiki
```
### リポジトリのクローン
```bash
# リポジトリをクローン
gh repo clone owner/repo
# 特定のディレクトリにクローン
gh repo clone owner/repo my-directory
# 別のブランチでクローン
gh repo clone owner/repo --branch develop
```
### リポジトリの一覧
```bash
# すべてのリポジトリを一覧表示
gh repo list
# 特定のオーナーのリポジトリを一覧表示
gh repo list owner
# 件数を制限
gh repo list --limit 50
# パブリックリポジトリのみ
gh repo list --public
# ソースリポジトリのみ(フォークを除く)
gh repo list --source
# JSON 出力
gh repo list --json name,visibility,owner
# テーブル出力
gh repo list --limit 100 | tail -n +2
# jq でフィルタ
gh repo list --json name --jq '.[].name'
```
### リポジトリの表示
```bash
# リポジトリの詳細を表示
gh repo view
# 特定のリポジトリを表示
gh repo view owner/repo
# JSON 出力
gh repo view --json name,description,defaultBranchRef
# ブラウザで表示
gh repo view --web
```
### リポジトリの編集
```bash
# 説明を編集
gh repo edit --description "New description"
# ホームページを設定
gh repo edit --homepage https://example.com
# 可視性を変更
gh repo edit --visibility private
gh repo edit --visibility public
# 機能の有効化/無効化
gh repo edit --enable-issues
gh repo edit --disable-issues
gh repo edit --enable-wiki
gh repo edit --disable-wiki
gh repo edit --enable-projects
gh repo edit --disable-projects
# デフォルトブランチを設定
gh repo edit --default-branch main
# リポジトリ名を変更
gh repo rename new-name
# リポジトリをアーカイブ
gh repo archive
gh repo unarchive
```
### リポジトリの削除
```bash
# リポジトリを削除
gh repo delete owner/repo
# プロンプトなしで確認
gh repo delete owner/repo --yes
```
### リポジトリのフォーク
```bash
# リポジトリをフォーク
gh repo fork owner/repo
# 組織にフォーク
gh repo fork owner/repo --org org-name
# フォーク後にクローン
gh repo fork owner/repo --clone
# フォークのリモート名
gh repo fork owner/repo --remote-name upstream
```
### フォークの同期
```bash
# フォークを upstream と同期
gh repo sync
# 特定のブランチを同期
gh repo sync --branch feature
# 強制同期
gh repo sync --force
```
### デフォルトリポジトリの設定
```bash
# 現在のディレクトリのデフォルトリポジトリを設定
gh repo set-default
# 明示的にデフォルトを設定
gh repo set-default owner/repo
# デフォルトを解除
gh repo set-default --unset
```
### リポジトリの自動リンク(autolink)
```bash
# 自動リンクを一覧表示
gh repo autolink list
# 自動リンクを追加
gh repo autolink add \
--key-prefix JIRA- \
--url-template https://jira.example.com/browse/
# 自動リンクを削除
gh repo autolink delete 12345
```
### リポジトリのデプロイキー
```bash
# デプロイキーを一覧表示
gh repo deploy-key list
# デプロイキーを追加
gh repo deploy-key add ~/.ssh/id_rsa.pub \
--title "Production server" \
--read-only
# デプロイキーを削除
gh repo deploy-key delete 12345
```
### Gitignore とライセンス
```bash
# gitignore テンプレートを表示
gh repo gitignore
# ライセンステンプレートを表示
gh repo license mit
# フルネーム付きのライセンス
gh repo license mit --fullname "John Doe"
```
## Issue (gh issue)
### Issue の作成
```bash
# 対話的に issue を作成
gh issue create
# タイトル付きで作成
gh issue create --title "Bug: Login not working"
# タイトルと本文付きで作成
gh issue create \
--title "Bug: Login not working" \
--body "Steps to reproduce..."
# ファイルから本文を読み込んで作成
gh issue create --body-file issue.md
# ラベル付きで作成
gh issue create --title "Fix bug" --labels bug,high-priority
# 担当者付きで作成
gh issue create --title "Fix bug" --assignee user1,user2
# 特定のリポジトリに作成
gh issue create --repo owner/repo --title "Issue title"
# Web から issue を作成
gh issue create --web
```
### Issue の一覧
```bash
# オープンな issue をすべて一覧表示
gh issue list
# すべての issue を一覧表示(クローズ済みを含む)
gh issue list --state all
# クローズ済みの issue を一覧表示
gh issue list --state closed
# 件数を制限
gh issue list --limit 50
# 担当者でフィルタ
gh issue list --assignee username
gh issue list --assignee @me
# ラベルでフィルタ
gh issue list --labels bug,enhancement
# マイルストーンでフィルタ
gh issue list --milestone "v1.0"
# 検索/フィルタ
gh issue list --search "is:open is:issue label:bug"
# JSON 出力
gh issue list --json number,title,state,author
# テーブル表示
gh issue list --json number,title,labels --jq '.[] | [.number, .title, .labels[].name] | @tsv'
# コメント数を表示
gh issue list --json number,title,comments --jq '.[] | [.number, .title, .comments]'
# 並び替え
gh issue list --sort created --order desc
```
### Issue の表示
```bash
# issue を表示
gh issue view 123
# コメント付きで表示
gh issue view 123 --comments
# ブラウザで表示
gh issue view 123 --web
# JSON 出力
gh issue view 123 --json title,body,state,labels,comments
# 特定のフィールドを表示
gh issue view 123 --json title --jq '.title'
```
### Issue の編集
```bash
# 対話的に編集
gh issue edit 123
# タイトルを編集
gh issue edit 123 --title "New title"
# 本文を編集
gh issue edit 123 --body "New description"
# ラベルを追加
gh issue edit 123 --add-label bug,high-priority
# ラベルを削除
gh issue edit 123 --remove-label stale
# 担当者を追加
gh issue edit 123 --add-assignee user1,user2
# 担当者を削除
gh issue edit 123 --remove-assignee user1
# マイルストーンを設定
gh issue edit 123 --milestone "v1.0"
```
### Issue のクローズ/再オープン
```bash
# issue をクローズ
gh issue close 123
# コメント付きでクローズ
gh issue close 123 --comment "Fixed in PR #456"
# issue を再オープン
gh issue reopen 123
```
### Issue へのコメント
```bash
# コメントを追加
gh issue comment 123 --body "This looks good!"
# コメントを編集
gh issue comment 123 --edit 456789 --body "Updated comment"
# コメントを削除
gh issue comment 123 --delete 456789
```
### Issue のステータス
```bash
# issue のステータス概要を表示
gh issue status
# 特定のリポジトリのステータス
gh issue status --repo owner/repo
```
### Issue のピン留め/解除
```bash
# issue をピン留め(リポジトリのダッシュボードに固定)
gh issue pin 123
# issue のピン留めを解除
gh issue unpin 123
```
### Issue のロック/解除
```bash
# 会話をロック
gh issue lock 123
# 理由を指定してロック
gh issue lock 123 --reason off-topic
# ロックを解除
gh issue unlock 123
```
### Issue の移管
```bash
# 別のリポジトリへ移管
gh issue transfer 123 --repo owner/new-repo
```
### Issue の削除
```bash
# issue を削除
gh issue delete 123
# プロンプトなしで確認
gh issue delete 123 --yes
```
### Issue から開発(ドラフト PR)
```bash
# issue からドラフト PR を作成
gh issue develop 123
# 特定のブランチで作成
gh issue develop 123 --branch fix/issue-123
# ベースブランチを指定して作成
gh issue develop 123 --base main
```
## プルリクエスト (gh pr)
### プルリクエストの作成
```bash
# 対話的に PR を作成
gh pr create
# タイトル付きで作成
gh pr create --title "Feature: Add new functionality"
# タイトルと本文付きで作成
gh pr create \
--title "Feature: Add new functionality" \
--body "This PR adds..."
# テンプレートから本文を埋める
gh pr create --body-file .github/PULL_REQUEST_TEMPLATE.md
# ベースブランチを設定
gh pr create --base main
# ヘッドブランチを設定(デフォルト: 現在のブランチ)
gh pr create --head feature-branch
# ドラフト PR を作成
gh pr create --draft
# 担当者を追加
gh pr create --assignee user1,user2
# レビュアーを追加
gh pr create --reviewer user1,user2
# ラベルを追加
gh pr create --labels enhancement,feature
# issue にリンク
gh pr create --issue 123
# 特定のリポジトリに作成
gh pr create --repo owner/repo
# 作成後にブラウザで開く
gh pr create --web
```
### プルリクエストの一覧
```bash
# オープンな PR を一覧表示
gh pr list
# すべての PR を一覧表示
gh pr list --state all
# マージ済みの PR を一覧表示
gh pr list --state merged
# クローズ済み(マージされていない)の PR を一覧表示
gh pr list --state closed
# ヘッドブランチでフィルタ
gh pr list --head feature-branch
# ベースブランチでフィルタ
gh pr list --base main
# 作成者でフィルタ
gh pr list --author username
gh pr list --author @me
# 担当者でフィルタ
gh pr list --assignee username
# ラベルでフィルタ
gh pr list --labels bug,enhancement
# 件数を制限
gh pr list --limit 50
# 検索
gh pr list --search "is:open is:pr label:review-required"
# JSON 出力
gh pr list --json number,title,state,author,headRefName
# チェックステータスを表示
gh pr list --json number,title,statusCheckRollup --jq '.[] | [.number, .title, .statusCheckRollup[]?.status]'
# 並び替え
gh pr list --sort created --order desc
```
### プルリクエストの表示
```bash
# PR を表示
gh pr view 123
# コメント付きで表示
gh pr view 123 --comments
# ブラウザで表示
gh pr view 123 --web
# JSON 出力
gh pr view 123 --json title,body,state,author,commits,files
# diff を表示
gh pr view 123 --json files --jq '.files[].path'
# jq クエリで表示
gh pr view 123 --json title,state --jq '"\(.title): \(.state)"'
```
### プルリクエストのチェックアウト
```bash
# PR ブランチをチェックアウト
gh pr checkout 123
# 特定のブランチ名でチェックアウト
gh pr checkout 123 --branch name-123
# 強制チェックアウト
gh pr checkout 123 --force
```
### プルリクエストの差分(diff)
```bash
# PR の diff を表示
gh pr diff 123
# 色付きで diff を表示
gh pr diff 123 --color always
# ファイルに出力
gh pr diff 123 > pr-123.patch
# 特定のファイルの diff を表示
gh pr diff 123 --name-only
```
### プルリクエストのマージ
```bash
# PR をマージ
gh pr merge 123
# 特定のマージ方式でマージ
gh pr merge 123 --merge
gh pr merge 123 --squash
gh pr merge 123 --rebase
# マージ後にブランチを削除
gh pr merge 123 --delete-branch
# コメント付きでマージ
gh pr merge 123 --subject "Merge PR #123" --body "Merging feature"
# ドラフト PR をマージ
gh pr merge 123 --admin
# 強制マージ(チェックをスキップ)
gh pr merge 123 --admin
```
### プルリクエストのクローズ
```bash
# PR をクローズ(マージせずにドラフト扱い)
gh pr close 123
# コメント付きでクローズ
gh pr close 123 --comment "Closing due to..."
```
### プルリクエストの再オープン
```bash
# クローズ済みの PR を再オープン
gh pr reopen 123
```
### プルリクエストの編集
```bash
# 対話的に編集
gh pr edit 123
# タイトルを編集
gh pr edit 123 --title "New title"
# 本文を編集
gh pr edit 123 --body "New description"
# ラベルを追加
gh pr edit 123 --add-label bug,enhancement
# ラベルを削除
gh pr edit 123 --remove-label stale
# 担当者を追加
gh pr edit 123 --add-assignee user1,user2
# 担当者を削除
gh pr edit 123 --remove-assignee user1
# レビュアーを追加
gh pr edit 123 --add-reviewer user1,user2
# レビュアーを削除
gh pr edit 123 --remove-reviewer user1
# レビュー可能としてマーク
gh pr edit 123 --ready
```
### レビュー準備完了
```bash
# ドラフト PR をレビュー準備完了にする
gh pr ready 123
```
### プルリクエストのチェック
```bash
# PR のチェックを表示
gh pr checks 123
# チェックをリアルタイムで監視
gh pr checks 123 --watch
# 監視間隔(秒)
gh pr checks 123 --watch --interval 5
```
### プルリクエストへのコメント
```bash
# コメントを追加
gh pr comment 123 --body "Looks good!"
# 特定の行にコメント
gh pr comment 123 --body "Fix this" \
--repo owner/repo \
--head-owner owner --head-branch feature
# コメントを編集
gh pr comment 123 --edit 456789 --body "Updated"
# コメントを削除
gh pr comment 123 --delete 456789
```
### プルリクエストのレビュー
```bash
# PR をレビュー(エディタを開く)
gh pr review 123
# PR を承認
gh pr review 123 --approve --body "LGTM!"
# 変更を要求
gh pr review 123 --request-changes \
--body "Please fix these issues"
# PR にコメント
gh pr review 123 --comment --body "Some thoughts..."
# レビューを取り下げ
gh pr review 123 --dismiss
```
### ブランチの更新
```bash
# PR ブランチを最新のベースブランチで更新
gh pr update-branch 123
# 強制更新
gh pr update-branch 123 --force
# マージ戦略を使用
gh pr update-branch 123 --merge
```
### プルリクエストのロック/解除
```bash
# PR の会話をロック
gh pr lock 123
# 理由を指定してロック
gh pr lock 123 --reason off-topic
# ロックを解除
gh pr unlock 123
```
### プルリクエストの取り消し(revert)
```bash
# マージ済みの PR を取り消す
gh pr revert 123
# 特定のブランチ名で取り消す
gh pr revert 123 --branch revert-pr-123
```
### プルリクエストのステータス
```bash
# PR のステータス概要を表示
gh pr status
# 特定のリポジトリのステータス
gh pr status --repo owner/repo
```
## GitHub Actions
### ワークフロー実行 (gh run)
```bash
# ワークフロー実行を一覧表示
gh run list
# 特定のワークフローの実行を一覧表示
gh run list --workflow "ci.yml"
# 特定のブランチの実行を一覧表示
gh run list --branch main
# 件数を制限
gh run list --limit 20
# JSON 出力
gh run list --json databaseId,status,conclusion,headBranch
# 実行の詳細を表示
gh run view 123456789
# 詳細なログ付きで実行を表示
gh run view 123456789 --log
# 特定のジョブを表示
gh run view 123456789 --job 987654321
# ブラウザで表示
gh run view 123456789 --web
# 実行をリアルタイムで監視
gh run watch 123456789
# 間隔を指定して監視
gh run watch 123456789 --interval 5
# 失敗した実行を再実行
gh run rerun 123456789
# 特定のジョブを再実行
gh run rerun 123456789 --job 987654321
# 実行をキャンセル
gh run cancel 123456789
# 実行を削除
gh run delete 123456789
# 実行のアーティファクトをダウンロード
gh run download 123456789
# 特定のアーティファクトをダウンロード
gh run download 123456789 --name build
# ディレクトリにダウンロード
gh run download 123456789 --dir ./artifacts
```
### ワークフロー (gh workflow)
```bash
# ワークフローを一覧表示
gh workflow list
# ワークフローの詳細を表示
gh workflow view ci.yml
# ワークフローの YAML を表示
gh workflow view ci.yml --yaml
# ブラウザで表示
gh workflow view ci.yml --web
# ワークフローを有効化
gh workflow enable ci.yml
# ワークフローを無効化
gh workflow disable ci.yml
# ワークフローを手動で実行
gh workflow run ci.yml
# 入力付きで実行
gh workflow run ci.yml \
--raw-field \
version="1.0.0" \
environment="production"
# 特定のブランチから実行
gh workflow run ci.yml --ref develop
```
### Actions キャッシュ (gh cache)
```bash
# キャッシュを一覧表示
gh cache list
# 特定のブランチのキャッシュを一覧表示
gh cache list --branch main
# 件数を制限して一覧表示
gh cache list --limit 50
# キャッシュを削除
gh cache delete 123456789
# すべてのキャッシュを削除
gh cache delete --all
```
### Actions シークレット (gh secret)
```bash
# シークレットを一覧表示
gh secret list
# シークレットを設定(値を入力)
gh secret set MY_SECRET
# 環境変数からシークレットを設定
echo "$MY_SECRET" | gh secret set MY_SECRET
# 特定の environment にシークレットを設定
gh secret set MY_SECRET --env production
# 組織にシークレットを設定
gh secret set MY_SECRET --org orgname
# シークレットを削除
gh secret delete MY_SECRET
# environment から削除
gh secret delete MY_SECRET --env production
```
### Actions 変数 (gh variable)
```bash
# 変数を一覧表示
gh variable list
# 変数を設定
gh variable set MY_VAR "some-value"
# environment 向けに変数を設定
gh variable set MY_VAR "value" --env production
# 組織向けに変数を設定
gh variable set MY_VAR "value" --org orgname
# 変数の値を取得
gh variable get MY_VAR
# 変数を削除
gh variable delete MY_VAR
# environment から削除
gh variable delete MY_VAR --env production
```
## プロジェクト (gh project)
```bash
# プロジェクトを一覧表示
gh project list
# オーナーのプロジェクトを一覧表示
gh project list --owner owner
# オープンなプロジェクトを表示
gh project list --open
# プロジェクトを表示
gh project view 123
# プロジェクトのアイテムを表示
gh project view 123 --format json
# プロジェクトを作成
gh project create --title "My Project"
# 組織内に作成
gh project create --title "Project" --org orgname
# readme 付きで作成
gh project create --title "Project" --readme "Description here"
# プロジェクトを編集
gh project edit 123 --title "New Title"
# プロジェクトを削除
gh project delete 123
# プロジェクトをクローズ
gh project close 123
# プロジェクトをコピー
gh project copy 123 --owner target-owner --title "Copy"
# テンプレートとしてマーク
gh project mark-template 123
# フィールドを一覧表示
gh project field-list 123
# フィールドを作成
gh project field-create 123 --title "Status" --datatype single_select
# フィールドを削除
gh project field-delete 123 --id 456
# アイテムを一覧表示
gh project item-list 123
# アイテムを作成
gh project item-create 123 --title "New item"
# プロジェクトにアイテムを追加
gh project item-add 123 --owner-owner --repo repo --issue 456
# アイテムを編集
gh project item-edit 123 --id 456 --title "Updated title"
# アイテムを削除
gh project item-delete 123 --id 456
# アイテムをアーカイブ
gh project item-archive 123 --id 456
# アイテムをリンク
gh project link 123 --id 456 --link-id 789
# アイテムのリンクを解除
gh project unlink 123 --id 456 --link-id 789
# プロジェクトをブラウザで表示
gh project view 123 --web
```
## リリース (gh release)
```bash
# リリースを一覧表示
gh release list
# 最新のリリースを表示
gh release view
# 特定のリリースを表示
gh release view v1.0.0
# ブラウザで表示
gh release view v1.0.0 --web
# リリースを作成
gh release create v1.0.0 \
--notes "Release notes here"
# ファイルからリリースノートを読み込んで作成
gh release create v1.0.0 --notes-file notes.md
# ターゲットを指定して作成
gh release create v1.0.0 --target main
# ドラフトとして作成
gh release create v1.0.0 --draft
# プレリリースを作成
gh release create v1.0.0 --prerelease
# タイトル付きで作成
gh release create v1.0.0 --title "Version 1.0.0"
# リリースにアセットをアップロード
gh release upload v1.0.0 ./file.tar.gz
# 複数のアセットをアップロード
gh release upload v1.0.0 ./file1.tar.gz ./file2.tar.gz
# ラベル付きでアップロード(大文字小文字を区別)
gh release upload v1.0.0 ./file.tar.gz --casing
# リリースを削除
gh release delete v1.0.0
# タグのクリーンアップ付きで削除
gh release delete v1.0.0 --yes
# 特定のアセットを削除
gh release delete-asset v1.0.0 file.tar.gz
# リリースのアセットをダウンロード
gh release download v1.0.0
# 特定のアセットをダウンロード
gh release download v1.0.0 --pattern "*.tar.gz"
# ディレクトリにダウンロード
gh release download v1.0.0 --dir ./downloads
# アーカイブ(zip/tar)をダウンロード
gh release download v1.0.0 --archive zip
# リリースを編集
gh release edit v1.0.0 --notes "Updated notes"
# リリースの署名を検証
gh release verify v1.0.0
# 特定のアセットを検証
gh release verify-asset v1.0.0 file.tar.gz
```
## Gist (gh gist)
```bash
# gist を一覧表示
gh gist list
# すべての gist を一覧表示(プライベートを含む)
gh gist list --public
# 件数を制限
gh gist list --limit 20
# gist を表示
gh gist view abc123
# gist のファイルを表示
gh gist view abc123 --files
# gist を作成
gh gist create script.py
# 説明付きで gist を作成
gh gist create script.py --desc "My script"
# パブリックな gist を作成
gh gist create script.py --public
# 複数ファイルの gist を作成
gh gist create file1.py file2.py
# stdin から作成
echo "print('hello')" | gh gist create
# gist を編集
gh gist edit abc123
# gist を削除
gh gist delete abc123
# gist のファイル名を変更
gh gist rename abc123 --filename old.py new.py
# gist をクローン
gh gist clone abc123
# ディレクトリにクローン
gh gist clone abc123 my-directory
```
## Codespaces (gh codespace)
```bash
# codespace を一覧表示
gh codespace list
# codespace を作成
gh codespace create
# 特定のリポジトリで作成
gh codespace create --repo owner/repo
# ブランチを指定して作成
gh codespace create --branch develop
# 特定のマシンで作成
gh codespace create --machine premiumLinux
# codespace の詳細を表示
gh codespace view
# codespace に SSH 接続
gh codespace ssh
# 特定のコマンドで SSH 接続
gh codespace ssh --command "cd /workspaces && ls"
# codespace をブラウザで開く
gh codespace code
# VS Code で開く
gh codespace code --codec
# 特定のパスで開く
gh codespace code --path /workspaces/repo
# codespace を停止
gh codespace stop
# codespace を削除
gh codespace delete
# ログを表示
gh codespace logs
--tail 100
# ポートを表示
gh codespace ports
# ポートを転送
gh codespace cp 8080:8080
# codespace を再ビルド
gh codespace rebuild
# codespace を編集
gh codespace edit --machine standardLinux
# Jupyter サポート
gh codespace jupyter
# codespace との間でファイルをコピー
gh codespace cp file.txt :/workspaces/file.txt
gh codespace cp :/workspaces/file.txt ./file.txt
```
## 組織 (gh org)
```bash
# 組織を一覧表示
gh org list
# ユーザーの組織を一覧表示
gh org list --user username
# JSON 出力
gh org list --json login,name,description
# 組織を表示
gh org view orgname
# 組織のメンバーを表示
gh org view orgname --json members --jq '.members[] | .login'
```
## 検索 (gh search)
```bash
# コードを検索
gh search code "TODO"
# 特定のリポジトリ内を検索
gh search code "TODO" --repo owner/repo
# コミットを検索
gh search commits "fix bug"
# issue を検索
gh search issues "label:bug state:open"
# PR を検索
gh search prs "is:open is:pr review:required"
# リポジトリを検索
gh search repos "stars:>1000 language:python"
# 件数を制限
gh search repos "topic:api" --limit 50
# JSON 出力
gh search repos "stars:>100" --json name,description,stargazers
# 結果を並び替え
gh search repos "language:rust" --order desc --sort stars
# 拡張子を指定して検索
gh search code "import" --extension py
# Web 検索(ブラウザで開く)
gh search prs "is:open" --web
```
## ラベル (gh label)
```bash
# ラベルを一覧表示
gh label list
# ラベルを作成
gh label create bug --color "d73a4a" --description "Something isn't working"
# 16進数カラーで作成
gh label create enhancement --color "#a2eeef"
# ラベルを編集
gh label edit bug --name "bug-report" --color "ff0000"
# ラベルを削除
gh label delete bug
# リポジトリからラベルをクローン
gh label clone owner/repo
# 特定のリポジトリにクローン
gh label clone owner/repo --repo target/repo
```
## SSH 鍵 (gh ssh-key)
```bash
# SSH 鍵を一覧表示
gh ssh-key list
# SSH 鍵を追加
gh ssh-key add ~/.ssh/id_rsa.pub --title "My laptop"
# タイプを指定して鍵を追加
gh ssh-key add ~/.ssh/id_ed25519.pub --type "authentication"
# SSH 鍵を削除
gh ssh-key delete 12345
# タイトルで削除
gh ssh-key delete --title "My laptop"
```
## GPG 鍵 (gh gpg-key)
```bash
# GPG 鍵を一覧表示
gh gpg-key list
# GPG 鍵を追加
gh gpg-key add ~/.ssh/id_rsa.pub
# GPG 鍵を削除
gh gpg-key delete 12345
# 鍵 ID で削除
gh gpg-key delete ABCD1234
```
## ステータス (gh status)
```bash
# ステータス概要を表示
gh status
# 特定のリポジトリのステータス
gh status --repo owner/repo
# JSON 出力
gh status --json
```
## 設定 (gh config)
```bash
# すべての設定を一覧表示
gh config list
# 特定の値を取得
gh config get editor
# 値を設定
gh config set editor vim
# git プロトコルを設定
gh config set git_protocol ssh
# キャッシュをクリア
gh config clear-cache
# プロンプトの挙動を設定
gh config set prompt disabled
gh config set prompt enabled
```
## 拡張機能 (gh extension)
```bash
# インストール済みの拡張機能を一覧表示
gh extension list
# 拡張機能を検索
gh extension search github
# 拡張機能をインストール
gh extension install owner/extension-repo
# ブランチからインストール
gh extension install owner/extension-repo --branch develop
# 拡張機能をアップグレード
gh extension upgrade extension-name
# 拡張機能を削除
gh extension remove extension-name
# 新しい拡張機能を作成
gh extension create my-extension
# 拡張機能をブラウズ
gh extension browse
# 拡張機能のコマンドを実行
gh extension exec my-extension --arg value
```
## エイリアス (gh alias)
```bash
# エイリアスを一覧表示
gh alias list
# エイリアスを設定
gh alias set prview 'pr view --web'
# シェルエイリアスを設定
gh alias set co 'pr checkout' --shell
# エイリアスを削除
gh alias delete prview
# エイリアスをインポート
gh alias import ./aliases.sh
```
## API リクエスト (gh api)
```bash
# API リクエストを実行
gh api /user
# メソッドを指定してリクエスト
gh api --method POST /repos/owner/repo/issues \
--field title="Issue title" \
--field body="Issue body"
# ヘッダー付きでリクエスト
gh api /user \
--header "Accept: application/vnd.github.v3+json"
# ページネーション付きでリクエスト
gh api /user/repos --paginate
# 生の出力(整形なし)
gh api /user --raw
# 出力にヘッダーを含める
gh api /user --include
# サイレントモード(進捗出力なし)
gh api /user --silent
# ファイルから入力
gh api --input request.json
# レスポンスに jq クエリ
gh api /user --jq '.login'
# レスポンスからフィールドを取得
gh api /repos/owner/repo --jq '.stargazers_count'
# GitHub Enterprise
gh api /user --hostname enterprise.internal
# GraphQL クエリ
gh api graphql \
-f query='
{
viewer {
login
repositories(first: 5) {
nodes {
name
}
}
}
}'
```
## ルールセット (gh ruleset)
```bash
# ルールセットを一覧表示
gh ruleset list
# ルールセットを表示
gh ruleset view 123
# ルールセットをチェック
gh ruleset check --branch feature
# 特定のリポジトリをチェック
gh ruleset check --repo owner/repo --branch main
```
## 証明(gh attestation)
```bash
# 証明をダウンロード
gh attestation download owner/repo \
--artifact-id 123456
# 証明を検証
gh attestation verify owner/repo
# 信頼されたルートを取得
gh attestation trusted-root
```
## 補完 (gh completion)
```bash
# シェル補完を生成
gh completion -s bash > ~/.gh-complete.bash
gh completion -s zsh > ~/.gh-complete.zsh
gh completion -s fish > ~/.gh-complete.fish
gh completion -s powershell > ~/.gh-complete.ps1
# シェル別の手順
gh completion --shell=bash
gh completion --shell=zsh
```
## プレビュー (gh preview)
```bash
# プレビュー機能を一覧表示
gh preview
# プレビュースクリプトを実行
gh preview prompter
```
## エージェントタスク (gh agent-task)
```bash
# エージェントタスクを一覧表示
gh agent-task list
# エージェントタスクを表示
gh agent-task view 123
# エージェントタスクを作成
gh agent-task create --description "My task"
```
## グローバルフラグ
| フラグ | 説明 |
| -------------------------- | -------------------------------------- |
| `--help` / `-h` | コマンドのヘルプを表示 |
| `--version` | gh のバージョンを表示 |
| `--repo [HOST/]OWNER/REPO` | 別のリポジトリを選択 |
| `--hostname HOST` | GitHub ホスト名 |
| `--jq EXPRESSION` | JSON 出力をフィルタ |
| `--json FIELDS` | 指定したフィールドで JSON を出力 |
| `--template STRING` | Go テンプレートで JSON を整形 |
| `--web` | ブラウザで開く |
| `--paginate` | 追加の API 呼び出しを行う |
| `--verbose` | 詳細な出力を表示 |
| `--debug` | デバッグ出力を表示 |
| `--timeout SECONDS` | API リクエストの最大時間 |
| `--cache CACHE` | キャッシュ制御(default, force, bypass) |
## 出力の整形
### JSON 出力
```bash
# 基本的な JSON
gh repo view --json name,description
# ネストされたフィールド
gh repo view --json owner,name --jq '.owner.login + "/" + .name'
# 配列操作
gh pr list --json number,title --jq '.[] | select(.number > 100)'
# 複雑なクエリ
gh issue list --json number,title,labels \
--jq '.[] | {number, title: .title, tags: [.labels[].name]}'
```
### テンプレート出力
```bash
# カスタムテンプレート
gh repo view \
--template '{{.name}}: {{.description}}'
# 複数行のテンプレート
gh pr view 123 \
--template 'Title: {{.title}}
Author: {{.author.login}}
State: {{.state}}
'
```
## よくあるワークフロー
### Issue から PR を作成
```bash
# issue からブランチを作成
gh issue develop 123 --branch feature/issue-123
# 変更を加え、コミットし、プッシュ
git add .
git commit -m "Fix issue #123"
git push
# issue にリンクした PR を作成
gh pr create --title "Fix #123" --body "Closes #123"
```
### 一括操作
```bash
# 複数の issue をクローズ
gh issue list --search "label:stale" \
--json number \
--jq '.[].number' | \
xargs -I {} gh issue close {} --comment "Closing as stale"
# 複数の PR にラベルを追加
gh pr list --search "review:required" \
--json number \
--jq '.[].number' | \
xargs -I {} gh pr edit {} --add-label needs-review
```
### リポジトリのセットアップワークフロー
```bash
# 初期セットアップ付きでリポジトリを作成
gh repo create my-project --public \
--description "My awesome project" \
--clone \
--gitignore python \
--license mit
cd my-project
# ブランチをセットアップ
git checkout -b develop
git push -u origin develop
# ラベルを作成
gh label create bug --color "d73a4a" --description "Bug report"
gh label create enhancement --color "a2eeef" --description "Feature request"
gh label create documentation --color "0075ca" --description "Documentation"
```
### CI/CD ワークフロー
```bash
# ワークフローを実行して待機
RUN_ID=$(gh workflow run ci.yml --ref main --jq '.databaseId')
# 実行を監視
gh run watch "$RUN_ID"
# 完了時にアーティファクトをダウンロード
gh run download "$RUN_ID" --dir ./artifacts
```
### フォーク同期ワークフロー
```bash
# リポジトリをフォーク
gh repo fork original/repo --clone
cd repo
# upstream リモートを追加
git remote add upstream https://github.com/original/repo.git
# フォークを同期
gh repo sync
# または手動で同期
git fetch upstream
git checkout main
git merge upstream/main
git push origin main
```
## 環境のセットアップ
### シェル連携
```bash
# ~/.bashrc または ~/.zshrc に追加
eval "$(gh completion -s bash)" # または zsh/fish
# 便利なエイリアスを作成
alias gs='gh status'
alias gpr='gh pr view --web'
alias gir='gh issue view --web'
alias gco='gh pr checkout'
```
### Git の設定
```bash
# gh を認証情報ヘルパーとして使用
gh auth setup-git
# リポジトリ操作のデフォルトに gh を設定
git config --global credential.helper 'gh !gh auth setup-git'
# または手動で
git config --global credential.helper github
```
## ベストプラクティス
1. **認証**: 自動化には環境変数を使う
```bash
export GH_TOKEN=$(gh auth token)
```
2. **デフォルトリポジトリ**: 繰り返しを避けるためデフォルトを設定する
```bash
gh repo set-default owner/repo
```
3. **JSON のパース**: 複雑なデータ抽出には jq を使う
```bash
gh pr list --json number,title --jq '.[] | select(.title | contains("fix"))'
```
4. **ページネーション**: 大きな結果セットには --paginate を使う
```bash
gh issue list --state all --paginate
```
5. **キャッシュ**: 頻繁にアクセスするデータにはキャッシュ制御を使う
```bash
gh api /user --cache force
```
## ヘルプの取得
```bash
# 一般的なヘルプ
gh --help
# コマンドのヘルプ
gh pr --help
gh issue create --help
# ヘルプトピック
gh help formatting
gh help environment
gh help exit-codes
gh help accessibility
```
## 参考リンク
- 公式マニュアル: https://cli.github.com/manual/
- GitHub Docs: https://docs.github.com/en/github-cli
- REST API: https://docs.github.com/en/rest
- GraphQL API: https://docs.github.com/en/graphql
Details
| Category | Coding → debug |
| Source | sori883/evo |
| SKILL.md | View on GitHub → |
| Repo Stars | N/A |
| Est. per Skill | N/A (shared across 14 skills from this repo) |
| Difficulty | Intermediate |
| Risk Level | Safe |
Related Skills
github
--- name: github description: Expert guidance for GitHub CLI (gh) - issues, PRs, repos, releases, an
gh-release-skill
--- name: github-release description: Use this skill when the user asks to "create a GitHub release"
watch-pr-checks
--- name: watch-pr-checks description: Monitor GitHub CI checks for the current branch's PR. Auto-tr
axiom-realitykit-diag
--- name: axiom-realitykit-diag description: Use when RealityKit entities not visible, anchors not t
Works Well With
Skills from the same repository — often designed to work together
hono
--- name: hono description: Use when building Hono web applications or when the user asks about Hono
aws-cdk
--- name: aws-cdk description: Authors, deploys, and troubleshoots AWS infrastructure using CDK with
tdd-cycle
--- name: tdd-cycle description: t-wada 流の TDD サイクルをコーディングエージェントのループに適用するための Skill。Codex またはサブエージェント