GitHub App としての認証について
アプリケーションとして REST API 要求を行うには、GitHub App として認証を行う必要があります。 たとえば、API を使って、organization のリソースにアクセスするためのインストール アクセス トークンを生成したり、複数のアカウント全体についてアプリのインストールを一覧表示したり、アプリのインストールを一時停止したりする場合は、アプリとして認証する必要があります。
ユーザーがアプリとして認証を行う必要がある REST API エンドポイントの場合、そのエンドポイントのドキュメントで、JWT を使ってエンドポイントにアクセスする必要があることが示されています。 GraphQL API では、ユーザーが JWT を使って認証を行う必要があるクエリやミューテーションはサポートされていません。
JSON Web Token (JWT) を使用して GitHub App としての認証を行う
-
アプリの JSON Web Token (JWT) を生成します。 詳しくは、「AUTOTITLE」をご覧ください。
-
要求の ヘッダーに JWT を含めます。 次の例では、 を自分の JWT に置き換えてください。
curl --request GET \ --url "http(s)://HOSTNAME/api/v3/app/installations" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer YOUR_JWT" \ --header "X-GitHub-Api-Version: 2022-11-28"
Octokit.js SDK を使用して GitHub App としての認証を行う
GitHub の Octokit.js SDK を使って、GitHub App としての認証を行うことができます。 SDK を使って認証を行う利点の 1 つは、JSON Web Token (JWT) を自分で生成する必要がないことです。 さらに、JWT の期限が切れると、SDK によって再生成されます。
メモ
Octokit.js ライブラリを使うには、 をインストールしてインポートする必要があります。 次の例では、ES6 に従って import ステートメントを使っています。 インストールとインポートのさまざまな方法について詳しくは、octokit/octokit リポジトリの「使用法」セクションをご覧ください。
- アプリの ID を取得します。 アプリ ID は、お使いの GitHub App の [設定] ページで確認できます。 GitHub App の [Settings] ページに移動する方法の詳細については、「AUTOTITLE」を参照してください。
- 秘密キーを作成します。 詳しくは、「AUTOTITLE」をご覧ください。
- から をインポートします。
import { App } from "octokit";
import { App } from "octokit";
- の新しいインスタンスを作成します。 次の例では、 をアプリの ID への参照に置き換えます。 をアプリの秘密キーの値への参照に置き換えます。
const app = new App({
appId: APP_ID,
privateKey: PRIVATE_KEY,
});
const app = new App({
appId: APP_ID,
privateKey: PRIVATE_KEY,
});
-
JWT が必要な REST API エンドポイントに対して要求を行うには、 メソッドを使います。 次に例を示します。
JavaScript await app.octokit.request("/app")await app.octokit.request("/app")