はじめに
この記事では、GitHub CLI、curl
、または JavaScript を使用して、GitHub REST API の使用をすばやく開始する方法について説明します。 さらに詳しいガイドについては、「REST API を使用した作業の開始」を参照してください。
コマンド ラインでの GitHub CLI の使用
GitHub CLI は、コマンド ラインから GitHub REST API を使用する方法として最も簡単です。
-
macOS、Windows、または Linux に GitHub CLI をインストールします。 詳細については、GitHub CLI リポジトリ内でのインストールを参照してください。
-
GitHub に対して認証を行うには、ターミナルから次のコマンドを実行します。
gh auth login
-
認証を行う場所を選びます。
- GitHub.com にある GitHub にアクセスする場合は、[GitHub.com] を選びます。
- 別のドメインにある GitHub にアクセスする場合は、[Other] を選んでから、ホスト名を入力します (例:
octocorp.ghe.com
)。
-
画面上の残りのプロンプトに従います。
GitHub CLI は、Git 操作の優先プロトコルとして HTTPS を選択すると自動的に Git 資格情報を格納し、GitHub 資格情報で Git に対して認証するかどうかを尋ねるプロンプトに対して "はい" と答えます。 これは、別の資格情報マネージャーを設定したり、SSH を使用したりすることなく、
git push
、git pull
などの Git コマンドを使用できるので便利です。 -
GitHub CLI
api
サブコマンドにパスを続けて使用して要求を行います。 メソッドを指定するには、--method
または-X
フラグを使用します。 詳しくは、GitHub CLIapi
のドキュメントを参照してください。この例では、メソッド
GET
とパス/octocat
を使用する "Get Octocat" エンドポイントに要求を行います。 このエンドポイントの完全なリファレンス ドキュメントについては、「メタデータ用 REST API エンドポイント」を参照してください。Shell gh api /octocat --method GET
gh api /octocat --method GET
GitHub Actions での GitHub CLI の使用
GitHub Actions ワークフローでは、GitHub CLI を使用することもできます。 詳しくは、「ワークフローで GitHub CLI を使用する」をご覧ください。
アクセス トークンを使用した認証
gh auth login
コマンドを使用するのでなく、アクセス トークンを GH_TOKEN
という環境変数として渡します。 GitHub では、トークンを作成するのでなく組み込みの GITHUB_TOKEN
を使用することをお勧めしています。 これができない場合は、ご利用のトークンをシークレットとして格納し、次の例で GITHUB_TOKEN
を実際のシークレットの名前に置き換えます。 GITHUB_TOKEN
の詳細については、「自動トークン認証」を参照してください。 シークレットの詳細については、「GitHub Actions でのシークレットの使用」を参照してください。
次のワークフロー例では、[List repository issues] エンドポイントを使用し、octocat/Spoon-Knife
リポジトリ内の issue の一覧を要求します。
on: workflow_dispatch: jobs: use_api: runs-on: ubuntu-latest permissions: issues: read steps: - env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh api https://api.github.com/repos/octocat/Spoon-Knife/issues
on:
workflow_dispatch:
jobs:
use_api:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api https://api.github.com/repos/octocat/Spoon-Knife/issues
GitHub App による認証
GitHub App を使用して認証する場合は、ワークフロー内にインストール アクセス トークンを作成します。
-
GitHub App の ID を構成変数として保存します。 以下の例で、
APP_ID
を構成変数の名前に置き換えます。 アプリ ID は、アプリの設定ページで、あるいは API を通じて確認できます。 詳しくは、「GitHub Apps用 REST API エンドポイント」をご覧ください。 構成オプションの詳細については、「変数に情報を格納する」を参照してください。 -
アプリケーションの秘密鍵を生成してください。 作成されたファイルの内容をシークレットとして保存します。 (
-----BEGIN RSA PRIVATE KEY-----
および-----END RSA PRIVATE KEY-----
を含め、ファイルの内容全体を保存します)。以下の例では、APP_PEM
をシークレットの名前に置き換えます。 詳しくは、「GitHub Apps の秘密キーの管理」をご覧ください。 シークレットの詳細については、「GitHub Actions でのシークレットの使用」を参照してください。 -
トークンを生成するステップを追加し、
GITHUB_TOKEN
ではなくそのトークンを使用します。 このトークンは 60 分後に期限切れになるので注意してください。 次の例では、HOSTNAME
を GitHub.com の名前に置き換えます。REPO-OWNER
をリポジトリを所有するアカウントの名前に置き換えます。REPO-NAME
をリポジトリ所有者の名前に置き換えます。YAML on: workflow_dispatch: jobs: track_pr: runs-on: ubuntu-latest steps: - name: Generate token id: generate-token uses: actions/create-github-app-token@v1 with: app-id: ${{ vars.APP_ID }} private-key: ${{ secrets.APP_PEM }} - name: Use API env: GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | gh api https://api.github.com/repos/octocat/Spoon-Knife/issues
on: workflow_dispatch: jobs: track_pr: runs-on: ubuntu-latest steps: - name: Generate token id: generate-token uses: actions/create-github-app-token@v1 with: app-id: ${{ vars.APP_ID }} private-key: ${{ secrets.APP_PEM }} - name: Use API env: GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | gh api https://api.github.com/repos/octocat/Spoon-Knife/issues
次のステップ
詳しいガイドについては、「REST API の概要」を参照してください。