GitHub EnterpriseとBitriseのインテグレーション
Bitriseは、セルフホストのGitHub Enterprise Server(GHES)インスタンス向けの統合機能を提供します。この統合の主なメリットは、セルフホストのGHESユーザーがbitrise.ymlファイルをリポジトリに保存できることです。ファイルをリポジトリに保存することで、設定ファイルの完全なバージョン管理と保守が可能になります。
GitHub Enterprise ServerインテグレーションについてClick to copy link
このガイドはGitHub Enterprise Serverユーザー向けです。Bitrise GitHubアプリを使用してBitriseに接続したいGitHub Cloudユーザー向けには、別のガイドをご用意しています:GitHubアプリの統合。
この機能を使用するには、以下が必要です:
-
統合を設定するためのBitriseWorkspaceオーナー
-
GitHubアプリをGHES上で作成し、選択したリポジトリにインストールするための十分な権限を持つGHES組織のオーナー
-
GHES instanceへのアクセス。Bitrise websiteがGHES上のリポジトリにアクセスできない場合、そこに保存された
bitrise.ymlファイルを使用できません。セキュリティ上の理由でIPアドレスのアクセス制御リストを使用している場合は、Bitrise websiteを許可リストに追加する必要があります。Bitriseのバックグラウンドワーカーを許可リストに追加するapp.bitrise.ioやBitrise build machinesなどを支えるBitriseのバックグラウンドワーカーは、異なるIPアドレス範囲を使用している点にご注意ください。この機能にはbuild machinesの許可リスト登録だけでは不十分です。
許可リストへの追加が難しい場合は、Bitriseまでご連絡ください。他の選択肢についてご相談いただけます。
統合を設定するには、以下の手順が必要です:
-
アプリを作成すると、GitHub Enterprise ServerユーザーはBitriseのChecks機能も利用できるようになります。アプリを作成したら、BitriseでChecksを有効にするだけで済みます。
GitHub Enterprise Server用のGitHub Appの作成Click to copy link
-
BitriseにLog inし、左側のナビゲーションバーにカーソルを合わせます。
-
Workspaceメニューで、正しいworkspaceが選択されていることを確認します。
-
Settingsを選択します。
-
Workspace settingsページの左側で、Integrationsを選択します。
-
Git providerタブを選択し、GitHub Enterprise Serverセクションまでスクロールします。
-
ここに表示されているwebhook URLをコピーします。
-
別のブラウザタブでGHESを開き、組織のSettingsページに移動します。
対象のリポジトリここで指定する組織は、プロジェクトが使用するリポジトリを所有する組織にしてください。GitHubアプリは、後から他の組織でも再利用できます。
-
SettingsページでDeveloper設定セクションを見つけ、GitHub Appsを選択します。
-
New GitHub Appをクリックし、アプリ作成フォームに入力します。必要な情報はすべて次の表に記載されており、表に記載のない項目は空欄のままで構いません:
webhook secretを設定するこの手順ではwebhook secretの設定が必須です。このシークレットは、後でBitrise WorkspaceをGHES instanceに接続する際に必要になります。
GitHub App name Bitrise Homepage URL https://app.bitrise.io Webhook URL Workspace settingsページ(Bitrise上)からコピーしたものです。形式は次のとおりです: https://app.bitrise.io/organization/<org_slug>/github_webhooksWebhook secret GitHubではこの項目は任意とされていますが、webhookの完全性を確保するため、シークレットの設定を必須としています。webhook secretはエントロピーの高いランダムな文字列にしてください。後でBitriseと共有する必要があるため、シークレットを控えておいてください。 Permissions 以下の権限を設定します: - リポジトリの権限 - Checks: 読み取り/書き込み - Commit statuses: 読み取り/書き込み - Contents: 読み取りのみ - Metadata: 読み取りのみ - Pull requests: 読み取りのみ :::note[今後追加される機能] Bitriseは、これらのイベントと権限を使用して、GitHub Checksやselective buildsなどをサポートする、完全に統合された体験を今後提供予定です。これらの機能は近日追加されます。 ::: Subscribeするイベント 以下のイベントを有効にします: - Check run - Check suite - Pull request - Push このGitHubアプリをインストールできる範囲 このGHES組織以外のリポジトリでも統合を有効にしたい場合は、Any accountを選択します。 -
完了したら、Create GitHub Appをクリックします。
GitHubアプリを作 成したら、次にBitrise上でGitHub Enterprise Server統合を設定します。
GitHubアプリを使用したGHESインスタンスへの接続Click to copy link
新しいGitHubアプリを作成したら、そのアプリ経由でBitrise WorkspaceをGHES instanceに接続する必要があります:
GitHubアプリ作成時の手順で取得したwebhook secretを手元に用意してください。
-
GitHubアプリのページを開きます。GitHub組織のSettingsページでGitHub appsを選択し、アプリ名の横にあるEditをクリックします。
-
左側でGeneralを選択します。
-
App IDとClient IDを控えておきます。後で必要になります。
-
新しいクライアントシークレットを生成します。Client secretsセクションを見つけてGenerate a new client secretをクリックします。シークレットをコピーしてください。後で必要になります。
-
Private keysセクションを見つけてGenerate a private keyをクリックします。これにより
.pemファイルがダウンロードされます。このファイルは、後の手順でBitriseにアップロードする必要があります。 -
BitriseでWorkspace settingsページを開き、GitHub Enterprise ServerセクションでConnect to Instanceをクリックします。
-
接続フォームに入力します:
- Instance base URLには、サーバーのルートURLを指定します。
- 先ほど控えたApp IDとClient IDを追加します。
- webhook secretと、先ほど生成したクライアントシークレットを追加します。
.pemファイルをアップロードします。
-
完了したら、Save credentialsをクリックします。
即時フ ィードバック接続結果はすぐにフィードバックされ、失敗した場合は対処可能なエラーメッセージが表示されます。
-
Go backしてGHESに戻り、GitHubアプリのページを再度開きます。
-
左側でInstall appを選択します。
-
アプリをインストールする組織を選択します。
-
Repository accessで、Bitriseがアクセスできるようにしたいリポジトリを選択するか、all repositoriesを選択します。
-
完了したら、Saveをクリックします。
Bitriseはインストールに関するwebhookイベントを受け取り、該当するBitrise プロジェクトが新しく設定されたGHES統合を自動的に使用できるようになりますapp settingsページで確認できます。完了すると、bitrise.ymlファイルをGHESリポジトリに保存できるようになります:bitrise.ymlファイルをリポジトリに保存する。
統合をテストするには、ダミーのプロジェクトを作成し、そのbitrise.ymlファイルをGHESリポジトリに保存することをお勧めします。テスト用にこのデモプロジェクトを利用できます。
GHESインテグレーションのトラブルシューティングClick to copy link
GHES統合が機能しない場合は、以下を試してください:
- BitriseのIntegrationsページで統合のステータスを確認する。
- GitHub上でwebhook configurationとwebhookの配信状況を確認する。
Webhookの設定を確認するClick to copy link
-
GHES組織のページを開き、上部のナビゲーションバーでSettingsを選択します。
-
左側でDeveloper settingsを選択し、続けてGitHub Appsを選択します。
-
GitHubアプリを見つけ、名前の横にあるEditをクリックします。
-
左側でAdvancedを選択します。
-
Recent deliveriesセクションで、webhookの配信状況を確認します。
webhookが正しく設定されていれば、配信の横に緑のチェックマークと200 OKレスポンスが表示されます。
-
webhookの配信に失敗した場合:
- BitriseとGitHubの両方でwebhook URLを確認します。
- 必要に応じて、GitHub上でwebhook secretを再作成し、新しいシークレットをBitrise上のGHES統合に貼り付けます。
Bitriseでの統合を確認するClick to copy link
GHES instanceに接続されているプロジェクトであれば、どれでも統合をテストできます。
-
プロジェクトに対するAdminのロールを持つユーザー、またはEdit workflow権限を持つカスタムロールを持つユーザーで、Bitrise上のプロジェクトを開きます。
-
プロジェクトのメインページで、Project settingsボタンをクリックします。
-
Settingsページの左側で、Integrationsを選択します。
-
Git providerタブで、Git integration statusセクションを見つけます。
-
GitHub Enterprise Server Instanceの横にあるTest connectionボタンをクリックして、接続をテストします。
GitHub Enterprise Serverの追加のリンク済みリポジトリClick to copy link
GitHub Enterprise Serverを使用するプロジェクトには、追加のリポジトリをリンクできます。リポジトリをリンクするとは、デフォルトのリポジトリに加えて、複数のリポジトリへのアクセス権をプロジェクトに与えることを意味します。
設定の詳細については、こちらをご覧ください:追加のリンクリポジトリ。
Enterprise Serverユーザー向けのGitHub Appの権限の拡張Click to copy link
Bitrise GitHubアプリは、アプリ経由でトリガーされるビルドごとに、短期間の一時トークンを生成します。このトークンにはデフォルトでcontent:readという1つの権限しかありません。つまり、ビルドはGitHubリポジトリにアクセスできますが、それ以外の操作はできません。
GitHubアプリのすべての権限を拡張することで、ビルドトークンに追加の権限を付与できます。詳細については、GitHubアプリの権限をビルドに拡張するをご覧ください。