GitHub App としての認証について
アプリケーションとして REST API 要求を行うには、GitHub App として認証を行う必要があります。 たとえば、API を使って、組織のリソースにアクセスするためのインストール アクセス トークンを生成したり、アプリの組織全体のインストールを一覧表示したり、アプリのインストールを中断したりする場合は、アプリとして認証を行う必要があります。
ユーザーがアプリとして認証を行う必要がある REST API エンドポイントの場合、そのエンドポイントのドキュメントで、JWT を使ってエンドポイントにアクセスする必要があることが示されています。 GraphQL API では、ユーザーがアプリとして認証を行う必要があるクエリや変更はサポートされていません。
JSON Web Token (JWT) を使用して GitHub App としての認証を行う
-
アプリの JSON Web Token (JWT) を生成します。 詳しくは、「GitHub アプリの JSON Web トークン (JWT) の生成」を参照してください。
-
要求の
Authorization
ヘッダーに JWT を含めます。 次の例では、YOUR_JWT
を自分の JWT に置き換えてください。curl --request GET \ --url "http(s)://HOSTNAME/api/v3/app/installations" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer YOUR_JWT"
Octokit.js SDK を使用して GitHub App としての認証を行う
GitHub の Octokit.js SDK を使って、GitHub App としての認証を行うことができます。 SDK を使って認証を行う利点の 1 つは、JSON Web Token (JWT) を自分で生成する必要がないことです。 さらに、JWT の期限が切れると、SDK によって再生成されます。
注: Octokit.js ライブラリを使うには、octokit
をインストールしてインポートする必要があります。 次の例では、ES6 に従って import ステートメントを使っています。 インストールとインポートのさまざまな方法について詳しくは、octokit/octokit リポジトリの「使用法」セクションをご覧ください。
-
お使いのアプリの設定ページで、アプリの ID を取得します。
- ユーザー所有アプリの場合、設定ページは
https://github.com/settings/apps/APP-SLUG
です。 - 組織所有アプリの場合、設定ページは
https://github.com/organizations/ORGANIZATION/settings/apps/APP-SLUG
です。
APP-SLUG
をアプリのスラッグ化された名前に、ORGANIZATION
を Organization のスラッグ化された名前に置き換えます。 たとえば、https://github.com/organizations/octo-org/settings/apps/octo-app
のようにします。 - ユーザー所有アプリの場合、設定ページは
-
秘密キーを作成します。 詳しくは、「GitHub Apps の秘密キーの管理」を参照してください。
-
octokit
からApp
をインポートします。JavaScript import { App } from "octokit";
-
App
の新しいインスタンスを作成します。 次の例では、APP_ID
をアプリの ID への参照に置き換えます。PRIVATE_KEY
をアプリの秘密キーの値への参照に置き換えます。JavaScript const app = new App({ appId: APP_ID, privateKey: PRIVATE_KEY, });
-
JWT が必要な REST API エンドポイントに対して要求を行うには、
octokit
メソッドを使います。 次に例を示します。JavaScript await app.octokit.request("/app")