はじめに
この記事では、GitHub CLI、curl
、または JavaScript を使用して、GitHub REST API の使用をすばやく開始する方法について説明します。 さらに詳しいガイドについては、「REST API を使用した作業の開始」をご覧ください。
コマンド ラインでの GitHub CLI の使用
GitHub CLI は、コマンド ラインから GitHub REST API を使用する方法として最も簡単です。
-
macOS、Windows、または Linux に GitHub CLI をインストールします。 詳細については、GitHub CLI リポジトリ内でのインストールを参照してください。
-
ターミナルからこのコマンドを実行して、GitHub で認証します。
HOSTNAME
は お使いの GitHub Enterprise Server インスタンス の名前に置き換えます。 たとえば、octo-inc.ghe.com
です。gh auth login --hostname HOSTNAME
-
画面の指示に従います。
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 でのシークレットの使用」をご覧ください。
次のワークフロー例では、"リポジトリの issue の一覧表示" エンドポイントを使用し、指定したリポジトリ内の issue の一覧を要求します。HOSTNAME
は お使いの GitHub Enterprise Server インスタンス の名前に置き換えます。 REPO-OWNER
をリポジトリを所有するアカウントの名前に置き換えます。 REPO-NAME
をリポジトリ所有者の名前に置き換えます。
on: workflow_dispatch: jobs: use_api: runs-on: ubuntu-latest permissions: issues: read steps: - env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh api http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues
on:
workflow_dispatch:
jobs:
use_api:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/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 分後に期限切れになるので注意してください。 例:YAML # このワークフローはGitHubによって認定されていないアクションを使用します。 # それらはサードパーティによって提供され、 # 別個の利用規約、プライバシーポリシー、 # ドキュメントを参照してください。 # GitHub では、コミット SHA にアクションをピン留めすることが推奨されます。 # 新しいバージョンを取得するには、SHA を更新する必要があります。 # タグまたはブランチを参照することもできますが、アクションは警告なしに変更される可能性があります。 on: workflow_dispatch: jobs: track_pr: runs-on: ubuntu-latest steps: - name: Generate token id: generate-token uses: tibdex/github-app-token@32691ba7c9e7063bd457bd8f2a5703138591fa58 # v1.9.0 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 http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues
# このワークフローはGitHubによって認定されていないアクションを使用します。 # それらはサードパーティによって提供され、 # 別個の利用規約、プライバシーポリシー、 # ドキュメントを参照してください。 # GitHub では、コミット SHA にアクションをピン留めすることが推奨されます。 # 新しいバージョンを取得するには、SHA を更新する必要があります。 # タグまたはブランチを参照することもできますが、アクションは警告なしに変更される可能性があります。 on: workflow_dispatch: jobs: track_pr: runs-on: ubuntu-latest steps: - name: Generate token id: generate-token uses: tibdex/github-app-token@32691ba7c9e7063bd457bd8f2a5703138591fa58 # v1.9.0 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 http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues
次の手順
詳しいガイドについては、「REST API を使用した作業の開始」をご覧ください。