ドキュメントを閲覧

OpenConnector 用の GitHub OAuth app を作成する

OpenConnector で user-authorized GitHub connection が必要な場合は、GitHub OAuth app を使用します。OAuth app は browser authorization flow を提供します。personal access token は administrator-managed token configuration に使用できます。

OpenConnector サービス

サービス IDプロバイダー認証方式
githubGitHubOAuth2

OpenConnector の GitHub OAuth provider は、read:useruser:emailrepoworkflowdelete_repo などの scopes を要求できます。実行予定の actions に必要な scopes だけを許可してください。

前提条件

  • 実行中の OpenConnector runtime。
  • OAuth apps を作成できる GitHub account または organization。
  • users が browser で開く OpenConnector origin(http://localhost:3000https://connect.example.com など)。

手順 1:OpenConnector callback URL を設定する

OpenConnector origin に /oauth/callback を追加して callback URL を作成します。local test では http://localhost:3000/oauth/callback を使用します。public deployment では OOMOL_CONNECT_ORIGIN を設定して OpenConnector を再起動し、https://connect.example.com/oauth/callback などの public callback URL を使用します。

手順 2:GitHub OAuth app を登録する

GitHub で次の操作を行います。

  1. Settings を開きます。
  2. Developer settings を開きます。
  3. OAuth Apps を開きます。
  4. New OAuth App を選択します。
  5. app name と homepage URL を入力します。
  6. Authorization callback URL に OpenConnector callback URL を正確に設定します。
  7. app を登録します。

GitHub の公式ガイドは Creating an OAuth app です。GitHub OAuth app に設定できる authorization callback URL は 1 つだけです。local、staging、production の callback URL が異なる場合は、環境ごとに app を作成してください。

手順 3:client credentials をコピーする

GitHub OAuth app page から次の値をコピーします。

GitHub の値OpenConnector のフィールド
クライアント IDclientId
クライアントシークレットclientSecret

手順 4:GitHub client を OpenConnector に保存する

OpenConnector web console を使用します。

  1. http://localhost:3000 などの OpenConnector web console を開きます。
  2. Providers を開いて GitHub を選択します。
  3. Configure OAuth Client または Edit OAuth Client を選択します。
  4. GitHub client ID と client secret を貼り付けます。
  5. Save OAuth Client を選択します。

手順 5:接続してテストする

OAuth client を保存した後、GitHub provider page で Connect を選択します。GitHub OAuth app を承認し、OpenConnector に戻って、provider page に account が connected と表示されることを確認します。

console action list から github.get_current_user を low-risk test action として使用します。

トラブルシューティング

症状確認事項
Redirect URI mismatchGitHub の authorization callback URL が <openconnector-origin>/oauth/callback と完全に一致している必要があります。
誤った account が app を認証したauthorization を開始する前に GitHub からサインアウトするか、新しい browser profile を使用します。
Repo actions が失敗するconnection に repo scope がないか、user が対象 repository にアクセスできない可能性があります。
Workflow actions が失敗するconnection に workflow scope がない可能性があります。requested scopes を調整して再接続します。
Delete actions が失敗するdestructive repository actions が明確に必要な場合を除き、delete_repo は避けてください。