Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

GitHub Appとしての認証

インストール アクセス トークンを生成したり、アプリを管理したりするために、GitHub App として認証できます。

GitHub App としての認証について

アプリケーションとして REST API 要求を行うには、GitHub App として認証を行う必要があります。 たとえば、API を使って、組織のリソースにアクセスするためのインストール アクセス トークンを生成したり、アプリの組織全体のインストールを一覧表示したり、アプリのインストールを中断したりする場合は、アプリとして認証を行う必要があります。

ユーザーがアプリとして認証を行う必要がある REST API エンドポイントの場合、そのエンドポイントのドキュメントで、JWT を使ってエンドポイントにアクセスする必要があることが示されています。 GraphQL API では、ユーザーがアプリとして認証を行う必要があるクエリや変更はサポートされていません。

JSON Web Token (JWT) を使用して GitHub App としての認証を行う

  1. アプリの JSON Web Token (JWT) を生成します。 詳しくは、「GitHub アプリの JSON Web トークン (JWT) の生成」を参照してください。

  2. 要求の 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 リポジトリの「使用法」セクションをご覧ください。

  1. お使いのアプリの設定ページで、アプリの 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 のようにします。

  2. 秘密キーを作成します。 詳しくは、「GitHub Apps の秘密キーの管理」を参照してください。

  3. octokit から App をインポートします。

    JavaScript
    import { App } from "octokit";
  4. App の新しいインスタンスを作成します。 次の例では、APP_ID をアプリの ID への参照に置き換えます。 PRIVATE_KEY をアプリの秘密キーの値への参照に置き換えます。

    JavaScript
     const app = new App({
      appId: APP_ID,
      privateKey: PRIVATE_KEY,
    });
  5. JWT が必要な REST API エンドポイントに対して要求を行うには、octokit メソッドを使います。 次に例を示します。

    JavaScript
    await app.octokit.request("/app")