Bitbucketインテグレーションガイド| PagerDuty

Project Description

本記事は米国PagerDuty社のサイトで公開されているインテグレーションガイドをそのまま日本語に翻訳したものです。日本語環境での動作を保証するわけではありません。原文はこちらを参照してください。


本記事は米国PagerDuty社のサイトで公開されているものを日本語訳したものです。原文はこちらです。

Bitbucketは、プロチームのためのGitソリューションです。 Bitbucketのコア機能には、プルリクエスト、分岐権限、インラインコメントなどがあります。 PagerDutyのBitbucketとの統合により、Bitbucketパイプライン内の障害についてオンコールしているエンジニアに通知することができます。

注:この統合はBitbucket cloud向けです。

 

PagerDutyでの設定

PagerDutyアカウント内で Custom Event Transformer を作成する必要があります。 これにより、PagerDutyはあなたのBitbucketアカウントからwebhookを処理できます。 Bitbucketの各リポジトリは、異なるPagerDutyサービスに失敗情報を送信できます。 統合するBitbucketリポジトリとPagerDutyサービスを決定します。

      1. ConfigurationからServices に移動します。
      2. 統合するPagerDutyサービスを選択してから、Integrationsタブに移動します
      3. New Integration を押します。 Add an Integration 画面が表示されます。
      4. インテグレーションに “Bitbucket”のようなタイトルを付けてください Integration Type ドロップダウンから Custom Event Transformer を選択し、Add Integration を押します。
      5. Integrations タブに戻り、新しく追加された統合が表示されます。 新しく追加した統合の歯車アイコンをクリックし、Edit を選択します。
      6. Edit Integration 画面では、Bitbucketから来るweebhookを処理するためのJavascriptを入力することができます。
        下記のEvent Transformer JavaScriptスニペットを貼り付けます。

        var webhook = PD.inputRequest;
        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]);
        }
      7. Save Changes ボタンを押して設定を保存します。 Bitbucket統合の設定を示す画面が表示されます。
      8. この画面で、Integration URL 値を選んでコピーします。 これはBitbucketアカウントにwebhookを設定する場合に必要になります。

Bitbucketでの設定

残りの設定は、Bitbucketのユーザーインターフェースを通じて、Bitbucket側で設定します。 失敗した時の情報をPagerDutyに送信するwebhookを追加します。

  1. PagerDutyと統合するリポジトリを開きます。 左側のナビゲーションからSettings を開きます。
  2. サブセクション ”Workflow” の Webhooks をクリックし、続いて Add Webhook をクリックします。
  3. タイトルを入力し、上の手順でコピーしたPagerDuty URLを貼り付けます。
  4. Triggers ラジオ・オプションを Choose from a full list of triggers に変更します。
  5. Repository で、Build status updated を選択します。
  6. 設定をSaveします。

統合のセットアップが正常に完了しました。 あなたのパイプラインに障害が発生した場合、PagerDutyの事件は、オンコールの対応者に通知します。 障害が回復すると、SUCCESSFULメッセージがPagerDutyに送信され、PagerDutyインシデントが自動的に解決されます。

Project Details