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 | プロバイダー | 認証方式 |
|---|---|---|
github | GitHub | OAuth2 |
OpenConnector の GitHub OAuth provider は、read:user、user:email、repo、workflow、delete_repo などの scopes を要求できます。実行予定の actions に必要な scopes だけを許可してください。
前提条件
- 実行中の OpenConnector runtime。
- OAuth apps を作成できる GitHub account または organization。
- users が browser で開く OpenConnector origin(
http://localhost:3000、https://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 で次の操作を行います。
- Settings を開きます。
- Developer settings を開きます。
- OAuth Apps を開きます。
- New OAuth App を選択します。
- app name と homepage URL を入力します。
- Authorization callback URL に OpenConnector callback URL を正確に設定します。
- 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 のフィールド |
|---|---|
| クライアント ID | clientId |
| クライアントシークレット | clientSecret |
手順 4:GitHub client を OpenConnector に保存する
OpenConnector web console を使用します。
http://localhost:3000などの OpenConnector web console を開きます。- Providers を開いて GitHub を選択します。
- Configure OAuth Client または Edit OAuth Client を選択します。
- GitHub client ID と client secret を貼り付けます。
- 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 mismatch | GitHub の 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 は避けてください。 |
Wanta