DOCS
インテグレーションガイド / Bitbucket
本記事は米国PagerDuty社のサイトで公開されているインテグレーションガイドをそのまま日本語に翻訳したものです。日本語環境での動作を保証するわけではありません。原文はこちらを参照してください。
本記事は米国PagerDuty社のサイトで公開されているものを日本語訳したものです。原文はこちらです。
Bitbucketは、プロチームのためのGitソリューションです。 Bitbucketのコア機能には、プルリクエスト、分岐権限、インラインコメントなどがあります。 PagerDutyのBitbucketとの統合により、Bitbucketパイプライン内の障害についてオンコールしているエンジニアに通知することができます。
注:この統合はBitbucket cloud向けです。
PagerDutyでの設定
PagerDutyアカウント内で Custom Event Transformer を作成する必要があります。 これにより、PagerDutyはあなたのBitbucketアカウントからwebhookを処理できます。 Bitbucketの各リポジトリは、異なるPagerDutyサービスに失敗情報を送信できます。 統合するBitbucketリポジトリとPagerDutyサービスを決定します。
- ConfigurationからServices に移動します。
- 統合するPagerDutyサービスを選択してから、Integrationsタブに移動します
- New Integration を押します。 Add an Integration 画面が表示されます
- インテグレーションに “Bitbucket”のようなタイトルを付けてください ** Integration Type**ドロップダウンから Custom Event Transformer を選択し、Add Integration を押します。
- Integrations タブに戻り、新しく追加された統合が表示されます。 新しく追加した統合の歯車アイコンをクリックし、Edit を選択します。
- Edit Integration 画面では、Bitbucketから来るweebhookを処理するためのJavascriptを入力することができます。下記のEvent Transformer JavaScriptスニペットを貼り付けます。
var body = webhook.body || JSON.parse(webhook.rawBody);
var emit_event = false;
var event_type;
if(body.commit_status.state == "INPROGRESS") {
event_type = PD.Trigger;
emit_event = false;
}
if(body.commit_status.state == "FAILED") {
event_type = PD.Trigger;
emit_event = true;
}
if(body.commit_status.state == "SUCCESSFUL") {
event_type = PD.Resolve;
emit_event = true;
}
delete body.commit_status.repository_links;
delete body.commit_status.links;
delete body.commit_status.commit.author.user;
var normalized_event = {
event_type: event_type,
incident_key: body.commit_status.commit.hash,
description: "Failed " + body.commit_status.type + ": " + body.commit_status.name + " | " + body.commit_status.repository.full_name,
details: body.commit_status,
client: "View in Bitbucket",
client_url: body.commit_status.url
};
if (emit_event) {
PD.emitGenericEvents([normalized_event]);
}
- Save Changes ボタンを押して設定を保存します。 Bitbucket統合の設定を示す画面が表示されます。
- この画面で、Integration URL 値を選んでコピーします。 これはBitbucketアカウントにwebhookを設定する場合に必要になります。
Bitbucketでの設定
残りの設定は、Bitbucketのユーザーインターフェースを通じて、Bitbucket側で設定します。 失敗した時の情報をPagerDutyに送信するwebhookを追加します。
- PagerDutyと統合するリポジトリを開きます。 左側のナビゲーションから Settings を開きます。
- サブセクション ”Workflow” の Webhooks をクリックし、続いて Add Webhook をクリックします。
- タイトルを入力し、上の手順でコピーしたPagerDuty URLを貼り付けます。
- Triggers ラジオ・オプションを Choose from a full list of triggers に変更します。
- Repository で、Build status updated を選択します。
- 設定をSaveします。
統合のセットアップが正常に完了しました。 あなたのパイプラインに障害が発生した場合、PagerDutyの事件は、オンコールの対応者に通知します。 障害が回復すると、SUCCESSFULメッセージがPagerDutyに送信され、PagerDutyインシデントが自動的に解決されます。