GitHub OAuthを追加すると、GitHubログインが有効になり、ダッシュボードユーザーは連携したGitHubアカウントのリポジトリを選択してサービスをデプロイできるようになります。


GitHub Appsの作成

GitHubにログインした後、Settings > Developer Settings > GitHub AppsページでNew GitHub Appをクリックすると、GitHub App作成プロセスが開始されます。

基本情報の入力

GitHub Appを作成するための情報を以下のように入力してください。

  • GitHub App name : GitHub Appの名前
  • Homepage URL
    • GitHub OAuthを適用するホームページURL
    • IngressでデプロイされたURLであるhttps://app.[ドメイン]
  • Callback URL(Add Callbak URLで項目追加)
    • https://app.[ドメイン]/api/oauth/github/callback
    • https://app.[ドメイン]/api/oauth/github/connect/callback

この画面で入力したGitHub App nameはエールにGitHub OAuth登録時に使用されます。

https://app.[ドメイン]/api/はエールのAPIエンドポイントアドレスです。

Webhookの無効化

Webhook項目のActiveチェックを解除して無効化してください。

権限の付与とAPPの作成

Permission項目で以下の権限を付与し、Create GitHub AppでAPPを作成します。

GitHub App情報の確認

エールにGitHub OAuthを追加するにはGitHub App Nameと4つのID・Keyが必要です。

  • App ID
  • Client ID
  • Cleint Secret
  • Private Key

App ID、Client IDの確認

権限付与後にAppが作成されると、App IDとClient IDを確認できます。

Client Secretの確認

同じ画面でGenerate a new client secretをクリックしてClient Secretを確認します。

Private Keyの確認

画面下部のGenerate a private keyをクリックしてpemファイルをダウンロードします。

GitHub Appの公開設定

作成されたGitHub Appの公開設定のデフォルト値は非公開であり、Appを作成したアカウントが所属する組織のユーザーのみがGitHub Appを使用できるようになります。GitHub組織に関係なくGitHub Appを使用できるようにするには、以下をご参照ください。

エール運用システムへの登録

運用システムにアクセスし、設定 > 認証手段 > GitHubドロップダウンをクリックした後、前段階で確認した値を各フィールドに入力して適用をクリックしてください。

  • ログイン使用 : OAuthログインの使用可否
  • APP_NAME : GitHub App名
  • APP_ID : App ID
  • CLIENT_ID : Client ID
  • CLIENT_SECRET : Client secret
  • APP_PRIVATE_KEY: Private key pemファイルの値

適用完了後、ダッシュボードにアクセスするとGitHubアカウントでログインボタンが表示されます。

GitHubアカウントでログイン

ユーザーの最初のGitHubログイン時、Authorize [GitHub App名]をクリックすると登録申請が進められ、管理者承認に関するメッセージが表示されます。

登録申請したユーザーの承認(有効化)については、ユーザー管理ページをご参照ください。

ブラウザにログインされているGitHubアカウントがGitHub Appを作成したアカウントと同じ場合、上記のようなウィンドウは表示されません。 新しいブラウザセッションで、GitHub Appを作成したアカウントとは異なるGitHubアカウントで認証を進めてください。

GitHub Appを非公開に設定した場合、ログインしようとする他のアカウントがGitHub Appを作成したアカウントの組織に所属している必要があります。

管理者承認後にGitHubログインを試みると、登録完了ページが表示されます。 スペースと名前を適切に作成し、完了をクリックしてください。

ダッシュボードアクセスと共に指定した名前のスペースが作成され、運用システムで予め定めたデフォルト値のリソースが付与されます。

ユーザー登録および管理に関する内容はユーザー管理ページをご参照ください。