コンテンツにスキップ

GitHub Issues 通知

インシデント発生時に GitHub Issue を自動作成し、復旧時にコメント追加 + クローズできます。

事前準備: Personal Access Token の取得

Section titled “事前準備: Personal Access Token の取得”
  1. GitHub にログイン

    GitHub にログインします。

  2. Fine-grained Personal Access Token を作成

    Settings > Developer settings > Personal access tokens > Fine-grained tokens から「Generate new token」をクリックします。

  3. 権限を設定

    • Repository access: Issue を作成したいリポジトリを選択
    • Permissions > Repository permissions > Issues: Read and write

    Token を作成するユーザー自身にも対象リポジトリへのアクセス権が必要です。Organization のポリシーで承認が必要な場合は、利用可能になるまで承認を完了します。

  4. トークンをコピー

    github_pat_ で始まるトークンをコピーします。

  1. ダッシュボードで「設定」>「連携」を開き、GitHub の「設定」を選択
  2. 名前に識別しやすい名前を入力
  3. 以下を入力:
    • Token: Personal Access Token
    • Owner: リポジトリオーナー (ユーザー名 or 組織名)
    • Repo: リポジトリ名
    • Labels (任意): Issue に付与するラベル (例: incident, manako)
  4. 「追加」を選択
Manako イベントGitHub アクション
インシデント発生Issue 作成 (タイトル、詳細情報、ラベル)
インシデント復旧Issue にコメント追加 + クローズ
メンテナンス開始・終了何もしない

Issue ↔ インシデントのマッピング

Section titled “Issue ↔ インシデントのマッピング”

Manako はインシデントごとに作成した Issue 番号を記憶し、復旧時に自動でクローズします。

作成した Issue 番号はチャンネル単位で 90 日間保持されます。復旧時は解決コメントの追加を試みた後、Issue を completed としてクローズします。コメント追加だけに失敗してもクローズ処理は継続します。

インシデント発生時:

## Incident Details
- **Monitor**: API Health
- **Monitor ID**: 01JABC...
- **URL**: https://example.com/health
- **Incident ID**: 01JXYZ...
- **Detected at**: 2026-03-26T12:00:00Z
---
_Auto-created by Manako monitoring_
  • Test が失敗する: Test は Issue を作らず、Token で Owner/Repository を取得できるかだけを確認します。Token の対象リポジトリ、期限、Organization の承認、ユーザー自身のアクセス権を確認してください。
  • 通常通知で Issue が作られない: Issues が無効なリポジトリでは作成 API が失敗します。Labels を指定した場合は、Token のユーザーがそれらを付与できることも確認してください。
  • 復旧しても Issue が閉じない: 作成時の Issue 番号マッピングを保存できなかった、90 日の保持期間を過ぎた、または復旧時にマッピングが見つからない場合は自動クローズされません。
  • メンテナンス通知がない: GitHub 連携はメンテナンス開始・終了を処理しません。
  • テストは通るが通常通知が届かない: モニター個別の通知先関連付けを確認します。関連付けがすべて無効でもチーム全体へはフォールバックしません。
  • 短時間の通知が途中から届かない: 同じモニターで 10 分以内に 3 回を超える状態変化があるとフラップ抑制が働きます。
  • 重複して見える: 同じインシデント・チャンネル・イベント種別で送信済みなら再試行はスキップされます。失敗または処理中の送信は再試行されます。

Test の成功後は 60 秒のクールダウンがあります。1つの GitHub チャンネルの失敗は他チャンネルの送信を止めません。